From af4eb0eecafa76dd0c42f0f62b87d190e9e886ad Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Wed, 22 May 2024 20:26:17 +0200 Subject: [PATCH 01/93] Apply microtus patches 1-20 (cherry picked from commit ab0874cf0515963d1f4037d3e606db241f03fadb) Fix build grade Add missing adventure nbt lib Add missing dependencies Remove old biome, banner, shield, particle, attribute system Fix forward data generator Disable stress tester for compile reasons Remove old network stack Remove no longer exists api form player Fix forward bstats Fix forward server flags Fix forward terminal color converter Fix forward inventory tests Fix forward frog meta test Update files like in microtus main (cherry picked from commit d3ad5aff721abd014bf338de544a64f8a653d0cd) Apply better workflow (cherry picked from commit ccf63cb7de796596807e45ebb458184d4fbed4ae) Move miss landed classes after patching source (cherry picked from commit 2f2dec233f123c1433fb2b8e28b84eefe34381b6) Fix workflows for java 21 (cherry picked from commit b501f93097161841515695f11bf9ac29e3896c2d) Fix workflows for java 21 (cherry picked from commit f35341a08bd4c0354cf9f40cc3243ebf74a0b76f) [Chore] Update gradle to 8.7 (cherry picked from commit cf0f73caff61bb7843548b3e77a5bab4bfe905aa) [Chore] Remove preview feature (cherry picked from commit ab6a351f9360b5458c7e0bf5b0c8c9b9fb9452cf) [Bugfix] Improve version string for bstats (cherry picked from commit d63c883f64d02c133a3ea873b5a099526c0cfdc6) Update README.md (cherry picked from commit 9fd02fd9de3fac3ae4902c2e01fcfac12aa9d563) Update snapshot and release version (cherry picked from commit 18cfbade4d98b94596ead39f696ba34b0fe4fe5a) [Chore] Replace e.printstacktrace with exception manager call or logger (cherry picked from commit c61f7c57ada380372c1c02ffc74c2928675fe8a9) Create CNAME (cherry picked from commit 0a8f6dd081530583ffde47b411429351663440ae) Bump snapshot version (#31) (cherry picked from commit 0c32b88086895d41e0cdc053bb1b5ab9d47f84a4) Update build.gradle.kts (cherry picked from commit 4023e8ae4cd36057b6fb08dbb3d58616e730fed2) Improve license usage (cherry picked from commit e7298d4157ce88eaa0b2adf041694573e24f6f5e) Improve license usage (cherry picked from commit 9574b21d38f5e81cd2b875201f3d8a682371c68a) [#30] Release 1.4.0 (cherry picked from commit fee81f4c740ad2efd3510a7aa672558c4d8fe37b) [#30] Re-Release 1.4.1 (cherry picked from commit 994ecce8dcf0b8cac8f0bf3ed91980469ac489cb) Go back to snapshot (cherry picked from commit 57b6303f9c93c275720060bed9928eb960c30956) Ignore bstats file (cherry picked from commit e3271929b2d51804fb4c04d4733e3c1df9cebb40) [#34] Better Notification System (#35) * [#34] Implement new notification system with tests * [#34] Update demo to use new notification system * [#34] Add deprecation text to old notification system * [#34] Improve javadocs and rename builder implementation * [#34] Improve javadocs and fix tests * [#34] Remove empty lines * [#34] Add package description (cherry picked from commit 29ec3fe2d5cbf86d38a3cf9434b8d40df7f92915) Add bom (cherry picked from commit 7c692385f13c08ec67934a1ec46402b5e6750075) Improve bom (cherry picked from commit f9b237435e03ad773229fd2fc209dac7da522ada) Remove java version from bom (cherry picked from commit 772203bb6fa9baf9b02a989a40b2a467b89dfa51) Change bom deployment (cherry picked from commit f41860257d043b992ec1849b3ad6d5eec8b206ad) Change bom deployment (cherry picked from commit 37576d20b98b96d427fc26299ee453e4fddf8cc2) [Feature] Improved Testing Lib (#42) * Deprecate env test * Improve environment * Create new environment annotation * Use new environment annotation (cherry picked from commit 3d93b94670b0577d92065dd6cc394845b7867634) Add missing dependencies (cherry picked from commit e295f999dcaff67509180ddd5ee917dd95a5b8ea) Add missing dependencies (cherry picked from commit 7765729a42047189ecdc67b78f5c4d4a2848cf94) Improve release workflow (cherry picked from commit c2986743f111851134b7caa49bd253ebeaca32cf) Improve release workflow (cherry picked from commit da01e8a1651c8a39ac337a2b4f30929359d74dfe) Bump version (cherry picked from commit e715ad98da45fed83b79f7fb2a105a1d72b14001) Update dependency com.google.code.gson:gson to v2.11.0 (cherry picked from commit c7095d62477365ccdcba0542f4944bf220d9831b) Update dependency org.mockito:mockito-core to v5.12.0 (cherry picked from commit 77ccf9fdbe7aed8d77666c799dae5f4e5f05e487) Update actions/cache action to v4 (cherry picked from commit 38ad8aafc87bfe8dbf12c765340ea010a7f32ee2) Update gradle/wrapper-validation-action action to v3 (cherry picked from commit ad8489127b0882a32360eebbc55f524dfd6b8d39) Update kotlin monorepo to v2 (cherry picked from commit af9be490b59a60b68bba12e042339b544bc9c08b) [Chore] Update gradle to version 8.8 (#58) (cherry picked from commit 9373005a6b71905a33eff7a12f5267374c9b1e50) Update CODEOWNERS (cherry picked from commit 026aa2780532ae8bcf275a914996f7e2513ce317) Update CODEOWNERS (cherry picked from commit 5be4573758d3117233d8de8fc0ac06ee577581ef) Update README.md (cherry picked from commit c90b7d583f564770f5358b931d3ae917fe0e5ce7) --- .editorconfig | 520 +++++++------ .github/CODEOWNERS | 2 + .github/CONTRIBUTING.md | 39 +- .github/ISSUE_TEMPLATE/bug.yml | 52 ++ .github/ISSUE_TEMPLATE/config.yml | 6 + .github/ISSUE_TEMPLATE/feature-request.yml | 33 + .github/ISSUE_TEMPLATE/performance.yml | 40 + .github/README.md | 180 ++--- .github/pull_request_template.md | 53 ++ .github/release-drafter.yml | 1 + .github/renovate.json | 25 + .github/stale.yml | 18 + .github/workflows/build-pr.yml | 24 + .github/workflows/build.yml | 49 ++ .github/workflows/close_invalid_prs.yml | 18 +- .github/workflows/javadoc.yml | 16 +- .github/workflows/pr.yml | 59 -- .github/workflows/release-drafter.yml | 22 + .github/workflows/release.yml | 50 ++ .github/workflows/snapshot-deploy.yaml | 32 - .github/workflows/trigger-jitpack-build.yml | 12 - .gitignore | 1 + CNAME | 1 + LICENSE | 201 ----- LICENSE.md | 19 + bom/build.gradle.kts | 126 ++++ build-logic/build.gradle.kts | 18 + .../minestom.common-conventions.gradle.kts | 28 + .../minestom.native-conventions.gradle.kts | 14 + ...minestom.publishing-conventions.gradle.kts | 40 + build.gradle.kts | 212 ++---- code-generators/build.gradle.kts | 5 + .../net/minestom/codegen/CodeExporter.java | 46 ++ .../codegen/MinestomCodeGenerator.java | 46 +- .../entity/VillagerProfessionGenerator.java | 78 +- .../codegen/entity/VillagerTypeGenerator.java | 55 +- .../codegen/util/GenerationHelper.java | 47 ++ demo/build.gradle.kts | 29 +- .../demo/commands/NotificationCommand.java | 12 +- .../minestom/demo/commands/TestCommand.java | 5 +- extension/build.gradle.kts | 86 +++ .../microtus/ExtensionPlugin.kt | 76 ++ .../microtus/GenerateExtension.kt | 79 ++ .../microtus/models/Extension.kt | 76 ++ gradle/libs.versions.toml | 87 --- gradle/wrapper/gradle-wrapper.jar | Bin 43462 -> 43453 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 2 +- jcstress-tests/build.gradle.kts | 1 + jitpack.yml | 2 - licenses/MIT.md | 23 + licenses/apache_2_0.md | 201 +++++ settings.gradle.kts | 149 +++- .../net/minestom/server/color/DyeColor.java | 8 + .../minestom/server/feature/FeatureFlags.java | 35 + .../java/net/minestom/server/Metrics.java | 146 ++++ .../net/minestom/server/MinecraftServer.java | 7 + .../java/net/minestom/server/ServerFlag.java | 13 + .../net/minestom/server/ServerProcess.java | 7 + .../minestom/server/ServerProcessImpl.java | 47 +- .../server/advancements/AdvancementTab.java | 4 +- .../notifications/Notification.java | 14 +- .../notifications/NotificationCenter.java | 4 + .../adventure/AdventurePacketConvertor.java | 15 +- .../server/command/CommandSender.java | 48 -- .../server/command/ConsoleSender.java | 10 - .../builder/arguments/ArgumentEnum.java | 2 +- .../arguments/minecraft/ArgumentRange.java | 2 +- .../minecraft/registry/ArgumentRegistry.java | 4 +- .../relative/ArgumentRelativeVec.java | 2 +- .../net/minestom/server/entity/Entity.java | 2 +- .../server/entity/EntityProjectile.java | 4 +- .../net/minestom/server/entity/Player.java | 10 - .../minestom/server/entity/PlayerSkin.java | 16 - .../server/entity/ai/GoalSelector.java | 3 +- .../entity/ai/target/ClosestEntityTarget.java | 21 - .../server/entity/metadata/EntityMeta.java | 16 +- .../entity/metadata/LivingEntityMeta.java | 8 +- .../server/entity/metadata/MobMeta.java | 8 +- .../server/entity/metadata/PlayerMeta.java | 16 +- .../entity/metadata/ambient/BatMeta.java | 2 +- .../metadata/animal/AbstractHorseMeta.java | 14 +- .../entity/metadata/animal/BeeMeta.java | 8 +- .../entity/metadata/animal/FoxMeta.java | 18 +- .../entity/metadata/animal/FrogMeta.java | 34 +- .../entity/metadata/animal/GoatMeta.java | 2 + .../entity/metadata/animal/HorseMeta.java | 5 +- .../entity/metadata/animal/LlamaMeta.java | 3 +- .../entity/metadata/animal/PandaMeta.java | 10 +- .../entity/metadata/animal/SheepMeta.java | 6 +- .../metadata/display/AbstractDisplayMeta.java | 3 +- .../metadata/display/ItemDisplayMeta.java | 2 +- .../entity/metadata/golem/IronGolemMeta.java | 3 +- .../entity/metadata/monster/BlazeMeta.java | 3 +- .../entity/metadata/monster/SpiderMeta.java | 3 +- .../entity/metadata/monster/VexMeta.java | 3 +- .../entity/metadata/monster/WardenMeta.java | 28 +- .../metadata/monster/raider/PillagerMeta.java | 17 +- .../entity/metadata/other/ArmorStandMeta.java | 10 +- .../entity/metadata/other/BoatMeta.java | 2 +- .../metadata/other/EnderDragonMeta.java | 3 +- .../projectile/AbstractArrowMeta.java | 6 +- .../entity/metadata/water/AxolotlMeta.java | 2 +- .../entity/metadata/water/DolphinMeta.java | 46 +- .../metadata/water/fish/TadpoleMeta.java | 14 +- .../InstanceWorldPositionChangeEvent.java | 60 ++ .../server/event/player/PlayerEatEvent.java | 11 - .../event/player/PlayerPreEatEvent.java | 11 - .../server/exception/ExceptionManager.java | 6 +- .../extensions/DiscoveredExtension.java | 236 ++++++ .../minestom/server/extensions/Extension.java | 193 +++++ .../extensions/ExtensionClassLoader.java | 91 +++ .../server/extensions/ExtensionManager.java | 712 ++++++++++++++++++ .../server/extras/bungee/BungeeCordProxy.java | 2 - .../server/extras/velocity/VelocityProxy.java | 3 +- .../minestom/server/instance/Explosion.java | 2 +- .../minestom/server/instance/Instance.java | 43 ++ .../server/instance/batch/ChunkBatch.java | 3 +- .../server/instance/block/BlockManager.java | 2 +- .../block/rule/BlockPlacementRule.java | 2 +- .../server/inventory/AbstractInventory.java | 4 +- .../minestom/server/inventory/Inventory.java | 10 +- .../inventory/InventoryClickHandler.java | 3 +- .../server/inventory/InventoryType.java | 9 - .../server/inventory/PlayerInventory.java | 4 +- .../server/inventory/click/ClickType.java | 6 +- .../click/InventoryClickProcessor.java | 12 +- .../server/inventory/type/AnvilInventory.java | 4 - .../inventory/type/BeaconInventory.java | 4 - .../inventory/type/BrewingStandInventory.java | 4 - .../type/EnchantmentTableInventory.java | 4 - .../inventory/type/FurnaceInventory.java | 4 - .../inventory/type/VillagerInventory.java | 8 +- .../listener/AdvancementTabListener.java | 2 + .../server/listener/AnimationListener.java | 2 + .../server/listener/WindowListener.java | 2 +- .../listener/preplay/HandshakeListener.java | 3 +- .../server/monitoring/BenchmarkManager.java | 2 +- .../server/network/socket/Server.java | 2 +- .../server/notifications/Notification.java | 117 +++ .../notifications/NotificationBuilder.java | 60 ++ .../notifications/NotificationImpl.java | 58 ++ .../server/notifications/package-info.java | 12 + .../minestom/server/ping/ResponseData.java | 139 ---- .../server/scoreboard/BelowNameTag.java | 12 - .../server/scoreboard/Scoreboard.java | 14 - .../minestom/server/scoreboard/Sidebar.java | 24 +- .../minestom/server/tag/TagNbtSeparator.java | 2 +- .../terminal/MinestomConsoleWriter.java | 36 + .../server/terminal/MinestomTerminal.java | 100 +++ .../terminal/TerminalColorConverter.java | 100 +++ .../minestom/server/thread/Acquirable.java | 4 +- .../net/minestom/server/utils/TickUtils.java | 5 + .../minestom/server/utils/UniqueIdUtils.java | 9 +- .../minestom/server/utils/time/TimeUnit.java | 5 - .../minestom/server/world/biome/Biome.java | 1 + .../minestom/server/ServerProcessTest.java | 6 +- .../AdvancementIntegrationTest.java | 6 +- .../adventure/provider/TranslationTest.java | 4 +- .../EntityBlockTouchTickIntegrationTest.java | 10 +- ...ityProjectileCollisionIntegrationTest.java | 8 +- .../PlacementCollisionIntegrationTest.java | 10 +- .../minestom/server/collision/TestShape.java | 2 +- .../server/command/ArgumentParserTest.java | 4 +- .../minestom/server/command/ArgumentTest.java | 10 +- .../server/command/CommandConditionTest.java | 8 +- .../server/command/CommandManagerTest.java | 10 +- .../command/CommandPacketFilteringTest.java | 34 +- .../server/command/CommandPacketTest.java | 28 +- .../server/command/CommandParseTest.java | 18 +- .../server/command/CommandSenderTest.java | 6 +- .../CommandSuggestionIntegrationTest.java | 14 +- .../command/CommandSyntaxMultiTest.java | 9 +- .../command/CommandSyntaxSingleTest.java | 18 +- .../minestom/server/command/CommandTest.java | 6 +- .../command/GraphConversionExecutorTest.java | 12 +- .../server/command/GraphConversionTest.java | 18 +- .../server/command/GraphMergeTest.java | 8 +- .../minestom/server/command/GraphTest.java | 12 +- .../server/command/SubcommandTest.java | 6 +- .../server/coordinate/CoordinateTest.java | 18 +- .../coordinate/PosViewDirectionTest.java | 4 +- .../EntityBoundingBoxIntegrationTest.java | 8 +- .../entity/EntityInstanceIntegrationTest.java | 8 +- .../EntityLineOfSightIntegrationTest.java | 16 +- .../entity/EntityMetaIntegrationTest.java | 6 +- .../server/entity/EntityMetaTest.java | 4 +- .../EntityProjectileIntegrationTest.java | 6 +- .../entity/EntityRemovalIntegrationTest.java | 14 +- .../entity/EntityTeleportIntegrationTest.java | 10 +- .../EntityViewDirectionIntegrationTest.java | 10 +- .../entity/EntityViewIntegrationTest.java | 20 +- .../EntityViewerRuleIntegrationTest.java | 14 +- .../minestom/server/entity/GameModeTest.java | 14 +- .../entity/PassengerIntegrationTest.java | 6 +- .../entity/PlayerHeldIntegrationTest.java | 6 +- .../server/entity/PlayerSkinTest.java | 6 +- .../entity/ai/ClosestEntityTargetTest.java | 4 +- .../entity/metadata/animal/FrogMetaTest.java | 19 + .../entity/player/PlayerIntegrationTest.java | 14 +- .../player/PlayerMovementIntegrationTest.java | 8 +- .../PlayerRespawnChunkIntegrationTest.java | 9 +- .../server/event/EventNodeGraphTest.java | 8 +- .../server/event/EventNodeMapTest.java | 14 +- .../server/event/EventNodeQueryTest.java | 8 +- .../minestom/server/event/EventNodeTest.java | 26 +- .../server/instance/BlockClientNbtTest.java | 6 +- .../BlockLightMergeIntegrationTest.java | 34 +- .../instance/BlockPlaceIntegrationTest.java | 2 +- .../server/instance/BlockPropertiesTest.java | 18 +- .../instance/ChunkViewerIntegrationTest.java | 6 +- .../EntityTrackerIntegrationTest.java | 10 +- .../server/instance/EntityTrackerTest.java | 14 +- .../GeneratorForkIntegrationTest.java | 14 +- .../instance/GeneratorIntegrationTest.java | 14 +- .../InstanceBlockIntegrationTest.java | 8 +- .../InstanceBlockPacketIntegrationTest.java | 6 +- .../instance/InstanceContainerTest.java | 4 +- .../InstanceEventsIntegrationTest.java | 4 +- .../InstanceUnregisterIntegrationTest.java | 12 +- .../InstanceWorldPositionIntegrationTest.java | 48 ++ .../GeneratorForkConsumerIntegrationTest.java | 52 +- .../instance/generator/GeneratorTest.java | 32 +- .../instance/light/BlockIsOccludedTest.java | 32 +- .../server/instance/light/BlockLightTest.java | 22 +- .../light/WorldRelightIntegrationTest.java | 6 +- .../palette/PaletteOptimizationTest.java | 10 +- .../server/instance/palette/PaletteTest.java | 32 +- .../inventory/InventoryCloseStateTest.java | 4 +- .../inventory/InventoryIntegrationTest.java | 6 +- .../server/inventory/InventoryTest.java | 28 +- .../PlayerInventoryIntegrationTest.java | 32 +- .../inventory/PlayerSlotConversionTest.java | 10 +- .../integration/HeldClickIntegrationTest.java | 13 +- .../integration/LeftClickIntegrationTest.java | 13 +- .../RightClickIntegrationTest.java | 13 +- .../net/minestom/server/item/ItemAirTest.java | 4 +- .../server/network/PacketWriteReadTest.java | 4 +- .../server/network/SendablePacketTest.java | 6 +- .../server/network/SocketReadTest.java | 10 +- .../server/network/SocketWriteTest.java | 12 +- .../network/socket/ServerAddressTest.java | 11 +- .../NotificationIntegrationTest.java | 58 ++ .../server/permission/TestPermissions.java | 18 +- .../ChunkSnapshotIntegrationTest.java | 4 +- .../EntitySnapshotIntegrationTest.java | 4 +- .../InstanceSnapshotIntegrationTest.java | 4 +- .../minestom/server/tag/TagComponentTest.java | 10 +- .../minestom/server/tag/TagEqualityTest.java | 18 +- .../server/tag/TagHandlerCopyTest.java | 10 +- .../tag/TagHandlerReadableCopyTest.java | 10 +- .../net/minestom/server/tag/TagItemTest.java | 16 +- .../net/minestom/server/tag/TagListTest.java | 36 +- .../net/minestom/server/tag/TagMapTest.java | 8 +- .../server/tag/TagNbtSeparatorTest.java | 10 +- .../net/minestom/server/tag/TagPathTest.java | 30 +- .../minestom/server/tag/TagStructureTest.java | 12 +- .../minestom/server/tag/TagTransientTest.java | 10 +- .../minestom/server/tag/TagUpdateTest.java | 28 +- .../net/minestom/server/tag/TagUuidTest.java | 12 +- .../server/tag/TagValueShareTest.java | 28 +- .../net/minestom/server/tag/TagViewTest.java | 16 +- .../server/thread/AcquirableTest.java | 4 +- .../server/thread/ThreadDispatcherTest.java | 10 +- .../minestom/server/utils/ChunkUtilsTest.java | 4 +- .../server/utils/NamespaceIDTest.java | 26 +- .../minestom/server/utils/ObjectPoolTest.java | 6 +- .../server/utils/PositionUtilsTest.java | 6 +- .../utils/TranslationIntegrationTest.java | 6 +- .../server/utils/UniqueIdUtilsTest.java | 17 + .../server/utils/block/BlockIteratorTest.java | 54 +- .../collection/AutoIncrementMapTest.java | 4 +- .../utils/collection/ObjectArrayTest.java | 6 +- testing/build.gradle.kts | 65 +- .../main/java/net/minestom/testing/Env.java | 10 + .../java/net/minestom/testing/EnvImpl.java | 3 +- .../java/net/minestom/testing/EnvTest.java | 4 + .../testing/annotations/EnvironmentTest.java | 21 + .../environment/TestEnvironmentCleaner.java | 25 + .../TestEnvironmentParameterResolver.java | 20 + 280 files changed, 5309 insertions(+), 2324 deletions(-) create mode 100644 .github/CODEOWNERS create mode 100644 .github/ISSUE_TEMPLATE/bug.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature-request.yml create mode 100644 .github/ISSUE_TEMPLATE/performance.yml create mode 100644 .github/pull_request_template.md create mode 100644 .github/release-drafter.yml create mode 100644 .github/renovate.json create mode 100644 .github/stale.yml create mode 100644 .github/workflows/build-pr.yml create mode 100644 .github/workflows/build.yml delete mode 100644 .github/workflows/pr.yml create mode 100644 .github/workflows/release-drafter.yml create mode 100644 .github/workflows/release.yml delete mode 100644 .github/workflows/snapshot-deploy.yaml delete mode 100644 .github/workflows/trigger-jitpack-build.yml create mode 100644 CNAME delete mode 100644 LICENSE create mode 100644 LICENSE.md create mode 100644 bom/build.gradle.kts create mode 100644 build-logic/build.gradle.kts create mode 100644 build-logic/src/main/kotlin/minestom.common-conventions.gradle.kts create mode 100644 build-logic/src/main/kotlin/minestom.native-conventions.gradle.kts create mode 100644 build-logic/src/main/kotlin/minestom.publishing-conventions.gradle.kts create mode 100644 code-generators/src/main/java/net/minestom/codegen/CodeExporter.java create mode 100644 code-generators/src/main/java/net/minestom/codegen/util/GenerationHelper.java create mode 100644 extension/build.gradle.kts create mode 100644 extension/src/main/kotlin/net/onelitefeather/microtus/ExtensionPlugin.kt create mode 100644 extension/src/main/kotlin/net/onelitefeather/microtus/GenerateExtension.kt create mode 100644 extension/src/main/kotlin/net/onelitefeather/microtus/models/Extension.kt delete mode 100644 jitpack.yml create mode 100644 licenses/MIT.md create mode 100644 licenses/apache_2_0.md create mode 100644 src/autogenerated/java/net/minestom/server/feature/FeatureFlags.java create mode 100644 src/main/java/net/minestom/server/Metrics.java create mode 100644 src/main/java/net/minestom/server/event/instance/InstanceWorldPositionChangeEvent.java create mode 100644 src/main/java/net/minestom/server/extensions/DiscoveredExtension.java create mode 100644 src/main/java/net/minestom/server/extensions/Extension.java create mode 100644 src/main/java/net/minestom/server/extensions/ExtensionClassLoader.java create mode 100644 src/main/java/net/minestom/server/extensions/ExtensionManager.java create mode 100644 src/main/java/net/minestom/server/notifications/Notification.java create mode 100644 src/main/java/net/minestom/server/notifications/NotificationBuilder.java create mode 100644 src/main/java/net/minestom/server/notifications/NotificationImpl.java create mode 100644 src/main/java/net/minestom/server/notifications/package-info.java create mode 100644 src/main/java/net/minestom/server/terminal/MinestomConsoleWriter.java create mode 100644 src/main/java/net/minestom/server/terminal/MinestomTerminal.java create mode 100644 src/main/java/net/minestom/server/terminal/TerminalColorConverter.java create mode 100644 src/test/java/net/minestom/server/entity/metadata/animal/FrogMetaTest.java create mode 100644 src/test/java/net/minestom/server/instance/InstanceWorldPositionIntegrationTest.java create mode 100644 src/test/java/net/minestom/server/notifications/NotificationIntegrationTest.java create mode 100644 src/test/java/net/minestom/server/utils/UniqueIdUtilsTest.java create mode 100644 testing/src/main/java/net/minestom/testing/annotations/EnvironmentTest.java create mode 100644 testing/src/main/java/net/minestom/testing/environment/TestEnvironmentCleaner.java create mode 100644 testing/src/main/java/net/minestom/testing/environment/TestEnvironmentParameterResolver.java diff --git a/.editorconfig b/.editorconfig index 519d33713d5..21fdeaf68ef 100644 --- a/.editorconfig +++ b/.editorconfig @@ -9,15 +9,16 @@ tab_width = 4 ij_continuation_indent_size = 8 ij_formatter_off_tag = @formatter:off ij_formatter_on_tag = @formatter:on -ij_formatter_tags_enabled = false +ij_formatter_tags_enabled = true ij_smart_tabs = false -ij_visual_guides = none +ij_visual_guides = ij_wrap_on_typing = false [*.css] ij_css_align_closing_brace_with_properties = false ij_css_blank_lines_around_nested_selector = 1 ij_css_blank_lines_between_blocks = 1 +ij_css_block_comment_add_space = false ij_css_brace_placement = end_of_line ij_css_enforce_quotes_on_format = false ij_css_hex_color_long_format = false @@ -33,17 +34,6 @@ ij_css_space_before_opening_brace = true ij_css_use_double_quotes = true ij_css_value_alignment = do_not_align -[*.feature] -indent_size = 2 -ij_gherkin_keep_indents_on_empty_lines = false - -[*.gsp] -ij_gsp_keep_indents_on_empty_lines = false - -[*.haml] -indent_size = 2 -ij_haml_keep_indents_on_empty_lines = false - [*.java] ij_java_align_consecutive_assignments = false ij_java_align_consecutive_variable_declarations = false @@ -53,6 +43,7 @@ ij_java_align_multiline_array_initializer_expression = false ij_java_align_multiline_assignment = false ij_java_align_multiline_binary_operation = false ij_java_align_multiline_chained_methods = false +ij_java_align_multiline_deconstruction_list_components = true ij_java_align_multiline_extends_list = false ij_java_align_multiline_for = true ij_java_align_multiline_method_parentheses = false @@ -66,6 +57,7 @@ ij_java_align_multiline_text_blocks = false ij_java_align_multiline_throws_list = false ij_java_align_subsequent_simple_methods = false ij_java_align_throws_keyword = false +ij_java_align_types_in_multi_catch = true ij_java_annotation_parameter_wrap = off ij_java_array_initializer_new_line_after_left_brace = false ij_java_array_initializer_right_brace_on_new_line = false @@ -90,7 +82,9 @@ ij_java_blank_lines_before_imports = 1 ij_java_blank_lines_before_method_body = 0 ij_java_blank_lines_before_package = 0 ij_java_block_brace_style = end_of_line +ij_java_block_comment_add_space = false ij_java_block_comment_at_first_column = true +ij_java_builder_methods = ij_java_call_parameters_new_line_after_left_paren = false ij_java_call_parameters_right_paren_on_new_line = false ij_java_call_parameters_wrap = off @@ -98,10 +92,12 @@ ij_java_case_statement_on_separate_line = true ij_java_catch_on_new_line = false ij_java_class_annotation_wrap = split_into_lines ij_java_class_brace_style = end_of_line -ij_java_class_count_to_use_import_on_demand = 5 +ij_java_class_count_to_use_import_on_demand = 9999 ij_java_class_names_in_javadoc = 1 +ij_java_deconstruction_list_wrap = normal ij_java_do_not_indent_top_level_class_members = false ij_java_do_not_wrap_after_single_annotation = false +ij_java_do_not_wrap_after_single_annotation_in_parameter = false ij_java_do_while_brace_force = never ij_java_doc_add_blank_line_after_description = true ij_java_doc_add_blank_line_after_param_comments = false @@ -122,18 +118,32 @@ ij_java_doc_param_description_on_new_line = false ij_java_doc_preserve_line_breaks = false ij_java_doc_use_throws_not_exception_tag = true ij_java_else_on_new_line = false +ij_java_entity_dd_prefix = ij_java_entity_dd_suffix = EJB +ij_java_entity_eb_prefix = ij_java_entity_eb_suffix = Bean +ij_java_entity_hi_prefix = ij_java_entity_hi_suffix = Home ij_java_entity_lhi_prefix = Local ij_java_entity_lhi_suffix = Home ij_java_entity_li_prefix = Local +ij_java_entity_li_suffix = ij_java_entity_pk_class = java.lang.String +ij_java_entity_ri_prefix = +ij_java_entity_ri_suffix = +ij_java_entity_vo_prefix = ij_java_entity_vo_suffix = VO ij_java_enum_constants_wrap = off +ij_java_enum_field_annotation_wrap = off ij_java_extends_keyword_wrap = off ij_java_extends_list_wrap = off ij_java_field_annotation_wrap = split_into_lines +ij_java_field_name_prefix = +ij_java_field_name_suffix = +ij_java_filter_class_prefix = +ij_java_filter_class_suffix = +ij_java_filter_dd_prefix = +ij_java_filter_dd_suffix = ij_java_finally_on_new_line = false ij_java_for_brace_force = never ij_java_for_statement_new_line_after_left_paren = false @@ -150,6 +160,7 @@ ij_java_keep_blank_lines_before_right_brace = 2 ij_java_keep_blank_lines_between_package_declaration_and_header = 2 ij_java_keep_blank_lines_in_code = 2 ij_java_keep_blank_lines_in_declarations = 2 +ij_java_keep_builder_methods_indents = false ij_java_keep_control_statement_in_one_line = true ij_java_keep_first_column_comment = true ij_java_keep_indents_on_empty_lines = false @@ -164,8 +175,15 @@ ij_java_label_indent_size = 0 ij_java_lambda_brace_style = end_of_line ij_java_layout_static_imports_separately = true ij_java_line_comment_add_space = false +ij_java_line_comment_add_space_on_reformat = false ij_java_line_comment_at_first_column = true +ij_java_listener_class_prefix = +ij_java_listener_class_suffix = +ij_java_local_variable_name_prefix = +ij_java_local_variable_name_suffix = +ij_java_message_dd_prefix = ij_java_message_dd_suffix = EJB +ij_java_message_eb_prefix = ij_java_message_eb_suffix = Bean ij_java_method_annotation_wrap = split_into_lines ij_java_method_brace_style = end_of_line @@ -174,16 +192,23 @@ ij_java_method_parameters_new_line_after_left_paren = false ij_java_method_parameters_right_paren_on_new_line = false ij_java_method_parameters_wrap = off ij_java_modifier_list_wrap = false +ij_java_multi_catch_types_wrap = normal ij_java_names_count_to_use_import_on_demand = 3 +ij_java_new_line_after_lparen_in_annotation = false +ij_java_new_line_after_lparen_in_deconstruction_pattern = true ij_java_new_line_after_lparen_in_record_header = false +ij_java_new_line_when_body_is_presented = false ij_java_packages_to_use_import_on_demand = java.awt.*,javax.swing.* ij_java_parameter_annotation_wrap = off +ij_java_parameter_name_prefix = +ij_java_parameter_name_suffix = ij_java_parentheses_expression_new_line_after_left_paren = false ij_java_parentheses_expression_right_paren_on_new_line = false ij_java_place_assignment_sign_on_next_line = false ij_java_prefer_longer_names = true ij_java_prefer_parameters_wrap = false ij_java_record_components_wrap = normal +ij_java_repeat_annotations = ij_java_repeat_synchronized = true ij_java_replace_instanceof_and_cast = false ij_java_replace_null_check = true @@ -191,13 +216,26 @@ ij_java_replace_sum_lambda_with_method_ref = true ij_java_resource_list_new_line_after_left_paren = false ij_java_resource_list_right_paren_on_new_line = false ij_java_resource_list_wrap = off +ij_java_rparen_on_new_line_in_annotation = false +ij_java_rparen_on_new_line_in_deconstruction_pattern = true ij_java_rparen_on_new_line_in_record_header = false +ij_java_servlet_class_prefix = +ij_java_servlet_class_suffix = +ij_java_servlet_dd_prefix = +ij_java_servlet_dd_suffix = +ij_java_session_dd_prefix = ij_java_session_dd_suffix = EJB +ij_java_session_eb_prefix = ij_java_session_eb_suffix = Bean +ij_java_session_hi_prefix = ij_java_session_hi_suffix = Home ij_java_session_lhi_prefix = Local ij_java_session_lhi_suffix = Home ij_java_session_li_prefix = Local +ij_java_session_li_suffix = +ij_java_session_ri_prefix = +ij_java_session_ri_suffix = +ij_java_session_si_prefix = ij_java_session_si_suffix = Service ij_java_space_after_closing_angle_bracket_in_type_argument = false ij_java_space_after_colon = true @@ -216,6 +254,7 @@ ij_java_space_before_class_left_brace = true ij_java_space_before_colon = true ij_java_space_before_colon_in_foreach = true ij_java_space_before_comma = false +ij_java_space_before_deconstruction_list = false ij_java_space_before_do_left_brace = true ij_java_space_before_else_keyword = true ij_java_space_before_else_left_brace = true @@ -246,6 +285,7 @@ ij_java_space_within_empty_array_initializer_braces = false ij_java_space_within_empty_method_call_parentheses = false ij_java_space_within_empty_method_parentheses = false ij_java_spaces_around_additive_operators = true +ij_java_spaces_around_annotation_eq = true ij_java_spaces_around_assignment_operators = true ij_java_spaces_around_bitwise_operators = true ij_java_spaces_around_equality_operators = true @@ -264,6 +304,7 @@ ij_java_spaces_within_braces = false ij_java_spaces_within_brackets = false ij_java_spaces_within_cast_parentheses = false ij_java_spaces_within_catch_parentheses = false +ij_java_spaces_within_deconstruction_list = false ij_java_spaces_within_for_parentheses = false ij_java_spaces_within_if_parentheses = false ij_java_spaces_within_method_call_parentheses = false @@ -275,9 +316,14 @@ ij_java_spaces_within_synchronized_parentheses = false ij_java_spaces_within_try_parentheses = false ij_java_spaces_within_while_parentheses = false ij_java_special_else_if_treatment = true +ij_java_static_field_name_prefix = +ij_java_static_field_name_suffix = +ij_java_subclass_name_prefix = ij_java_subclass_name_suffix = Impl +ij_java_switch_expressions_wrap = normal ij_java_ternary_operation_signs_on_next_line = false ij_java_ternary_operation_wrap = off +ij_java_test_name_prefix = ij_java_test_name_suffix = Test ij_java_throws_keyword_wrap = off ij_java_throws_list_wrap = off @@ -292,12 +338,14 @@ ij_java_while_on_new_line = false ij_java_wrap_comments = false ij_java_wrap_first_method_in_call_chain = false ij_java_wrap_long_lines = false +ij_java_wrap_semicolon_after_call_chain = false [*.less] indent_size = 2 ij_less_align_closing_brace_with_properties = false ij_less_blank_lines_around_nested_selector = 1 ij_less_blank_lines_between_blocks = 1 +ij_less_block_comment_add_space = false ij_less_brace_placement = 0 ij_less_enforce_quotes_on_format = false ij_less_hex_color_long_format = false @@ -307,12 +355,27 @@ ij_less_hex_color_upper_case = false ij_less_keep_blank_lines_in_code = 2 ij_less_keep_indents_on_empty_lines = false ij_less_keep_single_line_blocks = false +ij_less_line_comment_add_space = false +ij_less_line_comment_at_first_column = false ij_less_properties_order = font,font-family,font-size,font-weight,font-style,font-variant,font-size-adjust,font-stretch,line-height,position,z-index,top,right,bottom,left,display,visibility,float,clear,overflow,overflow-x,overflow-y,clip,zoom,align-content,align-items,align-self,flex,flex-flow,flex-basis,flex-direction,flex-grow,flex-shrink,flex-wrap,justify-content,order,box-sizing,width,min-width,max-width,height,min-height,max-height,margin,margin-top,margin-right,margin-bottom,margin-left,padding,padding-top,padding-right,padding-bottom,padding-left,table-layout,empty-cells,caption-side,border-spacing,border-collapse,list-style,list-style-position,list-style-type,list-style-image,content,quotes,counter-reset,counter-increment,resize,cursor,user-select,nav-index,nav-up,nav-right,nav-down,nav-left,transition,transition-delay,transition-timing-function,transition-duration,transition-property,transform,transform-origin,animation,animation-name,animation-duration,animation-play-state,animation-timing-function,animation-delay,animation-iteration-count,animation-direction,text-align,text-align-last,vertical-align,white-space,text-decoration,text-emphasis,text-emphasis-color,text-emphasis-style,text-emphasis-position,text-indent,text-justify,letter-spacing,word-spacing,text-outline,text-transform,text-wrap,text-overflow,text-overflow-ellipsis,text-overflow-mode,word-wrap,word-break,tab-size,hyphens,pointer-events,opacity,color,border,border-width,border-style,border-color,border-top,border-top-width,border-top-style,border-top-color,border-right,border-right-width,border-right-style,border-right-color,border-bottom,border-bottom-width,border-bottom-style,border-bottom-color,border-left,border-left-width,border-left-style,border-left-color,border-radius,border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,border-image,border-image-source,border-image-slice,border-image-width,border-image-outset,border-image-repeat,outline,outline-width,outline-style,outline-color,outline-offset,background,background-color,background-image,background-repeat,background-attachment,background-position,background-position-x,background-position-y,background-clip,background-origin,background-size,box-decoration-break,box-shadow,text-shadow ij_less_space_after_colon = true ij_less_space_before_opening_brace = true ij_less_use_double_quotes = true ij_less_value_alignment = 0 +[*.proto] +indent_size = 2 +tab_width = 2 +ij_continuation_indent_size = 4 +ij_protobuf_keep_blank_lines_in_code = 2 +ij_protobuf_keep_indents_on_empty_lines = false +ij_protobuf_keep_line_breaks = true +ij_protobuf_space_after_comma = true +ij_protobuf_space_before_comma = false +ij_protobuf_spaces_around_assignment_operators = true +ij_protobuf_spaces_within_braces = false +ij_protobuf_spaces_within_brackets = false + [*.sass] indent_size = 2 ij_sass_align_closing_brace_with_properties = false @@ -327,6 +390,8 @@ ij_sass_hex_color_upper_case = false ij_sass_keep_blank_lines_in_code = 2 ij_sass_keep_indents_on_empty_lines = false ij_sass_keep_single_line_blocks = false +ij_sass_line_comment_add_space = false +ij_sass_line_comment_at_first_column = false ij_sass_properties_order = font,font-family,font-size,font-weight,font-style,font-variant,font-size-adjust,font-stretch,line-height,position,z-index,top,right,bottom,left,display,visibility,float,clear,overflow,overflow-x,overflow-y,clip,zoom,align-content,align-items,align-self,flex,flex-flow,flex-basis,flex-direction,flex-grow,flex-shrink,flex-wrap,justify-content,order,box-sizing,width,min-width,max-width,height,min-height,max-height,margin,margin-top,margin-right,margin-bottom,margin-left,padding,padding-top,padding-right,padding-bottom,padding-left,table-layout,empty-cells,caption-side,border-spacing,border-collapse,list-style,list-style-position,list-style-type,list-style-image,content,quotes,counter-reset,counter-increment,resize,cursor,user-select,nav-index,nav-up,nav-right,nav-down,nav-left,transition,transition-delay,transition-timing-function,transition-duration,transition-property,transform,transform-origin,animation,animation-name,animation-duration,animation-play-state,animation-timing-function,animation-delay,animation-iteration-count,animation-direction,text-align,text-align-last,vertical-align,white-space,text-decoration,text-emphasis,text-emphasis-color,text-emphasis-style,text-emphasis-position,text-indent,text-justify,letter-spacing,word-spacing,text-outline,text-transform,text-wrap,text-overflow,text-overflow-ellipsis,text-overflow-mode,word-wrap,word-break,tab-size,hyphens,pointer-events,opacity,color,border,border-width,border-style,border-color,border-top,border-top-width,border-top-style,border-top-color,border-right,border-right-width,border-right-style,border-right-color,border-bottom,border-bottom-width,border-bottom-style,border-bottom-color,border-left,border-left-width,border-left-style,border-left-color,border-radius,border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,border-image,border-image-source,border-image-slice,border-image-width,border-image-outset,border-image-repeat,outline,outline-width,outline-style,outline-color,outline-offset,background,background-color,background-image,background-repeat,background-attachment,background-position,background-position-x,background-position-y,background-clip,background-origin,background-size,box-decoration-break,box-shadow,text-shadow ij_sass_space_after_colon = true ij_sass_space_before_opening_brace = true @@ -338,6 +403,7 @@ indent_size = 2 ij_scss_align_closing_brace_with_properties = false ij_scss_blank_lines_around_nested_selector = 1 ij_scss_blank_lines_between_blocks = 1 +ij_scss_block_comment_add_space = false ij_scss_brace_placement = 0 ij_scss_enforce_quotes_on_format = false ij_scss_hex_color_long_format = false @@ -347,31 +413,24 @@ ij_scss_hex_color_upper_case = false ij_scss_keep_blank_lines_in_code = 2 ij_scss_keep_indents_on_empty_lines = false ij_scss_keep_single_line_blocks = false +ij_scss_line_comment_add_space = false +ij_scss_line_comment_at_first_column = false ij_scss_properties_order = font,font-family,font-size,font-weight,font-style,font-variant,font-size-adjust,font-stretch,line-height,position,z-index,top,right,bottom,left,display,visibility,float,clear,overflow,overflow-x,overflow-y,clip,zoom,align-content,align-items,align-self,flex,flex-flow,flex-basis,flex-direction,flex-grow,flex-shrink,flex-wrap,justify-content,order,box-sizing,width,min-width,max-width,height,min-height,max-height,margin,margin-top,margin-right,margin-bottom,margin-left,padding,padding-top,padding-right,padding-bottom,padding-left,table-layout,empty-cells,caption-side,border-spacing,border-collapse,list-style,list-style-position,list-style-type,list-style-image,content,quotes,counter-reset,counter-increment,resize,cursor,user-select,nav-index,nav-up,nav-right,nav-down,nav-left,transition,transition-delay,transition-timing-function,transition-duration,transition-property,transform,transform-origin,animation,animation-name,animation-duration,animation-play-state,animation-timing-function,animation-delay,animation-iteration-count,animation-direction,text-align,text-align-last,vertical-align,white-space,text-decoration,text-emphasis,text-emphasis-color,text-emphasis-style,text-emphasis-position,text-indent,text-justify,letter-spacing,word-spacing,text-outline,text-transform,text-wrap,text-overflow,text-overflow-ellipsis,text-overflow-mode,word-wrap,word-break,tab-size,hyphens,pointer-events,opacity,color,border,border-width,border-style,border-color,border-top,border-top-width,border-top-style,border-top-color,border-right,border-right-width,border-right-style,border-right-color,border-bottom,border-bottom-width,border-bottom-style,border-bottom-color,border-left,border-left-width,border-left-style,border-left-color,border-radius,border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,border-image,border-image-source,border-image-slice,border-image-width,border-image-outset,border-image-repeat,outline,outline-width,outline-style,outline-color,outline-offset,background,background-color,background-image,background-repeat,background-attachment,background-position,background-position-x,background-position-y,background-clip,background-origin,background-size,box-decoration-break,box-shadow,text-shadow ij_scss_space_after_colon = true ij_scss_space_before_opening_brace = true ij_scss_use_double_quotes = true ij_scss_value_alignment = 0 -[*.styl] +[*.vue] indent_size = 2 -ij_stylus_align_closing_brace_with_properties = false -ij_stylus_blank_lines_around_nested_selector = 1 -ij_stylus_blank_lines_between_blocks = 1 -ij_stylus_brace_placement = 0 -ij_stylus_enforce_quotes_on_format = false -ij_stylus_hex_color_long_format = false -ij_stylus_hex_color_lower_case = false -ij_stylus_hex_color_short_format = false -ij_stylus_hex_color_upper_case = false -ij_stylus_keep_blank_lines_in_code = 2 -ij_stylus_keep_indents_on_empty_lines = false -ij_stylus_keep_single_line_blocks = false -ij_stylus_properties_order = font,font-family,font-size,font-weight,font-style,font-variant,font-size-adjust,font-stretch,line-height,position,z-index,top,right,bottom,left,display,visibility,float,clear,overflow,overflow-x,overflow-y,clip,zoom,align-content,align-items,align-self,flex,flex-flow,flex-basis,flex-direction,flex-grow,flex-shrink,flex-wrap,justify-content,order,box-sizing,width,min-width,max-width,height,min-height,max-height,margin,margin-top,margin-right,margin-bottom,margin-left,padding,padding-top,padding-right,padding-bottom,padding-left,table-layout,empty-cells,caption-side,border-spacing,border-collapse,list-style,list-style-position,list-style-type,list-style-image,content,quotes,counter-reset,counter-increment,resize,cursor,user-select,nav-index,nav-up,nav-right,nav-down,nav-left,transition,transition-delay,transition-timing-function,transition-duration,transition-property,transform,transform-origin,animation,animation-name,animation-duration,animation-play-state,animation-timing-function,animation-delay,animation-iteration-count,animation-direction,text-align,text-align-last,vertical-align,white-space,text-decoration,text-emphasis,text-emphasis-color,text-emphasis-style,text-emphasis-position,text-indent,text-justify,letter-spacing,word-spacing,text-outline,text-transform,text-wrap,text-overflow,text-overflow-ellipsis,text-overflow-mode,word-wrap,word-break,tab-size,hyphens,pointer-events,opacity,color,border,border-width,border-style,border-color,border-top,border-top-width,border-top-style,border-top-color,border-right,border-right-width,border-right-style,border-right-color,border-bottom,border-bottom-width,border-bottom-style,border-bottom-color,border-left,border-left-width,border-left-style,border-left-color,border-radius,border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,border-image,border-image-source,border-image-slice,border-image-width,border-image-outset,border-image-repeat,outline,outline-width,outline-style,outline-color,outline-offset,background,background-color,background-image,background-repeat,background-attachment,background-position,background-position-x,background-position-y,background-clip,background-origin,background-size,box-decoration-break,box-shadow,text-shadow -ij_stylus_space_after_colon = true -ij_stylus_space_before_opening_brace = true -ij_stylus_use_double_quotes = true -ij_stylus_value_alignment = 0 +tab_width = 2 +ij_continuation_indent_size = 4 +ij_vue_indent_children_of_top_level = template +ij_vue_interpolation_new_line_after_start_delimiter = true +ij_vue_interpolation_new_line_before_end_delimiter = true +ij_vue_interpolation_wrap = off +ij_vue_keep_indents_on_empty_lines = false +ij_vue_spaces_within_interpolation_expressions = true [.editorconfig] ij_editorconfig_align_group_field_declarations = false @@ -381,10 +440,11 @@ ij_editorconfig_space_before_colon = false ij_editorconfig_space_before_comma = false ij_editorconfig_spaces_around_assignment_operators = true -[{*.ant,*.fxml,*.jhm,*.jnlp,*.jrxml,*.pom,*.qrc,*.rng,*.tld,*.wadl,*.wsdd,*.wsdl,*.xjb,*.xml,*.xsd,*.xsl,*.xslt,*.xul}] +[{*.ant,*.fxml,*.jhm,*.jnlp,*.jrxml,*.pom,*.rng,*.tld,*.wadl,*.wsdl,*.xml,*.xsd,*.xsl,*.xslt,*.xul}] ij_xml_align_attributes = true ij_xml_align_text = false ij_xml_attribute_wrap = normal +ij_xml_block_comment_add_space = false ij_xml_block_comment_at_first_column = true ij_xml_keep_blank_lines = 2 ij_xml_keep_indents_on_empty_lines = false @@ -398,9 +458,8 @@ ij_xml_space_after_tag_name = false ij_xml_space_around_equals_in_attribute = false ij_xml_space_inside_empty_tag = false ij_xml_text_wrap = normal -ij_xml_use_custom_settings = false -[{*.ats,*.ts}] +[{*.ats,*.cts,*.mts,*.ts}] ij_continuation_indent_size = 4 ij_typescript_align_imports = false ij_typescript_align_multiline_array_initializer_expression = false @@ -429,6 +488,8 @@ ij_typescript_blank_lines_around_function = 1 ij_typescript_blank_lines_around_method = 1 ij_typescript_blank_lines_around_method_in_interface = 1 ij_typescript_block_brace_style = end_of_line +ij_typescript_block_comment_add_space = false +ij_typescript_block_comment_at_first_column = true ij_typescript_call_parameters_new_line_after_left_paren = false ij_typescript_call_parameters_right_paren_on_new_line = false ij_typescript_call_parameters_wrap = off @@ -439,6 +500,7 @@ ij_typescript_comma_on_new_line = false ij_typescript_do_while_brace_force = never ij_typescript_else_on_new_line = false ij_typescript_enforce_trailing_comma = keep +ij_typescript_enum_constants_wrap = on_every_item ij_typescript_extends_keyword_wrap = off ij_typescript_extends_list_wrap = off ij_typescript_field_prefix = _ @@ -477,6 +539,7 @@ ij_typescript_method_parameters_new_line_after_left_paren = false ij_typescript_method_parameters_right_paren_on_new_line = false ij_typescript_method_parameters_wrap = off ij_typescript_object_literal_wrap = on_every_item +ij_typescript_object_types_wrap = on_every_item ij_typescript_parentheses_expression_new_line_after_left_paren = false ij_typescript_parentheses_expression_right_paren_on_new_line = false ij_typescript_place_assignment_sign_on_next_line = false @@ -485,6 +548,7 @@ ij_typescript_prefer_explicit_types_function_expression_returns = false ij_typescript_prefer_explicit_types_function_returns = false ij_typescript_prefer_explicit_types_vars_fields = false ij_typescript_prefer_parameters_wrap = false +ij_typescript_property_prefix = ij_typescript_reformat_c_style_comments = false ij_typescript_space_after_colon = true ij_typescript_space_after_comma = true @@ -559,7 +623,8 @@ ij_typescript_ternary_operation_wrap = off ij_typescript_union_types_wrap = on_every_item ij_typescript_use_chained_calls_group_indents = false ij_typescript_use_double_quotes = true -ij_typescript_use_explicit_js_extension = global +ij_typescript_use_explicit_js_extension = auto +ij_typescript_use_import_type = auto ij_typescript_use_path_mapping = always ij_typescript_use_public_modifier = false ij_typescript_use_semicolon_after_statement = true @@ -576,6 +641,7 @@ ij_shell_keep_column_alignment_padding = false ij_shell_minify_program = false ij_shell_redirect_followed_by_space = false ij_shell_switch_cases_indented = false +ij_shell_use_unix_line_separator = true [{*.cjs,*.js}] ij_continuation_indent_size = 4 @@ -604,6 +670,8 @@ ij_javascript_blank_lines_around_field = 0 ij_javascript_blank_lines_around_function = 1 ij_javascript_blank_lines_around_method = 1 ij_javascript_block_brace_style = end_of_line +ij_javascript_block_comment_add_space = false +ij_javascript_block_comment_at_first_column = true ij_javascript_call_parameters_new_line_after_left_paren = false ij_javascript_call_parameters_right_paren_on_new_line = false ij_javascript_call_parameters_wrap = off @@ -651,6 +719,7 @@ ij_javascript_method_parameters_new_line_after_left_paren = false ij_javascript_method_parameters_right_paren_on_new_line = false ij_javascript_method_parameters_wrap = off ij_javascript_object_literal_wrap = on_every_item +ij_javascript_object_types_wrap = on_every_item ij_javascript_parentheses_expression_new_line_after_left_paren = false ij_javascript_parentheses_expression_right_paren_on_new_line = false ij_javascript_place_assignment_sign_on_next_line = false @@ -659,6 +728,7 @@ ij_javascript_prefer_explicit_types_function_expression_returns = false ij_javascript_prefer_explicit_types_function_returns = false ij_javascript_prefer_explicit_types_vars_fields = false ij_javascript_prefer_parameters_wrap = false +ij_javascript_property_prefix = ij_javascript_reformat_c_style_comments = false ij_javascript_space_after_colon = true ij_javascript_space_after_comma = true @@ -733,7 +803,8 @@ ij_javascript_ternary_operation_wrap = off ij_javascript_union_types_wrap = on_every_item ij_javascript_use_chained_calls_group_indents = false ij_javascript_use_double_quotes = true -ij_javascript_use_explicit_js_extension = global +ij_javascript_use_explicit_js_extension = auto +ij_javascript_use_import_type = auto ij_javascript_use_path_mapping = always ij_javascript_use_public_modifier = false ij_javascript_use_semicolon_after_statement = true @@ -742,107 +813,16 @@ ij_javascript_while_brace_force = never ij_javascript_while_on_new_line = false ij_javascript_wrap_comments = false -[{*.cjsx,*.coffee}] +[{*.erb,*.rhtml}] indent_size = 2 tab_width = 2 ij_continuation_indent_size = 2 -ij_coffeescript_align_function_body = false -ij_coffeescript_align_imports = false -ij_coffeescript_align_multiline_array_initializer_expression = true -ij_coffeescript_align_multiline_parameters = true -ij_coffeescript_align_multiline_parameters_in_calls = false -ij_coffeescript_align_object_properties = 0 -ij_coffeescript_align_union_types = false -ij_coffeescript_align_var_statements = 0 -ij_coffeescript_array_initializer_new_line_after_left_brace = false -ij_coffeescript_array_initializer_right_brace_on_new_line = false -ij_coffeescript_array_initializer_wrap = normal -ij_coffeescript_blacklist_imports = rxjs/Rx,node_modules/**,**/node_modules/**,@angular/material,@angular/material/typings/** -ij_coffeescript_blank_lines_around_function = 1 -ij_coffeescript_call_parameters_new_line_after_left_paren = false -ij_coffeescript_call_parameters_right_paren_on_new_line = false -ij_coffeescript_call_parameters_wrap = normal -ij_coffeescript_chained_call_dot_on_new_line = true -ij_coffeescript_comma_on_new_line = false -ij_coffeescript_enforce_trailing_comma = keep -ij_coffeescript_field_prefix = _ -ij_coffeescript_file_name_style = relaxed -ij_coffeescript_force_quote_style = false -ij_coffeescript_force_semicolon_style = false -ij_coffeescript_function_expression_brace_style = end_of_line -ij_coffeescript_import_merge_members = global -ij_coffeescript_import_prefer_absolute_path = global -ij_coffeescript_import_sort_members = true -ij_coffeescript_import_sort_module_name = false -ij_coffeescript_import_use_node_resolution = true -ij_coffeescript_imports_wrap = on_every_item -ij_coffeescript_indent_chained_calls = true -ij_coffeescript_indent_package_children = 0 -ij_coffeescript_jsx_attribute_value = braces -ij_coffeescript_keep_blank_lines_in_code = 2 -ij_coffeescript_keep_first_column_comment = true -ij_coffeescript_keep_indents_on_empty_lines = false -ij_coffeescript_keep_line_breaks = true -ij_coffeescript_keep_simple_methods_in_one_line = false -ij_coffeescript_method_parameters_new_line_after_left_paren = false -ij_coffeescript_method_parameters_right_paren_on_new_line = false -ij_coffeescript_method_parameters_wrap = off -ij_coffeescript_object_literal_wrap = on_every_item -ij_coffeescript_prefer_as_type_cast = false -ij_coffeescript_prefer_explicit_types_function_expression_returns = false -ij_coffeescript_prefer_explicit_types_function_returns = false -ij_coffeescript_prefer_explicit_types_vars_fields = false -ij_coffeescript_reformat_c_style_comments = false -ij_coffeescript_space_after_comma = true -ij_coffeescript_space_after_dots_in_rest_parameter = false -ij_coffeescript_space_after_generator_mult = true -ij_coffeescript_space_after_property_colon = true -ij_coffeescript_space_after_type_colon = true -ij_coffeescript_space_after_unary_not = false -ij_coffeescript_space_before_async_arrow_lparen = true -ij_coffeescript_space_before_class_lbrace = true -ij_coffeescript_space_before_comma = false -ij_coffeescript_space_before_function_left_parenth = true -ij_coffeescript_space_before_generator_mult = false -ij_coffeescript_space_before_property_colon = false -ij_coffeescript_space_before_type_colon = false -ij_coffeescript_space_before_unary_not = false -ij_coffeescript_spaces_around_additive_operators = true -ij_coffeescript_spaces_around_arrow_function_operator = true -ij_coffeescript_spaces_around_assignment_operators = true -ij_coffeescript_spaces_around_bitwise_operators = true -ij_coffeescript_spaces_around_equality_operators = true -ij_coffeescript_spaces_around_logical_operators = true -ij_coffeescript_spaces_around_multiplicative_operators = true -ij_coffeescript_spaces_around_relational_operators = true -ij_coffeescript_spaces_around_shift_operators = true -ij_coffeescript_spaces_around_unary_operator = false -ij_coffeescript_spaces_within_array_initializer_braces = false -ij_coffeescript_spaces_within_array_initializer_brackets = false -ij_coffeescript_spaces_within_imports = false -ij_coffeescript_spaces_within_index_brackets = false -ij_coffeescript_spaces_within_interpolation_expressions = false -ij_coffeescript_spaces_within_method_call_parentheses = false -ij_coffeescript_spaces_within_method_parentheses = false -ij_coffeescript_spaces_within_object_braces = false -ij_coffeescript_spaces_within_object_literal_braces = false -ij_coffeescript_spaces_within_object_type_braces = true -ij_coffeescript_spaces_within_range_brackets = false -ij_coffeescript_spaces_within_type_assertion = false -ij_coffeescript_spaces_within_union_types = true -ij_coffeescript_union_types_wrap = on_every_item -ij_coffeescript_use_chained_calls_group_indents = false -ij_coffeescript_use_double_quotes = true -ij_coffeescript_use_explicit_js_extension = global -ij_coffeescript_use_path_mapping = always -ij_coffeescript_use_public_modifier = false -ij_coffeescript_use_semicolon_after_statement = false -ij_coffeescript_var_declaration_wrap = normal +ij_rhtml_keep_indents_on_empty_lines = false [{*.ft,*.vm,*.vsl}] ij_vtl_keep_indents_on_empty_lines = false -[{*.gant,*.gradle,*.groovy,*.gson,*.gy}] +[{*.gant,*.groovy,*.gy}] ij_groovy_align_group_field_declarations = false ij_groovy_align_multiline_array_initializer_expression = false ij_groovy_align_multiline_assignment = false @@ -877,6 +857,7 @@ ij_groovy_blank_lines_before_imports = 1 ij_groovy_blank_lines_before_method_body = 0 ij_groovy_blank_lines_before_package = 0 ij_groovy_block_brace_style = end_of_line +ij_groovy_block_comment_add_space = false ij_groovy_block_comment_at_first_column = true ij_groovy_call_parameters_new_line_after_left_paren = false ij_groovy_call_parameters_right_paren_on_new_line = false @@ -887,6 +868,7 @@ ij_groovy_class_brace_style = end_of_line ij_groovy_class_count_to_use_import_on_demand = 5 ij_groovy_do_while_brace_force = never ij_groovy_else_on_new_line = false +ij_groovy_enable_groovydoc_formatting = true ij_groovy_enum_constants_wrap = off ij_groovy_extends_keyword_wrap = off ij_groovy_extends_list_wrap = off @@ -896,6 +878,12 @@ ij_groovy_for_brace_force = never ij_groovy_for_statement_new_line_after_left_paren = false ij_groovy_for_statement_right_paren_on_new_line = false ij_groovy_for_statement_wrap = off +ij_groovy_ginq_general_clause_wrap_policy = 2 +ij_groovy_ginq_having_wrap_policy = 1 +ij_groovy_ginq_indent_having_clause = true +ij_groovy_ginq_indent_on_clause = true +ij_groovy_ginq_on_wrap_policy = 1 +ij_groovy_ginq_space_after_keyword = true ij_groovy_if_brace_force = never ij_groovy_import_annotation_wrap = 2 ij_groovy_imports_layout = *,|,javax.**,java.**,|,$* @@ -919,6 +907,7 @@ ij_groovy_label_indent_size = 0 ij_groovy_lambda_brace_style = end_of_line ij_groovy_layout_static_imports_separately = true ij_groovy_line_comment_add_space = false +ij_groovy_line_comment_add_space_on_reformat = false ij_groovy_line_comment_at_first_column = true ij_groovy_method_annotation_wrap = split_into_lines ij_groovy_method_brace_style = end_of_line @@ -928,6 +917,7 @@ ij_groovy_method_parameters_right_paren_on_new_line = false ij_groovy_method_parameters_wrap = off ij_groovy_modifier_list_wrap = false ij_groovy_names_count_to_use_import_on_demand = 3 +ij_groovy_packages_to_use_import_on_demand = java.awt.*,javax.swing.* ij_groovy_parameter_annotation_wrap = off ij_groovy_parentheses_expression_new_line_after_left_paren = false ij_groovy_parentheses_expression_right_paren_on_new_line = false @@ -966,6 +956,7 @@ ij_groovy_space_before_method_call_parentheses = false ij_groovy_space_before_method_left_brace = true ij_groovy_space_before_method_parentheses = false ij_groovy_space_before_quest = true +ij_groovy_space_before_record_parentheses = false ij_groovy_space_before_switch_left_brace = true ij_groovy_space_before_switch_parentheses = true ij_groovy_space_before_synchronized_left_brace = true @@ -1019,9 +1010,99 @@ ij_groovy_use_single_class_imports = true ij_groovy_variable_annotation_wrap = off ij_groovy_while_brace_force = never ij_groovy_while_on_new_line = false +ij_groovy_wrap_chain_calls_after_dot = false ij_groovy_wrap_long_lines = false -[{*.gradle.kts,*.kt,*.kts,*.main.kts}] +[{*.gemspec,*.jbuilder,*.rake,*.rb,*.rbi,*.rbw,*.ru,*.thor,.simplecov,capfile,gemfile,guardfile,isolate,rakefile,steepfile,vagrantfile}] +ij_ruby_align_group_field_declarations = false +ij_ruby_align_multiline_parameters = true +ij_ruby_blank_lines_around_class = 1 +ij_ruby_blank_lines_around_method = 1 +ij_ruby_chain_calls_alignment = 2 +ij_ruby_convert_brace_block_by_enter = true +ij_ruby_empty_declarations_style = 1 +ij_ruby_force_newlines_around_visibility_mods = true +ij_ruby_indent_private_methods = false +ij_ruby_indent_protected_methods = false +ij_ruby_indent_public_methods = false +ij_ruby_indent_visibility_modifiers = true +ij_ruby_indent_when_cases = false +ij_ruby_keep_blank_lines_in_code = 1 +ij_ruby_keep_blank_lines_in_declarations = 1 +ij_ruby_keep_line_breaks = true +ij_ruby_parentheses_around_method_arguments = true +ij_ruby_spaces_around_assignment_operators = true +ij_ruby_spaces_around_hashrocket = true +ij_ruby_spaces_around_other_operators = true +ij_ruby_spaces_around_pow_operators = true +ij_ruby_spaces_around_range_operators = false +ij_ruby_spaces_around_relational_operators = true +ij_ruby_spaces_within_array_initializer_braces = true +ij_ruby_spaces_within_braces = true +ij_ruby_spaces_within_pipes = false +ij_ruby_use_external_formatter = false + +[{*.har,*.jsb2,*.jsb3,*.json,*.jsonc,*.postman_collection,*.postman_collection.json,*.postman_environment,*.postman_environment.json,.babelrc,.eslintrc,.prettierrc,.stylelintrc,.ws-context,bowerrc,brakeman.ignore,jest.config}] +indent_size = 2 +ij_json_array_wrapping = split_into_lines +ij_json_keep_blank_lines_in_code = 0 +ij_json_keep_indents_on_empty_lines = false +ij_json_keep_line_breaks = true +ij_json_keep_trailing_comma = false +ij_json_object_wrapping = split_into_lines +ij_json_property_alignment = do_not_align +ij_json_space_after_colon = true +ij_json_space_after_comma = true +ij_json_space_before_colon = false +ij_json_space_before_comma = false +ij_json_spaces_within_braces = false +ij_json_spaces_within_brackets = false +ij_json_wrap_long_lines = false + +[{*.htm,*.html,*.sht,*.shtm,*.shtml}] +ij_html_add_new_line_before_tags = body,div,p,form,h1,h2,h3 +ij_html_align_attributes = true +ij_html_align_text = false +ij_html_attribute_wrap = normal +ij_html_block_comment_add_space = false +ij_html_block_comment_at_first_column = true +ij_html_do_not_align_children_of_min_lines = 0 +ij_html_do_not_break_if_inline_tags = title,h1,h2,h3,h4,h5,h6,p +ij_html_do_not_indent_children_of_tags = html,body,thead,tbody,tfoot +ij_html_enforce_quotes = false +ij_html_inline_tags = a,abbr,acronym,b,basefont,bdo,big,br,cite,cite,code,dfn,em,font,i,img,input,kbd,label,q,s,samp,select,small,span,strike,strong,sub,sup,textarea,tt,u,var +ij_html_keep_blank_lines = 2 +ij_html_keep_indents_on_empty_lines = false +ij_html_keep_line_breaks = true +ij_html_keep_line_breaks_in_text = true +ij_html_keep_whitespaces = false +ij_html_keep_whitespaces_inside = span,pre,textarea +ij_html_line_comment_at_first_column = true +ij_html_new_line_after_last_attribute = never +ij_html_new_line_before_first_attribute = never +ij_html_quote_style = double +ij_html_remove_new_line_before_tags = br +ij_html_space_after_tag_name = false +ij_html_space_around_equality_in_attribute = false +ij_html_space_inside_empty_tag = false +ij_html_text_wrap = normal + +[{*.http,*.rest}] +indent_size = 0 +ij_continuation_indent_size = 4 +ij_http-request_call_parameters_wrap = normal +ij_http-request_method_parameters_wrap = split_into_lines +ij_http-request_space_before_comma = true +ij_http-request_spaces_around_assignment_operators = true + +[{*.jsf,*.jsp,*.jspf,*.tag,*.tagf,*.xjsp}] +ij_jsp_jsp_prefer_comma_separated_import_list = false +ij_jsp_keep_indents_on_empty_lines = false + +[{*.jspx,*.tagx}] +ij_jspx_keep_indents_on_empty_lines = false + +[{*.kt,*.kts}] ij_kotlin_align_in_columns_case_branch = false ij_kotlin_align_multiline_binary_operation = false ij_kotlin_align_multiline_extends_list = false @@ -1030,29 +1111,30 @@ ij_kotlin_align_multiline_parameters = true ij_kotlin_align_multiline_parameters_in_calls = false ij_kotlin_allow_trailing_comma = false ij_kotlin_allow_trailing_comma_on_call_site = false -ij_kotlin_assignment_wrap = off +ij_kotlin_assignment_wrap = normal ij_kotlin_blank_lines_after_class_header = 0 ij_kotlin_blank_lines_around_block_when_branches = 0 ij_kotlin_blank_lines_before_declaration_with_comment_or_annotation_on_separate_line = 1 +ij_kotlin_block_comment_add_space = false ij_kotlin_block_comment_at_first_column = true -ij_kotlin_call_parameters_new_line_after_left_paren = false -ij_kotlin_call_parameters_right_paren_on_new_line = false -ij_kotlin_call_parameters_wrap = off +ij_kotlin_call_parameters_new_line_after_left_paren = true +ij_kotlin_call_parameters_right_paren_on_new_line = true +ij_kotlin_call_parameters_wrap = on_every_item ij_kotlin_catch_on_new_line = false ij_kotlin_class_annotation_wrap = split_into_lines -ij_kotlin_continuation_indent_for_chained_calls = true -ij_kotlin_continuation_indent_for_expression_bodies = true -ij_kotlin_continuation_indent_in_argument_lists = true -ij_kotlin_continuation_indent_in_elvis = true -ij_kotlin_continuation_indent_in_if_conditions = true -ij_kotlin_continuation_indent_in_parameter_lists = true -ij_kotlin_continuation_indent_in_supertype_lists = true +ij_kotlin_continuation_indent_for_chained_calls = false +ij_kotlin_continuation_indent_for_expression_bodies = false +ij_kotlin_continuation_indent_in_argument_lists = false +ij_kotlin_continuation_indent_in_elvis = false +ij_kotlin_continuation_indent_in_if_conditions = false +ij_kotlin_continuation_indent_in_parameter_lists = false +ij_kotlin_continuation_indent_in_supertype_lists = false ij_kotlin_else_on_new_line = false ij_kotlin_enum_constants_wrap = off -ij_kotlin_extends_list_wrap = off +ij_kotlin_extends_list_wrap = normal ij_kotlin_field_annotation_wrap = split_into_lines ij_kotlin_finally_on_new_line = false -ij_kotlin_if_rparen_on_new_line = false +ij_kotlin_if_rparen_on_new_line = true ij_kotlin_import_nested_classes = false ij_kotlin_imports_layout = *,java.**,javax.**,kotlin.**,^ ij_kotlin_insert_whitespaces_in_simple_one_line_method = true @@ -1063,13 +1145,15 @@ ij_kotlin_keep_first_column_comment = true ij_kotlin_keep_indents_on_empty_lines = false ij_kotlin_keep_line_breaks = true ij_kotlin_lbrace_on_next_line = false +ij_kotlin_line_break_after_multiline_when_entry = true ij_kotlin_line_comment_add_space = false +ij_kotlin_line_comment_add_space_on_reformat = false ij_kotlin_line_comment_at_first_column = true ij_kotlin_method_annotation_wrap = split_into_lines -ij_kotlin_method_call_chain_wrap = off -ij_kotlin_method_parameters_new_line_after_left_paren = false -ij_kotlin_method_parameters_right_paren_on_new_line = false -ij_kotlin_method_parameters_wrap = off +ij_kotlin_method_call_chain_wrap = normal +ij_kotlin_method_parameters_new_line_after_left_paren = true +ij_kotlin_method_parameters_right_paren_on_new_line = true +ij_kotlin_method_parameters_wrap = on_every_item ij_kotlin_name_count_to_use_star_import = 5 ij_kotlin_name_count_to_use_star_import_for_members = 3 ij_kotlin_packages_to_use_import_on_demand = java.util.*,kotlinx.android.synthetic.**,io.ktor.** @@ -1099,69 +1183,40 @@ ij_kotlin_spaces_around_when_arrow = true ij_kotlin_variable_annotation_wrap = off ij_kotlin_while_on_new_line = false ij_kotlin_wrap_elvis_expressions = 1 -ij_kotlin_wrap_expression_body_functions = 0 +ij_kotlin_wrap_expression_body_functions = 1 ij_kotlin_wrap_first_method_in_call_chain = false -[{*.har,*.jsb2,*.jsb3,*.json,.babelrc,.eslintrc,.stylelintrc,bowerrc,jest.config}] -indent_size = 2 -ij_json_keep_blank_lines_in_code = 0 -ij_json_keep_indents_on_empty_lines = false -ij_json_keep_line_breaks = true -ij_json_space_after_colon = true -ij_json_space_after_comma = true -ij_json_space_before_colon = true -ij_json_space_before_comma = false -ij_json_spaces_within_braces = false -ij_json_spaces_within_brackets = false -ij_json_wrap_long_lines = false - -[{*.htm,*.html,*.ng,*.sht,*.shtm,*.shtml}] -ij_html_add_new_line_before_tags = body,div,p,form,h1,h2,h3 -ij_html_align_attributes = true -ij_html_align_text = false -ij_html_attribute_wrap = normal -ij_html_block_comment_at_first_column = true -ij_html_do_not_align_children_of_min_lines = 0 -ij_html_do_not_break_if_inline_tags = title,h1,h2,h3,h4,h5,h6,p -ij_html_do_not_indent_children_of_tags = html,body,thead,tbody,tfoot -ij_html_enforce_quotes = false -ij_html_inline_tags = a,abbr,acronym,b,basefont,bdo,big,br,cite,cite,code,dfn,em,font,i,img,input,kbd,label,q,s,samp,select,small,span,strike,strong,sub,sup,textarea,tt,u,var -ij_html_keep_blank_lines = 2 -ij_html_keep_indents_on_empty_lines = false -ij_html_keep_line_breaks = true -ij_html_keep_line_breaks_in_text = true -ij_html_keep_whitespaces = false -ij_html_keep_whitespaces_inside = span,pre,textarea -ij_html_line_comment_at_first_column = true -ij_html_new_line_after_last_attribute = never -ij_html_new_line_before_first_attribute = never -ij_html_quote_style = double -ij_html_remove_new_line_before_tags = br -ij_html_space_after_tag_name = false -ij_html_space_around_equality_in_attribute = false -ij_html_space_inside_empty_tag = false -ij_html_text_wrap = normal -ij_html_uniform_ident = false - -[{*.jsf,*.jsp,*.jspf,*.tag,*.tagf,*.xjsp}] -ij_jsp_jsp_prefer_comma_separated_import_list = false -ij_jsp_keep_indents_on_empty_lines = false - -[{*.jspx,*.tagx}] -ij_jspx_keep_indents_on_empty_lines = false - [{*.markdown,*.md}] ij_markdown_force_one_space_after_blockquote_symbol = true ij_markdown_force_one_space_after_header_symbol = true ij_markdown_force_one_space_after_list_bullet = true ij_markdown_force_one_space_between_words = true +ij_markdown_format_tables = true +ij_markdown_insert_quote_arrows_on_wrap = true ij_markdown_keep_indents_on_empty_lines = false +ij_markdown_keep_line_breaks_inside_text_blocks = true ij_markdown_max_lines_around_block_elements = 1 ij_markdown_max_lines_around_header = 1 ij_markdown_max_lines_between_paragraphs = 1 ij_markdown_min_lines_around_block_elements = 1 ij_markdown_min_lines_around_header = 1 ij_markdown_min_lines_between_paragraphs = 1 +ij_markdown_wrap_text_if_long = true +ij_markdown_wrap_text_inside_blockquotes = true + +[{*.pb,*.textproto,*.txtpb}] +indent_size = 2 +tab_width = 2 +ij_continuation_indent_size = 4 +ij_prototext_keep_blank_lines_in_code = 2 +ij_prototext_keep_indents_on_empty_lines = false +ij_prototext_keep_line_breaks = true +ij_prototext_space_after_colon = true +ij_prototext_space_after_comma = true +ij_prototext_space_before_colon = false +ij_prototext_space_before_comma = false +ij_prototext_spaces_within_braces = true +ij_prototext_spaces_within_brackets = false [{*.properties,spring.handlers,spring.schemas}] ij_properties_align_group_field_declarations = false @@ -1169,70 +1224,11 @@ ij_properties_keep_blank_lines = false ij_properties_key_value_delimiter = equals ij_properties_spaces_around_key_value_delimiter = false -[{*.py,*.pyw}] -ij_python_align_collections_and_comprehensions = true -ij_python_align_multiline_imports = true -ij_python_align_multiline_parameters = true -ij_python_align_multiline_parameters_in_calls = true -ij_python_blank_line_at_file_end = true -ij_python_blank_lines_after_imports = 1 -ij_python_blank_lines_after_local_imports = 0 -ij_python_blank_lines_around_class = 1 -ij_python_blank_lines_around_method = 1 -ij_python_blank_lines_around_top_level_classes_functions = 2 -ij_python_blank_lines_before_first_method = 0 -ij_python_dict_alignment = 0 -ij_python_dict_new_line_after_left_brace = false -ij_python_dict_new_line_before_right_brace = false -ij_python_dict_wrapping = 1 -ij_python_from_import_new_line_after_left_parenthesis = false -ij_python_from_import_new_line_before_right_parenthesis = false -ij_python_from_import_parentheses_force_if_multiline = false -ij_python_from_import_trailing_comma_if_multiline = false -ij_python_from_import_wrapping = 1 -ij_python_hang_closing_brackets = false -ij_python_keep_blank_lines_in_code = 1 -ij_python_keep_blank_lines_in_declarations = 1 -ij_python_keep_indents_on_empty_lines = false -ij_python_keep_line_breaks = true -ij_python_new_line_after_colon = false -ij_python_new_line_after_colon_multi_clause = true -ij_python_optimize_imports_always_split_from_imports = false -ij_python_optimize_imports_case_insensitive_order = false -ij_python_optimize_imports_join_from_imports_with_same_source = false -ij_python_optimize_imports_sort_by_type_first = true -ij_python_optimize_imports_sort_imports = true -ij_python_optimize_imports_sort_names_in_from_imports = false -ij_python_space_after_comma = true -ij_python_space_after_number_sign = true -ij_python_space_after_py_colon = true -ij_python_space_before_backslash = true -ij_python_space_before_comma = false -ij_python_space_before_for_semicolon = false -ij_python_space_before_lbracket = false -ij_python_space_before_method_call_parentheses = false -ij_python_space_before_method_parentheses = false -ij_python_space_before_number_sign = true -ij_python_space_before_py_colon = false -ij_python_space_within_empty_method_call_parentheses = false -ij_python_space_within_empty_method_parentheses = false -ij_python_spaces_around_additive_operators = true -ij_python_spaces_around_assignment_operators = true -ij_python_spaces_around_bitwise_operators = true -ij_python_spaces_around_eq_in_keyword_argument = false -ij_python_spaces_around_eq_in_named_parameter = false -ij_python_spaces_around_equality_operators = true -ij_python_spaces_around_multiplicative_operators = true -ij_python_spaces_around_power_operator = true -ij_python_spaces_around_relational_operators = true -ij_python_spaces_around_shift_operators = true -ij_python_spaces_within_braces = false -ij_python_spaces_within_brackets = false -ij_python_spaces_within_method_call_parentheses = false -ij_python_spaces_within_method_parentheses = false -ij_python_use_continuation_indent_for_arguments = false -ij_python_use_continuation_indent_for_collection_and_comprehensions = false -ij_python_wrap_long_lines = false +[{*.qute.htm,*.qute.html,*.qute.json,*.qute.txt,*.qute.yaml,*.qute.yml}] +ij_qute_keep_indents_on_empty_lines = false + +[{*.toml,Cargo.lock,Cargo.toml.orig,Gopkg.lock,Pipfile,poetry.lock}] +ij_toml_keep_indents_on_empty_lines = false [{*.yaml,*.yml}] indent_size = 2 diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000000..f1a85dfc0d3 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @OneLiteFeatherNET/microtus-core +/.github/CODEOWNERS @OneLiteFeatherNET/microtus-core diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 054b0ce92b6..d58243a1ad4 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -1,28 +1,27 @@ -## How to contribute to Minestom -#### **Did you find a bug?** -* Open a new GitHub issue if it's not already reported. +Contributing to Microtus +======================== -* Explain it clearly, with steps (or code) to reproduce it. +We (the Microtus team) would be very glad if you want to contribute to the project. +The process to contribute requires some guidelines that you need to follow. +These help us to improve the project and maintain a consistent style for each contributor -#### **Did you write some code that fixes a bug?** -* Open a new GitHub pull-request with the commits if it hasn't already been proposed. +## Use a Personal Fork and not an Organization -* Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable. +If you want to contribute to Microtus, please fork the repository to your personal account and not to an organization. +This is because GitHub does not allow to push as maintainer of our fork into a repository from an organization to another organization. +If you fork the repository to an organization, you can open a pr, but we want to accept it. -#### **Do you intend to add a new feature or change an existing one?** -* Do not open a pull-request on GitHub until you have collected positive feedback about the change from a maintainer. +We much prefer to have PRs show as merged, so please do not use repositories +on organizations for PRs. -#### **Do you have questions about the source code?** -* Ask any question about how to use Minestom in the GitHub issues section or the community portals. +See for more information on the +issue. -#### **Do you want to contribute to the Minestom documentation?** -* Feel free to do so! Just make sure to conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification when editing the README.md. +## Requirements -## General Contribution Rules -* By contributing to the Minestom project your code/contribution will be licensed under the [Apache Version 2.0](../LICENSE) license. +To get started with the contributing of change, you will need some additional software. +Most of them can be obtained in (most) package managers on different platforms. -Minestom is a community project. We encourage you to contribute! :) - -Thanks! :heart: :heart: :heart: - -~Minestom Community \ No newline at end of file +- `git` - Version control system +- A Java 21 or later JDK: + - [Adoptium](https://adoptium.net/) has builds for most operating systems \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml new file mode 100644 index 00000000000..118447ff135 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -0,0 +1,52 @@ +name: Report a bug +description: You found a bug? Let us know! +title: "[Bug]: " +labels: [ "type: Bug" ] +body: + - type: markdown + attributes: + value: | + Thank you for reporting a bug to Microtus! + Please fill out the information below to help us understand the issue. + - type: markdown + attributes: + value: | + Before filling in the form fields, please consider the following: + - Ensure that you are using the latest version of Microtus. + - Search for existing issues in the [issue tracker](https://github.com/OneLiteFeatherNET/Microtus/issues) + - type: textarea + attributes: + label: Describe the bug + description: | + A clear and concise description of what the bug is. + If you have a screenshot of the bug, please attach it below. + validations: + required: true + - type: textarea + attributes: + label: Steps to reproduce the bug + description: Tell us exactly how to reproduce the bug you are experiencing + placeholder: | + 1. ... + 2. ... + 3. ... + validations: + required: true + - type: textarea + attributes: + label: Code sample + description: | + Please create a reproducible sample to show us the bug in action and attach it below between the lines with the backticks. + This helps us to verify that the bug is valid and prevents us from having to ask you for a sample later. + + Without this we will unlikely be able to progress on the issue, and because of that + we regretfully will have to close it. + + **Note**: Please do not upload screenshots of text. Instead, use code blocks + or the above mentioned ways to upload your code sample. + value: | + ```java + [Paste your code here] + ``` + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000000..73934b49e28 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,6 @@ +blank_issues_enabled: false +contact_links: + - name: OneLiteFeather Discord + url: https://discord.onelitefeather.net/ + about: Please join our Discord server if you have any questions or concerns. + icon: https://github.com/simple-icons/simple-icons/blob/develop/icons/discord.svg \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature-request.yml b/.github/ISSUE_TEMPLATE/feature-request.yml new file mode 100644 index 00000000000..b3dc844df47 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature-request.yml @@ -0,0 +1,33 @@ +name: Feature Request +description: Suggest an idea for this project +title: "[Feature]: " +labels: [ "type: feature" ] +body: + - type: markdown + attributes: + value: | + Thank you for suggesting an idea to make Microtus better! + Please fill out the information below to help us understand your idea. + - type: textarea + attributes: + label: Is your feature request related to a problem? + description: Please give some context for this request. Why do you want it added? + validations: + required: true + - type: textarea + attributes: + label: Describe the solution you'd like + description: Give us a clear description of what you want + validations: + required: true + - type: textarea + attributes: + label: Describe alternatives you've considered + description: A clear and concise description of any alternative solutions or features you've considered. + validations: + required: false + - type: markdown + attributes: + value: | + Before submitting your feature request, please make sure you have done the following: + - [ ] Searched for existing feature requests \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/performance.yml b/.github/ISSUE_TEMPLATE/performance.yml new file mode 100644 index 00000000000..1dfa502cfc5 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/performance.yml @@ -0,0 +1,40 @@ +name: Performance Problem +description: Report a performance problem which is related to Microtus +labels: [ "type: needs triage", "type: performance" ] +body: + - type: markdown + attributes: + value: | + Before creating an issue regarding to the performance, please reach out for support on our [Discord](https://discord.onelitefeather.net/) + or in the [Discussions](https://github.com/OneLiteFeatherNET/Microtus/discussions)! + + **Please be aware: Performance issues can sometimes depend on your specific implementation and not on Microtus itself. If the situation is clear and it's not a problem with the project, we will close the issue without any comment.** + - type: input + attributes: + label: Used Microtus version + description: Which version of Microtus are you using? + placeholder: 1.0.0 + validations: + required: true + - type: textarea + attributes: + label: Describe the performance problem + description: If applicable, please describe your issue. + validations: + required: false + - type: textarea + attributes: + label: Other + description: | + Please include other helpful links below. + The more information we receive, the quicker and more effective we can be at finding the solution to the issue. + validations: + required: false + - type: markdown + attributes: + value: | + Before submitting your issue, please make sure you have done the following: + + 1. You are running the latest version of Microtus from [Release page](https://github.com/OneLiteFeatherNET/Microtus/releases) + 2. You searched for and ensured there isn't already an open issue regarding this + 3. Your version of Minecraft is supported by Microtus diff --git a/.github/README.md b/.github/README.md index e5f7b353d05..ffa2c73c88c 100644 --- a/.github/README.md +++ b/.github/README.md @@ -1,112 +1,114 @@ -![banner](banner_dark.png#gh-dark-mode-only) -![banner](banner_light.png#gh-light-mode-only) +# Microtus -# Minestom +[![license](https://img.shields.io/github/license/OneLiteFeatherNET/Microtus?style=for-the-badge&color=b2204c)](../LICENSE) +[![wiki](https://img.shields.io/badge/documentation-wiki-74aad6?style=for-the-badge)](https://wiki.microtus.dev/) -[![license](https://img.shields.io/github/license/Minestom/Minestom?style=for-the-badge&color=b2204c)](../LICENSE) -[![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=for-the-badge)](https://github.com/RichardLitt/standard-readme) -[![javadocs](https://img.shields.io/badge/documentation-javadocs-4d7a97?style=for-the-badge)](https://javadoc.minestom.net) -[![wiki](https://img.shields.io/badge/documentation-wiki-74aad6?style=for-the-badge)](https://wiki.minestom.net/) -[![discord-banner](https://img.shields.io/discord/706185253441634317?label=discord&style=for-the-badge&color=7289da)](https://discord.gg/pkFRvqB) +[Microtus](https://en.wikipedia.org/wiki/Microtus) is a fork of the original minestom. -Minestom is an open-source library that enables developers to create their own Minecraft server software, without any code from Mojang. +Our projects get names of animals but in latin. -The main difference between Mojang's vanilla server and a minestom-based server, is that ours does not contain any features by default! -However, we have a complete API which is designed to allow you to make anything possible, with ease. +Discord for discussion: [OneLiteFeather.net](https://discord.onelitefeather.net) -This is a developer API not meant to be used by end-users. Replacing Bukkit/Forge/Sponge with this **will not work** since we do not implement any of their APIs. +## Our goals +- Include patches from open pull requests on minestom repository +- Fixes issues from original minestom repository +- Make useful decisions + - Include new features + - Try to stay updated with original minecraft cycle +- Release cycle of 2 weeks -# Table of contents -- [Install](#install) -- [Usage](#usage) -- [Why Minestom?](#why-minestom) -- [Advantages & Disadvantages](#advantages-and-disadvantages) -- [API](#api) -- [Credits](#credits) -- [Contributing](#contributing) -- [License](#license) +## Project contribution: -# Install -Minestom is not installed like Bukkit/Forge/Sponge. -As Minestom is a Java library, it must be loaded the same way any other Java library may be loaded. -This means you need to add Minestom as a dependency, add your code and compile by yourself. +For details how you can contribute to the project please read our [Contributing](CONTRIBUTING.md). -Minestom is available on [Maven Central](https://mvnrepository.com/artifact/net.minestom/minestom-snapshots), -and can be installed like the following (Gradle/Groovy): +## Usage of Jitpack: -```groovy -repositories { - mavenCentral() - maven { url 'https://jitpack.io' } -} +Some of the project's dependencies are only available in the Jitpack repository. +To ensure a seamless experience, kindly include this repository in your project configuration to prevent any potential issues. -dependencies { - implementation 'net.minestom:minestom-snapshots:' -} +```kt +maven("https://jitpack.io") ``` -# Usage -An example of how to use the Minestom library is available [here](/demo). -Alternatively you can check the official [wiki](https://wiki.minestom.net/) or the [javadocs](https://minestom.github.io/Minestom/). - -# Why Minestom? -Minecraft has evolved a lot since its release, most of the servers today do not take advantage of vanilla features and even have to struggle because of them. -Our target audience is those who want to make a server that benefits little from vanilla features. e.g. creative, kitpvp. -The goal is to offer more performance for those who need it. -In other words, it makes sense to use Minestom when it takes less time to implement every missing vanilla feature you want than removing every vanilla feature that will slow you down. - -# Advantages and Disadvantages -Minestom isn't perfect, our choices make it much better for some cases, worse for some others. -## Advantages -* Remove the overhead of vanilla features -* Multi-threaded -* Instance system (Collections of blocks and entities) which is much more scalable than worlds -* Open-source -* Modern API -* No more legacy NMS +## Usage of microtus +Since 23.07.2023 we are now official on the maven central for releases and snapshots. +To use Microtus in your projects you need: +
+ Snapshot -## Disadvantages -* Does not work with Bukkit/Forge/Sponge plugins or mods -* Does not work with older clients (using a proxy with ViaBackwards is possible) -* Bad for those who want a vanilla experience -* Longer to develop something playable -* Multi-threaded environments need extra consideration +Please replace the `` with the right one. You can find the versions here: [Central](https://central.sonatype.com/search?q=microtus) +For example: `1.1.0-SNAPSHOT+9284d26` -# API -Even if we do not include anything by default in the game, we simplify the way you add them, here is a preview. - -## Instances -It is our major concept, worlds are great for survival with friends, but when it scales up it can become unmanageable. The best examples can be found in Skyblock or minigames, not being able to separate each part properly and being forced to save everything in files, not to say the overhead caused by unnecessary data contained in them. Instances are a lightweight solution to it, being able to have every chunk in memory only, copying and sending it to another player in no time, with custom serialization and much more... - -Being able to create instances directly on the go is a must-have, we believe it can push many more projects forward. +### Repositories Section +```kt +repositories { + mavenCentral() + maven("https://oss.sonatype.org/content/repositories/snapshots") +} +``` -Instances also come with performance benefits, unlike some others which will be fully single-threaded or maybe using one thread per world we are using a set number of threads (pool) to manage all chunks independently from instances, meaning using more CPU power. +### Dependency Section +```kt +dependencies { + implementation("net.onelitefeather.microtus:Minestom:1.3.2-SNAPSHOT") + testImplementation("net.onelitefeather.microtus.testing:testing:1.3.2-SNAPSHOT") +} +``` +
-## Blocks -Minestom by default does not know what is a chest, you will have to tell him that it opens an inventory. -Every "special blocks" (which aren't only visual) need a specialized handler. After applying this handler, you have a block that can be placed anywhere simply. -However, all blocks are visually there, they just won't have interaction by default. +
+ Release -## Entities -The terms "passive" or "aggressive" monsters do not exist, nobody stops you from making a flying chicken rushing into any players coming too close, doing so with NMS is a real mess because of obfuscation and the large inheritance. +Please replace the `` with the right one. You can find the versions here: [Central](https://central.sonatype.com/search?q=microtus) +For example: `1.1.0` +### Dependency Section +```kt +dependencies { + implementation("net.onelitefeather.microtus:Microtus:1.4.1") + testImplementation("net.onelitefeather.microtus.testing:testing:1.4.1") +} +``` +
+ +## Extension usage +### settings.gradle.kts +Read more about here: https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-gradle-registry +```kt +pluginManagement { + repositories { + gradlePluginPortal() + maven("https://maven.pkg.github.com/OneLiteFeatherNET/Microtus") { + credentials { + username = "Your username" + password = "your github token" + } + } + } +} +``` -## Inventories -It is a field where Minecraft evolved a lot, inventories are now used a lot as client<->server interface with clickable items and callback, we support these interactions natively without the need of programming your solution. +### build.gradle.kts +```kt +plugins { + id("net.onelitefeather.microtus.extension") version "0.0.1" +} -## Commands -Commands are the simplest way of communication between clients and server. Since 1.13 Minecraft has incorporated a new library denominated "Brigadier", we then integrated an API designed to use the full potential of args types. +dependencies { + extensionLibrary("com.fasterxml.jackson.module:jackson-module-kotlin:2.15.2") // Use the external dependencies function from minestom +} +extension { + authors = listOf("TheMeinerLP") + entrypoint = "net.onelitefeather.microtus.extension.ProjectEntry" + // dependencies = listOf("LuckPerms") // To generate dependencies + // version = "1.0.0" // Normally its use the project version + // name = "Example" // Normally its use the project name + // External dependencies are handled via `extensionLibrary("String")` from gradle +} +``` -# Credits -* The [contributors](https://github.com/Minestom/Minestom/graphs/contributors) of the project -* [The Minecraft Coalition](https://wiki.vg/) and [`#mcdevs`](https://github.com/mcdevs) - - protocol and file formats research. -* [The Minecraft Wiki](https://minecraft.wiki) for all their useful info -* [JProfiler](https://www.ej-technologies.com/products/jprofiler/overview.html) for their amazing Java profiler +--- -# Contributing -See [the contributing file](CONTRIBUTING.md)! -All WIP features are previewed as Draft PRs +[![YourKit-Logo](https://www.yourkit.com/images/yklogo.png)](https://www.yourkit.com/) -# License -This project is licensed under the [Apache License Version 2.0](../LICENSE). +[YourKit](https://www.yourkit.com/), makers of the outstanding java profiler, support open source projects of all kinds with their full featured [Java](https://www.yourkit.com/java/profiler) and [.NET](https://www.yourkit.com/.net/profiler) application profilers. We thank them for granting Microtus an OSS license so that we can make our software the best it can be. diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000000..cb16465d000 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,53 @@ + + +## Proposed changes + +Describe the big picture of your changes here to communicate to the maintainers why we should accept this pull request. +If it fixes a bug or resolves a feature request, be sure to link to that issue. + +## Types of changes + +What types of changes does your code introduce to this project? +_Put an `x` in the boxes that apply_ + +- [ ] Bugfix (non-breaking change which fixes an issue) +- [ ] New feature (non-breaking change which adds functionality) +- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) +- [ ] Documentation Update (if none of the other choices apply) + +## Checklist + +_Put an `x` in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of +them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before +merging your code._ + +- [ ] I have read the CONTRIBUTING.md +- [ ] I have added tests that prove my fix is effective or that my feature works +- [ ] I have added necessary documentation (if appropriate) + +## Further comments + +If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you +did and what alternatives you considered, etc... \ No newline at end of file diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml new file mode 100644 index 00000000000..0d0b1c994dd --- /dev/null +++ b/.github/release-drafter.yml @@ -0,0 +1 @@ +_extends: .github diff --git a/.github/renovate.json b/.github/renovate.json new file mode 100644 index 00000000000..d6f400829b8 --- /dev/null +++ b/.github/renovate.json @@ -0,0 +1,25 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "config:base", + ":semanticCommitsDisabled" + ], + "regexManagers": [ + { + "fileMatch": ["README.md"], + "matchStrings": ["implementation\\(\"net.onelitefeather.microtus:Minestom:(?.*?)\\\""], + "depNameTemplate": "net.onelitefeather.microtus:Minestom", + "datasourceTemplate": "maven" + }, + { + "fileMatch": ["README.md"], + "matchStrings": ["testImplementation\\(\"net.onelitefeather.microtus.testing:testing:(?.*?)\\\""], + "depNameTemplate": "net.onelitefeather.microtus:Minestom", + "datasourceTemplate": "maven" + } + ], + "ignoreDeps": [], + "labels": ["Renovate"], + "rebaseWhen": "conflicted", + "schedule": ["on the first day of the month"] +} \ No newline at end of file diff --git a/.github/stale.yml b/.github/stale.yml new file mode 100644 index 00000000000..547a79755d9 --- /dev/null +++ b/.github/stale.yml @@ -0,0 +1,18 @@ +daysUntilStale: 30 +daysUntilClose: 7 +only: issues +exemptLabels: + - "Bug" + - "Enhancement" + - "Approved" + - "Priority" + - "Under investigation" +staleLabel: "resolution: stale" +markComment: > + This issue has been automatically marked as stale because it has not had + recent activity. It will be closed if no further activity occurs. If the issue is still present and can be reproduced, please let the team know. + Thank you for your contributions. +closeComment: > + This issue has been automatically closed because it has not had activity in + a long time. If the issue still applies to the most recent supported + version, please reply to this issue and the team will reopen it. \ No newline at end of file diff --git a/.github/workflows/build-pr.yml b/.github/workflows/build-pr.yml new file mode 100644 index 00000000000..4c4917f8df3 --- /dev/null +++ b/.github/workflows/build-pr.yml @@ -0,0 +1,24 @@ +name: Build PR +on: [pull_request] +jobs: + build_pr: + if: github.repository_owner == 'OneLiteFeatherNET' + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + - name: Validate Gradle Wrapper + uses: gradle/wrapper-validation-action@v3 + - name: Setup Java + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 21 + - name: Build on ${{ matrix.os }} + run: | + git config --global user.email "no-reply@github.com" + git config --global user.name "Github Actions" + ./gradlew classes \ No newline at end of file diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000000..4e902ffb576 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,49 @@ +name: Build +on: + push: + branches: + - master +jobs: + build: + # Run on all label events (won't be duplicated) or all push events or on PR syncs not from the same repo + if: github.repository_owner == 'OneLiteFeatherNET' + runs-on: ubuntu-latest + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + - name: Validate Gradle Wrapper + uses: gradle/wrapper-validation-action@v3 + - name: Setup Java + uses: actions/setup-java@v4 + with: + distribution: temurin + cache: gradle + java-version: 21 + - uses: actions/cache@v4 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + - name: Clean Build + run: | + git config --global user.email "no-reply@github.com" + git config --global user.name "Github Actions" + ./gradlew jar + - name: Publish to Central via Build + run: | + ./gradlew publishToSonatype :testing:publishToSonatype closeAndReleaseSonatypeStagingRepository -PforceSign=true + env: + SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} + SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} + GPG_PRIVATE_KEY: ${{ secrets.ONELITEFEATHER_GPG_KEY }} + GPG_PASSPHRASE: ${{ secrets.ONELITEFEATHER_GPG_PASSWORD }} + ORG_GRADLE_PROJECT_sonatypeUsername: "${{ secrets.SONATYPE_USERNAME }}" + ORG_GRADLE_PROJECT_sonatypePassword: "${{ secrets.SONATYPE_PASSWORD }}" + ORG_GRADLE_PROJECT_onelitefeatherSigningKey: "${{ secrets.ONELITEFEATHER_GPG_KEY }}" + ORG_GRADLE_PROJECT_onelitefeatherSigningPassword: "${{ secrets.ONELITEFEATHER_GPG_PASSWORD }}" + ORG_GRADLE_PROJECT_signingKey: "${{ secrets.ONELITEFEATHER_GPG_KEY }}" + ORG_GRADLE_PROJECT_signingPassword: "${{ secrets.ONELITEFEATHER_GPG_PASSWORD }}" + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/close_invalid_prs.yml b/.github/workflows/close_invalid_prs.yml index 44c763b6d0b..03b5e823ddb 100644 --- a/.github/workflows/close_invalid_prs.yml +++ b/.github/workflows/close_invalid_prs.yml @@ -1,4 +1,3 @@ -# Thanks paper: https://github.com/papermc/paper/blob/master/.github/workflows/close_invalid_prs.yml name: Close invalid PRs on: @@ -7,22 +6,9 @@ on: jobs: run: - if: | - github.repository != github.event.pull_request.head.repo.full_name && - ( - github.head_ref == 'master' || - github.event.pull_request.head.repo.owner.type != 'User' - ) + if: ${{ github.repository != github.event.pull_request.head.repo.full_name && github.head_ref == 'master' }} runs-on: ubuntu-latest steps: - uses: superbrothers/close-pull-request@v3 - id: "master_branch" - if: github.head_ref == 'master' with: - comment: "Please do not open pull requests from the `master` branch, create a new branch instead." - - - uses: superbrothers/close-pull-request@v3 - id: "org_account" - if: github.event.pull_request.head.repo.owner.type != 'User' && steps.master_branch.outcome == 'skipped' - with: - comment: "Please do not open pull requests from non-user accounts like organisations. Create a fork on a user account instead." + comment: "Please do not open pull requests from the `develop` branch, create a new branch instead." \ No newline at end of file diff --git a/.github/workflows/javadoc.yml b/.github/workflows/javadoc.yml index 92d41fb983a..8b632d3d179 100644 --- a/.github/workflows/javadoc.yml +++ b/.github/workflows/javadoc.yml @@ -10,15 +10,20 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - name: Set up JDK 21 - uses: actions/setup-java@v1 + - uses: actions/checkout@v4 + - name: Set up JDK + uses: actions/setup-java@v4 with: + distribution: temurin + cache: gradle java-version: 21 - name: Grant execute permission for gradlew run: chmod +x gradlew - name: Build javadoc - run: ./gradlew javadoc + run: | + git config --global user.email "no-reply@github.com" + git config --global user.name "Github Actions" + ./gradlew javadoc - name: Deploy javadoc to its assigned branch uses: s0/git-publish-subdir-action@develop @@ -26,5 +31,4 @@ jobs: REPO: self BRANCH: javadoc FOLDER: build/docs/javadoc - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - CLEAR_GLOBS_FILE: ".github/javadoc-publish-clear" \ No newline at end of file + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml deleted file mode 100644 index 851212ef419..00000000000 --- a/.github/workflows/pr.yml +++ /dev/null @@ -1,59 +0,0 @@ -name: Build and test Minestom - -on: - pull_request: - branches: [ master ] - -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 21 - uses: actions/setup-java@v2 - with: - distribution: 'zulu' - java-version: 21 - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - name: Setup gradle cache - uses: burrunan/gradle-cache-action@v1 - with: - save-generated-gradle-jars: false - save-local-build-cache: false - save-gradle-dependencies-cache: true - save-maven-dependencies-cache: true - # Ignore some of the paths when caching Maven Local repository - maven-local-ignore-paths: | - net/minestom/ - - name: Build Minestom - run: ./gradlew classes testClasses - - name: Run Minestom tests - run: ./gradlew test - publish: - runs-on: ubuntu-latest - if: github.event.pull_request.head.repo.full_name == github.repository - env: - SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} - SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} - GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} - GPG_PASSPHRASE: ${{ secrets.GPG_PASSWORD }} - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 21 - uses: actions/setup-java@v2 - with: - java-version: '21' - distribution: 'temurin' - - name: Set outputs - id: vars - run: | - export ACTUAL=${{ github.event.pull_request.head.sha }} - echo "short_commit_hash=${ACTUAL::10}" >> $GITHUB_OUTPUT - - name: Publish to Sonatype - env: - MINESTOM_VERSION: ${{ github.head_ref }}-${{ steps.vars.outputs.short_commit_hash }} - MINESTOM_CHANNEL: snapshot - run: | - ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository - echo "Version: ${SHORT_COMMIT_HASH}" >> $GITHUB_STEP_SUMMARY diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml new file mode 100644 index 00000000000..9410396588b --- /dev/null +++ b/.github/workflows/release-drafter.yml @@ -0,0 +1,22 @@ +name: draft release +on: + push: + branches: + - master + pull_request: + types: [opened, reopened, synchronize] + pull_request_target: + types: [opened, reopened, synchronize] +permissions: + contents: read +jobs: + update_release_draft: + permissions: + contents: write + pull-requests: write + if: ${{ github.event_name != 'pull_request' || github.repository != github.event.pull_request.head.repo.full_name }} + runs-on: ubuntu-latest + steps: + - uses: release-drafter/release-drafter@v6 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000000..ec1ef71cc2d --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,50 @@ +name: Build +on: + push: + tags: + - '*' +jobs: + build: + # Run on all label events (won't be duplicated) or all push events or on PR syncs not from the same repo + if: github.repository_owner == 'OneLiteFeatherNET' + runs-on: ubuntu-latest + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + - name: Validate Gradle Wrapper + uses: gradle/wrapper-validation-action@v3 + - name: Setup Java + uses: actions/setup-java@v4 + with: + distribution: temurin + cache: gradle + java-version: 21 + - uses: actions/cache@v4 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + - name: Clean Build + run: | + git config --global user.email "no-reply@github.com" + git config --global user.name "Github Actions" + ./gradlew jar + - name: Publish to Central via Tag + run: | + ./gradlew publishToSonatype :testing:publishToSonatype closeAndReleaseSonatypeStagingRepository -PforceSign=true + env: + TAG_VERSION: ${{ github.ref_name }} + SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} + SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} + GPG_PRIVATE_KEY: ${{ secrets.ONELITEFEATHER_GPG_KEY }} + GPG_PASSPHRASE: ${{ secrets.ONELITEFEATHER_GPG_PASSWORD }} + ORG_GRADLE_PROJECT_sonatypeUsername: "${{ secrets.SONATYPE_USERNAME }}" + ORG_GRADLE_PROJECT_sonatypePassword: "${{ secrets.SONATYPE_PASSWORD }}" + ORG_GRADLE_PROJECT_onelitefeatherSigningKey: "${{ secrets.ONELITEFEATHER_GPG_KEY }}" + ORG_GRADLE_PROJECT_onelitefeatherSigningPassword: "${{ secrets.ONELITEFEATHER_GPG_PASSWORD }}" + ORG_GRADLE_PROJECT_signingKey: "${{ secrets.ONELITEFEATHER_GPG_KEY }}" + ORG_GRADLE_PROJECT_signingPassword: "${{ secrets.ONELITEFEATHER_GPG_PASSWORD }}" + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/snapshot-deploy.yaml b/.github/workflows/snapshot-deploy.yaml deleted file mode 100644 index cf032b8dab5..00000000000 --- a/.github/workflows/snapshot-deploy.yaml +++ /dev/null @@ -1,32 +0,0 @@ -name: Gradle Publish to Maven Central - -on: - push: - branches: [ master ] - -jobs: - build: - runs-on: ubuntu-latest - env: - SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} - SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} - GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} - GPG_PASSPHRASE: ${{ secrets.GPG_PASSWORD }} - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 21 - uses: actions/setup-java@v2 - with: - java-version: '21' - distribution: 'temurin' - - name: Set outputs - id: vars - run: | - echo "short_commit_hash=${GITHUB_SHA::10}" >> $GITHUB_OUTPUT - - name: Publish to Sonatype - env: - MINESTOM_VERSION: ${{ steps.vars.outputs.short_commit_hash }} - MINESTOM_CHANNEL: release - run: | - ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository - echo "Version: ${SHORT_COMMIT_HASH}" >> $GITHUB_STEP_SUMMARY diff --git a/.github/workflows/trigger-jitpack-build.yml b/.github/workflows/trigger-jitpack-build.yml deleted file mode 100644 index 8366c4f6fd6..00000000000 --- a/.github/workflows/trigger-jitpack-build.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: Trigger Jitpack Build -on: - push: - branches: [ master ] - - workflow_dispatch: -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: Trigger Jitpack Build - run: curl "https://jitpack.io/com/github/Minestom/Minestom/${GITHUB_SHA:0:10}/build.log" diff --git a/.gitignore b/.gitignore index ac58d12e5d0..5a7e565c2f9 100644 --- a/.gitignore +++ b/.gitignore @@ -60,3 +60,4 @@ gradle-app.setting # When saving the world in the demo we generate the world folder # Incase people are using IntelliJ to run the server, this will exclude the world folder. /demo/world +.bstats \ No newline at end of file diff --git a/CNAME b/CNAME new file mode 100644 index 00000000000..47835348cb4 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +microtus.onelitefeather.dev \ No newline at end of file diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 261eeb9e9f8..00000000000 --- a/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 00000000000..b9a592b9567 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,19 @@ +Microtus inherits its licensing from upstream projects. + +As such, Microtus is licensed under the +[Apache 2.0](licenses/apache_2_0.md); as it inherits it from Minestom. + +Any author who is _not_ listed below should be presumed to have released their work +under the original [Apache 2.0](licenses/apache_2_0.md) license. + +In the interest of promoting a better Minecraft platform for everyone, contributors +may choose to release their code under the more permissive [MIT License](licenses/MIT.md). + +The authors listed below have chosen to release their code under that more permissive +[MIT License](licenses/MIT.md). Any contributor who wants their name added below +should submit a pull request to this project to add their name. + +```text +Phillipp Glanz +Steffen Wonning +``` \ No newline at end of file diff --git a/bom/build.gradle.kts b/bom/build.gradle.kts new file mode 100644 index 00000000000..c087880974a --- /dev/null +++ b/bom/build.gradle.kts @@ -0,0 +1,126 @@ +plugins { + `java-platform` + `maven-publish` + signing +} + +group = "net.onelitefeather.microtus" + +repositories { + maven("https://s01.oss.sonatype.org/content/repositories/snapshots") + mavenCentral() + maven(url = "https://jitpack.io") +} +dependencies { + constraints { + api(project(":testing")) + api(rootProject) + + // Logging + api(libs.bundles.logging) + // Libraries required for the terminal + api(libs.bundles.terminal) + + // Performance improving libraries + api(libs.caffeine) + api(libs.fastutil) + api(libs.bundles.flare) + + // Libraries + api(libs.gson) + api(libs.jcTools) + // Path finding + api(libs.hydrazine) + + // Adventure, for user-interface + api(libs.bundles.adventure) + + // Kotlin Libraries + api(libs.bundles.kotlin) + + api(libs.maven.resolver) + api(libs.maven.connector) + api(libs.maven.transport.http) + + // Minestom Data (From MinestomDataGenerator) + api(libs.minestomData) + + // NBT parsing/manipulation/saving + api("io.github.jglrxavpok.hephaistos:common:${libs.versions.hephaistos.get()}") + api("io.github.jglrxavpok.hephaistos:gson:${libs.versions.hephaistos.get()}") + + // BStats + api(libs.bstats.base) + } +} +javaPlatform { + allowDependencies() +} + +signing { + if (!project.hasProperty("skip.signing") && !version.toString().endsWith("-SNAPSHOT")) { + val signingKey: String? by project + val signingPassword: String? by project + useInMemoryPgpKeys(signingKey, signingPassword) + signing.isRequired + sign(publishing.publications) + } +} +publishing { + publications { + repositories { + maven { + name = "sonatype" + url = uri(if (version.toString().endsWith("SNAPSHOT")) { + "https://s01.oss.sonatype.org/content/repositories/snapshots/" + } else { + "https://s01.oss.sonatype.org/service/local/" + }) + + credentials { + username = project.findProperty("sonatypeUsername") as String? ?: "" + password = project.findProperty("sonatypePassword") as String? ?: "" + } + } + } + create("maven") { + from(components["javaPlatform"]) + pom { + name.set(project.name) + description.set("Bill of materials for Microtus projects.") + url.set("https://github.com/OneLiteFeatherNET/microtus") + + licenses { + license { + name.set("The MIT License") + url.set("https://opensource.org/licenses/MIT") + distribution.set("repo") + } + } + developers { + developer { + id.set("themeinerlp") + name.set("Phillipp Glanz") + email.set("p.glanz@madfix.me") + } + developer { + id.set("theEvilReaper") + name.set("Steffen Wonning") + email.set("steffenwx@gmail.com") + } + } + scm { + url.set("https://github.com/OneLiteFeatherNET/microtus") + connection.set("scm:git:https://github.com/OneLiteFeatherNET/microtus.git") + developerConnection.set("scm:git:git@github.com:OneLiteFeatherNET/microtus.git") + tag.set("${project.version}") + } + + issueManagement{ + system.set("GitHub") + url.set("https://github.com/OneLiteFeatherNET/microtus/issues") + } + } + } + } +} \ No newline at end of file diff --git a/build-logic/build.gradle.kts b/build-logic/build.gradle.kts new file mode 100644 index 00000000000..432eafa33eb --- /dev/null +++ b/build-logic/build.gradle.kts @@ -0,0 +1,18 @@ +plugins { + `kotlin-dsl` +} + +repositories { + mavenCentral() + gradlePluginPortal() +} + +dependencies { + val indraVersion = "3.1.3" + implementation("org.jetbrains.kotlin", "kotlin-gradle-plugin", "2.0.0") + implementation("net.kyori", "indra-common", indraVersion) + implementation("net.kyori", "indra-common", indraVersion) + implementation("net.kyori", "indra-publishing-sonatype", indraVersion) + implementation("org.graalvm.buildtools", "native-gradle-plugin", "0.9.28") + implementation("io.github.gradle-nexus", "publish-plugin", "2.0.0-rc-1") +} \ No newline at end of file diff --git a/build-logic/src/main/kotlin/minestom.common-conventions.gradle.kts b/build-logic/src/main/kotlin/minestom.common-conventions.gradle.kts new file mode 100644 index 00000000000..6c56062ffab --- /dev/null +++ b/build-logic/src/main/kotlin/minestom.common-conventions.gradle.kts @@ -0,0 +1,28 @@ +plugins { + java +} + +// Always exclude checker-qual. This is the single most annoying thing that always reappears. +configurations.all { + // We only use Jetbrains Annotations + exclude("org.checkerframework", "checker-qual") +} + +java { + toolchain { + languageVersion.set(JavaLanguageVersion.of(21)) + } +} + +tasks { + withType { + // We are fully aware, that we should be suppressing these instead of ignoring them here, but man keep my terminal clean. + options.compilerArgs.addAll(listOf("-Xlint:none", "-Xlint:-deprecation", "-Xlint:-unchecked")) + } + withType { + useJUnitPlatform() + // Viewable packets make tracking harder. Could be re-enabled later. + jvmArgs("-Dminestom.viewable-packet=false") + jvmArgs("-Dminestom.inside-test=true") + } +} \ No newline at end of file diff --git a/build-logic/src/main/kotlin/minestom.native-conventions.gradle.kts b/build-logic/src/main/kotlin/minestom.native-conventions.gradle.kts new file mode 100644 index 00000000000..4a873e818bb --- /dev/null +++ b/build-logic/src/main/kotlin/minestom.native-conventions.gradle.kts @@ -0,0 +1,14 @@ +plugins { + id("minestom.common-conventions") + id("org.graalvm.buildtools.native") +} + +graalvmNative { + binaries { + named("main") { + buildArgs.add("--allow-incomplete-classpath") + // One day toolchains will support getting this automagically, but that day is not today. + toolchainDetection.set(false) + } + } +} \ No newline at end of file diff --git a/build-logic/src/main/kotlin/minestom.publishing-conventions.gradle.kts b/build-logic/src/main/kotlin/minestom.publishing-conventions.gradle.kts new file mode 100644 index 00000000000..305dd158be3 --- /dev/null +++ b/build-logic/src/main/kotlin/minestom.publishing-conventions.gradle.kts @@ -0,0 +1,40 @@ +plugins { + id("net.kyori.indra") + id("net.kyori.indra.publishing") + id("net.kyori.indra.publishing.sonatype") + id("io.github.gradle-nexus.publish-plugin") +} + +indra { + javaVersions { + target(21) + testWith(21) + } + + github("OneLiteFeatherNET", "Microtus") { + ci(true) + publishing(false) + } + mitLicense() + signWithKeyFromPrefixedProperties("onelitefeather") + configurePublications { + pom { + developers { + developer { + id.set("themeinerlp") + name.set("Phillipp Glanz") + email.set("p.glanz@madfix.me") + } + developer { + id.set("theEvilReaper") + name.set("Steffen Wonning") + email.set("steffenwx@gmail.com") + } + } + } + } +} + +indraSonatype { + useAlternateSonatypeOSSHost("s01") +} \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index b9b55a567d6..d5742adfa18 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,48 +1,70 @@ -import java.time.Duration +import java.util.* plugins { `java-library` + id("minestom.publishing-conventions") + id("minestom.native-conventions") alias(libs.plugins.blossom) - - `maven-publish` signing - alias(libs.plugins.nexuspublish) } -// Read env vars (used for publishing generally) -version = System.getenv("MINESTOM_VERSION") ?: "dev" -val channel = System.getenv("MINESTOM_CHANNEL") ?: "local" // local, snapshot, release +group = "net.onelitefeather.microtus" -val shortDescription = "1.21 Lightweight Minecraft server" +version = System.getenv("TAG_VERSION") ?: "1.4.3-SNAPSHOT" allprojects { - apply(plugin = "java") - - group = "net.minestom" + group = "net.onelitefeather.microtus" version = rootProject.version - description = shortDescription - - repositories { - mavenCentral() - } + description = "Lightweight and multi-threaded Minecraft server implementation" +} - configurations.all { - // We only use Jetbrains Annotations - exclude("org.checkerframework", "checker-qual") +sourceSets { + main { + java { + srcDir(file("src/autogenerated/java")) + } + blossom { + javaSources { + val gitCommit = System.getenv("GIT_COMMIT") + val gitBranch = System.getenv("GIT_BRANCH") + val group = System.getenv("GROUP") + val artifact = System.getenv("ARTIFACT") + property("\"&COMMIT\"", if (gitCommit == null) "null" else "\"${gitCommit}\"") + property("\"&BRANCH\"", if (gitBranch == null) "null" else "\"${gitBranch}\"") + property("\"&GROUP\"", if (group == null) "null" else "\"${group}\"") + property("\"&ARTIFACT\"", if (artifact == null) "null" else "\"${artifact}\"") + } + } } +} - java { - withSourcesJar() - withJavadocJar() +java { + withJavadocJar() + withSourcesJar() +} - toolchain.languageVersion = JavaLanguageVersion.of(21) +tasks { + jar { + manifest { + attributes("Automatic-Module-Name" to "net.minestom.server") + } } + withType { + (options as? StandardJavadocDocletOptions)?.apply { + encoding = "UTF-8" - tasks.withType { + // Custom options + addBooleanOption("html5", true) + addStringOption("-release", "21") + // Links to external javadocs + links("https://docs.oracle.com/en/java/javase/21/docs/api/") + links("https://jd.adventure.kyori.net/api/${libs.versions.adventure.get()}/") + } + } + withType { duplicatesStrategy = DuplicatesStrategy.EXCLUDE } - - tasks.withType { + withType { useJUnitPlatform() // Viewable packets make tracking harder. Could be re-enabled later. @@ -52,16 +74,7 @@ allprojects { maxHeapSize = "1024m" } - tasks.withType { - options.encoding = "UTF-8" - } -} -sourceSets { - main { - java.srcDir(file("src/main/java")) - java.srcDir(file("src/autogenerated/java")) - } } dependencies { @@ -71,128 +84,31 @@ dependencies { api(libs.bundles.adventure) implementation(libs.minestomData) - // Performance/data structures + // Logging + implementation(libs.bundles.logging) + // Libraries required for the terminal + implementation(libs.bundles.terminal) + + // Performance improving libraries implementation(libs.caffeine) api(libs.fastutil) implementation(libs.bundles.flare) + // BStats + api(libs.bstats.base) + // Maven + api(libs.maven.resolver) + api(libs.maven.connector) + api(libs.maven.transport.http) + + // Libraries api(libs.gson) implementation(libs.jcTools) // Testing testImplementation(libs.bundles.junit) testImplementation(project(":testing")) + // Only here to ensure J9 module support for extensions and our classloaders + testCompileOnly(libs.mockito.core) } -tasks { - jar { - manifest { - attributes("Automatic-Module-Name" to "net.minestom.server") - } - } - withType { - (options as? StandardJavadocDocletOptions)?.apply { - encoding = "UTF-8" - - // Custom options - addBooleanOption("html5", true) - addStringOption("-release", "21") - // Links to external javadocs - links("https://docs.oracle.com/en/java/javase/21/docs/api/") - links("https://jd.advntr.dev/api/${libs.versions.adventure.get()}/") - } - } - - blossom { - val gitFile = "src/main/java/net/minestom/server/Git.java" - val gitCommit = System.getenv("GIT_COMMIT") - val gitBranch = System.getenv("GIT_BRANCH") - val group = System.getenv("GROUP") - val artifact = System.getenv("ARTIFACT") - - replaceToken("\"&COMMIT\"", if (gitCommit == null) "null" else "\"${gitCommit}\"", gitFile) - replaceToken("\"&BRANCH\"", if (gitBranch == null) "null" else "\"${gitBranch}\"", gitFile) - replaceToken("\"&GROUP\"", if (group == null) "null" else "\"${group}\"", gitFile) - replaceToken("\"&ARTIFACT\"", if (artifact == null) "null" else "\"${artifact}\"", gitFile) - } - - nexusPublishing{ - useStaging.set(true) - this.packageGroup.set("net.minestom") - - transitionCheckOptions { - maxRetries.set(360) // 1 hour - delayBetween.set(Duration.ofSeconds(10)) - } - - repositories.sonatype { - nexusUrl.set(uri("https://s01.oss.sonatype.org/service/local/")) - snapshotRepositoryUrl.set(uri("https://s01.oss.sonatype.org/content/repositories/snapshots/")) - - if (System.getenv("SONATYPE_USERNAME") != null) { - username.set(System.getenv("SONATYPE_USERNAME")) - password.set(System.getenv("SONATYPE_PASSWORD")) - } - } - } - - publishing.publications.create("maven") { - groupId = "net.minestom" - // todo: decide on publishing scheme - artifactId = if (channel == "snapshot") "minestom-snapshots" else "minestom-snapshots" - version = project.version.toString() - - from(project.components["java"]) - - pom { - name.set(this@create.artifactId) - description.set(shortDescription) - url.set("https://github.com/minestom/minestom") - - licenses { - license { - name.set("Apache 2.0") - url.set("https://github.com/minestom/minestom/blob/main/LICENSE") - } - } - - developers { - developer { - id.set("TheMode") - } - developer { - id.set("mworzala") - name.set("Matt Worzala") - email.set("matt@hollowcube.dev") - } - } - - issueManagement { - system.set("GitHub") - url.set("https://github.com/minestom/minestom/issues") - } - - scm { - connection.set("scm:git:git://github.com/minestom/minestom.git") - developerConnection.set("scm:git:git@github.com:minestom/minestom.git") - url.set("https://github.com/minestom/minestom") - tag.set("HEAD") - } - - ciManagement { - system.set("Github Actions") - url.set("https://github.com/minestom/minestom/actions") - } - } - } - - signing { - isRequired = System.getenv("CI") != null - - val privateKey = System.getenv("GPG_PRIVATE_KEY") - val keyPassphrase = System.getenv()["GPG_PASSPHRASE"] - useInMemoryPgpKeys(privateKey, keyPassphrase) - - sign(publishing.publications) - } -} diff --git a/code-generators/build.gradle.kts b/code-generators/build.gradle.kts index 0ef2929b748..d403cfbbadb 100644 --- a/code-generators/build.gradle.kts +++ b/code-generators/build.gradle.kts @@ -2,6 +2,11 @@ plugins { application } +repositories { + mavenLocal() + mavenCentral() +} + dependencies { // Provides the input JSON to generate from implementation(libs.minestomData) diff --git a/code-generators/src/main/java/net/minestom/codegen/CodeExporter.java b/code-generators/src/main/java/net/minestom/codegen/CodeExporter.java new file mode 100644 index 00000000000..8fe779599d5 --- /dev/null +++ b/code-generators/src/main/java/net/minestom/codegen/CodeExporter.java @@ -0,0 +1,46 @@ +package net.minestom.codegen; + +import com.squareup.javapoet.JavaFile; +import org.jetbrains.annotations.NotNull; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.File; +import java.io.IOException; +import java.util.List; + +/** + * The class contains method which allows to write {@link JavaFile} to a given folder which is given as {@link java.nio.file.Path} reference. + * This class exists to reduce the amount of code duplication in the code generators. + * @version 1.0.0 + * @since 1.1.4 + */ +public interface CodeExporter { + + Logger LOGGER = LoggerFactory.getLogger(CodeExporter.class); + + /** + * Write a list of {@link JavaFile} objects to a given folder. + * @param fileList the list of files to write + * @param outputFolder the folder to write to + */ + default void writeFiles(@NotNull List fileList, File outputFolder) { + if (fileList.isEmpty()) return; + for (JavaFile javaFile : fileList) { + writeFile(javaFile, outputFolder); + } + } + + /** + * Write a single {@link JavaFile} to a given folder. + * @param javaFile the file to write + * @param outputFolder the folder to write to + */ + default void writeFile(@NotNull JavaFile javaFile, @NotNull File outputFolder) { + try { + javaFile.writeTo(outputFolder); + } catch (IOException e) { + LOGGER.error("An error occurred while writing source code to the file system.", e); + } + } +} diff --git a/code-generators/src/main/java/net/minestom/codegen/MinestomCodeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/MinestomCodeGenerator.java index a56248de382..63b26f97d26 100644 --- a/code-generators/src/main/java/net/minestom/codegen/MinestomCodeGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/MinestomCodeGenerator.java @@ -2,30 +2,46 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.squareup.javapoet.JavaFile; +import com.squareup.javapoet.ClassName; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import java.io.File; -import java.io.IOException; -import java.util.List; +import javax.lang.model.element.Modifier; import java.util.Locale; +import java.util.Map; -public abstract class MinestomCodeGenerator { - private static final Logger LOGGER = LoggerFactory.getLogger(MinestomCodeGenerator.class); +@ApiStatus.Internal +public abstract class MinestomCodeGenerator implements CodeExporter { + public static final ClassName NAMESPACE_ID_CLASS = + ClassName.get("net.minestom.server.utils", "NamespaceID"); protected static final Gson GSON = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create(); + protected static final ClassName REGISTRY_CLASS = + ClassName.get("net.minestom.server.registry", "Registries"); + protected static final ClassName KEYORI_ADVENTURE_KEY = + ClassName.get("net.kyori.adventure.key", "Keyed"); + protected static final Modifier[] CONSTANT_MODIFIERS = {Modifier.PRIVATE, Modifier.STATIC, Modifier.FINAL}; + protected static final Modifier[] PRIVATE_FINAL_MODIFIERS = {Modifier.PRIVATE, Modifier.FINAL}; + protected static final String DEFAULT_INDENT = " "; + + /** + * Creates a new code generator. + */ + protected MinestomCodeGenerator() { + } public abstract void generate(); - protected void writeFiles(@NotNull List fileList, File outputFolder) { - for (JavaFile javaFile : fileList) { - try { - javaFile.writeTo(outputFolder); - } catch (IOException e) { - LOGGER.error("An error occured while writing source code to the file system.", e); - } + protected static @NotNull String extractNamespace(@NotNull String namespace) { + return namespace.replace("minecraft:", "").toUpperCase(Locale.ROOT); + } + + protected static @NotNull String extractNamespaces(@NotNull String namespace, @NotNull Map arguments) { + if (arguments.isEmpty()) return extractNamespace(namespace); + + for (Map.Entry entry : arguments.entrySet()) { + namespace = namespace.replace(entry.getKey(), entry.getValue()); } + return namespace.toUpperCase(Locale.ROOT); } protected static String toConstant(String namespace) { diff --git a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java index 54eaae59378..9309c8ec68d 100644 --- a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java @@ -5,10 +5,12 @@ import com.google.gson.JsonObject; import com.squareup.javapoet.*; import net.minestom.codegen.MinestomCodeGenerator; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import net.minestom.codegen.util.GenerationHelper; import javax.lang.model.element.Modifier; import java.io.File; @@ -16,7 +18,13 @@ import java.io.InputStreamReader; import java.util.List; +import static net.minestom.codegen.util.GenerationHelper.*; + +@ApiStatus.NonExtendable +@ApiStatus.Internal public final class VillagerProfessionGenerator extends MinestomCodeGenerator { + + private static final String VILLAGER_PROFESSION_DATE = "villagerProfessionData"; private static final Logger LOGGER = LoggerFactory.getLogger(VillagerProfessionGenerator.class); private final InputStream villagerProfessionsFile; private final File outputFolder; @@ -39,55 +47,38 @@ public void generate() { return; } // Important classes we use alot - ClassName namespaceIDClassName = ClassName.get("net.minestom.server.utils", "NamespaceID"); ClassName rawVillagerProfessionDataClassName = ClassName.get("net.minestom.server.raw_data", "RawVillagerProfessionData"); - ClassName registryClassName = ClassName.get("net.minestom.server.registry", "Registry"); JsonArray villagerProfessions = GSON.fromJson(new InputStreamReader(villagerProfessionsFile), JsonArray.class); ClassName villagerProfessionClassName = ClassName.get("net.minestom.server.entity.metadata.villager", "VillagerProfession"); // Particle TypeSpec.Builder villagerProfessionClass = TypeSpec.classBuilder(villagerProfessionClassName) - .addSuperinterface(ClassName.get("net.kyori.adventure.key", "Keyed")) + .addSuperinterface(KEYORI_ADVENTURE_KEY) .addModifiers(Modifier.PUBLIC).addJavadoc("AUTOGENERATED by " + getClass().getSimpleName()); villagerProfessionClass.addField( - FieldSpec.builder(namespaceIDClassName, "id") + FieldSpec.builder(NAMESPACE_ID_CLASS, "id") .addModifiers(Modifier.PRIVATE, Modifier.FINAL).addAnnotation(NotNull.class).build() ); villagerProfessionClass.addField( - FieldSpec.builder(rawVillagerProfessionDataClassName, "villagerProfessionData") + FieldSpec.builder(rawVillagerProfessionDataClassName, VILLAGER_PROFESSION_DATE) .addModifiers(Modifier.PRIVATE, Modifier.VOLATILE) .addAnnotation(NotNull.class) .build() ); villagerProfessionClass.addMethod( MethodSpec.constructorBuilder() - .addParameter(ParameterSpec.builder(namespaceIDClassName, "id").addAnnotation(NotNull.class).build()) - .addParameter(ParameterSpec.builder(rawVillagerProfessionDataClassName, "villagerProfessionData").addAnnotation(NotNull.class).build()) - .addStatement("this.id = id") - .addStatement("this.villagerProfessionData = villagerProfessionData") + .addParameter(ParameterSpec.builder(NAMESPACE_ID_CLASS, "id").addAnnotation(NotNull.class).build()) + .addParameter(ParameterSpec.builder(rawVillagerProfessionDataClassName, VILLAGER_PROFESSION_DATE).addAnnotation(NotNull.class).build()) + .addStatement(VARIABLE_SETTER, "id") + .addStatement(VARIABLE_SETTER, VILLAGER_PROFESSION_DATE) .addModifiers(Modifier.PROTECTED) .build() ); // Override key method (adventure) - villagerProfessionClass.addMethod( - MethodSpec.methodBuilder("key") - .returns(ClassName.get("net.kyori.adventure.key", "Key")) - .addAnnotation(Override.class) - .addAnnotation(NotNull.class) - .addStatement("return this.id") - .addModifiers(Modifier.PUBLIC) - .build() - ); + villagerProfessionClass.addMethod(GenerationHelper.ADVENTURE_KEY_METHOD); // getId method - villagerProfessionClass.addMethod( - MethodSpec.methodBuilder("getId") - .returns(namespaceIDClassName) - .addAnnotation(NotNull.class) - .addStatement("return this.id") - .addModifiers(Modifier.PUBLIC) - .build() - ); + villagerProfessionClass.addMethod(GenerationHelper.ID_GETTER); // getVillagerProfessionData method villagerProfessionClass.addMethod( MethodSpec.methodBuilder("getVillagerProfessionData") @@ -100,8 +91,8 @@ public void generate() { // setVillagerProfessionData method villagerProfessionClass.addMethod( MethodSpec.methodBuilder("setVillagerProfessionData") - .addParameter(ParameterSpec.builder(rawVillagerProfessionDataClassName, "villagerProfessionData").addAnnotation(NotNull.class).build()) - .addStatement("this.villagerProfessionData = villagerProfessionData") + .addParameter(ParameterSpec.builder(rawVillagerProfessionDataClassName, VILLAGER_PROFESSION_DATE).addAnnotation(NotNull.class).build()) + .addStatement("this.$L1 = $L1", VILLAGER_PROFESSION_DATE) .addModifiers(Modifier.PUBLIC, Modifier.FINAL) .build() ); @@ -109,7 +100,7 @@ public void generate() { villagerProfessionClass.addMethod( MethodSpec.methodBuilder("getNumericalId") .returns(TypeName.INT) - .addStatement("return $T.VILLAGER_PROFESSION_REGISTRY.getId(this)", registryClassName) + .addStatement("return $T.VILLAGER_PROFESSION_REGISTRY.getId(this)", REGISTRY_CLASS) .addModifiers(Modifier.PUBLIC) .build() ); @@ -119,7 +110,7 @@ public void generate() { .returns(villagerProfessionClassName) .addAnnotation(Nullable.class) .addParameter(TypeName.INT, "id") - .addStatement("return $T.VILLAGER_PROFESSION_REGISTRY.get((short) id)", registryClassName) + .addStatement("return $T.VILLAGER_PROFESSION_REGISTRY.get((short) id)", REGISTRY_CLASS) .addModifiers(Modifier.PUBLIC, Modifier.STATIC) .build() ); @@ -128,28 +119,19 @@ public void generate() { MethodSpec.methodBuilder("fromId") .returns(villagerProfessionClassName) .addAnnotation(NotNull.class) - .addParameter(ClassName.get("net.kyori.adventure.key", "Key"), "id") - .addStatement("return $T.VILLAGER_PROFESSION_REGISTRY.get(id)", registryClassName) + .addParameter(ADVENTURE_KEY, "id") + .addStatement("return $T.VILLAGER_PROFESSION_REGISTRY.get(id)", REGISTRY_CLASS) .addModifiers(Modifier.PUBLIC, Modifier.STATIC) .build() ); // toString method - villagerProfessionClass.addMethod( - MethodSpec.methodBuilder("toString") - .addAnnotation(NotNull.class) - .addAnnotation(Override.class) - .returns(String.class) - // this resolves to [Namespace] - .addStatement("return \"[\" + this.id + \"]\"") - .addModifiers(Modifier.PUBLIC) - .build() - ); + villagerProfessionClass.addMethod(GenerationHelper.TO_STRING); // values method villagerProfessionClass.addMethod( MethodSpec.methodBuilder("values") .addAnnotation(NotNull.class) .returns(ParameterizedTypeName.get(ClassName.get(List.class), villagerProfessionClassName)) - .addStatement("return $T.VILLAGER_PROFESSION_REGISTRY.values()", registryClassName) + .addStatement("return $T.VILLAGER_PROFESSION_REGISTRY.values()", REGISTRY_CLASS) .addModifiers(Modifier.PUBLIC, Modifier.STATIC) .build() ); @@ -168,7 +150,7 @@ public void generate() { ).initializer( "new $T($T.from($S), new $T(() -> null))", villagerProfessionClassName, - namespaceIDClassName, + NAMESPACE_ID_CLASS, villagerProfession.get("id").getAsString(), rawVillagerProfessionDataClassName @@ -182,18 +164,18 @@ public void generate() { ).initializer( "new $T($T.from($S), new $T(() -> $T.SOUND_EVENT_REGISTRY.get($S)))", villagerProfessionClassName, - namespaceIDClassName, + NAMESPACE_ID_CLASS, villagerProfession.get("id").getAsString(), rawVillagerProfessionDataClassName, - registryClassName, + REGISTRY_CLASS, workSound.getAsString() ).addModifiers(Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).build() ); } // Add to static init. - staticBlock.addStatement("$T.VILLAGER_PROFESSION_REGISTRY.register($N)", registryClassName, villagerProfessionName); + staticBlock.addStatement("$T.VILLAGER_PROFESSION_REGISTRY.register($N)", REGISTRY_CLASS, villagerProfessionName); } villagerProfessionClass.addStaticBlock(staticBlock.build()); @@ -202,7 +184,7 @@ public void generate() { writeFiles( List.of( JavaFile.builder("net.minestom.server.entity.metadata.villager", villagerProfessionClass.build()) - .indent(" ") + .indent(DEFAULT_INDENT) .skipJavaLangImports(true) .build() ), diff --git a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java index 8defb024319..0f59af765a7 100644 --- a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java @@ -5,6 +5,8 @@ import com.google.gson.JsonObject; import com.squareup.javapoet.*; import net.minestom.codegen.MinestomCodeGenerator; +import net.minestom.codegen.util.GenerationHelper; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; @@ -16,6 +18,11 @@ import java.io.InputStreamReader; import java.util.List; +import static net.minestom.codegen.util.GenerationHelper.ADVENTURE_KEY; +import static net.minestom.codegen.util.GenerationHelper.TO_STRING; + +@ApiStatus.NonExtendable +@ApiStatus.Internal public final class VillagerTypeGenerator extends MinestomCodeGenerator { private static final Logger LOGGER = LoggerFactory.getLogger(VillagerTypeGenerator.class); private final InputStream villagerTypesFile; @@ -38,41 +45,30 @@ public void generate() { return; } // Important classes we use alot - ClassName namespaceIDClassName = ClassName.get("net.minestom.server.utils", "NamespaceID"); - ClassName registryClassName = ClassName.get("net.minestom.server.registry", "Registry"); - JsonArray villagerTypes = GSON.fromJson(new InputStreamReader(villagerTypesFile), JsonArray.class); ClassName villagerTypeClassName = ClassName.get("net.minestom.server.entity.metadata.villager", "VillagerType"); // Particle TypeSpec.Builder villagerTypeClass = TypeSpec.classBuilder(villagerTypeClassName) - .addSuperinterface(ClassName.get("net.kyori.adventure.key", "Keyed")) + .addSuperinterface(KEYORI_ADVENTURE_KEY) .addModifiers(Modifier.PUBLIC).addJavadoc("AUTOGENERATED by " + getClass().getSimpleName()); villagerTypeClass.addField( - FieldSpec.builder(namespaceIDClassName, "id") + FieldSpec.builder(NAMESPACE_ID_CLASS, "id") .addModifiers(Modifier.PRIVATE, Modifier.FINAL).addAnnotation(NotNull.class).build() ); villagerTypeClass.addMethod( MethodSpec.constructorBuilder() - .addParameter(ParameterSpec.builder(namespaceIDClassName, "id").addAnnotation(NotNull.class).build()) + .addParameter(ParameterSpec.builder(NAMESPACE_ID_CLASS, "id").addAnnotation(NotNull.class).build()) .addStatement("this.id = id") .addModifiers(Modifier.PROTECTED) .build() ); // Override key method (adventure) - villagerTypeClass.addMethod( - MethodSpec.methodBuilder("key") - .returns(ClassName.get("net.kyori.adventure.key", "Key")) - .addAnnotation(Override.class) - .addAnnotation(NotNull.class) - .addStatement("return this.id") - .addModifiers(Modifier.PUBLIC) - .build() - ); + villagerTypeClass.addMethod(GenerationHelper.ID_GETTER); // getId method villagerTypeClass.addMethod( MethodSpec.methodBuilder("getId") - .returns(namespaceIDClassName) + .returns(NAMESPACE_ID_CLASS) .addAnnotation(NotNull.class) .addStatement("return this.id") .addModifiers(Modifier.PUBLIC) @@ -82,7 +78,7 @@ public void generate() { villagerTypeClass.addMethod( MethodSpec.methodBuilder("getNumericalId") .returns(TypeName.INT) - .addStatement("return $T.VILLAGER_TYPE_REGISTRY.getId(this)", registryClassName) + .addStatement("return $T.VILLAGER_TYPE_REGISTRY.getId(this)", REGISTRY_CLASS) .addModifiers(Modifier.PUBLIC) .build() ); @@ -92,7 +88,7 @@ public void generate() { .returns(villagerTypeClassName) .addAnnotation(Nullable.class) .addParameter(TypeName.INT, "id") - .addStatement("return $T.VILLAGER_TYPE_REGISTRY.get((short) id)", registryClassName) + .addStatement("return $T.VILLAGER_TYPE_REGISTRY.get((short) id)", REGISTRY_CLASS) .addModifiers(Modifier.PUBLIC, Modifier.STATIC) .build() ); @@ -101,28 +97,19 @@ public void generate() { MethodSpec.methodBuilder("fromId") .returns(villagerTypeClassName) .addAnnotation(NotNull.class) - .addParameter(ClassName.get("net.kyori.adventure.key", "Key"), "id") - .addStatement("return $T.VILLAGER_TYPE_REGISTRY.get(id)", registryClassName) + .addParameter(ADVENTURE_KEY, "id") + .addStatement("return $T.VILLAGER_TYPE_REGISTRY.get(id)", REGISTRY_CLASS) .addModifiers(Modifier.PUBLIC, Modifier.STATIC) .build() ); // toString method - villagerTypeClass.addMethod( - MethodSpec.methodBuilder("toString") - .addAnnotation(NotNull.class) - .addAnnotation(Override.class) - .returns(String.class) - // this resolves to [Namespace] - .addStatement("return \"[\" + this.id + \"]\"") - .addModifiers(Modifier.PUBLIC) - .build() - ); + villagerTypeClass.addMethod(TO_STRING); // values method villagerTypeClass.addMethod( MethodSpec.methodBuilder("values") .addAnnotation(NotNull.class) .returns(ParameterizedTypeName.get(ClassName.get(List.class), villagerTypeClassName)) - .addStatement("return $T.VILLAGER_TYPE_REGISTRY.values()", registryClassName) + .addStatement("return $T.VILLAGER_TYPE_REGISTRY.values()", REGISTRY_CLASS) .addModifiers(Modifier.PUBLIC, Modifier.STATIC) .build() ); @@ -140,12 +127,12 @@ public void generate() { ).initializer( "new $T($T.from($S))", villagerTypeClassName, - namespaceIDClassName, + NAMESPACE_ID_CLASS, villagerProfession.get("id").getAsString() ).addModifiers(Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).build() ); // Add to static init. - staticBlock.addStatement("$T.VILLAGER_TYPE_REGISTRY.register($N)", registryClassName, villagerProfessionName); + staticBlock.addStatement("$T.VILLAGER_TYPE_REGISTRY.register($N)", REGISTRY_CLASS, villagerProfessionName); } villagerTypeClass.addStaticBlock(staticBlock.build()); @@ -154,7 +141,7 @@ public void generate() { writeFiles( List.of( JavaFile.builder("net.minestom.server.entity.metadata.villager", villagerTypeClass.build()) - .indent(" ") + .indent(DEFAULT_INDENT) .skipJavaLangImports(true) .build() ), diff --git a/code-generators/src/main/java/net/minestom/codegen/util/GenerationHelper.java b/code-generators/src/main/java/net/minestom/codegen/util/GenerationHelper.java new file mode 100644 index 00000000000..f56116180a4 --- /dev/null +++ b/code-generators/src/main/java/net/minestom/codegen/util/GenerationHelper.java @@ -0,0 +1,47 @@ +package net.minestom.codegen.util; + +import com.squareup.javapoet.ClassName; +import com.squareup.javapoet.MethodSpec; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; + +import javax.lang.model.element.Modifier; + +import static net.minestom.codegen.MinestomCodeGenerator.NAMESPACE_ID_CLASS; + +@ApiStatus.Internal +@ApiStatus.NonExtendable +public final class GenerationHelper { + + public static final ClassName ADVENTURE_KEY = ClassName.get("net.kyori.adventure.key", "Key"); + public static final MethodSpec ID_GETTER; + public static final MethodSpec ADVENTURE_KEY_METHOD; + public static final MethodSpec TO_STRING; + public static final String VARIABLE_SETTER = "this.$1L = $1L"; + + static { + ID_GETTER = MethodSpec.methodBuilder("getId") + .returns(NAMESPACE_ID_CLASS) + .addAnnotation(NotNull.class) + .addStatement("return this.id") + .addModifiers(Modifier.PUBLIC) + .build(); + ADVENTURE_KEY_METHOD = MethodSpec.methodBuilder("key") + .returns(ADVENTURE_KEY) + .addAnnotation(Override.class) + .addAnnotation(NotNull.class) + .addStatement("return this.id") + .addModifiers(Modifier.PUBLIC) + .build(); + TO_STRING = MethodSpec.methodBuilder("toString") + .addAnnotation(NotNull.class) + .addAnnotation(Override.class) + .returns(String.class) + // this resolves to [Namespace] + .addStatement("return \"[\" + this.id + \"]\"") + .addModifiers(Modifier.PUBLIC) + .build(); + } + + private GenerationHelper() { } +} diff --git a/demo/build.gradle.kts b/demo/build.gradle.kts index 2e5671e61f4..e4af107a603 100644 --- a/demo/build.gradle.kts +++ b/demo/build.gradle.kts @@ -2,21 +2,28 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar plugins { application - alias(libs.plugins.shadow) + id("minestom.common-conventions") + id("minestom.native-conventions") + id("com.github.johnrengelman.shadow") version ("7.1.2") +// id("net.onelitefeather.microtus.extension") +} + +application { + mainClass.set("net.minestom.demo.Main") + // This is included because Shadow is buggy. Wait for https://github.com/johnrengelman/shadow/issues/613 to befixed. } dependencies { +// extensionLibrary("com.fasterxml.jackson.module:jackson-module-kotlin:2.15.2") implementation(rootProject) - - runtimeOnly(libs.bundles.logback) + implementation(libs.jNoise) } -tasks { - application { - mainClass.set("net.minestom.demo.Main") - } +tasks.withType { + archiveFileName.set("minestom-demo.jar") +} - withType { - archiveFileName.set("minestom-demo.jar") - } -} \ No newline at end of file +/*extension { + authors = listOf("yolo") + entrypoint = "net.onelitefeather.microtus.extension.Test" +}*/ \ No newline at end of file diff --git a/demo/src/main/java/net/minestom/demo/commands/NotificationCommand.java b/demo/src/main/java/net/minestom/demo/commands/NotificationCommand.java index d5fc7453ed1..e5667972278 100644 --- a/demo/src/main/java/net/minestom/demo/commands/NotificationCommand.java +++ b/demo/src/main/java/net/minestom/demo/commands/NotificationCommand.java @@ -2,12 +2,9 @@ import net.kyori.adventure.text.Component; import net.minestom.server.advancements.FrameType; -import net.minestom.server.advancements.notifications.Notification; -import net.minestom.server.advancements.notifications.NotificationCenter; import net.minestom.server.command.builder.Command; import net.minestom.server.entity.Player; import net.minestom.server.item.Material; -import org.jetbrains.annotations.NotNull; public class NotificationCommand extends Command { public NotificationCommand() { @@ -15,9 +12,12 @@ public NotificationCommand() { setDefaultExecutor((sender, context) -> { var player = (Player) sender; - - var notification = new Notification(Component.text("Hello World!"), FrameType.GOAL, Material.DIAMOND_AXE); - NotificationCenter.send(notification, player); + var notification = net.minestom.server.notifications.Notification.builder() + .title(Component.text("Hello World!")) + .frameType(FrameType.GOAL) + .icon(Material.DIAMOND_AXE) + .build(); + notification.send(player); }); } } diff --git a/demo/src/main/java/net/minestom/demo/commands/TestCommand.java b/demo/src/main/java/net/minestom/demo/commands/TestCommand.java index 75482a6787f..185a8d4d31a 100644 --- a/demo/src/main/java/net/minestom/demo/commands/TestCommand.java +++ b/demo/src/main/java/net/minestom/demo/commands/TestCommand.java @@ -8,6 +8,7 @@ import net.minestom.server.command.builder.Command; import net.minestom.server.command.builder.CommandContext; import net.minestom.server.command.builder.arguments.ArgumentType; +import net.minestom.server.entity.Player; import net.minestom.server.sound.SoundEvent; public class TestCommand extends Command { @@ -21,7 +22,9 @@ public TestCommand() { setDefaultExecutor((sender, context) -> { sender.playSound(Sound.sound(Key.key("item.trumpet.doot"), Sound.Source.PLAYER, 1, 1)); - AdventurePacketConvertor.createSoundPacket(Sound.sound(Key.key(SoundEvent.BLOCK_ANVIL_HIT.name()), Sound.Source.HOSTILE, 1, 1), sender.asPlayer()); + if (sender instanceof Player player) { + AdventurePacketConvertor.createSoundPacket(Sound.sound(Key.key(SoundEvent.BLOCK_ANVIL_HIT.name()), Sound.Source.HOSTILE, 1, 1), player); + } }); addSyntax((sender, context) -> System.out.println("executed"), block); diff --git a/extension/build.gradle.kts b/extension/build.gradle.kts new file mode 100644 index 00000000000..08854349d3c --- /dev/null +++ b/extension/build.gradle.kts @@ -0,0 +1,86 @@ +import java.time.Duration +import java.util.* + +plugins { + `java-gradle-plugin` + `kotlin-dsl` + id("com.gradle.plugin-publish") version "1.2.1" + id("org.cadixdev.licenser") version "0.6.1" + id("io.github.gradle-nexus.publish-plugin") version "2.0.0-rc-1" + signing +} + +var baseVersion by extra("1.0.1") +var snapshot by extra("-SNAPSHOT") + +group = "net.onelitefeather.microtus" + + +version = "%s%s".format(Locale.ROOT, baseVersion, snapshot) + +repositories { + mavenCentral() + gradlePluginPortal() +} + +dependencies { + implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.15.2") { + exclude(group = "org.jetbrains.kotlin") + } + testImplementation(platform("org.junit:junit-bom:5.10.1")) + testImplementation("org.junit.jupiter:junit-jupiter:5.10.1") +} +gradlePlugin { + // website.set("https://github.com/OneLiteFeatherNET/Microtus") + // vcsUrl.set("https://github.com/OneLiteFeatherNET/Microtus") + plugins { + register("extension") { + id = "net.onelitefeather.microtus.extension" + displayName = "Extension (Minestom)" + description = "Generate extension.json for Minestom extensions based on the Gradle project" + implementationClass = "net.onelitefeather.microtus.ExtensionPlugin" + // tags.set(listOf("minestom", "microtus", "extension")) + } + } +} + +nexusPublishing{ + useStaging.set(true) + + transitionCheckOptions { + maxRetries.set(360) // 1 hour + delayBetween.set(Duration.ofSeconds(10)) + } + + repositories.sonatype { + nexusUrl.set(uri("https://s01.oss.sonatype.org/service/local/")) + snapshotRepositoryUrl.set(uri("https://s01.oss.sonatype.org/content/repositories/snapshots/")) + + if (System.getenv("SONATYPE_USERNAME") != null) { + username.set(System.getenv("SONATYPE_USERNAME")) + password.set(System.getenv("SONATYPE_PASSWORD")) + } + } +} + +publishing { + repositories { + maven { + url = uri("https://maven.pkg.github.com/OneLiteFeatherNET/Microtus") + credentials { + username = System.getenv("GITHUB_ACTOR") + password = System.getenv("GITHUB_TOKEN") + } + } + } +} + +signing { + isRequired = System.getenv("CI") != null + + val privateKey = System.getenv("GPG_PRIVATE_KEY") + val keyPassphrase = System.getenv()["GPG_PASSPHRASE"] + useInMemoryPgpKeys(privateKey, keyPassphrase) + + sign(publishing.publications) +} \ No newline at end of file diff --git a/extension/src/main/kotlin/net/onelitefeather/microtus/ExtensionPlugin.kt b/extension/src/main/kotlin/net/onelitefeather/microtus/ExtensionPlugin.kt new file mode 100644 index 00000000000..e02e9d94396 --- /dev/null +++ b/extension/src/main/kotlin/net/onelitefeather/microtus/ExtensionPlugin.kt @@ -0,0 +1,76 @@ +package net.onelitefeather.microtus + +import net.onelitefeather.microtus.models.Extension +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.api.plugins.JavaPlugin +import org.gradle.api.tasks.SourceSet +import org.gradle.api.tasks.SourceSetContainer +import org.gradle.kotlin.dsl.getByType +import org.gradle.kotlin.dsl.register +import org.gradle.kotlin.dsl.withType + +/** + * Represents the gradle plugin extension which can be integrated into a `build.gradle.kts` file to define the properties of the extension. + * The usage of this plugin is as follows: + * + * ```kotlin + * plugins { + * id("net.onelitefeather.microtus.extension") version "" + * // ... + * } + * + * extension { + * //... use the properties of the extension here + * } + * ``` + * + * @since 1.2.0 + * @author TheMeinerLP + */ +class ExtensionPlugin : Plugin { + + private val fileName = "extension.json" + + /** + * Applies the plugin to the project. + * @param target the project to apply the plugin to + */ + override fun apply(target: Project) { + target.run { + val generatedResourcesDirectory = layout.buildDirectory.dir("generated/extension") + val extension = Extension() + extensions.add("extension", extension) + + val library = project.configurations.maybeCreate("library") + val libraries = project.configurations.create("extensionLibrary").extendsFrom(library) + + val generateTask = tasks.register("generateExtension") { + group = "minestom" + + fileName.set(this@ExtensionPlugin.fileName) + librariesRootComponent.set(libraries.incoming.resolutionResult.root) + outputDirectory.set(generatedResourcesDirectory) + this.extension.set(provider { + setDefaults(project, extension) + extension + }) + } + plugins.withType { + extensions.getByType().named(SourceSet.MAIN_SOURCE_SET_NAME) { + resources.srcDir(generateTask) + } + } + } + } + + /** + * Sets some default variables to a [Extension] object. + * @param project the project to get the name and version from + * @param extension the extension to set the variables to + */ + private fun setDefaults(project: Project, extension: Extension) { + extension.name = extension.name ?: project.name + extension.version = extension.version ?: project.version.toString() + } +} \ No newline at end of file diff --git a/extension/src/main/kotlin/net/onelitefeather/microtus/GenerateExtension.kt b/extension/src/main/kotlin/net/onelitefeather/microtus/GenerateExtension.kt new file mode 100644 index 00000000000..0df18c5afb0 --- /dev/null +++ b/extension/src/main/kotlin/net/onelitefeather/microtus/GenerateExtension.kt @@ -0,0 +1,79 @@ +package net.onelitefeather.microtus + +import com.fasterxml.jackson.annotation.JsonInclude +import com.fasterxml.jackson.databind.ObjectMapper +import com.fasterxml.jackson.databind.module.SimpleModule +import com.fasterxml.jackson.module.kotlin.registerKotlinModule +import net.onelitefeather.microtus.models.Extension +import org.gradle.api.DefaultTask +import org.gradle.api.artifacts.repositories.MavenArtifactRepository +import org.gradle.api.artifacts.result.ResolvedComponentResult +import org.gradle.api.artifacts.result.ResolvedDependencyResult +import org.gradle.api.file.DirectoryProperty +import org.gradle.api.provider.Property +import org.gradle.api.tasks.* +import kotlin.jvm.Throws + +/** + * Defines the task which generates the required extension.json file for Minestom. + * @since 1.2.0 + * @author TheMeinerLP + */ +abstract class GenerateExtension : DefaultTask() { + @get:Input + abstract val fileName: Property + + @get:Nested + abstract val extension: Property + + @get:OutputDirectory + abstract val outputDirectory: DirectoryProperty + + @get:Input + @get:Optional + abstract val librariesRootComponent: Property + + /** + * Generates an extension.json file based on the given properties. + */ + @TaskAction + fun generate() { + val module = SimpleModule() + val mapper = ObjectMapper() + .registerKotlinModule() + .registerModule(module) + .setSerializationInclusion(JsonInclude.Include.NON_EMPTY) + val extension = extension.get() + val dependencies = librariesRootComponent.orNull.collectLibraries() + val repos = this.project.repositories.withType(MavenArtifactRepository::class.java) + val externalDependencies = Extension.ExternalDependencies() + externalDependencies.artifacts = dependencies.toList() + val mavenCentral = Extension.Repository() + mavenCentral.url = "https://repo.maven.apache.org/maven2/" + mavenCentral.name = "mavenCentral" + val mappedRepos = repos.map { + val repo = Extension.Repository() + repo.url = it.url.toString() + repo.name = it.name + repo + }.toList() + externalDependencies.repositories = if (mappedRepos.isNotEmpty() || dependencies.isNotEmpty()) { + mappedRepos + listOf(mavenCentral) + } else { + listOf() + } + extension.externalDependencies = externalDependencies + mapper.writeValue(outputDirectory.file(fileName).get().asFile, extension) + } + + /** + * Collects all libraries from the root component and the additional libraries. + * @param additional the additional libraries to add + */ + private fun ResolvedComponentResult?.collectLibraries(additional: List? = null): List { + val resolved = this?.dependencies?.map { dependencyResult -> + (dependencyResult as? ResolvedDependencyResult)?.selected?.moduleVersion?.toString() ?: error("No moduleVersion for $dependencyResult") + } + return ((additional ?: listOf()) + (resolved ?: listOf())).distinct() + } +} \ No newline at end of file diff --git a/extension/src/main/kotlin/net/onelitefeather/microtus/models/Extension.kt b/extension/src/main/kotlin/net/onelitefeather/microtus/models/Extension.kt new file mode 100644 index 00000000000..3e8976c5970 --- /dev/null +++ b/extension/src/main/kotlin/net/onelitefeather/microtus/models/Extension.kt @@ -0,0 +1,76 @@ +package net.onelitefeather.microtus.models + +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.Optional +import org.gradle.internal.impldep.com.fasterxml.jackson.annotation.JsonProperty + +/** + * Represents the allowed data fields for an extension.json file which is required from Minestom to load an extension. + * The following fields are allowed (fields with a * are required): + * + * - name: The name of the extension (*) + * - version: The version of the extension (*) + * - entrypoint: The entrypoint of the extension (*) + * - authors: The authors of the extension + * - dependencies: The dependencies of the extension + * - externalDependencies: The external dependencies of the extension + * @since 1.2.0 + * @author TheMeinerLP + */ +class Extension() { + @Input + var name: String? = null + + @Input + var version: String? = null + + @Input + var entrypoint: String? = null + + @Input + @Optional + @JsonProperty("authors") + var authors: List? = null + + @Input + @Optional + @JsonProperty("dependencies") + var dependencies: List? = null + + @Input + @Optional + @JsonProperty("externalDependencies") + var externalDependencies: ExternalDependencies? = null + + /** + * Represents the external dependencies which is required for the extension to work. + * @since 1.2.0 + * @author TheMeinerLP + */ + class ExternalDependencies { + @JsonProperty("repositories") + var repositories: List? = null + + @Input + @Optional + @JsonProperty("artifacts") + var artifacts: List? = null + + } + + /** + * Represents a repository which is used by an extension to load external dependencies. + * @since 1.2.0 + * @author TheMeinerLP + * @see ExternalDependencies + */ + class Repository { + @Input + @JsonProperty("name") + var name: String? = null + + @Input + @JsonProperty("url") + var url: String? = null + } +} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d75cacb1ef2..e69de29bb2d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,87 +0,0 @@ -metadata.format.version = "1.1" - -[versions] - -# Important dependencies -data = "1.21-rv3" -adventure = "4.17.0" -jetbrainsAnnotations = "24.1.0" -slf4j = "2.0.7" - -# Performance / Data Structures -caffeine = "3.1.8" -fastutil = "8.5.14" -flare = "2.0.1" -gson = "2.11.0" -jcTools = "4.0.5" - -# Quality -junit-jupiter = "5.9.3" -junit-platform = "1.9.3" -jmh = "1.36" -jcstress = "0.16" - -# Code Generation -javaPoet = "1.13.0" - -# Log impl (for demo & codegen) -logback = "1.4.5" - -# Gradle plugins -blossom = "1.3.0" -shadow = "8.1.1" -nexuspublish = "1.3.0" - -[libraries] - -# Important Dependencies -# Adventure -adventure-api = { group = "net.kyori", name = "adventure-api", version.ref = "adventure" } -adventure-nbt = { group = "net.kyori", name = "adventure-nbt", version.ref = "adventure" } -adventure-serializer-gson = { group = "net.kyori", name = "adventure-text-serializer-gson", version.ref = "adventure" } -adventure-serializer-legacy = { group = "net.kyori", name = "adventure-text-serializer-legacy", version.ref = "adventure" } -adventure-serializer-plain = { group = "net.kyori", name = "adventure-text-serializer-plain", version.ref = "adventure" } -adventure-text-logger-slf4j = { group = "net.kyori", name = "adventure-text-logger-slf4j", version.ref = "adventure" } - -# Miscellaneous -minestomData = { group = "net.minestom", name = "data", version.ref = "data" } -jetbrainsAnnotations = { group = "org.jetbrains", name = "annotations", version.ref = "jetbrainsAnnotations" } -slf4j = { group = "org.slf4j", name = "slf4j-api", version.ref = "slf4j"} - -# Performance / Data Structures -caffeine = { group = "com.github.ben-manes.caffeine", name = "caffeine", version.ref = "caffeine" } -fastutil = { group = "it.unimi.dsi", name = "fastutil", version.ref = "fastutil" } -flare = { group = "space.vectrix.flare", name = "flare", version.ref = "flare" } -flare-fastutil = { group = "space.vectrix.flare", name = "flare-fastutil", version.ref = "flare" } -gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" } -jcTools = { group = "org.jctools", name = "jctools-core", version.ref = "jcTools" } - -# Code quality -junit-api = { group = "org.junit.jupiter", name = "junit-jupiter-api", version.ref = "junit-jupiter" } -junit-engine = { group = "org.junit.jupiter", name = "junit-jupiter-engine", version.ref = "junit-jupiter" } -junit-params = { group = "org.junit.jupiter", name = "junit-jupiter-params", version.ref = "junit-jupiter" } -junit-suite-api = { group = "org.junit.platform", name = "junit-platform-suite-api", version.ref = "junit-platform" } -junit-suite-engine = { group = "org.junit.platform", name = "junit-platform-suite-engine", version.ref = "junit-platform" } -jmh-core = { group = "org.openjdk.jmh", name = "jmh-core", version.ref = "jmh" } -jmh-annotationprocessor = { group = "org.openjdk.jmh", name = "jmh-generator-annprocess", version.ref = "jmh" } -jcstress-core = { group = "org.openjdk.jcstress", name = "jcstress-core", version.ref = "jcstress" } - -# Code Generation -javaPoet = { group = "com.squareup", name = "javapoet", version.ref = "javaPoet" } - -# Log impl (for demo & codegen) -logback-core = { group = "ch.qos.logback", name = "logback-core", version.ref = "logback" } -logback-classic = { group = "ch.qos.logback", name = "logback-classic", version.ref = "logback" } - -[bundles] - -flare = ["flare", "flare-fastutil"] -adventure = ["adventure-api", "adventure-nbt", "adventure-serializer-gson", "adventure-serializer-legacy", "adventure-serializer-plain", "adventure-text-logger-slf4j"] -junit = ["junit-api", "junit-engine", "junit-params", "junit-suite-api", "junit-suite-engine"] -logback = ["logback-core", "logback-classic"] - -[plugins] - -blossom = { id = "net.kyori.blossom", version.ref = "blossom" } -shadow = { id = "com.github.johnrengelman.shadow", version.ref = "shadow" } -nexuspublish = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "nexuspublish" } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index d64cd4917707c1f8861d8cb53dd15194d4248596..e6441136f3d4ba8a0da8d277868979cfbc8ad796 100644 GIT binary patch delta 34118 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 delta 34176 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 SGW6ptSs!X7{rG*o_g?|vpSEZK diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a80b22ce5cf..6f7a6eb33e8 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-all.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index 1aa94a42690..b740cf13397 100755 --- a/gradlew +++ b/gradlew @@ -55,7 +55,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. diff --git a/jcstress-tests/build.gradle.kts b/jcstress-tests/build.gradle.kts index 6f1943f8128..b2fda1d37d2 100644 --- a/jcstress-tests/build.gradle.kts +++ b/jcstress-tests/build.gradle.kts @@ -1,5 +1,6 @@ plugins { id("io.github.reyerizo.gradle.jcstress") version "0.8.15" + id("minestom.common-conventions") } dependencies { diff --git a/jitpack.yml b/jitpack.yml deleted file mode 100644 index a2027925630..00000000000 --- a/jitpack.yml +++ /dev/null @@ -1,2 +0,0 @@ -jdk: - - openjdk21 \ No newline at end of file diff --git a/licenses/MIT.md b/licenses/MIT.md new file mode 100644 index 00000000000..e7e2f7a0d37 --- /dev/null +++ b/licenses/MIT.md @@ -0,0 +1,23 @@ +The MIT License (MIT) +===================== + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the “Software”), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/licenses/apache_2_0.md b/licenses/apache_2_0.md new file mode 100644 index 00000000000..3e91a212221 --- /dev/null +++ b/licenses/apache_2_0.md @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index 486c51ef5e4..b306354c05e 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,8 +1,149 @@ -rootProject.name = "minestom" +dependencyResolutionManagement { + repositories { + maven("https://s01.oss.sonatype.org/content/repositories/snapshots") + maven("https://jitpack.io") + mavenCentral() + } + versionCatalogs { + create("libs") { + // Important dependencies + version("adventure", "4.17.0") + version("kotlin", "2.0.0") + version("data", "1.21-rv3") + version("jetbrainsAnnotations", "24.1.0") + version("logback", "1.4.5") + version("slf4j", "2.0.7") + version("maven-resolver", "1.9.18") + version("maven-resolver-provider", "3.9.6") -include("testing") + // Terminal / Logging + version("tinylog", "2.6.2") + version("jline", "3.25.1") + + // Performance / Data Structures + version("caffeine", "3.1.8") + version("fastutil", "8.5.12") + version("flare", "2.0.1") + version("gson", "2.11.0") + version("jcTools", "4.0.2") + + // Test + version("junit-jupiter", "5.10.1") + version("junit-platform", "1.10.1") + version("mockito", "5.12.0") + + // Code Generation + version("javaPoet", "1.13.0") + + // Demo + version("jNoise", "b93008e35e") + + // JMH + version("jmh", "1.37") + + // JCStress + version("jcstress", "0.16") + + // Gradle plugins + version("blossom", "2.1.0") + + // BStats + version("bstats", "3.0.2") + + // Libs + library("adventure-api", "net.kyori", "adventure-api").versionRef("adventure") + library("adventure-nbt", "net.kyori", "adventure-nbt").versionRef("adventure") + library("adventure-serializer-gson", "net.kyori", "adventure-text-serializer-gson").versionRef("adventure") + library("adventure-serializer-legacy", "net.kyori", "adventure-text-serializer-legacy").versionRef("adventure") + library("adventure-serializer-plain", "net.kyori", "adventure-text-serializer-plain").versionRef("adventure") + library("adventure-text-logger-slf4j", "net.kyori", "adventure-text-logger-slf4j").versionRef("adventure") + library("adventure-mini-message", "net.kyori", "adventure-text-minimessage").versionRef("adventure") + + // Maven + library("maven.connector", "org.apache.maven.resolver", "maven-resolver-connector-basic").versionRef("maven-resolver") + library("maven.transport.http", "org.apache.maven.resolver", "maven-resolver-transport-http").versionRef("maven-resolver") + library("maven.resolver", "org.apache.maven", "maven-resolver-provider").versionRef("maven-resolver-provider") + + // Kotlin + library("kotlin-reflect", "org.jetbrains.kotlin", "kotlin-reflect").versionRef("kotlin") + library("kotlin-stdlib-jdk8", "org.jetbrains.kotlin", "kotlin-stdlib-jdk8").versionRef("kotlin") + + // Miscellaneous + library("minestomData", "net.minestom", "data").versionRef("data") + library("jetbrainsAnnotations", "org.jetbrains", "annotations").versionRef("jetbrainsAnnotations"); + + // Logging + library("tinylog-api", "org.tinylog", "tinylog-api").versionRef("tinylog") + library("tinylog-impl", "org.tinylog", "tinylog-impl").versionRef("tinylog") + library("tinylog-slf4j", "org.tinylog", "slf4j-tinylog").versionRef("tinylog") + library("slf4j", "org.slf4j", "slf4j-api").versionRef("slf4j") + library("logback-core", "ch.qos.logback", "logback-core").versionRef("logback") + library("logback-classic", "ch.qos.logback", "logback-classic").versionRef("logback") + + // Terminal + library("jline", "org.jline", "jline").versionRef("jline") + library("jline-jansi", "org.jline", "jline-terminal-jansi").versionRef("jline") + + // Performance / Data Structures + library("caffeine", "com.github.ben-manes.caffeine", "caffeine").versionRef("caffeine") + library("fastutil", "it.unimi.dsi", "fastutil").versionRef("fastutil") + library("flare", "space.vectrix.flare", "flare").versionRef("flare") + library("flare-fastutil", "space.vectrix.flare", "flare-fastutil").versionRef("flare") + library("gson", "com.google.code.gson", "gson").versionRef("gson") + library("jcTools", "org.jctools", "jctools-core").versionRef("jcTools") + + // Tests + library("junit-api", "org.junit.jupiter", "junit-jupiter-api").versionRef("junit-jupiter") + library("junit-engine", "org.junit.jupiter", "junit-jupiter-engine").versionRef("junit-jupiter") + library("junit-params", "org.junit.jupiter", "junit-jupiter-params").versionRef("junit-jupiter") + library("junit-suite-api", "org.junit.platform", "junit-platform-suite-api").versionRef("junit-platform") + library("junit-suite-engine", "org.junit.platform", "junit-platform-suite-engine").versionRef("junit-platform") + library("mockito-core", "org.mockito", "mockito-core").versionRef("mockito") + + // Code Generation + library("javaPoet", "com.squareup", "javapoet").versionRef("javaPoet") + + // Demo + library("jNoise", "com.github.Articdive.JNoise", "jnoise-pipeline").versionRef("jNoise") + + // JMH + library("jmh-core", "org.openjdk.jmh", "jmh-core").versionRef("jmh") + library("jmh-annotationprocessor", "org.openjdk.jmh", "jmh-generator-annprocess").versionRef("jmh") + + // JCStress + library("jcstress-core", "org.openjdk.jcstress", "jcstress-core").versionRef("jcstress") + + // BStats + library("bstats-base", "org.bstats", "bstats-base").versionRef("bstats") + + bundle("kotlin", listOf("kotlin-stdlib-jdk8", "kotlin-reflect")) + bundle("flare", listOf("flare", "flare-fastutil")) + bundle("adventure", listOf("adventure-api", "adventure-nbt", "adventure-mini-message", "adventure-serializer-gson", "adventure-serializer-legacy", "adventure-serializer-plain", "adventure-text-logger-slf4j")) + bundle("logging", listOf("tinylog-api", "tinylog-impl", "tinylog-slf4j")) + bundle("terminal", listOf("jline", "jline-jansi")) + bundle("logback", listOf("logback-core", "logback-classic")) + bundle("junit", listOf("junit-api", "junit-engine", "junit-params", "junit-suite-api", "junit-suite-engine")) + + plugin("blossom", "net.kyori.blossom").versionRef("blossom") + + } + } +} + +pluginManagement { + repositories { + mavenCentral() + gradlePluginPortal() + maven("https://files.minecraftforge.net/maven/") + } + includeBuild("build-logic") + includeBuild("extension") +} + +rootProject.name = "Microtus" include("code-generators") include("jmh-benchmarks") -include("jcstress-tests") - +// include("jcstress-tests") +include("testing") +include("bom") include("demo") diff --git a/src/autogenerated/java/net/minestom/server/color/DyeColor.java b/src/autogenerated/java/net/minestom/server/color/DyeColor.java index ff16c321eba..b5649ca07bd 100644 --- a/src/autogenerated/java/net/minestom/server/color/DyeColor.java +++ b/src/autogenerated/java/net/minestom/server/color/DyeColor.java @@ -4,6 +4,7 @@ import net.minestom.server.network.NetworkBuffer; import net.minestom.server.utils.nbt.BinaryTagSerializer; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; /** * AUTOGENERATED by DyeColorGenerator @@ -45,6 +46,8 @@ public enum DyeColor implements RGBLike { public static final BinaryTagSerializer NBT_TYPE = BinaryTagSerializer.fromEnumStringable(DyeColor.class); + private static final DyeColor[] VALUES = DyeColor.values(); + private final Color textureDiffuseColor; private final Color textColor; @@ -91,4 +94,9 @@ public int blue() { public int mapColorId() { return this.mapColorId; } + + @Nullable + public static DyeColor getValue(int id) { + return VALUES[id]; + } } diff --git a/src/autogenerated/java/net/minestom/server/feature/FeatureFlags.java b/src/autogenerated/java/net/minestom/server/feature/FeatureFlags.java new file mode 100644 index 00000000000..983bd307419 --- /dev/null +++ b/src/autogenerated/java/net/minestom/server/feature/FeatureFlags.java @@ -0,0 +1,35 @@ +package net.minestom.server.feature; + +import net.minestom.server.utils.NamespaceID; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * AUTOGENERATED by FeatureFlagGenerator + */ +public enum FeatureFlags { + UPDATE_1_21(NamespaceID.from("minecraft:update_1_21")), + + BUNDLE(NamespaceID.from("minecraft:bundle")), + + VANILLA(NamespaceID.from("minecraft:vanilla")), + + TRADE_REBALANCE(NamespaceID.from("minecraft:trade_rebalance")); + + private static final FeatureFlags[] VALUES = FeatureFlags.values(); + + private final NamespaceID feature; + + FeatureFlags(@NotNull NamespaceID feature) { + this.feature = feature; + } + + public @NotNull NamespaceID feature() { + return this.feature; + } + + @Nullable + public static FeatureFlags getValue(int id) { + return VALUES[id]; + } +} diff --git a/src/main/java/net/minestom/server/Metrics.java b/src/main/java/net/minestom/server/Metrics.java new file mode 100644 index 00000000000..56cb113053d --- /dev/null +++ b/src/main/java/net/minestom/server/Metrics.java @@ -0,0 +1,146 @@ +package net.minestom.server; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import net.minestom.server.extras.MojangAuth; +import net.minestom.server.extras.bungee.BungeeCordProxy; +import net.minestom.server.extras.velocity.VelocityProxy; +import org.bstats.MetricsBase; +import org.bstats.charts.DrilldownPie; +import org.bstats.charts.SimplePie; +import org.bstats.charts.SingleLineChart; +import org.bstats.json.JsonObjectBuilder; + +public class Metrics { + private static String bStatsUuid = System.getProperty("minestom.bstats.id"); + private final static int SERVICE_ID = 20684; + private MetricsBase metrics; + + public void start() { + MinecraftServer.LOGGER.info("Enable bstats."); + String serverUUID = bStatsUuid; + if (serverUUID == null) { + Path bStatsFile = Path.of(".bstats"); + if (Files.notExists(bStatsFile)) { + try { + Files.createFile(bStatsFile); + } catch (IOException e) { + MinecraftServer.LOGGER.error("BStats file cannot created."); + return; + } + try { + Files.writeString(bStatsFile, UUID.randomUUID().toString()); + } catch (IOException e) { + MinecraftServer.LOGGER.error("BStats file cannot be written."); + return; + } + } + try { + serverUUID = Files.readString(bStatsFile); + } catch (IOException e) { + MinecraftServer.LOGGER.error("BStats file cannot be readed."); + return; + } + } + System.setProperty("bstats.relocatecheck", "false"); + metrics = new MetricsBase("server-implementation", serverUUID, SERVICE_ID,true, this::getServerData, jsonObjectBuilder -> {}, null, () -> true, MinecraftServer.LOGGER::error,MinecraftServer.LOGGER::info, + ServerFlag.INSIDE_TEST, ServerFlag.INSIDE_TEST,ServerFlag.INSIDE_TEST); + + metrics.addCustomChart(new SimplePie("minecraft_version", () -> { + String minecraftVersion = MinecraftServer.VERSION_NAME; + minecraftVersion = minecraftVersion.substring(minecraftVersion.indexOf("MC: ") + 4, minecraftVersion.length() - 1); + return minecraftVersion; + })); + + metrics.addCustomChart(new SingleLineChart("players", () -> MinecraftServer.getConnectionManager().getOnlinePlayers().size())); + metrics.addCustomChart(new SimplePie("online_mode", () -> { + if (MojangAuth.isEnabled()) { + return "online"; + } else if (VelocityProxy.isEnabled() || BungeeCordProxy.isEnabled()) { + return "proxied"; + } else { + return "offline"; + } + })); + final String version = "%s-%s-@%s".formatted(MinecraftServer.VERSION_NAME,Git.branch(), Git.commit()); + metrics.addCustomChart(new SimplePie("minestom_version", () -> version)); + metrics.addCustomChart(new DrilldownPie("java_version", () -> { + Map> map = new HashMap<>(); + String javaVersion = System.getProperty("java.version"); + Map entry = new HashMap<>(); + entry.put(javaVersion, 1); + + // http://openjdk.java.net/jeps/223 + // Java decided to change their versioning scheme and in doing so modified the java.version system + // property to return $major[.$minor][.$secuity][-ea], as opposed to 1.$major.0_$identifier + // we can handle pre-9 by checking if the "major" is equal to "1", otherwise, 9+ + String majorVersion = javaVersion.split("\\.")[0]; + String release; + + int indexOf = javaVersion.lastIndexOf('.'); + + if (majorVersion.equals("1")) { + release = "Java " + javaVersion.substring(0, indexOf); + } else { + // of course, it really wouldn't be all that simple if they didn't add a quirk, now would it + // valid strings for the major may potentially include values such as -ea to deannotate a pre release + Matcher versionMatcher = Pattern.compile("\\d+").matcher(majorVersion); + if (versionMatcher.find()) { + majorVersion = versionMatcher.group(0); + } + release = "Java " + majorVersion; + } + map.put(release, entry); + + return map; + })); + + metrics.addCustomChart(new DrilldownPie("extensions", () -> { + Map> map = new HashMap<>(); + + // count legacy plugins + int extensions = MinecraftServer.getExtensionManager().getExtensions().size(); + + // insert real value as lower dimension + Map entry = new HashMap<>(); + entry.put(String.valueOf(extensions), 1); + + // create buckets as higher dimension + if (extensions == 0) { + map.put("0 \uD83D\uDE0E", entry); // :sunglasses: + } else if (extensions <= 5) { + map.put("1-5", entry); + } else if (extensions <= 10) { + map.put("6-10", entry); + } else if (extensions <= 25) { + map.put("11-25", entry); + } else if (extensions <= 50) { + map.put("26-50", entry); + } else { + map.put("50+ \uD83D\uDE2D", entry); // :cry: + } + + return map; + })); + } + + public void shutdown() { + if (this.metrics != null) { + this.metrics.shutdown(); + } + } + + private void getServerData(JsonObjectBuilder builder) { + builder.appendField("osName", System.getProperty("os.name")); + builder.appendField("osArch", System.getProperty("os.arch")); + builder.appendField("osVersion", System.getProperty("os.version")); + builder.appendField("coreCount", Runtime.getRuntime().availableProcessors()); + } + +} diff --git a/src/main/java/net/minestom/server/MinecraftServer.java b/src/main/java/net/minestom/server/MinecraftServer.java index 065ca08324c..65ac14695b0 100644 --- a/src/main/java/net/minestom/server/MinecraftServer.java +++ b/src/main/java/net/minestom/server/MinecraftServer.java @@ -9,6 +9,7 @@ import net.minestom.server.entity.metadata.other.PaintingMeta; import net.minestom.server.event.GlobalEventHandler; import net.minestom.server.exception.ExceptionManager; +import net.minestom.server.extensions.ExtensionManager; import net.minestom.server.gamedata.tags.TagManager; import net.minestom.server.instance.InstanceManager; import net.minestom.server.instance.block.BlockManager; @@ -30,6 +31,7 @@ import net.minestom.server.scoreboard.TeamManager; import net.minestom.server.thread.TickSchedulerThread; import net.minestom.server.timer.SchedulerManager; +import net.minestom.server.utils.MathUtils; import net.minestom.server.utils.PacketUtils; import net.minestom.server.utils.nbt.BinaryTagSerializer; import net.minestom.server.utils.validate.Check; @@ -38,6 +40,7 @@ import net.minestom.server.world.biome.Biome; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.UnknownNullability; import java.io.IOException; @@ -250,6 +253,10 @@ public static AdvancementManager getAdvancementManager() { return serverProcess.advancement(); } + public static @Nullable ExtensionManager getExtensionManager() { + return serverProcess.extension(); + } + public static TagManager getTagManager() { return serverProcess.tag(); } diff --git a/src/main/java/net/minestom/server/ServerFlag.java b/src/main/java/net/minestom/server/ServerFlag.java index c1a3e9dc0e8..2b28ebc130a 100644 --- a/src/main/java/net/minestom/server/ServerFlag.java +++ b/src/main/java/net/minestom/server/ServerFlag.java @@ -54,6 +54,19 @@ public final class ServerFlag { // World public static final int WORLD_BORDER_SIZE = intProperty("minestom.world-border-size", 29999984); + // Biomes + public static final boolean BIOMES_ENABLED = System.getProperty("minestom.attributes.disabled") == null; + + // Terminal + public static final boolean TERMINAL_ENABLED = System.getProperty("minestom.terminal.disabled") == null; + public static final boolean TERMINAL_SUPPORT_HEX_COLOR = Boolean.getBoolean("minestom.terminal.support-hex-color"); + public static final boolean TERMINAL_SUPPORT_COLOR = Boolean.getBoolean("minestom.terminal.support-color"); + // Extensions todo use enabled flag + public static final boolean EXTENSIONS_ENABLED = Boolean.getBoolean("minestom.extension.enabled"); + public static final @NotNull String EXTENSIONS_FOLDER = System.getProperty("minestom.extension.folder", "extensions"); + public static final @Nullable String EXTENSIONS_DEV_CLASSES = System.getProperty("minestom.extension.indevfolder.classes"); + public static final @Nullable String EXTENSIONS_DEV_RESOURCES = System.getProperty("minestom.extension.indevfolder.resources"); + // Maps public static final @NotNull String MAP_RGB_MAPPING = stringProperty("minestom.map.rgbmapping", "lazy"); public static final @Nullable String MAP_RGB_REDUCTION = stringProperty("minestom.map.rgbreduction"); // Only used if rgb mapping is "approximate" diff --git a/src/main/java/net/minestom/server/ServerProcess.java b/src/main/java/net/minestom/server/ServerProcess.java index 9b058bab25c..c700f316410 100644 --- a/src/main/java/net/minestom/server/ServerProcess.java +++ b/src/main/java/net/minestom/server/ServerProcess.java @@ -5,6 +5,7 @@ import net.minestom.server.command.CommandManager; import net.minestom.server.event.GlobalEventHandler; import net.minestom.server.exception.ExceptionManager; +import net.minestom.server.extensions.ExtensionManager; import net.minestom.server.gamedata.tags.TagManager; import net.minestom.server.instance.Chunk; import net.minestom.server.instance.InstanceManager; @@ -23,6 +24,7 @@ import net.minestom.server.timer.SchedulerManager; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.net.SocketAddress; @@ -83,6 +85,11 @@ public interface ServerProcess extends Registries, Snapshotable { */ @NotNull BossBarManager bossBar(); + /** + * Loads and handle extensions. + */ + @Nullable ExtensionManager extension(); + /** * Handles registry tags. */ diff --git a/src/main/java/net/minestom/server/ServerProcessImpl.java b/src/main/java/net/minestom/server/ServerProcessImpl.java index 3d6aa9263ff..9040c041827 100644 --- a/src/main/java/net/minestom/server/ServerProcessImpl.java +++ b/src/main/java/net/minestom/server/ServerProcessImpl.java @@ -1,6 +1,12 @@ package net.minestom.server; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; +import java.io.IOException; +import java.net.SocketAddress; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicReference; import net.minestom.server.advancements.AdvancementManager; import net.minestom.server.adventure.bossbar.BossBarManager; import net.minestom.server.command.CommandManager; @@ -12,6 +18,7 @@ import net.minestom.server.event.GlobalEventHandler; import net.minestom.server.event.server.ServerTickMonitorEvent; import net.minestom.server.exception.ExceptionManager; +import net.minestom.server.extensions.ExtensionManager; import net.minestom.server.gamedata.tags.TagManager; import net.minestom.server.instance.Chunk; import net.minestom.server.instance.Instance; @@ -33,6 +40,7 @@ import net.minestom.server.registry.DynamicRegistry; import net.minestom.server.scoreboard.TeamManager; import net.minestom.server.snapshot.*; +import net.minestom.server.terminal.MinestomTerminal; import net.minestom.server.thread.Acquirable; import net.minestom.server.thread.ThreadDispatcher; import net.minestom.server.thread.ThreadProvider; @@ -46,13 +54,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.IOException; -import java.net.SocketAddress; -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicReference; - final class ServerProcessImpl implements ServerProcess { private static final Logger LOGGER = LoggerFactory.getLogger(ServerProcessImpl.class); @@ -75,6 +76,7 @@ final class ServerProcessImpl implements ServerProcess { private final DynamicRegistry paintingVariant; private final DynamicRegistry jukeboxSong; + private final ExtensionManager extension; private final ConnectionManager connection; private final PacketListenerManager packetListener; private final PacketProcessor packetProcessor; @@ -91,6 +93,7 @@ final class ServerProcessImpl implements ServerProcess { private final TagManager tag; private final Server server; + private final Metrics metrics; private final ThreadDispatcher dispatcher; private final Ticker ticker; @@ -98,11 +101,13 @@ final class ServerProcessImpl implements ServerProcess { private final AtomicBoolean started = new AtomicBoolean(); private final AtomicBoolean stopped = new AtomicBoolean(); + private static boolean bstatsEnabled = System.getProperty("minestom.bstats.enabled") == null; + + public ServerProcessImpl() throws IOException { this.exception = new ExceptionManager(); - + this.extension = new ExtensionManager(this); // The order of initialization here is relevant, we must load the enchantment util registries before the vanilla data is loaded. - this.enchantmentLevelBasedValues = LevelBasedValue.createDefaultRegistry(); this.enchantmentValueEffects = ValueEffect.createDefaultRegistry(); this.enchantmentEntityEffects = EntityEffect.createDefaultRegistry(); @@ -139,6 +144,7 @@ public ServerProcessImpl() throws IOException { this.dispatcher = ThreadDispatcher.of(ThreadProvider.counter(), ServerFlag.DISPATCHER_THREADS); this.ticker = new TickerImpl(); + this.metrics = new Metrics(); } @Override @@ -261,6 +267,11 @@ public ServerProcessImpl() throws IOException { return bossBar; } + @Override + public @NotNull ExtensionManager extension() { + return extension; + } + @Override public @NotNull TagManager tag() { return tag; @@ -312,8 +323,13 @@ public void start(@NotNull SocketAddress socketAddress) { throw new IllegalStateException("Server already started"); } + extension.start(); + extension.gotoPreInit(); + LOGGER.info("Starting " + MinecraftServer.getBrandName() + " server."); + extension.gotoInit(); + // Init server try { server.init(socketAddress); @@ -325,8 +341,17 @@ public void start(@NotNull SocketAddress socketAddress) { // Start server server.start(); + extension.gotoPostInit(); + LOGGER.info(MinecraftServer.getBrandName() + " server started successfully."); + if (ServerFlag.TERMINAL_ENABLED) { + MinestomTerminal.start(); + } + if (bstatsEnabled) { + this.metrics.start(); + } + // Stop the server on SIGINT if (ServerFlag.SHUTDOWN_ON_SIGNAL) Runtime.getRuntime().addShutdownHook(new Thread(this::stop)); } @@ -336,12 +361,16 @@ public void stop() { if (!stopped.compareAndSet(false, true)) return; LOGGER.info("Stopping " + MinecraftServer.getBrandName() + " server."); + LOGGER.info("Unloading all extensions."); + extension.shutdown(); scheduler.shutdown(); connection.shutdown(); server.stop(); LOGGER.info("Shutting down all thread pools."); benchmark.disable(); + MinestomTerminal.stop(); dispatcher.shutdown(); + this.metrics.shutdown(); LOGGER.info(MinecraftServer.getBrandName() + " server stopped successfully."); } diff --git a/src/main/java/net/minestom/server/advancements/AdvancementTab.java b/src/main/java/net/minestom/server/advancements/AdvancementTab.java index 8228a5ddd1e..0f39baf1431 100644 --- a/src/main/java/net/minestom/server/advancements/AdvancementTab.java +++ b/src/main/java/net/minestom/server/advancements/AdvancementTab.java @@ -155,10 +155,8 @@ private void addPlayer(@NotNull Player player) { */ private void removePlayer(@NotNull Player player) { final UUID uuid = player.getUuid(); - if (!PLAYER_TAB_MAP.containsKey(uuid)) { - return; - } Set tabs = PLAYER_TAB_MAP.get(uuid); + if (tabs == null) return; tabs.remove(this); if (tabs.isEmpty()) { PLAYER_TAB_MAP.remove(uuid); diff --git a/src/main/java/net/minestom/server/advancements/notifications/Notification.java b/src/main/java/net/minestom/server/advancements/notifications/Notification.java index 90660466e83..e84bf5339aa 100644 --- a/src/main/java/net/minestom/server/advancements/notifications/Notification.java +++ b/src/main/java/net/minestom/server/advancements/notifications/Notification.java @@ -8,19 +8,13 @@ /** * Represents a message which can be sent using the {@link NotificationCenter}. + * @since 1.0.0 + * @deprecated As of Minestom 22a8ccabfae38c53df0605000aa7eed49765c1ab, because the Maintainability is very hard and + * can break everytime from Mojang side because bad api design use {@link net.minestom.server.notifications.Notification#builder()} instead. */ +@Deprecated(since = "1.4.1", forRemoval = true) public record Notification(@NotNull Component title, @NotNull FrameType frameType, @NotNull ItemStack icon) { public Notification(@NotNull Component title, @NotNull FrameType frameType, @NotNull Material icon) { this(title, frameType, ItemStack.of(icon)); } - - @Deprecated - public @NotNull Component getTitle() { - return title; - } - - @Deprecated - public @NotNull FrameType getFrameType() { - return frameType; - } } diff --git a/src/main/java/net/minestom/server/advancements/notifications/NotificationCenter.java b/src/main/java/net/minestom/server/advancements/notifications/NotificationCenter.java index 5c5326b3c35..968c75fbd21 100644 --- a/src/main/java/net/minestom/server/advancements/notifications/NotificationCenter.java +++ b/src/main/java/net/minestom/server/advancements/notifications/NotificationCenter.java @@ -9,12 +9,16 @@ import java.util.List; /** + * @since 1.0.0 * Used to send one or multiples {@link Notification}. *

    * Works by sending a completed advancement and remove it immediately. *

    * You can simply create a {@link Notification} object and call {@link #send(Notification, Player)}. + * @deprecated As of Minestom 22a8ccabfae38c53df0605000aa7eed49765c1ab, because the Maintainability is very hard and + * can break everytime from Mojang side because bad api design use {@link net.minestom.server.notifications.Notification#builder()} instead. */ +@Deprecated(since = "1.4.1", forRemoval = true) public final class NotificationCenter { private static final String IDENTIFIER = "minestom:notification"; private static final AdvancementsPacket REMOVE_PACKET = new AdvancementsPacket(false, List.of(), List.of(IDENTIFIER), List.of()); diff --git a/src/main/java/net/minestom/server/adventure/AdventurePacketConvertor.java b/src/main/java/net/minestom/server/adventure/AdventurePacketConvertor.java index 893ae6ce241..4acc71e5ade 100644 --- a/src/main/java/net/minestom/server/adventure/AdventurePacketConvertor.java +++ b/src/main/java/net/minestom/server/adventure/AdventurePacketConvertor.java @@ -46,6 +46,8 @@ public class AdventurePacketConvertor { NAMED_TEXT_COLOR_ID_MAP.put(NamedTextColor.WHITE, 15); } + private AdventurePacketConvertor() { } //Microtus - update java keyword usage + /** * Gets the int value of a boss bar overlay. * @@ -141,19 +143,6 @@ public static int getNamedTextColorValue(@NotNull NamedTextColor color) { return new EntitySoundEffectPacket(minestomSound, sound.source(), entity.getEntityId(), sound.volume(), sound.pitch(), seed); } - /** - * Creates an entity sound packet from an Adventure sound. - * - * @param sound the sound - * @param entity the entity the sound is coming from - * @return the packet - * @deprecated Use {@link #createSoundPacket(Sound, Sound.Emitter)} - */ - @Deprecated(forRemoval = true) - public static ServerPacket createEntitySoundPacket(@NotNull Sound sound, @NotNull Entity entity) { - return createSoundPacket(sound, entity); - } - /** * Creates a sound stop packet from a sound stop. * diff --git a/src/main/java/net/minestom/server/command/CommandSender.java b/src/main/java/net/minestom/server/command/CommandSender.java index 20a22bac01f..a0c10efbbc2 100644 --- a/src/main/java/net/minestom/server/command/CommandSender.java +++ b/src/main/java/net/minestom/server/command/CommandSender.java @@ -34,52 +34,4 @@ default void sendMessage(@NotNull String @NotNull [] messages) { sendMessage(message); } } - - /** - * Gets if the sender is a {@link Player}. - *

    - * Consider using {@code instanceof} instead. - * - * @return true if 'this' is a player, false otherwise - */ - @Deprecated - default boolean isPlayer() { - return false; - } - - /** - * Gets if the sender is a {@link ConsoleSender}. - *

    - * Consider using {@code instanceof} instead. - * - * @return true if 'this' is the console, false otherwise - */ - @Deprecated - default boolean isConsole() { - return false; - } - - /** - * Casts this object to a {@link Player}. - * No checks are performed, {@link ClassCastException} can very much happen. - * - * @throws ClassCastException if 'this' is not a player - * @see #isPlayer() - */ - @Deprecated - default Player asPlayer() { - throw new ClassCastException("CommandSender is not a Player"); - } - - /** - * Casts this object to a {@link ConsoleSender}. - * No checks are performed, {@link ClassCastException} can very much happen. - * - * @throws ClassCastException if 'this' is not a console sender - * @see #isConsole() - */ - @Deprecated - default ConsoleSender asConsole() { - throw new ClassCastException("CommandSender is not the ConsoleSender"); - } } diff --git a/src/main/java/net/minestom/server/command/ConsoleSender.java b/src/main/java/net/minestom/server/command/ConsoleSender.java index d97bc82ae1c..c8f7392ec3f 100644 --- a/src/main/java/net/minestom/server/command/ConsoleSender.java +++ b/src/main/java/net/minestom/server/command/ConsoleSender.java @@ -45,16 +45,6 @@ public Set getAllPermissions() { return permissions; } - @Override - public boolean isConsole() { - return true; - } - - @Override - public ConsoleSender asConsole() { - return this; - } - @Override public @NotNull TagHandler tagHandler() { return tagHandler; diff --git a/src/main/java/net/minestom/server/command/builder/arguments/ArgumentEnum.java b/src/main/java/net/minestom/server/command/builder/arguments/ArgumentEnum.java index da100c8c5b8..b849ef7bee5 100644 --- a/src/main/java/net/minestom/server/command/builder/arguments/ArgumentEnum.java +++ b/src/main/java/net/minestom/server/command/builder/arguments/ArgumentEnum.java @@ -12,7 +12,7 @@ @SuppressWarnings("rawtypes") public class ArgumentEnum extends Argument { - public final static int NOT_ENUM_VALUE_ERROR = 1; + public static final int NOT_ENUM_VALUE_ERROR = 1; //Microtus - update java keyword usage private final Class enumClass; private final E[] values; diff --git a/src/main/java/net/minestom/server/command/builder/arguments/minecraft/ArgumentRange.java b/src/main/java/net/minestom/server/command/builder/arguments/minecraft/ArgumentRange.java index 5f53f6e8146..5316768207c 100644 --- a/src/main/java/net/minestom/server/command/builder/arguments/minecraft/ArgumentRange.java +++ b/src/main/java/net/minestom/server/command/builder/arguments/minecraft/ArgumentRange.java @@ -23,7 +23,7 @@ public abstract class ArgumentRange, N extends Number> extend private final Function parser; private final BiFunction rangeConstructor; - public ArgumentRange(@NotNull String id, N min, N max, Function parser, BiFunction rangeConstructor) { + ArgumentRange(@NotNull String id, N min, N max, Function parser, BiFunction rangeConstructor) { super(id); this.min = min; this.max = max; diff --git a/src/main/java/net/minestom/server/command/builder/arguments/minecraft/registry/ArgumentRegistry.java b/src/main/java/net/minestom/server/command/builder/arguments/minecraft/registry/ArgumentRegistry.java index 00dd4a9af15..3b39ee67505 100644 --- a/src/main/java/net/minestom/server/command/builder/arguments/minecraft/registry/ArgumentRegistry.java +++ b/src/main/java/net/minestom/server/command/builder/arguments/minecraft/registry/ArgumentRegistry.java @@ -9,9 +9,9 @@ public abstract class ArgumentRegistry extends Argument { public static final int INVALID_NAME = -2; - public ArgumentRegistry(String id) { + ArgumentRegistry(String id) { super(id); - } + } //Microtus - update java keyword usage public abstract T getRegistry(@NotNull String value); diff --git a/src/main/java/net/minestom/server/command/builder/arguments/relative/ArgumentRelativeVec.java b/src/main/java/net/minestom/server/command/builder/arguments/relative/ArgumentRelativeVec.java index 08374caa1ba..2e76a2bafd8 100644 --- a/src/main/java/net/minestom/server/command/builder/arguments/relative/ArgumentRelativeVec.java +++ b/src/main/java/net/minestom/server/command/builder/arguments/relative/ArgumentRelativeVec.java @@ -28,7 +28,7 @@ abstract class ArgumentRelativeVec extends Argument { private final int numberCount; - public ArgumentRelativeVec(@NotNull String id, int numberCount) { + ArgumentRelativeVec(@NotNull String id, int numberCount) { //Microtus - update java keyword usage super(id, true); this.numberCount = numberCount; } diff --git a/src/main/java/net/minestom/server/entity/Entity.java b/src/main/java/net/minestom/server/entity/Entity.java index 0fc87f342b6..e31e65f7534 100644 --- a/src/main/java/net/minestom/server/entity/Entity.java +++ b/src/main/java/net/minestom/server/entity/Entity.java @@ -1143,7 +1143,7 @@ protected void updatePose() { setPose(Pose.FALL_FLYING); } else if (entityMeta.isSwimming()) { setPose(Pose.SWIMMING); - } else if (entityMeta instanceof LivingEntityMeta livingMeta && livingMeta.isInRiptideSpinAttack()) { + } else if (this instanceof LivingEntity && entityMeta instanceof LivingEntityMeta && ((LivingEntityMeta) entityMeta).isInRiptideSpinAttack()) { setPose(Pose.SPIN_ATTACK); } else if (entityMeta.isSneaking()) { setPose(Pose.SNEAKING); diff --git a/src/main/java/net/minestom/server/entity/EntityProjectile.java b/src/main/java/net/minestom/server/entity/EntityProjectile.java index 6132577e365..f5548ce9d45 100644 --- a/src/main/java/net/minestom/server/entity/EntityProjectile.java +++ b/src/main/java/net/minestom/server/entity/EntityProjectile.java @@ -162,8 +162,8 @@ private boolean isStuck(Pos pos, Pos posNow) { chunk = currentChunk; entities = instance.getChunkEntities(chunk) .stream() - .filter(entity -> entity instanceof LivingEntity) - .map(entity -> (LivingEntity) entity) + .filter(LivingEntity.class::isInstance) //Microtus - update java keyword usage + .map(LivingEntity.class::cast) //Microtus - update java keyword usage .collect(Collectors.toSet()); } final Point currentPos = pos; diff --git a/src/main/java/net/minestom/server/entity/Player.java b/src/main/java/net/minestom/server/entity/Player.java index 77789101ee7..4967615440e 100644 --- a/src/main/java/net/minestom/server/entity/Player.java +++ b/src/main/java/net/minestom/server/entity/Player.java @@ -2324,16 +2324,6 @@ public void setLocale(@Nullable Locale locale) { return this.pointers; } - @Override - public boolean isPlayer() { - return true; - } - - @Override - public Player asPlayer() { - return this; - } - @Override protected void updateCollisions() { preventBlockPlacement = gameMode != GameMode.SPECTATOR; diff --git a/src/main/java/net/minestom/server/entity/PlayerSkin.java b/src/main/java/net/minestom/server/entity/PlayerSkin.java index fe85cf8ad30..88b81374aa5 100644 --- a/src/main/java/net/minestom/server/entity/PlayerSkin.java +++ b/src/main/java/net/minestom/server/entity/PlayerSkin.java @@ -60,20 +60,4 @@ public record PlayerSkin(String textures, String signature) { return null; } } - - /** - * @deprecated use {@link #textures()} - */ - @Deprecated - public String getTextures() { - return textures; - } - - /** - * @deprecated use {@link #signature()} - */ - @Deprecated - public String getSignature() { - return signature; - } } diff --git a/src/main/java/net/minestom/server/entity/ai/GoalSelector.java b/src/main/java/net/minestom/server/entity/ai/GoalSelector.java index e89698ad47e..3c3e48fc33e 100644 --- a/src/main/java/net/minestom/server/entity/ai/GoalSelector.java +++ b/src/main/java/net/minestom/server/entity/ai/GoalSelector.java @@ -2,6 +2,7 @@ import net.minestom.server.entity.Entity; import net.minestom.server.entity.EntityCreature; +import net.minestom.server.entity.LivingEntity; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -12,7 +13,7 @@ public abstract class GoalSelector { private WeakReference aiGroupWeakReference; protected EntityCreature entityCreature; - public GoalSelector(@NotNull EntityCreature entityCreature) { + protected GoalSelector(@NotNull EntityCreature entityCreature) { //Microtus - update java keyword usage this.entityCreature = entityCreature; } diff --git a/src/main/java/net/minestom/server/entity/ai/target/ClosestEntityTarget.java b/src/main/java/net/minestom/server/entity/ai/target/ClosestEntityTarget.java index 3775f1bf346..b046349be27 100644 --- a/src/main/java/net/minestom/server/entity/ai/target/ClosestEntityTarget.java +++ b/src/main/java/net/minestom/server/entity/ai/target/ClosestEntityTarget.java @@ -18,27 +18,6 @@ public class ClosestEntityTarget extends TargetSelector { private final double range; private final Predicate targetPredicate; - /** - * @param entityCreature the entity (self) - * @param range the maximum range the entity can target others within - * @param entitiesTarget the entities to target by class - * @deprecated Use {@link #ClosestEntityTarget(EntityCreature, double, Predicate)} - */ - @SafeVarargs - @Deprecated - public ClosestEntityTarget(@NotNull EntityCreature entityCreature, float range, - @NotNull Class... entitiesTarget) { - this(entityCreature, range, ent -> { - Class clazz = ent.getClass(); - for (Class targetClass : entitiesTarget) { - if (targetClass.isAssignableFrom(clazz)) { - return true; - } - } - return false; - }); - } - /** * @param entityCreature the entity (self) * @param range the maximum range the entity can target others within diff --git a/src/main/java/net/minestom/server/entity/metadata/EntityMeta.java b/src/main/java/net/minestom/server/entity/metadata/EntityMeta.java index 90b1663da75..11aa4444a50 100644 --- a/src/main/java/net/minestom/server/entity/metadata/EntityMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/EntityMeta.java @@ -14,13 +14,15 @@ public class EntityMeta { public static final byte OFFSET = 0; public static final byte MAX_OFFSET = OFFSET + 8; - private final static byte ON_FIRE_BIT = 0x01; - private final static byte CROUCHING_BIT = 0x02; - private final static byte SPRINTING_BIT = 0x08; - private final static byte SWIMMING_BIT = 0x10; - private final static byte INVISIBLE_BIT = 0x20; - private final static byte HAS_GLOWING_EFFECT_BIT = 0x40; - private final static byte FLYING_WITH_ELYTRA_BIT = (byte) 0x80; + //Microtus start - update java keyword usage + private static final byte ON_FIRE_BIT = 0x01; + private static final byte CROUCHING_BIT = 0x02; + private static final byte SPRINTING_BIT = 0x08; + private static final byte SWIMMING_BIT = 0x10; + private static final byte INVISIBLE_BIT = 0x20; + private static final byte HAS_GLOWING_EFFECT_BIT = 0x40; + private static final byte FLYING_WITH_ELYTRA_BIT = (byte) 0x80; + //Microtus end - update java keyword usage private final WeakReference entityRef; protected final MetadataHolder metadata; diff --git a/src/main/java/net/minestom/server/entity/metadata/LivingEntityMeta.java b/src/main/java/net/minestom/server/entity/metadata/LivingEntityMeta.java index d6b2ab27732..193b144cebd 100644 --- a/src/main/java/net/minestom/server/entity/metadata/LivingEntityMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/LivingEntityMeta.java @@ -15,9 +15,11 @@ public class LivingEntityMeta extends EntityMeta { public static final byte OFFSET = EntityMeta.MAX_OFFSET; public static final byte MAX_OFFSET = OFFSET + 7; - private final static byte IS_HAND_ACTIVE_BIT = 0x01; - private final static byte ACTIVE_HAND_BIT = 0x02; - private final static byte IS_IN_SPIN_ATTACK_BIT = 0x04; + //Microtus start - update java keyword usage + private static final byte IS_HAND_ACTIVE_BIT = 0x01; + private static final byte ACTIVE_HAND_BIT = 0x02; + private static final byte IS_IN_SPIN_ATTACK_BIT = 0x04; + //Microtus end - update java keyword usage protected LivingEntityMeta(@NotNull Entity entity, @NotNull MetadataHolder metadata) { super(entity, metadata); diff --git a/src/main/java/net/minestom/server/entity/metadata/MobMeta.java b/src/main/java/net/minestom/server/entity/metadata/MobMeta.java index 045b8d8fcc5..47d99a20a6d 100644 --- a/src/main/java/net/minestom/server/entity/metadata/MobMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/MobMeta.java @@ -8,9 +8,11 @@ public class MobMeta extends LivingEntityMeta { public static final byte OFFSET = LivingEntityMeta.MAX_OFFSET; public static final byte MAX_OFFSET = OFFSET + 1; - private final static byte NO_AI_BIT = 0x01; - private final static byte IS_LEFT_HANDED_BIT = 0x02; - private final static byte IS_AGGRESSIVE_BIT = 0x04; + //Microtus start - update java keyword usage + private static final byte NO_AI_BIT = 0x01; + private static final byte IS_LEFT_HANDED_BIT = 0x02; + private static final byte IS_AGGRESSIVE_BIT = 0x04; + //Microtus end - update java keyword usage protected MobMeta(@NotNull Entity entity, @NotNull MetadataHolder metadata) { super(entity, metadata); diff --git a/src/main/java/net/minestom/server/entity/metadata/PlayerMeta.java b/src/main/java/net/minestom/server/entity/metadata/PlayerMeta.java index b60b27fb0f4..54ca81fe192 100644 --- a/src/main/java/net/minestom/server/entity/metadata/PlayerMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/PlayerMeta.java @@ -12,13 +12,15 @@ public class PlayerMeta extends LivingEntityMeta { public static final byte OFFSET = LivingEntityMeta.MAX_OFFSET; public static final byte MAX_OFFSET = OFFSET + 5; - private final static byte CAPE_BIT = 0x01; - private final static byte JACKET_BIT = 0x02; - private final static byte LEFT_SLEEVE_BIT = 0x04; - private final static byte RIGHT_SLEEVE_BIT = 0x08; - private final static byte LEFT_LEG_BIT = 0x10; - private final static byte RIGHT_LEG_BIT = 0x20; - private final static byte HAT_BIT = 0x40; + //Microtus start - update java keyword usage + private static final byte CAPE_BIT = 0x01; + private static final byte JACKET_BIT = 0x02; + private static final byte LEFT_SLEEVE_BIT = 0x04; + private static final byte RIGHT_SLEEVE_BIT = 0x08; + private static final byte LEFT_LEG_BIT = 0x10; + private static final byte RIGHT_LEG_BIT = 0x20; + private static final byte HAT_BIT = 0x40; + //Microtus end - update java keyword usage public PlayerMeta(@NotNull Entity entity, @NotNull MetadataHolder metadata) { super(entity, metadata); diff --git a/src/main/java/net/minestom/server/entity/metadata/ambient/BatMeta.java b/src/main/java/net/minestom/server/entity/metadata/ambient/BatMeta.java index 69aa84ebb3b..4c2866d0950 100644 --- a/src/main/java/net/minestom/server/entity/metadata/ambient/BatMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/ambient/BatMeta.java @@ -8,7 +8,7 @@ public class BatMeta extends AmbientCreatureMeta { public static final byte OFFSET = AmbientCreatureMeta.MAX_OFFSET; public static final byte MAX_OFFSET = OFFSET + 0; - private final static byte IS_HANGING_BIT = 0x01; + private static final byte IS_HANGING_BIT = 0x01; //Microtus - update java keyword usage public BatMeta(@NotNull Entity entity, @NotNull MetadataHolder metadata) { super(entity, metadata); diff --git a/src/main/java/net/minestom/server/entity/metadata/animal/AbstractHorseMeta.java b/src/main/java/net/minestom/server/entity/metadata/animal/AbstractHorseMeta.java index cf607bd6cb5..a42e6dd73fc 100644 --- a/src/main/java/net/minestom/server/entity/metadata/animal/AbstractHorseMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/animal/AbstractHorseMeta.java @@ -8,12 +8,14 @@ public class AbstractHorseMeta extends AnimalMeta { public static final byte OFFSET = AnimalMeta.MAX_OFFSET; public static final byte MAX_OFFSET = OFFSET + 1; - private final static byte TAMED_BIT = 0x02; - private final static byte SADDLED_BIT = 0x04; - private final static byte HAS_BRED_BIT = 0x08; - private final static byte EATING_BIT = 0x10; - private final static byte REARING_BIT = 0x20; - private final static byte MOUTH_OPEN_BIT = 0x40; + //Microtus start - update java keyword usage + private static final byte TAMED_BIT = 0x02; + private static final byte SADDLED_BIT = 0x04; + private static final byte HAS_BRED_BIT = 0x08; + private static final byte EATING_BIT = 0x10; + private static final byte REARING_BIT = 0x20; + private static final byte MOUTH_OPEN_BIT = 0x40; + //Microtus end - update java keyword usage protected AbstractHorseMeta(@NotNull Entity entity, @NotNull MetadataHolder metadata) { super(entity, metadata); diff --git a/src/main/java/net/minestom/server/entity/metadata/animal/BeeMeta.java b/src/main/java/net/minestom/server/entity/metadata/animal/BeeMeta.java index d65538d79d6..9cbb7f62ecc 100644 --- a/src/main/java/net/minestom/server/entity/metadata/animal/BeeMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/animal/BeeMeta.java @@ -9,9 +9,11 @@ public class BeeMeta extends AnimalMeta { public static final byte OFFSET = AnimalMeta.MAX_OFFSET; public static final byte MAX_OFFSET = OFFSET + 2; - private final static byte ANGRY_BIT = 0x02; - private final static byte HAS_STUNG_BIT = 0x04; - private final static byte HAS_NECTAR_BIT = 0x08; + //Microtus start - update java keyword usage + private static final byte ANGRY_BIT = 0x02; + private static final byte HAS_STUNG_BIT = 0x04; + private static final byte HAS_NECTAR_BIT = 0x08; + //Microtus end - update java keyword usage public BeeMeta(@NotNull Entity entity, @NotNull MetadataHolder metadata) { super(entity, metadata); diff --git a/src/main/java/net/minestom/server/entity/metadata/animal/FoxMeta.java b/src/main/java/net/minestom/server/entity/metadata/animal/FoxMeta.java index b7cb5c17c2e..84e6e3ef95a 100644 --- a/src/main/java/net/minestom/server/entity/metadata/animal/FoxMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/animal/FoxMeta.java @@ -12,13 +12,15 @@ public class FoxMeta extends AnimalMeta { public static final byte OFFSET = AnimalMeta.MAX_OFFSET; public static final byte MAX_OFFSET = OFFSET + 4; - private final static byte SITTING_BIT = 0x01; - private final static byte CROUCHING_BIT = 0x04; - private final static byte INTERESTED_BIT = 0x08; - private final static byte POUNCING_BIT = 0x10; - private final static byte SLEEPING_BIT = 0x20; - private final static byte FACEPLANTED_BIT = 0x40; - private final static byte DEFENDING_BIT = (byte) 0x80; + //Microtus start - update java keyword usage + private static final byte SITTING_BIT = 0x01; + private static final byte CROUCHING_BIT = 0x04; + private static final byte INTERESTED_BIT = 0x08; + private static final byte POUNCING_BIT = 0x10; + private static final byte SLEEPING_BIT = 0x20; + private static final byte FACEPLANTED_BIT = 0x40; + private static final byte DEFENDING_BIT = (byte) 0x80; + //Microtus end - update java keyword usage public FoxMeta(@NotNull Entity entity, @NotNull MetadataHolder metadata) { super(entity, metadata); @@ -111,7 +113,7 @@ public enum Type { RED, SNOW; - private final static Type[] VALUES = values(); + private static final Type[] VALUES = values(); } } diff --git a/src/main/java/net/minestom/server/entity/metadata/animal/FrogMeta.java b/src/main/java/net/minestom/server/entity/metadata/animal/FrogMeta.java index 40dbf21090c..5110d383c02 100644 --- a/src/main/java/net/minestom/server/entity/metadata/animal/FrogMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/animal/FrogMeta.java @@ -15,24 +15,48 @@ public FrogMeta(@NotNull Entity entity, @NotNull MetadataHolder metadata) { super(entity, metadata); } - public Variant getVariant() { + /** + * Get the current {@link Variant} from a frog. + * @return the given variant entry + */ + public @NotNull Variant getVariant() { return super.metadata.getIndex(OFFSET, Variant.TEMPERATE); } + /** + * Set the variant for a frog. + * @param value the value to set + */ public void setVariant(@NotNull Variant value) { super.metadata.setIndex(OFFSET, Metadata.FrogVariant(value)); } - public @Nullable Integer getTongueTarget() { - return super.metadata.getIndex(OFFSET + 1, null); + /** + * Get the current tongue target value. + * @return the given value + */ + public int getTongueTarget() { + return super.metadata.getIndex(OFFSET + 1, 0); } + /** + * Set's the current tongue target back to the default value from the protocol. + */ + public void resetTongueTarget() { + super.metadata.setIndex(OFFSET + 1, Metadata.VarInt(0)); + } - public void setTongueTarget(@Nullable Integer value) { + /** + * Set the target value for a tongue. + * @param value the target to set + */ + public void setTongueTarget(int value) { super.metadata.setIndex(OFFSET + 1, Metadata.OptVarInt(value)); } - + /** + * The enum contains all variants from a frog which are currently implemented in the game. + */ public enum Variant { TEMPERATE, WARM, diff --git a/src/main/java/net/minestom/server/entity/metadata/animal/GoatMeta.java b/src/main/java/net/minestom/server/entity/metadata/animal/GoatMeta.java index 81ee50d5940..12f60559f10 100644 --- a/src/main/java/net/minestom/server/entity/metadata/animal/GoatMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/animal/GoatMeta.java @@ -21,6 +21,7 @@ public void setScreaming(boolean screaming) { metadata.setIndex(OFFSET, Metadata.Boolean(screaming)); } + // Microtus start - meta update public boolean hasLeftHorn() { return metadata.getIndex(OFFSET + 1, true); } @@ -36,4 +37,5 @@ public boolean hasRightHorn() { public void setRightHorn(boolean rightHorn) { metadata.setIndex(OFFSET + 2, Metadata.Boolean(rightHorn)); } + // Microtus end - meta update } diff --git a/src/main/java/net/minestom/server/entity/metadata/animal/HorseMeta.java b/src/main/java/net/minestom/server/entity/metadata/animal/HorseMeta.java index fb98e5e06d7..21a2c88904a 100644 --- a/src/main/java/net/minestom/server/entity/metadata/animal/HorseMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/animal/HorseMeta.java @@ -69,7 +69,7 @@ public enum Marking { WHITE_DOTS, BLACK_DOTS; - private final static Marking[] VALUES = values(); + private static final Marking[] VALUES = values(); //Microtus - update java keyword usage } public enum Color { @@ -81,7 +81,6 @@ public enum Color { GRAY, DARK_BROWN; - private final static Color[] VALUES = values(); + private static final Color[] VALUES = values(); //Microtus - update java keyword usage } - } diff --git a/src/main/java/net/minestom/server/entity/metadata/animal/LlamaMeta.java b/src/main/java/net/minestom/server/entity/metadata/animal/LlamaMeta.java index 44b11667d27..62ec398ea79 100644 --- a/src/main/java/net/minestom/server/entity/metadata/animal/LlamaMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/animal/LlamaMeta.java @@ -43,7 +43,6 @@ public enum Variant { BROWN, GRAY; - private final static Variant[] VALUES = values(); + private static final Variant[] VALUES = values(); //Microtus - update java keyword usage } - } diff --git a/src/main/java/net/minestom/server/entity/metadata/animal/PandaMeta.java b/src/main/java/net/minestom/server/entity/metadata/animal/PandaMeta.java index a915857572f..cbf91f3aaff 100644 --- a/src/main/java/net/minestom/server/entity/metadata/animal/PandaMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/animal/PandaMeta.java @@ -9,10 +9,12 @@ public class PandaMeta extends AnimalMeta { public static final byte OFFSET = AnimalMeta.MAX_OFFSET; public static final byte MAX_OFFSET = OFFSET + 6; - private final static byte SNEEZING_BIT = 0x02; - private final static byte ROLLING_BIT = 0x04; - private final static byte SITTING_BIT = 0x08; - private final static byte ON_BACK_BIT = 0x10; + //Microtus start - update java keyword usage + private static final byte SNEEZING_BIT = 0x02; + private static final byte ROLLING_BIT = 0x04; + private static final byte SITTING_BIT = 0x08; + private static final byte ON_BACK_BIT = 0x10; + //Microtus end - update java keyword usage public PandaMeta(@NotNull Entity entity, @NotNull MetadataHolder metadata) { super(entity, metadata); diff --git a/src/main/java/net/minestom/server/entity/metadata/animal/SheepMeta.java b/src/main/java/net/minestom/server/entity/metadata/animal/SheepMeta.java index b20e25e9a64..ea127614ec9 100644 --- a/src/main/java/net/minestom/server/entity/metadata/animal/SheepMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/animal/SheepMeta.java @@ -8,8 +8,10 @@ public class SheepMeta extends AnimalMeta { public static final byte OFFSET = AnimalMeta.MAX_OFFSET; public static final byte MAX_OFFSET = OFFSET + 1; - private final static byte COLOR_BITS = 0x0F; - private final static byte SHEARED_BIT = 0x10; + //Microtus start - update java keyword usage + private static final byte COLOR_BITS = 0x0F; + private static final byte SHEARED_BIT = 0x10; + //Microtus end - update java keyword usage public SheepMeta(@NotNull Entity entity, @NotNull MetadataHolder metadata) { super(entity, metadata); diff --git a/src/main/java/net/minestom/server/entity/metadata/display/AbstractDisplayMeta.java b/src/main/java/net/minestom/server/entity/metadata/display/AbstractDisplayMeta.java index 1c8e0c9eb46..bdba2ec4402 100644 --- a/src/main/java/net/minestom/server/entity/metadata/display/AbstractDisplayMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/display/AbstractDisplayMeta.java @@ -145,7 +145,6 @@ public enum BillboardConstraints { HORIZONTAL, CENTER; - private final static BillboardConstraints[] VALUES = values(); + private static final BillboardConstraints[] VALUES = values(); //Microtus - update java keyword usage } - } diff --git a/src/main/java/net/minestom/server/entity/metadata/display/ItemDisplayMeta.java b/src/main/java/net/minestom/server/entity/metadata/display/ItemDisplayMeta.java index 0ac24b14382..1d2b93f5954 100644 --- a/src/main/java/net/minestom/server/entity/metadata/display/ItemDisplayMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/display/ItemDisplayMeta.java @@ -41,7 +41,7 @@ public enum DisplayContext { GROUND, FIXED; - private final static DisplayContext[] VALUES = values(); + private static final DisplayContext[] VALUES = values(); //Microtus - update java keyword usage } } diff --git a/src/main/java/net/minestom/server/entity/metadata/golem/IronGolemMeta.java b/src/main/java/net/minestom/server/entity/metadata/golem/IronGolemMeta.java index a82131c984d..9ce3966e9a5 100644 --- a/src/main/java/net/minestom/server/entity/metadata/golem/IronGolemMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/golem/IronGolemMeta.java @@ -7,8 +7,7 @@ public class IronGolemMeta extends AbstractGolemMeta { public static final byte OFFSET = AbstractGolemMeta.MAX_OFFSET; public static final byte MAX_OFFSET = OFFSET + 1; - - private final static byte PLAYER_CREATED_BIT = 0x01; + private static final byte PLAYER_CREATED_BIT = 0x01; //Microtus - update java keyword usage public IronGolemMeta(@NotNull Entity entity, @NotNull MetadataHolder metadata) { super(entity, metadata); diff --git a/src/main/java/net/minestom/server/entity/metadata/monster/BlazeMeta.java b/src/main/java/net/minestom/server/entity/metadata/monster/BlazeMeta.java index 5690a553c96..a5fab29ff42 100644 --- a/src/main/java/net/minestom/server/entity/metadata/monster/BlazeMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/monster/BlazeMeta.java @@ -7,8 +7,7 @@ public class BlazeMeta extends MonsterMeta { public static final byte OFFSET = MonsterMeta.MAX_OFFSET; public static final byte MAX_OFFSET = OFFSET + 1; - - private final static byte ON_FIRE_BIT = 0x01; + private static final byte ON_FIRE_BIT = 0x01; //Microtus - update java keyword usage public BlazeMeta(@NotNull Entity entity, @NotNull MetadataHolder metadata) { super(entity, metadata); diff --git a/src/main/java/net/minestom/server/entity/metadata/monster/SpiderMeta.java b/src/main/java/net/minestom/server/entity/metadata/monster/SpiderMeta.java index d5e2accf563..f2bd7c63bb3 100644 --- a/src/main/java/net/minestom/server/entity/metadata/monster/SpiderMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/monster/SpiderMeta.java @@ -7,8 +7,7 @@ public class SpiderMeta extends MonsterMeta { public static final byte OFFSET = MonsterMeta.MAX_OFFSET; public static final byte MAX_OFFSET = OFFSET + 1; - - private final static byte CLIMBING_BIT = 0x01; + private static final byte CLIMBING_BIT = 0x01; //Microtus - update java keyword usage public SpiderMeta(@NotNull Entity entity, @NotNull MetadataHolder metadata) { super(entity, metadata); diff --git a/src/main/java/net/minestom/server/entity/metadata/monster/VexMeta.java b/src/main/java/net/minestom/server/entity/metadata/monster/VexMeta.java index 9a74b0867e7..2b44ac08305 100644 --- a/src/main/java/net/minestom/server/entity/metadata/monster/VexMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/monster/VexMeta.java @@ -7,8 +7,7 @@ public class VexMeta extends MonsterMeta { public static final byte OFFSET = MonsterMeta.MAX_OFFSET; public static final byte MAX_OFFSET = OFFSET + 1; - - private final static byte ATTACKING_BIT = 0x01; + private static final byte ATTACKING_BIT = 0x01; //Microtus - update java keyword usage public VexMeta(@NotNull Entity entity, @NotNull MetadataHolder metadata) { super(entity, metadata); diff --git a/src/main/java/net/minestom/server/entity/metadata/monster/WardenMeta.java b/src/main/java/net/minestom/server/entity/metadata/monster/WardenMeta.java index 540fa9d5f2a..05237bf473c 100644 --- a/src/main/java/net/minestom/server/entity/metadata/monster/WardenMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/monster/WardenMeta.java @@ -5,21 +5,41 @@ import net.minestom.server.entity.MetadataHolder; import org.jetbrains.annotations.NotNull; +// Microtus - entity meta update +/** + * This metadata implementation can be used for a warden entity. + * @author theEvilReaper + * @version 1.0.0 + * @since 1.0.0 + **/ public class WardenMeta extends MonsterMeta { public static final byte OFFSET = MonsterMeta.MAX_OFFSET; public static final byte MAX_OFFSET = OFFSET + 1; + + /** + * Creates a new metadata which can be set to a warden entity. + * @param entity the warden entity reference + * @param metadata the reference to a {@link Metadata} + */ public WardenMeta(@NotNull Entity entity, @NotNull MetadataHolder metadata) { super(entity, metadata); } - public int getAngerLevel() { - return super.metadata.getIndex(OFFSET, 0); - } - + /** + * Set the anger level for a warden. + * @param value the level to set + */ public void setAngerLevel(int value) { super.metadata.setIndex(OFFSET, Metadata.VarInt(value)); } + /** + * Returns the given anger level from the meta or zero as default value if no value is set. + * @return the given level + */ + public int getAngerLevel() { + return super.metadata.getIndex(OFFSET, 0); + } } diff --git a/src/main/java/net/minestom/server/entity/metadata/monster/raider/PillagerMeta.java b/src/main/java/net/minestom/server/entity/metadata/monster/raider/PillagerMeta.java index b5de1e35451..1c0e3d6c9f5 100644 --- a/src/main/java/net/minestom/server/entity/metadata/monster/raider/PillagerMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/monster/raider/PillagerMeta.java @@ -13,12 +13,21 @@ public PillagerMeta(@NotNull Entity entity, @NotNull MetadataHolder metadata) { super(entity, metadata); } - public boolean isChargingCrossbow() { - return super.metadata.getIndex(OFFSET, false); - } - + // Microtus start - meta update + /** + * Set the state if a Pillager charge his crossbow. + * @param value the value to set + */ public void setChargingCrossbow(boolean value) { super.metadata.setIndex(OFFSET, Metadata.Boolean(value)); } + /** + * Returns a boolean value if a Pillager is charging his crossbow. + * @return true when yes otherwise false + */ + public boolean isChargingCrossbow() { + return super.metadata.getIndex(OFFSET, false); + } + // Microtus end - meta update } diff --git a/src/main/java/net/minestom/server/entity/metadata/other/ArmorStandMeta.java b/src/main/java/net/minestom/server/entity/metadata/other/ArmorStandMeta.java index aedc5f58469..c1f53492724 100644 --- a/src/main/java/net/minestom/server/entity/metadata/other/ArmorStandMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/other/ArmorStandMeta.java @@ -11,10 +11,12 @@ public class ArmorStandMeta extends LivingEntityMeta { public static final byte OFFSET = LivingEntityMeta.MAX_OFFSET; public static final byte MAX_OFFSET = OFFSET + 7; - private final static byte IS_SMALL_BIT = 0x01; - private final static byte HAS_ARMS_BIT = 0x04; - private final static byte HAS_NO_BASE_PLATE_BIT = 0x08; - private final static byte IS_MARKER_BIT = 0x10; + //Microtus start - update java keyword usage + private static final byte IS_SMALL_BIT = 0x01; + private static final byte HAS_ARMS_BIT = 0x04; + private static final byte HAS_NO_BASE_PLATE_BIT = 0x08; + private static final byte IS_MARKER_BIT = 0x10; + //Microtus end - update java keyword usage public ArmorStandMeta(@NotNull Entity entity, @NotNull MetadataHolder metadata) { super(entity, metadata); diff --git a/src/main/java/net/minestom/server/entity/metadata/other/BoatMeta.java b/src/main/java/net/minestom/server/entity/metadata/other/BoatMeta.java index f1c954cdf2e..a0a3d02ff95 100644 --- a/src/main/java/net/minestom/server/entity/metadata/other/BoatMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/other/BoatMeta.java @@ -82,7 +82,7 @@ public enum Type { MANGROVE, BAMBOO; - private final static Type[] VALUES = values(); + private static final Type[] VALUES = values(); } } diff --git a/src/main/java/net/minestom/server/entity/metadata/other/EnderDragonMeta.java b/src/main/java/net/minestom/server/entity/metadata/other/EnderDragonMeta.java index 8713235d56b..931be9044f3 100644 --- a/src/main/java/net/minestom/server/entity/metadata/other/EnderDragonMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/other/EnderDragonMeta.java @@ -36,7 +36,6 @@ public enum Phase { FLYING_TO_THE_PORTAL_TO_DIE, HOVERING_WITHOUT_AI; - private final static Phase[] VALUES = values(); + private static final Phase[] VALUES = values(); //Microtus - update java keyword usage } - } diff --git a/src/main/java/net/minestom/server/entity/metadata/projectile/AbstractArrowMeta.java b/src/main/java/net/minestom/server/entity/metadata/projectile/AbstractArrowMeta.java index 649223612e0..53b50c7eb67 100644 --- a/src/main/java/net/minestom/server/entity/metadata/projectile/AbstractArrowMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/projectile/AbstractArrowMeta.java @@ -10,8 +10,10 @@ public class AbstractArrowMeta extends EntityMeta { public static final byte OFFSET = EntityMeta.MAX_OFFSET; public static final byte MAX_OFFSET = OFFSET + 2; - private final static byte CRITICAL_BIT = 0x01; - private final static byte NO_CLIP_BIT = 0x02; + //Microtus start - update java keyword usage + private static final byte CRITICAL_BIT = 0x01; + private static final byte NO_CLIP_BIT = 0x02; + //Microtus end - update java keyword usage protected AbstractArrowMeta(@NotNull Entity entity, @NotNull MetadataHolder metadata) { super(entity, metadata); diff --git a/src/main/java/net/minestom/server/entity/metadata/water/AxolotlMeta.java b/src/main/java/net/minestom/server/entity/metadata/water/AxolotlMeta.java index 92bff5a722e..68c68bce3fb 100644 --- a/src/main/java/net/minestom/server/entity/metadata/water/AxolotlMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/water/AxolotlMeta.java @@ -45,6 +45,6 @@ public enum Variant { CYAN, BLUE; - private final static AxolotlMeta.Variant[] VALUES = values(); + private static final AxolotlMeta.Variant[] VALUES = values(); //Microtus - update java keyword usage } } diff --git a/src/main/java/net/minestom/server/entity/metadata/water/DolphinMeta.java b/src/main/java/net/minestom/server/entity/metadata/water/DolphinMeta.java index 8ecd228dbc1..bc37f0b2cfa 100644 --- a/src/main/java/net/minestom/server/entity/metadata/water/DolphinMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/water/DolphinMeta.java @@ -11,32 +11,70 @@ public class DolphinMeta extends WaterAnimalMeta { public static final byte OFFSET = WaterAnimalMeta.MAX_OFFSET; public static final byte MAX_OFFSET = OFFSET + 3; + /** + * Creates a new meta data for a dolphin. + * @param entity the involved entity + * @param metadata the base metadata + */ public DolphinMeta(@NotNull Entity entity, @NotNull MetadataHolder metadata) { super(entity, metadata); } - @NotNull - public Point getTreasurePosition() { + /** + * Get the given destination point for a treasure. + * @return the point or {@link Vec#ZERO} when no point is set + */ + public @NotNull Point getTreasurePosition() { return super.metadata.getIndex(OFFSET, Vec.ZERO); } + /** + * Set the destination point to lead a player to a treasure. + * @param value the point to set + */ public void setTreasurePosition(@NotNull Point value) { super.metadata.setIndex(OFFSET, Metadata.BlockPosition(value)); } + /** + * Returns an indicator if a Dolphin received a fish from a player. + * @return true when yes otherwise false + */ + @Deprecated + public boolean hasFish() { + return super.metadata.getIndex(OFFSET + 1, false); + } + + /** + * Returns an indicator if a Dolphin received a fish from a player. + * @return true when yes otherwise false + */ public boolean isHasFish() { return super.metadata.getIndex(OFFSET + 1, false); } + /** + * Set the indicator if a Dolphin got a fish from a player. + * @param value the value to set + */ public void setHasFish(boolean value) { super.metadata.setIndex(OFFSET + 1, Metadata.Boolean(value)); } + /** + * Get the current moisture level. + * @return the given level + */ public int getMoistureLevel() { return super.metadata.getIndex(OFFSET + 2, 2400); } - public void setMoistureLevel(int value) { - super.metadata.setIndex(OFFSET + 2, Metadata.VarInt(value)); + /** + * Updates the given moisture level. + * @param level the level to set + */ + public void setMoistureLevel(int level) { + super.metadata.setIndex(OFFSET + 2, Metadata.VarInt(level)); } + } diff --git a/src/main/java/net/minestom/server/entity/metadata/water/fish/TadpoleMeta.java b/src/main/java/net/minestom/server/entity/metadata/water/fish/TadpoleMeta.java index 808197a1f8e..466e766d595 100644 --- a/src/main/java/net/minestom/server/entity/metadata/water/fish/TadpoleMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/water/fish/TadpoleMeta.java @@ -4,12 +4,18 @@ import net.minestom.server.entity.MetadataHolder; import org.jetbrains.annotations.NotNull; -public class TadpoleMeta extends AbstractFishMeta { - public static final byte OFFSET = AbstractFishMeta.MAX_OFFSET; - public static final byte MAX_OFFSET = OFFSET + 0; +// Microtus - entity meta update +/** + * Metadata implementation for a Tadpole entity. + */ +public final class TadpoleMeta extends AbstractFishMeta { + /** + * Creates a new reference from this meta. + * @param entity the involved entity + * @param metadata the involved metadata + */ public TadpoleMeta(@NotNull Entity entity, @NotNull MetadataHolder metadata) { super(entity, metadata); } - } diff --git a/src/main/java/net/minestom/server/event/instance/InstanceWorldPositionChangeEvent.java b/src/main/java/net/minestom/server/event/instance/InstanceWorldPositionChangeEvent.java new file mode 100644 index 00000000000..d7ef61eaed4 --- /dev/null +++ b/src/main/java/net/minestom/server/event/instance/InstanceWorldPositionChangeEvent.java @@ -0,0 +1,60 @@ +package net.minestom.server.event.instance; + +import net.minestom.server.coordinate.Pos; +import net.minestom.server.event.trait.InstanceEvent; +import net.minestom.server.instance.Instance; +import org.jetbrains.annotations.NotNull; + +//Microtus start - integrate world spawn position +/** + * The event is triggered by the server when an instance successfully changes its world spawn position. + * By implementing a listener for this event, developers can track changes to a world's spawn position initiated by instances during runtime. + * @author theEvilReaper + * @version 1.0.0 + * @since 1.1.3 + */ +public class InstanceWorldPositionChangeEvent implements InstanceEvent { + + private final Instance instance; + private final Pos oldPosition; + + /** + * Constructs a new {@code InstanceWorldPositionChangeEvent} with the specified parameters. + * + * @param instance the involved instance + * @param oldPosition the old position of the instance before the change + */ + public InstanceWorldPositionChangeEvent(@NotNull Instance instance, @NotNull Pos oldPosition) { + this.instance = instance; + this.oldPosition = oldPosition; + } + + /** + * Gets the new position of the instance after the change. + * + * @return the new position + */ + public @NotNull Pos getNewPosition() { + return instance.getWorldSpawnPosition(); + } + + /** + * Gets the old position of the instance before the change. + * + * @return the old position + */ + public @NotNull Pos getOldPosition() { + return oldPosition; + } + + /** + * Gets the instance which received a world position change. + * + * @return the involved instance + */ + @Override + public @NotNull Instance getInstance() { + return instance; + } +} +//Microtus end - integrate world spawn position \ No newline at end of file diff --git a/src/main/java/net/minestom/server/event/player/PlayerEatEvent.java b/src/main/java/net/minestom/server/event/player/PlayerEatEvent.java index b45665fb719..71d3c37edba 100644 --- a/src/main/java/net/minestom/server/event/player/PlayerEatEvent.java +++ b/src/main/java/net/minestom/server/event/player/PlayerEatEvent.java @@ -21,17 +21,6 @@ public PlayerEatEvent(@NotNull Player player, @NotNull ItemStack foodItem, @NotN this.hand = hand; } - /** - * Gets the food item that has been eaten. - * - * @return the food item - * @deprecated use getItemStack() for the eaten item - */ - @Deprecated - public @NotNull ItemStack getFoodItem() { - return foodItem; - } - public @NotNull Player.Hand getHand() { return hand; } diff --git a/src/main/java/net/minestom/server/event/player/PlayerPreEatEvent.java b/src/main/java/net/minestom/server/event/player/PlayerPreEatEvent.java index abf6b633671..5531c7ac14b 100644 --- a/src/main/java/net/minestom/server/event/player/PlayerPreEatEvent.java +++ b/src/main/java/net/minestom/server/event/player/PlayerPreEatEvent.java @@ -28,17 +28,6 @@ public PlayerPreEatEvent(@NotNull Player player, @NotNull ItemStack foodItem, @N this.eatingTime = eatingTime; } - /** - * The food item which will be eaten. - * - * @return the food item - * @deprecated use getItemStack() for the eaten item - */ - @Deprecated - public @NotNull ItemStack getFoodItem() { - return foodItem; - } - public @NotNull Player.Hand getHand() { return hand; } diff --git a/src/main/java/net/minestom/server/exception/ExceptionManager.java b/src/main/java/net/minestom/server/exception/ExceptionManager.java index 1ee7870e905..14b2d21a3d2 100644 --- a/src/main/java/net/minestom/server/exception/ExceptionManager.java +++ b/src/main/java/net/minestom/server/exception/ExceptionManager.java @@ -2,12 +2,16 @@ import net.minestom.server.MinecraftServer; import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Manages the handling of exceptions. */ public final class ExceptionManager { + private static final Logger LOGGER = LoggerFactory.getLogger(ExceptionManager.class); + private ExceptionHandler exceptionHandler; /** @@ -18,7 +22,7 @@ public final class ExceptionManager { public void handleException(Throwable e) { if (e instanceof OutOfMemoryError) { // OOM should be handled manually - e.printStackTrace(); + LOGGER.error("OOM error", e); MinecraftServer.stopCleanly(); return; } diff --git a/src/main/java/net/minestom/server/extensions/DiscoveredExtension.java b/src/main/java/net/minestom/server/extensions/DiscoveredExtension.java new file mode 100644 index 00000000000..1239990db64 --- /dev/null +++ b/src/main/java/net/minestom/server/extensions/DiscoveredExtension.java @@ -0,0 +1,236 @@ +package net.minestom.server.extensions; + +import com.google.gson.JsonObject; +import net.minestom.server.utils.validate.Check; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.File; +import java.net.URL; +import java.nio.file.Path; +import java.util.LinkedList; +import java.util.List; + +/** + * Represents an extension from an `extension.json` that is capable of powering an Extension object. + * + * This has no constructor as its properties are set via GSON. + */ +public final class DiscoveredExtension { + /** Static logger for this class. */ + public static final Logger LOGGER = LoggerFactory.getLogger(DiscoveredExtension.class); + + /** The regex that this name must pass. If it doesn't, it will not be accepted. */ + public static final String NAME_REGEX = "[A-Za-z][_A-Za-z0-9]+"; + + /** Name of the DiscoveredExtension. Unique for all extensions. */ + private String name; + + /** Main class of this DiscoveredExtension, must extend Extension. */ + private String entrypoint; + + /** Version of this extension, highly reccomended to set it. */ + private String version; + + /** People who have made this extension. */ + private String[] authors; + + /** List of extension names that this depends on. */ + private String[] dependencies; + + /** List of Repositories and URLs that this depends on. */ + private ExternalDependencies externalDependencies; + + /** + * Extra meta on the object. + * Do NOT use as configuration: + * + * Meta is meant to handle properties that will + * be accessed by other extensions, not accessed by itself + */ + private JsonObject meta; + + /** All files of this extension */ + transient List files = new LinkedList<>(); + + /** The load status of this extension -- LOAD_SUCCESS is the only good one. */ + transient LoadStatus loadStatus = LoadStatus.LOAD_SUCCESS; + + /** The original jar this is from. */ + transient private File originalJar; + + transient private Path dataDirectory; + + /** The class loader that powers it. */ + transient private ExtensionClassLoader classLoader; + + @NotNull + public String getName() { + return name; + } + + @NotNull + public String getEntrypoint() { + return entrypoint; + } + + @NotNull + public String getVersion() { + return version; + } + + @NotNull + public String[] getAuthors() { + return authors; + } + + @NotNull + public String[] getDependencies() { + return dependencies; + } + + @NotNull + public ExternalDependencies getExternalDependencies() { + return externalDependencies; + } + + public void setOriginalJar(@Nullable File file) { + originalJar = file; + } + + @Nullable + public File getOriginalJar() { + return originalJar; + } + + public @NotNull Path getDataDirectory() { + return dataDirectory; + } + + public void setDataDirectory(@NotNull Path dataDirectory) { + this.dataDirectory = dataDirectory; + } + + void createClassLoader() { + Check.stateCondition(classLoader != null, "Extension classloader has already been created"); + final URL[] urls = this.files.toArray(new URL[0]); + classLoader = new ExtensionClassLoader(this.getName(), urls, this); + } + + @NotNull + public ExtensionClassLoader getClassLoader() { + return classLoader; + } + + /** + * Ensures that all properties of this extension are properly set if they aren't + * + * @param extension The extension to verify + */ + public static void verifyIntegrity(@NotNull DiscoveredExtension extension) { + if (extension.name == null) { + StringBuilder fileList = new StringBuilder(); + for (URL f : extension.files) { + fileList.append(f.toExternalForm()).append(", "); + } + LOGGER.error("Extension with no name. (at {}})", fileList); + LOGGER.error("Extension at ({}) will not be loaded.", fileList); + extension.loadStatus = DiscoveredExtension.LoadStatus.INVALID_NAME; + + // To ensure @NotNull: name = INVALID_NAME + extension.name = extension.loadStatus.name(); + return; + } + + if (!extension.name.matches(NAME_REGEX)) { + LOGGER.error("Extension '{}' specified an invalid name.", extension.name); + LOGGER.error("Extension '{}' will not be loaded.", extension.name); + extension.loadStatus = DiscoveredExtension.LoadStatus.INVALID_NAME; + + // To ensure @NotNull: name = INVALID_NAME + extension.name = extension.loadStatus.name(); + return; + } + + if (extension.entrypoint == null) { + LOGGER.error("Extension '{}' did not specify an entry point (via 'entrypoint').", extension.name); + LOGGER.error("Extension '{}' will not be loaded.", extension.name); + extension.loadStatus = DiscoveredExtension.LoadStatus.NO_ENTRYPOINT; + + // To ensure @NotNull: entrypoint = NO_ENTRYPOINT + extension.entrypoint = extension.loadStatus.name(); + return; + } + + // Handle defaults + // If we reach this code, then the extension will most likely be loaded: + if (extension.version == null) { + LOGGER.warn("Extension '{}' did not specify a version.", extension.name); + LOGGER.warn("Extension '{}' will continue to load but should specify a plugin version.", extension.name); + extension.version = "Unspecified"; + } + + if (extension.authors == null) { + extension.authors = new String[0]; + } + + // No dependencies were specified + if (extension.dependencies == null) { + extension.dependencies = new String[0]; + } + + // No external dependencies were specified; + if (extension.externalDependencies == null) { + extension.externalDependencies = new ExternalDependencies(); + } + + // No meta was provided + if (extension.meta == null) { + extension.meta = new JsonObject(); + } + + } + + @NotNull + public JsonObject getMeta() { + return meta; + } + + /** + * The status this extension has, all are breakpoints. + * + * LOAD_SUCCESS is the only valid one. + */ + enum LoadStatus { + LOAD_SUCCESS("Actually, it did not fail. This message should not have been printed."), + MISSING_DEPENDENCIES("Missing dependencies, check your logs."), + INVALID_NAME("Invalid name."), + NO_ENTRYPOINT("No entrypoint specified."), + FAILED_TO_SETUP_CLASSLOADER("Extension classloader could not be setup."), + LOAD_FAILED("Load failed. See logs for more information."), + ; + + private final String message; + + LoadStatus(@NotNull String message) { + this.message = message; + } + + @NotNull + public String getMessage() { + return message; + } + } + + public static final class ExternalDependencies { + Repository[] repositories = new Repository[0]; + String[] artifacts = new String[0]; + + public static class Repository { + String name = ""; + String url = ""; + } + } +} diff --git a/src/main/java/net/minestom/server/extensions/Extension.java b/src/main/java/net/minestom/server/extensions/Extension.java new file mode 100644 index 00000000000..020f229cb22 --- /dev/null +++ b/src/main/java/net/minestom/server/extensions/Extension.java @@ -0,0 +1,193 @@ +package net.minestom.server.extensions; + +import net.kyori.adventure.text.logger.slf4j.ComponentLogger; +import net.minestom.server.event.Event; +import net.minestom.server.event.EventNode; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.util.HashSet; +import java.util.Set; + +public abstract class Extension { + /** + * List of extensions that depend on this extension. + */ + protected final Set dependents = new HashSet<>(); + + protected Extension() { + + } + + public void preInitialize() { + + } + + public abstract void initialize(); + + public void postInitialize() { + + } + + public void preTerminate() { + + } + + public abstract void terminate(); + + public void postTerminate() { + + } + + ExtensionClassLoader getExtensionClassLoader() { + if (getClass().getClassLoader() instanceof ExtensionClassLoader extensionClassLoader) { + return extensionClassLoader; + } + throw new IllegalStateException("Extension class loader is not an ExtensionClassLoader"); + } + + @NotNull + public DiscoveredExtension getOrigin() { + return getExtensionClassLoader().getDiscoveredExtension(); + } + + /** + * Gets the logger for the extension + * + * @return The logger for the extension + */ + @NotNull + public ComponentLogger getLogger() { + return getExtensionClassLoader().getLogger(); + } + + public @NotNull EventNode getEventNode() { + return getExtensionClassLoader().getEventNode(); + } + + public @NotNull Path getDataDirectory() { + return getOrigin().getDataDirectory(); + } + + /** + * Gets a resource from the extension directory, or from inside the jar if it does not + * exist in the extension directory. + *

    + * If it does not exist in the extension directory, it will be copied from inside the jar. + *

    + * The caller is responsible for closing the returned {@link InputStream}. + * + * @param fileName The file to read + * @return The file contents, or null if there was an issue reading the file. + */ + public @Nullable InputStream getResource(@NotNull String fileName) { + return getResource(Paths.get(fileName)); + } + + /** + * Gets a resource from the extension directory, or from inside the jar if it does not + * exist in the extension directory. + *

    + * If it does not exist in the extension directory, it will be copied from inside the jar. + *

    + * The caller is responsible for closing the returned {@link InputStream}. + * + * @param target The file to read + * @return The file contents, or null if there was an issue reading the file. + */ + public @Nullable InputStream getResource(@NotNull Path target) { + final Path targetFile = getDataDirectory().resolve(target); + try { + // Copy from jar if the file does not exist in the extension data directory. + if (!Files.exists(targetFile)) { + savePackagedResource(target); + } + + return Files.newInputStream(targetFile); + } catch (IOException ex) { + getLogger().info("Failed to read resource {}.", target, ex); + return null; + } + } + + /** + * Gets a resource from inside the extension jar. + *

    + * The caller is responsible for closing the returned {@link InputStream}. + * + * @param fileName The file to read + * @return The file contents, or null if there was an issue reading the file. + */ + public @Nullable InputStream getPackagedResource(@NotNull String fileName) { + try { + final URL url = getOrigin().getClassLoader().getResource(fileName); + if (url == null) { + getLogger().debug("Resource not found: {}", fileName); + return null; + } + + return url.openConnection().getInputStream(); + } catch (IOException ex) { + getLogger().debug("Failed to load resource {}.", fileName, ex); + return null; + } + } + + /** + * Gets a resource from inside the extension jar. + *

    + * The caller is responsible for closing the returned {@link InputStream}. + * + * @param target The file to read + * @return The file contents, or null if there was an issue reading the file. + */ + public @Nullable InputStream getPackagedResource(@NotNull Path target) { + return getPackagedResource(target.toString().replace('\\', '/')); + } + + /** + * Copies a resource file to the extension directory, replacing any existing copy. + * + * @param fileName The resource to save + * @return True if the resource was saved successfully, null otherwise + */ + public boolean savePackagedResource(@NotNull String fileName) { + return savePackagedResource(Paths.get(fileName)); + } + + /** + * Copies a resource file to the extension directory, replacing any existing copy. + * + * @param target The resource to save + * @return True if the resource was saved successfully, null otherwise + */ + public boolean savePackagedResource(@NotNull Path target) { + final Path targetFile = getDataDirectory().resolve(target); + try (InputStream is = getPackagedResource(target)) { + if (is == null) { + return false; + } + + Files.createDirectories(targetFile.getParent()); + Files.copy(is, targetFile, StandardCopyOption.REPLACE_EXISTING); + return true; + } catch (IOException ex) { + getLogger().debug("Failed to save resource {}.", target, ex); + return false; + } + } + + /** + * @return A modifiable list of dependents. + */ + public Set getDependents() { + return dependents; + } +} diff --git a/src/main/java/net/minestom/server/extensions/ExtensionClassLoader.java b/src/main/java/net/minestom/server/extensions/ExtensionClassLoader.java new file mode 100644 index 00000000000..dd96f46af26 --- /dev/null +++ b/src/main/java/net/minestom/server/extensions/ExtensionClassLoader.java @@ -0,0 +1,91 @@ +package net.minestom.server.extensions; + +import net.kyori.adventure.text.logger.slf4j.ComponentLogger; +import net.minestom.server.MinecraftServer; +import net.minestom.server.event.Event; +import net.minestom.server.event.EventNode; +import org.jetbrains.annotations.NotNull; + +import java.io.InputStream; +import java.net.URL; +import java.net.URLClassLoader; +import java.util.ArrayList; +import java.util.List; + +public final class ExtensionClassLoader extends URLClassLoader { + private final List children = new ArrayList<>(); + private final DiscoveredExtension discoveredExtension; + private EventNode eventNode; + private ComponentLogger logger; + + public ExtensionClassLoader(String name, URL[] urls, DiscoveredExtension discoveredExtension) { + super("Ext_" + name, urls, MinecraftServer.class.getClassLoader()); + this.discoveredExtension = discoveredExtension; + } + + public ExtensionClassLoader(String name, URL[] urls, ClassLoader parent, DiscoveredExtension discoveredExtension) { + super("Ext_" + name, urls, parent); + this.discoveredExtension = discoveredExtension; + } + + @Override + public void addURL(@NotNull URL url) { + super.addURL(url); + } + + public void addChild(@NotNull ExtensionClassLoader loader) { + children.add(loader); + } + + @Override + protected Class loadClass(String name, boolean resolve) throws ClassNotFoundException { + try { + return super.loadClass(name, resolve); + } catch (ClassNotFoundException e) { + for (ExtensionClassLoader child : children) { + try { + return child.loadClass(name, resolve); + } catch (ClassNotFoundException ignored) {} + } + throw e; + } + } + + public InputStream getResourceAsStreamWithChildren(@NotNull String name) { + InputStream in = getResourceAsStream(name); + if (in != null) return in; + + for (ExtensionClassLoader child : children) { + InputStream childInput = child.getResourceAsStreamWithChildren(name); + if (childInput != null) + return childInput; + } + + return null; + } + + public DiscoveredExtension getDiscoveredExtension() { + return discoveredExtension; + } + + public EventNode getEventNode() { + if (eventNode == null) { + eventNode = EventNode.all(discoveredExtension.getName()); + MinecraftServer.getGlobalEventHandler().addChild(eventNode); + } + return eventNode; + } + + public ComponentLogger getLogger() { + if (logger == null) { + logger = ComponentLogger.logger(discoveredExtension.getName()); + } + return logger; + } + + void terminate() { + if (eventNode != null) { + MinecraftServer.getGlobalEventHandler().removeChild(eventNode); + } + } +} diff --git a/src/main/java/net/minestom/server/extensions/ExtensionManager.java b/src/main/java/net/minestom/server/extensions/ExtensionManager.java new file mode 100644 index 00000000000..6985fb8baa6 --- /dev/null +++ b/src/main/java/net/minestom/server/extensions/ExtensionManager.java @@ -0,0 +1,712 @@ +package net.minestom.server.extensions; + +import com.google.gson.Gson; +import net.minestom.server.ServerProcess; +import net.minestom.server.utils.validate.Check; +import org.apache.maven.repository.internal.MavenRepositorySystemUtils; +import org.eclipse.aether.DefaultRepositorySystemSession; +import org.eclipse.aether.RepositorySystem; +import org.eclipse.aether.artifact.DefaultArtifact; +import org.eclipse.aether.collection.CollectRequest; +import org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory; +import org.eclipse.aether.graph.Dependency; +import org.eclipse.aether.impl.DefaultServiceLocator; +import org.eclipse.aether.repository.LocalRepository; +import org.eclipse.aether.repository.RemoteRepository; +import org.eclipse.aether.repository.RepositoryPolicy; +import org.eclipse.aether.resolution.DependencyRequest; +import org.eclipse.aether.resolution.DependencyResolutionException; +import org.eclipse.aether.resolution.DependencyResult; +import org.eclipse.aether.spi.connector.RepositoryConnectorFactory; +import org.eclipse.aether.spi.connector.transport.TransporterFactory; +import org.eclipse.aether.transfer.AbstractTransferListener; +import org.eclipse.aether.transfer.TransferCancelledException; +import org.eclipse.aether.transfer.TransferEvent; +import org.eclipse.aether.transport.http.HttpTransporterFactory; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.*; +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; +import java.net.MalformedURLException; +import java.nio.file.Path; +import java.util.*; +import java.util.stream.Collectors; +import java.util.zip.ZipEntry; +import java.util.zip.ZipFile; + +public class ExtensionManager { + + public final static Logger LOGGER = LoggerFactory.getLogger(ExtensionManager.class); + + public static final String INDEV_CLASSES_FOLDER = "minestom.extension.indevfolder.classes"; + public static final String INDEV_RESOURCES_FOLDER = "minestom.extension.indevfolder.resources"; + private static final Gson GSON = new Gson(); + + private final ServerProcess serverProcess; + + // LinkedHashMaps are HashMaps that preserve order + private final Map extensions = new LinkedHashMap<>(); + private final Map immutableExtensions = Collections.unmodifiableMap(extensions); + + private final File extensionFolder = new File(System.getProperty("minestom.extension.folder", "extensions")); + private Path extensionDataRoot = extensionFolder.toPath(); + + private enum State {DO_NOT_START, NOT_STARTED, STARTED, PRE_INIT, INIT, POST_INIT} + private State state = State.NOT_STARTED; + + private final RepositorySystem repository; + private final DefaultRepositorySystemSession session; + private final List repositories = new ArrayList<>(); + private final List dependencies = new ArrayList<>(); + + + public ExtensionManager(ServerProcess serverProcess) { + this.serverProcess = serverProcess; + DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator(); + locator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class); + locator.addService(TransporterFactory.class, HttpTransporterFactory.class); + this.repository = locator.getService(RepositorySystem.class); + this.session = MavenRepositorySystemUtils.newSession(); + + this.session.setSystemProperties(System.getProperties()); + this.session.setChecksumPolicy(RepositoryPolicy.CHECKSUM_POLICY_FAIL); + this.session.setLocalRepositoryManager(this.repository.newLocalRepositoryManager(this.session, new LocalRepository("libraries"))); + this.session.setTransferListener(new AbstractTransferListener() { + @Override + public void transferInitiated(@NotNull TransferEvent event) throws TransferCancelledException { + LOGGER.info("Downloading {}", event.getResource().getRepositoryUrl() + event.getResource().getResourceName()); + } + }); + this.session.setReadOnly(); + } + + /** + * Gets if the extensions should be loaded during startup. + *

    + * Default value is 'true'. + * + * @return true if extensions are loaded in {@link net.minestom.server.MinecraftServer#start(java.net.SocketAddress)} + */ + public boolean shouldLoadOnStartup() { + return state != State.DO_NOT_START; + } + + /** + * Used to specify if you want extensions to be loaded and initialized during startup. + *

    + * Only useful before the server start. + * + * @param loadOnStartup true to load extensions on startup, false to do nothing + */ + public void setLoadOnStartup(boolean loadOnStartup) { + Check.stateCondition(state.ordinal() > State.NOT_STARTED.ordinal(), "Extensions have already been initialized"); + this.state = loadOnStartup ? State.NOT_STARTED : State.DO_NOT_START; + } + + @NotNull + public File getExtensionFolder() { + return extensionFolder; + } + + public @NotNull Path getExtensionDataRoot() { + return extensionDataRoot; + } + + public void setExtensionDataRoot(@NotNull Path dataRoot) { + this.extensionDataRoot = dataRoot; + } + + @NotNull + public Collection getExtensions() { + return immutableExtensions.values(); + } + + @Nullable + public Extension getExtension(@NotNull String name) { + return extensions.get(name.toLowerCase()); + } + + public boolean hasExtension(@NotNull String name) { + return extensions.containsKey(name); + } + + // + // Init phases + // + + @ApiStatus.Internal + public void start() { + if (state == State.DO_NOT_START) { + LOGGER.warn("Extension loadOnStartup option is set to false, extensions are therefore neither loaded or initialized."); + return; + } + Check.stateCondition(state != State.NOT_STARTED, "ExtensionManager has already been started"); + loadExtensions(); + state = State.STARTED; + } + + @ApiStatus.Internal + public void gotoPreInit() { + if (state == State.DO_NOT_START) return; + Check.stateCondition(state != State.STARTED, "Extensions have already done pre initialization"); + extensions.values().forEach(Extension::preInitialize); + state = State.PRE_INIT; + } + + @ApiStatus.Internal + public void gotoInit() { + if (state == State.DO_NOT_START) return; + Check.stateCondition(state != State.PRE_INIT, "Extensions have already done initialization"); + extensions.values().forEach(Extension::initialize); + state = State.INIT; + } + + @ApiStatus.Internal + public void gotoPostInit() { + if (state == State.DO_NOT_START) return; + Check.stateCondition(state != State.INIT, "Extensions have already done post initialization"); + extensions.values().forEach(Extension::postInitialize); + state = State.POST_INIT; + } + + // + // Loading + // + + /** + * Loads all extensions in the extension folder into this server. + *

    + *

    + * Pipeline: + *
    + * Finds all .jar files in the extensions folder. + *
    + * Per each jar: + *
    + * Turns its extension.json into a DiscoveredExtension object. + *
    + * Verifies that all properties of extension.json are correctly set. + *

    + *

    + * It then sorts all those jars by their load order (making sure that an extension's dependencies load before it) + *
    + * Note: Cyclic dependencies will stop both extensions from being loaded. + *

    + *

    + * Afterwards, it loads all external dependencies and adds them to the extension's files + *

    + *

    + * Then removes any invalid extensions (Invalid being its Load Status isn't SUCCESS) + *

    + *

    + * After that, it set its classloaders so each extension is self-contained, + *

    + *

    + * Removes invalid extensions again, + *

    + *

    + * and loads all of those extensions into Minestom + *
    + * (Extension fields are set via reflection after each extension is verified, then loaded.) + *

    + *

    + * If the extension successfully loads, add it to the global extension Map (Name to Extension) + *

    + *

    + * And finally make a scheduler to clean observers per extension. + */ + private void loadExtensions() { + // Load extensions + { + // Get all extensions and order them accordingly. + List discoveredExtensions = discoverExtensions(); + + // Don't waste resources on doing extra actions if there is nothing to do. + if (discoveredExtensions.isEmpty()) return; + + // Create classloaders for each extension (so that they can be used during dependency resolution) + Iterator extensionIterator = discoveredExtensions.iterator(); + while (extensionIterator.hasNext()) { + DiscoveredExtension discoveredExtension = extensionIterator.next(); + try { + discoveredExtension.createClassLoader(); + } catch (Exception e) { + discoveredExtension.loadStatus = DiscoveredExtension.LoadStatus.FAILED_TO_SETUP_CLASSLOADER; + serverProcess.exception().handleException(e); + LOGGER.error("Failed to load extension {}", discoveredExtension.getName()); + LOGGER.error("Failed to load extension", e); + extensionIterator.remove(); + } + } + + discoveredExtensions = generateLoadOrder(discoveredExtensions); + loadDependencies(discoveredExtensions); + + // remove invalid extensions + discoveredExtensions.removeIf(ext -> ext.loadStatus != DiscoveredExtension.LoadStatus.LOAD_SUCCESS); + + // Load the extensions + for (DiscoveredExtension discoveredExtension : discoveredExtensions) { + try { + loadExtension(discoveredExtension); + } catch (Exception e) { + discoveredExtension.loadStatus = DiscoveredExtension.LoadStatus.LOAD_FAILED; + LOGGER.error("Failed to load extension {}", discoveredExtension.getName()); + serverProcess.exception().handleException(e); + } + } + } + } + + public boolean loadDynamicExtension(@NotNull File jarFile) throws FileNotFoundException { + if (!jarFile.exists()) { + throw new FileNotFoundException("File '" + jarFile.getAbsolutePath() + "' does not exists. Cannot load extension."); + } + + LOGGER.info("Discover dynamic extension from jar {}", jarFile.getAbsolutePath()); + DiscoveredExtension discoveredExtension = discoverFromJar(jarFile); + List extensionsToLoad = Collections.singletonList(discoveredExtension); + return loadExtensionList(extensionsToLoad); + } + + /** + * Loads an extension into Minestom. + * + * @param discoveredExtension The extension. Make sure to verify its integrity, set its class loader, and its files. + * @return An extension object made from this DiscoveredExtension + */ + @Nullable + private Extension loadExtension(@NotNull DiscoveredExtension discoveredExtension) { + // Create Extension (authors, version etc.) + String extensionName = discoveredExtension.getName(); + String mainClass = discoveredExtension.getEntrypoint(); + + ExtensionClassLoader loader = discoveredExtension.getClassLoader(); + + if (extensions.containsKey(extensionName.toLowerCase())) { + LOGGER.error("An extension called '{}' has already been registered.", extensionName); + return null; + } + + Class jarClass; + try { + jarClass = Class.forName(mainClass, true, loader); + } catch (ClassNotFoundException e) { + LOGGER.error("Could not find main class '{}' in extension '{}'.", + mainClass, extensionName, e); + return null; + } + + Class extensionClass; + try { + extensionClass = jarClass.asSubclass(Extension.class); + } catch (ClassCastException e) { + LOGGER.error("Main class '{}' in '{}' does not extend the 'Extension' superclass.", mainClass, extensionName, e); + return null; + } + + Constructor constructor; + try { + constructor = extensionClass.getDeclaredConstructor(); + // Let's just make it accessible, plugin creators don't have to make this public. + constructor.setAccessible(true); + } catch (NoSuchMethodException e) { + LOGGER.error("Main class '{}' in '{}' does not define a no-args constructor.", mainClass, extensionName, e); + return null; + } + Extension extension = null; + try { + extension = constructor.newInstance(); + } catch (InstantiationException e) { + LOGGER.error("Main class '{}' in '{}' cannot be an abstract class.", mainClass, extensionName, e); + return null; + } catch (IllegalAccessException ignored) { + // We made it accessible, should not occur + } catch (InvocationTargetException e) { + LOGGER.error( + "While instantiating the main class '{}' in '{}' an exception was thrown.", + mainClass, + extensionName, + e.getTargetException() + ); + return null; + } + + // add dependents to pre-existing extensions, so that they can easily be found during reloading + for (String dependencyName : discoveredExtension.getDependencies()) { + Extension dependency = extensions.get(dependencyName.toLowerCase()); + if (dependency == null) { + LOGGER.warn("Dependency {} of {} is null? This means the extension has been loaded without its dependency, which could cause issues later.", dependencyName, discoveredExtension.getName()); + } else { + dependency.getDependents().add(discoveredExtension.getName()); + } + } + + // add to a linked hash map, as they preserve order + extensions.put(extensionName.toLowerCase(), extension); + + return extension; + } + + /** + * Get all extensions from the extensions folder and make them discovered. + *

    + * It skims the extension folder, discovers and verifies each extension, and returns those created DiscoveredExtensions. + * + * @return A list of discovered extensions from this folder. + */ + private @NotNull List discoverExtensions() { + List extensions = new LinkedList<>(); + + File[] fileList = extensionFolder.listFiles(); + + if (fileList != null) { + // Loop through all files in extension folder + for (File file : fileList) { + + // Ignore folders + if (file.isDirectory()) { + continue; + } + + // Ignore non .jar files + if (!file.getName().endsWith(".jar")) { + continue; + } + + DiscoveredExtension extension = discoverFromJar(file); + if (extension != null && extension.loadStatus == DiscoveredExtension.LoadStatus.LOAD_SUCCESS) { + extensions.add(extension); + } + } + } + + //TODO(mattw): Extract this into its own method to load an extension given classes and resources directory. + //TODO(mattw): Should show a warning if one is set and not the other. It is most likely a mistake. + + // this allows developers to have their extension discovered while working on it, without having to build a jar and put in the extension folder + if (System.getProperty(INDEV_CLASSES_FOLDER) != null && System.getProperty(INDEV_RESOURCES_FOLDER) != null) { + LOGGER.info("Found indev folders for extension. Adding to list of discovered extensions."); + final String extensionClasses = System.getProperty(INDEV_CLASSES_FOLDER); + final String extensionResources = System.getProperty(INDEV_RESOURCES_FOLDER); + try (InputStreamReader reader = new InputStreamReader(new FileInputStream(new File(extensionResources, "extension.json")))) { + DiscoveredExtension extension = GSON.fromJson(reader, DiscoveredExtension.class); + extension.files.add(new File(extensionClasses).toURI().toURL()); + extension.files.add(new File(extensionResources).toURI().toURL()); + extension.setDataDirectory(getExtensionDataRoot().resolve(extension.getName())); + + // Verify integrity and ensure defaults + DiscoveredExtension.verifyIntegrity(extension); + + if (extension.loadStatus == DiscoveredExtension.LoadStatus.LOAD_SUCCESS) { + extensions.add(extension); + } + } catch (IOException e) { + serverProcess.exception().handleException(e); + } + } + return extensions; + } + + /** + * Grabs a discovered extension from a jar. + * + * @param file The jar to grab it from (a .jar is a formatted .zip file) + * @return The created DiscoveredExtension. + */ + private @Nullable DiscoveredExtension discoverFromJar(@NotNull File file) { + try (ZipFile f = new ZipFile(file)) { + + ZipEntry entry = f.getEntry("extension.json"); + + if (entry == null) + throw new IllegalStateException("Missing extension.json in extension " + file.getName() + "."); + + InputStreamReader reader = new InputStreamReader(f.getInputStream(entry)); + + // Initialize DiscoveredExtension from GSON. + DiscoveredExtension extension = GSON.fromJson(reader, DiscoveredExtension.class); + extension.setOriginalJar(file); + extension.files.add(file.toURI().toURL()); + extension.setDataDirectory(getExtensionDataRoot().resolve(extension.getName())); + + // Verify integrity and ensure defaults + DiscoveredExtension.verifyIntegrity(extension); + + return extension; + } catch (IOException e) { + serverProcess.exception().handleException(e); + return null; + } + } + + @NotNull + private List generateLoadOrder(@NotNull List discoveredExtensions) { + // Extension --> Extensions it depends on. + Map> dependencyMap = new HashMap<>(); + + // Put dependencies in dependency map + { + Map extensionMap = new HashMap<>(); + + // go through all the discovered extensions and assign their name in a map. + for (DiscoveredExtension discoveredExtension : discoveredExtensions) { + extensionMap.put(discoveredExtension.getName().toLowerCase(), discoveredExtension); + } + + allExtensions: + // go through all the discovered extensions and get their dependencies as extensions + for (DiscoveredExtension discoveredExtension : discoveredExtensions) { + + List dependencies = new ArrayList<>(discoveredExtension.getDependencies().length); + + // Map the dependencies into DiscoveredExtensions. + for (String dependencyName : discoveredExtension.getDependencies()) { + + DiscoveredExtension dependencyExtension = extensionMap.get(dependencyName.toLowerCase()); + // Specifies an extension we don't have. + if (dependencyExtension == null) { + + // attempt to see if it is not already loaded (happens with dynamic (re)loading) + if (extensions.containsKey(dependencyName.toLowerCase())) { + + dependencies.add(extensions.get(dependencyName.toLowerCase()).getOrigin()); + continue; // Go to the next loop in this dependency loop, this iteration is done. + + } else { + + // dependency isn't loaded, move on. + LOGGER.error("Extension {} requires an extension called {}.", discoveredExtension.getName(), dependencyName); + LOGGER.error("However the extension {} could not be found.", dependencyName); + LOGGER.error("Therefore {} will not be loaded.", discoveredExtension.getName()); + discoveredExtension.loadStatus = DiscoveredExtension.LoadStatus.MISSING_DEPENDENCIES; + continue allExtensions; // the above labeled loop will go to the next extension as this dependency is invalid. + + } + } + // This will add null for an unknown-extension + dependencies.add(dependencyExtension); + + } + + dependencyMap.put( + discoveredExtension, + dependencies + ); + + } + } + + // List containing the load order. + LinkedList sortedList = new LinkedList<>(); + + // TODO actually have to read this + { + // entries with empty lists + List>> loadableExtensions; + + // While there are entries with no more elements (no more dependencies) + while (!( + loadableExtensions = dependencyMap.entrySet().stream().filter(entry -> isLoaded(entry.getValue())).toList() + ).isEmpty() + ) { + // Get all "loadable" (not actually being loaded!) extensions and put them in the sorted list. + for (var entry : loadableExtensions) { + // Add to sorted list. + sortedList.add(entry.getKey()); + // Remove to make the next iterations a little quicker (hopefully) and to find cyclic dependencies. + dependencyMap.remove(entry.getKey()); + + // Remove this dependency from all the lists (if they include it) to make way for next level of extensions. + for (var dependencies : dependencyMap.values()) { + dependencies.remove(entry.getKey()); + } + } + } + } + + // Check if there are cyclic extensions. + if (!dependencyMap.isEmpty()) { + LOGGER.error("Minestom found {} cyclic extensions.", dependencyMap.size()); + LOGGER.error("Cyclic extensions depend on each other and can therefore not be loaded."); + for (var entry : dependencyMap.entrySet()) { + DiscoveredExtension discoveredExtension = entry.getKey(); + LOGGER.error("{} could not be loaded, as it depends on: {}.", + discoveredExtension.getName(), + entry.getValue().stream().map(DiscoveredExtension::getName).collect(Collectors.joining(", "))); + } + + } + + return sortedList; + } + + /** + * Checks if this list of extensions are loaded + * + * @param extensions The list of extensions to check against. + * @return If all of these extensions are loaded. + */ + private boolean isLoaded(@NotNull List extensions) { + return + extensions.isEmpty() // Don't waste CPU on checking an empty array + // Make sure the internal extensions list contains all of these. + || extensions.stream().allMatch(ext -> this.extensions.containsKey(ext.getName().toLowerCase())); + } + + private void loadDependencies(@NotNull List extensions) { + List repos = this.repository.newResolutionRepositories(this.session, this.repositories); + List allLoadedExtensions = new LinkedList<>(extensions); + + for (Extension extension : immutableExtensions.values()) + allLoadedExtensions.add(extension.getOrigin()); + + for (DiscoveredExtension discoveredExtension : extensions) { + try { + + DiscoveredExtension.ExternalDependencies externalDependencies = discoveredExtension.getExternalDependencies(); + for (var repository : externalDependencies.repositories) { + + if (repository.name == null || repository.name.isEmpty()) { + throw new IllegalStateException("Missing 'name' element in repository object."); + } + + if (repository.url == null || repository.url.isEmpty()) { + throw new IllegalStateException("Missing 'url' element in repository object."); + } + repos.add(new RemoteRepository.Builder(repository.name, "default", repository.url).build()); + } + + for (String artifact : externalDependencies.artifacts) { + this.dependencies.add(new Dependency(new DefaultArtifact(artifact), null)); + } + + DependencyResult result; + try { + result = this.repository.resolveDependencies(this.session, new DependencyRequest(new CollectRequest((Dependency) null, this.dependencies, repos), null)); + } catch (DependencyResolutionException ex) { + throw new IllegalStateException("Error resolving libraries", ex); + } + LOGGER.trace("Dependency of extension {}: {}", discoveredExtension.getName(), result.toString()); + result.getArtifactResults().forEach(artifactResult -> { + try { + discoveredExtension.files.add(artifactResult.getArtifact().getFile().toURI().toURL()); + discoveredExtension.getClassLoader().addURL(artifactResult.getArtifact().getFile().toURI().toURL()); + } catch (MalformedURLException e) { + throw new RuntimeException(e); + } + }); + ExtensionClassLoader extensionClassLoader = discoveredExtension.getClassLoader(); + for (String dependencyName : discoveredExtension.getDependencies()) { + var resolved = extensions.stream() + .filter(ext -> ext.getName().equalsIgnoreCase(dependencyName)) + .findFirst() + .orElseThrow(() -> new IllegalStateException("Unknown dependency '" + dependencyName + "' of '" + discoveredExtension.getName() + "'")); + + ExtensionClassLoader dependencyClassLoader = resolved.getClassLoader(); + + extensionClassLoader.addChild(dependencyClassLoader); + LOGGER.trace("Dependency of extension {}: {}", discoveredExtension.getName(), resolved); + } + } catch (Exception e) { + discoveredExtension.loadStatus = DiscoveredExtension.LoadStatus.MISSING_DEPENDENCIES; + LOGGER.error("Failed to load dependencies for extension {}", discoveredExtension.getName()); + LOGGER.error("Extension '{}' will not be loaded", discoveredExtension.getName()); + LOGGER.error("This is the exception", e); + } + } + } + + private boolean loadExtensionList(@NotNull List extensionsToLoad) { + // ensure correct order of dependencies + LOGGER.debug("Reorder extensions to ensure proper load order"); + extensionsToLoad = generateLoadOrder(extensionsToLoad); + loadDependencies(extensionsToLoad); + + // setup new classloaders for the extensions to reload + for (DiscoveredExtension toReload : extensionsToLoad) { + LOGGER.debug("Setting up classloader for extension {}", toReload.getName()); +// toReload.setMinestomExtensionClassLoader(toReload.makeClassLoader()); //TODO: Fix this + } + + List newExtensions = new LinkedList<>(); + for (DiscoveredExtension toReload : extensionsToLoad) { + // reload extensions + LOGGER.info("Actually load extension {}", toReload.getName()); + Extension loadedExtension = loadExtension(toReload); + if (loadedExtension != null) { + newExtensions.add(loadedExtension); + } + } + + if (newExtensions.isEmpty()) { + LOGGER.error("No extensions to load, skipping callbacks"); + return false; + } + + LOGGER.info("Load complete, firing preinit, init and then postinit callbacks"); + // retrigger preinit, init and postinit + newExtensions.forEach(Extension::preInitialize); + newExtensions.forEach(Extension::initialize); + newExtensions.forEach(Extension::postInitialize); + return true; + } + + // + // Shutdown / Unload + // + + /** + * Shutdowns all the extensions by unloading them. + */ + public void shutdown() {// copy names, as the extensions map will be modified via the calls to unload + Set extensionNames = new HashSet<>(extensions.keySet()); + for (String ext : extensionNames) { + if (extensions.containsKey(ext)) { // is still loaded? Because extensions can depend on one another, it might have already been unloaded + unloadExtension(ext); + } + } + } + + private void unloadExtension(@NotNull String extensionName) { + Extension ext = extensions.get(extensionName.toLowerCase()); + + if (ext == null) { + throw new IllegalArgumentException("Extension " + extensionName + " is not currently loaded."); + } + + List dependents = new LinkedList<>(ext.getDependents()); // copy dependents list + + for (String dependentID : dependents) { + Extension dependentExt = extensions.get(dependentID.toLowerCase()); + if (dependentExt != null) { // check if extension isn't already unloaded. + LOGGER.info("Unloading dependent extension {} (because it depends on {})", dependentID, extensionName); + unload(dependentExt); + } + } + + LOGGER.info("Unloading extension {}", extensionName); + unload(ext); + } + + private void unload(@NotNull Extension ext) { + ext.preTerminate(); + ext.terminate(); + + ext.getExtensionClassLoader().terminate(); + + ext.postTerminate(); + + // remove from loaded extensions + String id = ext.getOrigin().getName().toLowerCase(); + extensions.remove(id); + + // cleanup classloader + // TODO: Is it necessary to remove the CLs since this is only called on shutdown? + } +} diff --git a/src/main/java/net/minestom/server/extras/bungee/BungeeCordProxy.java b/src/main/java/net/minestom/server/extras/bungee/BungeeCordProxy.java index 82884558daa..cb3f1333df0 100644 --- a/src/main/java/net/minestom/server/extras/bungee/BungeeCordProxy.java +++ b/src/main/java/net/minestom/server/extras/bungee/BungeeCordProxy.java @@ -1,7 +1,5 @@ package net.minestom.server.extras.bungee; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.format.NamedTextColor; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/src/main/java/net/minestom/server/extras/velocity/VelocityProxy.java b/src/main/java/net/minestom/server/extras/velocity/VelocityProxy.java index 10e47b03da0..d965ae05d39 100644 --- a/src/main/java/net/minestom/server/extras/velocity/VelocityProxy.java +++ b/src/main/java/net/minestom/server/extras/velocity/VelocityProxy.java @@ -1,5 +1,6 @@ package net.minestom.server.extras.velocity; +import net.minestom.server.MinecraftServer; import net.minestom.server.extras.MojangAuth; import net.minestom.server.network.NetworkBuffer; import net.minestom.server.utils.validate.Check; @@ -66,7 +67,7 @@ public static boolean checkIntegrity(@NotNull NetworkBuffer buffer) { return false; } } catch (NoSuchAlgorithmException | InvalidKeyException e) { - e.printStackTrace(); + MinecraftServer.getExceptionManager().handleException(e); } final int version = buffer.read(VAR_INT); return version == SUPPORTED_FORWARDING_VERSION; diff --git a/src/main/java/net/minestom/server/instance/Explosion.java b/src/main/java/net/minestom/server/instance/Explosion.java index 186be7a1da3..c96f8c45a0b 100644 --- a/src/main/java/net/minestom/server/instance/Explosion.java +++ b/src/main/java/net/minestom/server/instance/Explosion.java @@ -19,7 +19,7 @@ public abstract class Explosion { private final float centerZ; private final float strength; - public Explosion(float centerX, float centerY, float centerZ, float strength) { + protected Explosion(float centerX, float centerY, float centerZ, float strength) { //Microtus - update java keyword usage this.centerX = centerX; this.centerY = centerY; this.centerZ = centerZ; diff --git a/src/main/java/net/minestom/server/instance/Instance.java b/src/main/java/net/minestom/server/instance/Instance.java index bccaada7eca..aa00594ec50 100644 --- a/src/main/java/net/minestom/server/instance/Instance.java +++ b/src/main/java/net/minestom/server/instance/Instance.java @@ -13,6 +13,7 @@ import net.minestom.server.adventure.AdventurePacketConvertor; import net.minestom.server.adventure.audience.PacketGroupingAudience; import net.minestom.server.coordinate.Point; +import net.minestom.server.coordinate.Pos; import net.minestom.server.entity.Entity; import net.minestom.server.entity.EntityCreature; import net.minestom.server.entity.ExperienceOrb; @@ -22,6 +23,7 @@ import net.minestom.server.event.EventHandler; import net.minestom.server.event.EventNode; import net.minestom.server.event.instance.InstanceTickEvent; +import net.minestom.server.event.instance.InstanceWorldPositionChangeEvent; import net.minestom.server.event.trait.InstanceEvent; import net.minestom.server.instance.block.Block; import net.minestom.server.instance.block.BlockFace; @@ -31,6 +33,7 @@ import net.minestom.server.network.packet.server.ServerPacket; import net.minestom.server.network.packet.server.play.BlockActionPacket; import net.minestom.server.network.packet.server.play.InitializeWorldBorderPacket; +import net.minestom.server.network.packet.server.play.SpawnPositionPacket; import net.minestom.server.network.packet.server.play.TimeUpdatePacket; import net.minestom.server.registry.DynamicRegistry; import net.minestom.server.snapshot.*; @@ -116,6 +119,8 @@ public abstract class Instance implements Block.Getter, Block.Setter, // Adventure private final Pointers pointers; + private Pos worldSpawnPosition = Pos.ZERO; + /** * Creates a new instance. * @@ -434,6 +439,44 @@ public long getWorldAge() { return worldAge; } + //Microtus start - integrate world spawn position + /** + * Updates the spawn position of the instance. + * This method doesn't send the SpawnPositionPacket to the players. + * @param spawnPosition the new spawn position + */ + public boolean setWorldSpawnPosition(@NotNull Pos spawnPosition) { + return this.setWorldSpawnPosition(spawnPosition, false); + } + + /** + * Updates the spawn position of the instance. + * The underlying spawn position will only be updated if the new position is different from the current one. + * It sends the SpawnPositionPacket when the boolean option is true and the instance has players. + * @param spawnPosition the new spawn position + * @param sendPacket if true, the new spawn position will be sent to all players in the instance + */ + public boolean setWorldSpawnPosition(@NotNull Pos spawnPosition, boolean sendPacket) { + if (this.worldSpawnPosition.samePoint(spawnPosition)) return false; + final Pos oldPosition = this.worldSpawnPosition; + this.worldSpawnPosition = spawnPosition; + EventDispatcher.call(new InstanceWorldPositionChangeEvent(this, oldPosition)); + if (!sendPacket || getPlayers().isEmpty()) return false; + var spawnPositionPacket = new SpawnPositionPacket(spawnPosition, spawnPosition.yaw()); + PacketUtils.sendGroupedPacket(getPlayers(), spawnPositionPacket); + return true; + } + + /** + * Gets the spawn position of the instance. + * If the position is not set, it will return {@link Pos#ZERO} + * @return the spawn position of the instance + */ + public @NotNull Pos getWorldSpawnPosition() { + return this.worldSpawnPosition; + } + //Microtus end - integrate world spawn position + /** * Sets the age of this instance in tick. It will send the age to all players. * Will send new age to all players in the instance, unaffected by {@link #getTimeSynchronizationTicks()} diff --git a/src/main/java/net/minestom/server/instance/batch/ChunkBatch.java b/src/main/java/net/minestom/server/instance/batch/ChunkBatch.java index c427442a99b..0fd29d852ae 100644 --- a/src/main/java/net/minestom/server/instance/batch/ChunkBatch.java +++ b/src/main/java/net/minestom/server/instance/batch/ChunkBatch.java @@ -4,6 +4,7 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import it.unimi.dsi.fastutil.ints.IntArraySet; import it.unimi.dsi.fastutil.ints.IntSet; +import net.minestom.server.MinecraftServer; import net.minestom.server.instance.Chunk; import net.minestom.server.instance.Instance; import net.minestom.server.instance.InstanceContainer; @@ -193,7 +194,7 @@ private void singleThreadFlush(Instance instance, Chunk chunk, @Nullable ChunkBa if (inverse != null) inverse.readyLatch.countDown(); updateChunk(instance, chunk, sections, callback, safeCallback); } catch (Exception e) { - e.printStackTrace(); + MinecraftServer.getExceptionManager().handleException(e); } } diff --git a/src/main/java/net/minestom/server/instance/block/BlockManager.java b/src/main/java/net/minestom/server/instance/block/BlockManager.java index fd0243002b9..d19f1c50432 100644 --- a/src/main/java/net/minestom/server/instance/block/BlockManager.java +++ b/src/main/java/net/minestom/server/instance/block/BlockManager.java @@ -17,7 +17,7 @@ import java.util.function.Supplier; public final class BlockManager { - private final static Logger LOGGER = LoggerFactory.getLogger(BlockManager.class); + private static final Logger LOGGER = LoggerFactory.getLogger(BlockManager.class); //Microtus - update java keyword usage // Namespace -> handler supplier private final Map> blockHandlerMap = new ConcurrentHashMap<>(); // block id -> block placement rule diff --git a/src/main/java/net/minestom/server/instance/block/rule/BlockPlacementRule.java b/src/main/java/net/minestom/server/instance/block/rule/BlockPlacementRule.java index a2eb98107e3..9488b6105da 100644 --- a/src/main/java/net/minestom/server/instance/block/rule/BlockPlacementRule.java +++ b/src/main/java/net/minestom/server/instance/block/rule/BlockPlacementRule.java @@ -16,7 +16,7 @@ public abstract class BlockPlacementRule { protected BlockPlacementRule(@NotNull Block block) { this.block = block; - } + } //Microtus - update java keyword usage /** * Called when the block state id can be updated (for instance if a neighbour block changed). diff --git a/src/main/java/net/minestom/server/inventory/AbstractInventory.java b/src/main/java/net/minestom/server/inventory/AbstractInventory.java index 99cfc2fb0d8..1d239416120 100644 --- a/src/main/java/net/minestom/server/inventory/AbstractInventory.java +++ b/src/main/java/net/minestom/server/inventory/AbstractInventory.java @@ -23,8 +23,8 @@ /** * Represents an inventory where items can be modified/retrieved. */ -public sealed abstract class AbstractInventory implements InventoryClickHandler, Taggable - permits Inventory, PlayerInventory { +public abstract sealed class AbstractInventory implements InventoryClickHandler, Taggable + permits Inventory, PlayerInventory { //Microtus - update java keyword usage private static final VarHandle ITEM_UPDATER = MethodHandles.arrayElementVarHandle(ItemStack[].class); diff --git a/src/main/java/net/minestom/server/inventory/Inventory.java b/src/main/java/net/minestom/server/inventory/Inventory.java index 174e301c06e..ace374daffc 100644 --- a/src/main/java/net/minestom/server/inventory/Inventory.java +++ b/src/main/java/net/minestom/server/inventory/Inventory.java @@ -22,7 +22,7 @@ /** * Represents an inventory which can be viewed by a collection of {@link Player}. *

    - * You can create one with {@link Inventory#Inventory(InventoryType, String)} or by making your own subclass. + * You can create one with {@link Inventory#Inventory(InventoryType, Component)} or by making your own subclass. * It can then be opened using {@link Player#openInventory(Inventory)}. */ public non-sealed class Inventory extends AbstractInventory implements Viewable { @@ -50,10 +50,6 @@ public Inventory(@NotNull InventoryType inventoryType, @NotNull Component title) this.offset = getSize(); } - public Inventory(@NotNull InventoryType inventoryType, @NotNull String title) { - this(inventoryType, Component.text(title)); - } - private static byte generateId() { return (byte) ID_COUNTER.updateAndGet(i -> i + 1 >= 128 ? 1 : i + 1); } @@ -241,7 +237,7 @@ public boolean rightClick(@NotNull Player player, int slot) { } @Override - public boolean shiftClick(@NotNull Player player, int slot) { + public boolean shiftClick(@NotNull Player player, int slot, int button) { // Microtus final PlayerInventory playerInventory = player.getInventory(); final boolean isInWindow = isClickInWindow(slot); final int clickSlot = isInWindow ? slot : PlayerInventoryUtils.convertSlot(slot, offset); @@ -251,7 +247,7 @@ public boolean shiftClick(@NotNull Player player, int slot) { isInWindow ? this : playerInventory, isInWindow ? playerInventory : this, 0, isInWindow ? playerInventory.getInnerSize() : getInnerSize(), 1, - player, clickSlot, clicked, cursor); + player, clickSlot, clicked, cursor, button); // Microtus if (clickResult.isCancel()) { updateAll(player); return false; diff --git a/src/main/java/net/minestom/server/inventory/InventoryClickHandler.java b/src/main/java/net/minestom/server/inventory/InventoryClickHandler.java index 5fa175416eb..550f50ae2fd 100644 --- a/src/main/java/net/minestom/server/inventory/InventoryClickHandler.java +++ b/src/main/java/net/minestom/server/inventory/InventoryClickHandler.java @@ -38,9 +38,10 @@ public sealed interface InventoryClickHandler permits AbstractInventory { * * @param player the player who clicked * @param slot the slot number + * @param button the primary mouse or secondary mouse button * @return true if the click hasn't been cancelled, false otherwise */ - boolean shiftClick(@NotNull Player player, int slot); // shift + left/right click have the same behavior + boolean shiftClick(@NotNull Player player, int slot, int button); // shift + left/right click have the same behavior // Microtus /** * Called when a {@link Player} held click in the inventory diff --git a/src/main/java/net/minestom/server/inventory/InventoryType.java b/src/main/java/net/minestom/server/inventory/InventoryType.java index 9b77808c066..9b4c1effd91 100644 --- a/src/main/java/net/minestom/server/inventory/InventoryType.java +++ b/src/main/java/net/minestom/server/inventory/InventoryType.java @@ -44,13 +44,4 @@ public int getWindowType() { public int getSize() { return size; } - - /** - * @deprecated use {@link #getSize()} - */ - @Deprecated - public int getAdditionalSlot() { - return size; - } - } diff --git a/src/main/java/net/minestom/server/inventory/PlayerInventory.java b/src/main/java/net/minestom/server/inventory/PlayerInventory.java index cf229d55e8f..0515694bc51 100644 --- a/src/main/java/net/minestom/server/inventory/PlayerInventory.java +++ b/src/main/java/net/minestom/server/inventory/PlayerInventory.java @@ -213,7 +213,7 @@ public boolean drop(@NotNull Player player, boolean all, int slot, int button) { } @Override - public boolean shiftClick(@NotNull Player player, int slot) { + public boolean shiftClick(@NotNull Player player, int slot, int button) { // Microtus final int convertedSlot = convertPlayerInventorySlot(slot, OFFSET); final ItemStack cursor = getCursorItem(); final ItemStack clicked = getItemStack(convertedSlot); @@ -223,7 +223,7 @@ public boolean shiftClick(@NotNull Player player, int slot) { final InventoryClickResult clickResult = clickProcessor.shiftClick( this, this, start, end, 1, - player, convertedSlot, clicked, cursor); + player, convertedSlot, clicked, cursor, button); // Microtus if (clickResult.isCancel()) { update(); return false; diff --git a/src/main/java/net/minestom/server/inventory/click/ClickType.java b/src/main/java/net/minestom/server/inventory/click/ClickType.java index c6fe8eda8d5..bf5600760e4 100644 --- a/src/main/java/net/minestom/server/inventory/click/ClickType.java +++ b/src/main/java/net/minestom/server/inventory/click/ClickType.java @@ -6,8 +6,10 @@ public enum ClickType { RIGHT_CLICK, CHANGE_HELD, - START_SHIFT_CLICK, - SHIFT_CLICK, + START_SHIFT_LEFT_CLICK, // Microtus + START_SHIFT_RIGHT_CLICK, // Microtus + SHIFT_LEFT_CLICK, // Microtus + SHIFT_RIGHT_CLICK, // Microtus START_LEFT_DRAGGING, START_RIGHT_DRAGGING, diff --git a/src/main/java/net/minestom/server/inventory/click/InventoryClickProcessor.java b/src/main/java/net/minestom/server/inventory/click/InventoryClickProcessor.java index 0ee2534ee15..72f17ffaa32 100644 --- a/src/main/java/net/minestom/server/inventory/click/InventoryClickProcessor.java +++ b/src/main/java/net/minestom/server/inventory/click/InventoryClickProcessor.java @@ -117,10 +117,12 @@ public final class InventoryClickProcessor { public @NotNull InventoryClickResult shiftClick(@NotNull AbstractInventory inventory, @NotNull AbstractInventory targetInventory, int start, int end, int step, @NotNull Player player, int slot, - @NotNull ItemStack clicked, @NotNull ItemStack cursor) { - InventoryClickResult clickResult = startCondition(player, inventory, slot, ClickType.START_SHIFT_CLICK, clicked, cursor); + @NotNull ItemStack clicked, @NotNull ItemStack cursor, int button) { // Microtus + ClickType startShiftClick = button == 0 ? ClickType.START_SHIFT_LEFT_CLICK : ClickType.START_SHIFT_RIGHT_CLICK; // Microtus + InventoryClickResult clickResult = startCondition(player, inventory, slot, startShiftClick, clicked, cursor); // Microtus if (clickResult.isCancel()) return clickResult; if (clicked.isAir()) return clickResult.cancelled(); + ClickType shiftClick = button == 0 ? ClickType.SHIFT_LEFT_CLICK : ClickType.SHIFT_RIGHT_CLICK; // Microtus // Handle armor equip if (inventory instanceof PlayerInventory && targetInventory instanceof PlayerInventory) { @@ -131,7 +133,7 @@ public final class InventoryClickProcessor { final ItemStack currentArmor = player.getEquipment(equipmentSlot); if (currentArmor.isAir()) { final int armorSlot = equipmentSlot.armorSlot(); - InventoryClickResult result = startCondition(player, targetInventory, armorSlot, ClickType.SHIFT_CLICK, clicked, cursor); + InventoryClickResult result = startCondition(player, targetInventory, armorSlot, shiftClick, clicked, cursor); // Microtus if (result.isCancel()) return clickResult; result.setClicked(ItemStack.AIR); result.setCursor(cursor); @@ -145,7 +147,7 @@ public final class InventoryClickProcessor { final var pair = TransactionType.ADD.process(targetInventory, clicked, (index, itemStack) -> { if (inventory == targetInventory && index == slot) return false; // Prevent item lose/duplication - InventoryClickResult result = startCondition(player, targetInventory, index, ClickType.SHIFT_CLICK, itemStack, cursor); + InventoryClickResult result = startCondition(player, targetInventory, index, shiftClick, itemStack, cursor); // Microtus if (result.isCancel()) { return false; } @@ -157,7 +159,7 @@ public final class InventoryClickProcessor { final Map itemChangesMap = pair.right(); itemChangesMap.forEach((Integer s, ItemStack itemStack) -> { targetInventory.setItemStack(s, itemStack); - callClickEvent(player, targetInventory, s, ClickType.SHIFT_CLICK, itemStack, cursor); + callClickEvent(player, targetInventory, s, shiftClick, itemStack, cursor); // Microtus }); clickResult.setClicked(itemResult); return clickResult; diff --git a/src/main/java/net/minestom/server/inventory/type/AnvilInventory.java b/src/main/java/net/minestom/server/inventory/type/AnvilInventory.java index 8a7c9f2c154..ed21091b4ac 100644 --- a/src/main/java/net/minestom/server/inventory/type/AnvilInventory.java +++ b/src/main/java/net/minestom/server/inventory/type/AnvilInventory.java @@ -14,10 +14,6 @@ public AnvilInventory(@NotNull Component title) { super(InventoryType.ANVIL, title); } - public AnvilInventory(@NotNull String title) { - super(InventoryType.ANVIL, title); - } - /** * Gets the anvil repair cost. * diff --git a/src/main/java/net/minestom/server/inventory/type/BeaconInventory.java b/src/main/java/net/minestom/server/inventory/type/BeaconInventory.java index 30551dae67c..0a2dd297603 100644 --- a/src/main/java/net/minestom/server/inventory/type/BeaconInventory.java +++ b/src/main/java/net/minestom/server/inventory/type/BeaconInventory.java @@ -17,10 +17,6 @@ public BeaconInventory(@NotNull Component title) { super(InventoryType.BEACON, title); } - public BeaconInventory(@NotNull String title) { - super(InventoryType.BEACON, title); - } - /** * Gets the beacon power level. * diff --git a/src/main/java/net/minestom/server/inventory/type/BrewingStandInventory.java b/src/main/java/net/minestom/server/inventory/type/BrewingStandInventory.java index ed0bc7d783d..7c88145f40a 100644 --- a/src/main/java/net/minestom/server/inventory/type/BrewingStandInventory.java +++ b/src/main/java/net/minestom/server/inventory/type/BrewingStandInventory.java @@ -15,10 +15,6 @@ public BrewingStandInventory(@NotNull Component title) { super(InventoryType.BREWING_STAND, title); } - public BrewingStandInventory(@NotNull String title) { - super(InventoryType.BREWING_STAND, title); - } - /** * Gets the brewing stand brew time. * diff --git a/src/main/java/net/minestom/server/inventory/type/EnchantmentTableInventory.java b/src/main/java/net/minestom/server/inventory/type/EnchantmentTableInventory.java index a3a043a25f9..5b9d217a2cc 100644 --- a/src/main/java/net/minestom/server/inventory/type/EnchantmentTableInventory.java +++ b/src/main/java/net/minestom/server/inventory/type/EnchantmentTableInventory.java @@ -22,10 +22,6 @@ public EnchantmentTableInventory(@NotNull Component title) { super(InventoryType.ENCHANTMENT, title); } - public EnchantmentTableInventory(@NotNull String title) { - super(InventoryType.ENCHANTMENT, title); - } - /** * Gets the level requirement in a slot. * diff --git a/src/main/java/net/minestom/server/inventory/type/FurnaceInventory.java b/src/main/java/net/minestom/server/inventory/type/FurnaceInventory.java index 9e357da9936..56435798d49 100644 --- a/src/main/java/net/minestom/server/inventory/type/FurnaceInventory.java +++ b/src/main/java/net/minestom/server/inventory/type/FurnaceInventory.java @@ -17,10 +17,6 @@ public FurnaceInventory(@NotNull Component title) { super(InventoryType.FURNACE, title); } - public FurnaceInventory(@NotNull String title) { - super(InventoryType.FURNACE, title); - } - /** * Represents the amount of tick until the fire icon come empty. * diff --git a/src/main/java/net/minestom/server/inventory/type/VillagerInventory.java b/src/main/java/net/minestom/server/inventory/type/VillagerInventory.java index 048fa581393..a725850db5c 100644 --- a/src/main/java/net/minestom/server/inventory/type/VillagerInventory.java +++ b/src/main/java/net/minestom/server/inventory/type/VillagerInventory.java @@ -6,6 +6,7 @@ import net.minestom.server.inventory.InventoryType; import net.minestom.server.network.packet.server.CachedPacket; import net.minestom.server.network.packet.server.play.TradeListPacket; +import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; @@ -24,10 +25,6 @@ public VillagerInventory(@NotNull Component title) { super(InventoryType.MERCHANT, title); } - public VillagerInventory(@NotNull String title) { - super(InventoryType.MERCHANT, title); - } - public List getTrades() { return Collections.unmodifiableList(trades); } @@ -92,7 +89,8 @@ public boolean addViewer(@NotNull Player player) { return result; } - private TradeListPacket createTradePacket() { + @Contract(pure = true) + private @NotNull TradeListPacket createTradePacket() { return new TradeListPacket(getWindowId(), trades, villagerLevel, experience, regularVillager, canRestock); } } diff --git a/src/main/java/net/minestom/server/listener/AdvancementTabListener.java b/src/main/java/net/minestom/server/listener/AdvancementTabListener.java index 3a8edbd121b..a27c3f10dbd 100644 --- a/src/main/java/net/minestom/server/listener/AdvancementTabListener.java +++ b/src/main/java/net/minestom/server/listener/AdvancementTabListener.java @@ -7,6 +7,8 @@ public class AdvancementTabListener { + private AdvancementTabListener() {} + public static void listener(ClientAdvancementTabPacket packet, Player player) { final String tabIdentifier = packet.tabIdentifier(); if (tabIdentifier != null) { diff --git a/src/main/java/net/minestom/server/listener/AnimationListener.java b/src/main/java/net/minestom/server/listener/AnimationListener.java index e8756e0f371..f0a55641c70 100644 --- a/src/main/java/net/minestom/server/listener/AnimationListener.java +++ b/src/main/java/net/minestom/server/listener/AnimationListener.java @@ -8,6 +8,8 @@ public class AnimationListener { + private AnimationListener() { } + public static void animationListener(ClientAnimationPacket packet, Player player) { final Player.Hand hand = packet.hand(); final ItemStack itemStack = player.getItemInHand(hand); diff --git a/src/main/java/net/minestom/server/listener/WindowListener.java b/src/main/java/net/minestom/server/listener/WindowListener.java index 682132a9b70..dad46cfb94a 100644 --- a/src/main/java/net/minestom/server/listener/WindowListener.java +++ b/src/main/java/net/minestom/server/listener/WindowListener.java @@ -49,7 +49,7 @@ public static void clickWindowListener(ClientClickWindowPacket packet, Player pl } } } else if (clickType == ClientClickWindowPacket.ClickType.QUICK_MOVE) { - successful = inventory.shiftClick(player, slot); + successful = inventory.shiftClick(player, slot, button); // Microtus } else if (clickType == ClientClickWindowPacket.ClickType.SWAP) { if (slot < 0 || button < 0) return; successful = inventory.changeHeld(player, slot, button); diff --git a/src/main/java/net/minestom/server/listener/preplay/HandshakeListener.java b/src/main/java/net/minestom/server/listener/preplay/HandshakeListener.java index 06ec2f836ec..b998be1206a 100644 --- a/src/main/java/net/minestom/server/listener/preplay/HandshakeListener.java +++ b/src/main/java/net/minestom/server/listener/preplay/HandshakeListener.java @@ -25,7 +25,7 @@ public final class HandshakeListener { - private final static Logger LOGGER = LoggerFactory.getLogger(HandshakeListener.class); + private static final Logger LOGGER = LoggerFactory.getLogger(HandshakeListener.class); /** * Text sent if a player tries to connect with an invalid version of the client @@ -138,4 +138,5 @@ private static void bungeeDisconnect(@NotNull PlayerConnection connection) { disconnect(connection, INVALID_BUNGEE_FORWARDING); } + private HandshakeListener() { } } diff --git a/src/main/java/net/minestom/server/monitoring/BenchmarkManager.java b/src/main/java/net/minestom/server/monitoring/BenchmarkManager.java index 84c502629a3..50053284b34 100644 --- a/src/main/java/net/minestom/server/monitoring/BenchmarkManager.java +++ b/src/main/java/net/minestom/server/monitoring/BenchmarkManager.java @@ -34,7 +34,7 @@ * Be aware that this is not the most accurate method, you should use a proper java profiler depending on your needs. */ public final class BenchmarkManager { - private final static Logger LOGGER = LoggerFactory.getLogger(BenchmarkManager.class); + private static final Logger LOGGER = LoggerFactory.getLogger(BenchmarkManager.class); //Microtus - update java keyword usage private static final ThreadMXBean THREAD_MX_BEAN = ManagementFactory.getThreadMXBean(); private static final List THREADS = new ArrayList<>(); diff --git a/src/main/java/net/minestom/server/network/socket/Server.java b/src/main/java/net/minestom/server/network/socket/Server.java index 38a55692442..b28c8e96292 100644 --- a/src/main/java/net/minestom/server/network/socket/Server.java +++ b/src/main/java/net/minestom/server/network/socket/Server.java @@ -82,7 +82,7 @@ public void start() { final SocketChannel client = serverSocket.accept(); worker.receiveConnection(client); } catch (IOException e) { - e.printStackTrace(); + MinecraftServer.getExceptionManager().handleException(e); } }); } catch (IOException e) { diff --git a/src/main/java/net/minestom/server/notifications/Notification.java b/src/main/java/net/minestom/server/notifications/Notification.java new file mode 100644 index 00000000000..90ee6fc4dbc --- /dev/null +++ b/src/main/java/net/minestom/server/notifications/Notification.java @@ -0,0 +1,117 @@ +package net.minestom.server.notifications; + +import net.kyori.adventure.text.Component; +import net.minestom.server.advancements.FrameType; +import net.minestom.server.entity.Player; +import net.minestom.server.item.ItemStack; +import net.minestom.server.item.Material; +import net.minestom.server.network.packet.server.play.AdvancementsPacket; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; +import java.util.List; + +/** + * Is used to send temporary advancements to the client, which are called notifications. + *
    + * Here is an example of its use: + *

    
    + * Notification notification = Notification.builder()
    + *  .frameType(FrameType.TASK)
    + *  .title(Component.text("Welcome!"))
    + *  .icon(Material.IRON_SWORD).build();
    + * notification.send(player);
    + * 
    + * + * The constant {@link #IDENTIFIER} is used for the advancement packet + * The constant {@link #REMOVE_PACKET} is used to remove previous notifications + * @since 1.4.1 + */ +public sealed interface Notification permits NotificationImpl { + + String IDENTIFIER = "minestom:notification"; + AdvancementsPacket REMOVE_PACKET = new AdvancementsPacket(false, List.of(), List.of(IDENTIFIER), List.of()); + + /** + * Creates a new builder instance + * @return an instance of the builder + */ + @Contract(pure = true) + static @NotNull Builder builder() { + return new NotificationBuilder(); + } + + /** + * Send the notification to the client + * @param player to get be sent + */ + void send(@NotNull Player player); + + /** + * Send the notification to a collection of clients + * @param players to get be sent + */ + void send(@NotNull Collection<@NotNull Player> players); + + /** + * Gets the title of the notification as a {@link Component} + * @return the title {@link Component} + */ + @NotNull Component title(); + + /** + * Get the {@link FrameType} of the notification + * @return the type + */ + @NotNull FrameType type(); + + /** + * Get the displayed icon of the notification as {@link ItemStack} + * @return the {@link ItemStack} + */ + @NotNull ItemStack icon(); + + /** + * @since 1.4.1 + */ + sealed interface Builder permits NotificationBuilder { + + /** + * Set the title for a notification as component. + * + * If you're using a resource pack you can use {@link Component#translatable(String)} + * + * @param component to get send to the client + * @return the builder + */ + Builder title(@NotNull Component component); + + /** + * Set the frame typ of the notification + * @param frameType to showed for the client + * @return the builder + */ + Builder frameType(@NotNull FrameType frameType); + + /** + * Set the {@link Material} for the icon + * @param material to be shown to the client + * @return the builder + */ + Builder icon(@NotNull Material material); + + /** + * Set the {@link ItemStack} for the icon + * @param itemStack to be shown to the client + * @return the builder + */ + Builder icon(@NotNull ItemStack itemStack); + + /** + * Returns an instance of the creation notification + * @return the instance + */ + Notification build(); + } +} diff --git a/src/main/java/net/minestom/server/notifications/NotificationBuilder.java b/src/main/java/net/minestom/server/notifications/NotificationBuilder.java new file mode 100644 index 00000000000..97452ee3a55 --- /dev/null +++ b/src/main/java/net/minestom/server/notifications/NotificationBuilder.java @@ -0,0 +1,60 @@ +package net.minestom.server.notifications; + +import net.kyori.adventure.text.Component; +import net.minestom.server.advancements.FrameType; +import net.minestom.server.item.ItemStack; +import net.minestom.server.item.Material; +import org.jetbrains.annotations.NotNull; + +/** + * {@inheritDoc} + */ +final class NotificationBuilder implements Notification.Builder { + private Component title; + private FrameType type; + private ItemStack icon; + + /** + * {@inheritDoc} + */ + @Override + public Notification.Builder title(@NotNull Component component) { + this.title = component; + return this; + } + + /** + * {@inheritDoc} + */ + @Override + public Notification.Builder frameType(@NotNull FrameType frameType) { + this.type = frameType; + return this; + } + + /** + * {@inheritDoc} + */ + @Override + public Notification.Builder icon(@NotNull Material material) { + this.icon = ItemStack.of(material); + return this; + } + + /** + * {@inheritDoc} + */ + @Override + public Notification.Builder icon(@NotNull ItemStack itemStack) { + this.icon = itemStack; + return this; + } + + /** + * {@inheritDoc} + */ + @Override + public Notification build() { + return new NotificationImpl(title, type, icon); + } +} diff --git a/src/main/java/net/minestom/server/notifications/NotificationImpl.java b/src/main/java/net/minestom/server/notifications/NotificationImpl.java new file mode 100644 index 00000000000..8f03e724c55 --- /dev/null +++ b/src/main/java/net/minestom/server/notifications/NotificationImpl.java @@ -0,0 +1,58 @@ +package net.minestom.server.notifications; + +import net.kyori.adventure.text.Component; +import net.minestom.server.advancements.FrameType; +import net.minestom.server.entity.Player; +import net.minestom.server.item.ItemStack; +import net.minestom.server.network.packet.server.play.AdvancementsPacket; +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; +import java.util.List; + +/** + * {@inheritDoc} + */ +record NotificationImpl(@NotNull Component title, @NotNull FrameType type, + @NotNull ItemStack icon) implements Notification { + /** + * {@inheritDoc} + */ + @Override + public void send(@NotNull Player player) { + player.sendPacket(createPacket()); + player.sendPacket(REMOVE_PACKET); + } + + /** + * {@inheritDoc} + */ + @Override + public void send(@NotNull Collection<@NotNull Player> players) { + players.forEach(this::send); + } + + /** + * Create the advancement packet that simulates the notification. + * It's not private because integration tests + * @return the packet + */ + @NotNull AdvancementsPacket createPacket() { + final var displayData = new AdvancementsPacket.DisplayData( + title(), Component.empty(), + icon(), type(), + 0x6, null, 0f, 0f); + + final var criteria = new AdvancementsPacket.Criteria("minestom:some_criteria", + new AdvancementsPacket.CriterionProgress(System.currentTimeMillis())); + + final var advancement = new AdvancementsPacket.Advancement(null, displayData, + List.of(new AdvancementsPacket.Requirement(List.of(criteria.criterionIdentifier()))), + false); + + final var mapping = new AdvancementsPacket.AdvancementMapping(IDENTIFIER, advancement); + final var progressMapping = new AdvancementsPacket.ProgressMapping(IDENTIFIER, + new AdvancementsPacket.AdvancementProgress(List.of(criteria))); + return new AdvancementsPacket(false, List.of(mapping), List.of(), List.of(progressMapping)); + } +} diff --git a/src/main/java/net/minestom/server/notifications/package-info.java b/src/main/java/net/minestom/server/notifications/package-info.java new file mode 100644 index 00000000000..059b6016d8c --- /dev/null +++ b/src/main/java/net/minestom/server/notifications/package-info.java @@ -0,0 +1,12 @@ +/** + * This module contains logic about notification system for the minecraft client. + *

    + * It allows developers to show a toast in the right upper corner with 3 different frame types: + * {@link net.minestom.server.advancements.FrameType#GOAL}, {@link net.minestom.server.advancements.FrameType#TASK} or {@link net.minestom.server.advancements.FrameType#CHALLENGE} + *

    + * + * @since 1.4.1 + * @author TheMeinerLP + * @version 1.0 + */ +package net.minestom.server.notifications; \ No newline at end of file diff --git a/src/main/java/net/minestom/server/ping/ResponseData.java b/src/main/java/net/minestom/server/ping/ResponseData.java index 885d850b020..e3c644f0826 100644 --- a/src/main/java/net/minestom/server/ping/ResponseData.java +++ b/src/main/java/net/minestom/server/ping/ResponseData.java @@ -1,11 +1,7 @@ package net.minestom.server.ping; -import com.google.gson.JsonObject; import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; -import net.kyori.adventure.text.serializer.plain.PlainComponentSerializer; import net.minestom.server.MinecraftServer; -import net.minestom.server.entity.Player; import net.minestom.server.event.server.ServerListPingEvent; import net.minestom.server.network.ConnectionManager; import net.minestom.server.network.ConnectionState; @@ -21,9 +17,7 @@ */ public class ResponseData { private static final Component DEFAULT_DESCRIPTION = Component.text("Minestom Server"); - private final List entries; - private String version; private int protocol; private int maxPlayer; @@ -46,17 +40,6 @@ public ResponseData() { this.playersHidden = false; } - /** - * Sets the name for the response. - * - * @param name The name for the response data. - * @deprecated This is named incorrectly, use {@link #setVersion(String)} instead - */ - @Deprecated - public void setName(String name) { - this.setVersion(name); - } - /** * Sets the version name for the response. * @@ -129,88 +112,6 @@ public int getOnline() { return online; } - /** - * Adds some players to the response. - * - * @param players the players - * @deprecated Use {@link #addEntries(Collection)}} - */ - @Deprecated - public void addPlayer(Iterable players) { - for (Player player : players) { - this.addPlayer(player); - } - } - - /** - * Adds a player to the response. - * - * @param player the player - * @deprecated Use {@link #addEntry(NamedAndIdentified)} - */ - @Deprecated - public void addPlayer(Player player) { - this.addEntry(player); - } - - /** - * Adds a player to the response. - * - * @param name The name of the player. - * @param uuid The unique identifier of the player. - * @deprecated Use {@link #addEntry(NamedAndIdentified)} with {@link NamedAndIdentified#of(String, UUID)} - */ - @Deprecated - public void addPlayer(String name, UUID uuid) { - this.addEntry(NamedAndIdentified.of(name, uuid)); - } - - /** - * Adds a player to the response. - *

    - * {@link UUID#randomUUID()} is used as the player's UUID. - * - * @param name The name of the player. - * @deprecated Use {@link #addEntry(NamedAndIdentified)} with {@link NamedAndIdentified#named(String)} - */ - @Deprecated - public void addPlayer(String name) { - this.addEntry(NamedAndIdentified.named(name)); - } - - /** - * Removes all of the ping players from this {@link #entries}. The {@link #entries} list - * will be empty this call returns. - * - * @deprecated Use {@link #clearEntries()} - */ - @Deprecated - public void clearPlayers() { - this.clearEntries(); - } - - /** - * Get the list of the response players. - * - * @return the list of the response players. - * @deprecated Use {@link #getEntries()}. This return value is now unmodifiable and this operation is incredibly costly. - */ - @Deprecated(forRemoval = true) // to throw an error for people using it - this method is *horrible* - public List getPlayers() { - return this.entries.stream() - .map(entry -> PingPlayer.of(PlainComponentSerializer.plain().serialize(entry.getName()), entry.getUuid())).toList(); - } - - /** - * Sets the response description. - * - * @param description The description for the response data. - * @deprecated Use {@link #setDescription(Component)} - */ - @Deprecated - public void setDescription(String description) { - this.description = LegacyComponentSerializer.legacySection().deserialize(description); - } /** * Sets the response description. @@ -314,44 +215,4 @@ public void setPlayersHidden(boolean playersHidden) { public boolean arePlayersHidden() { return playersHidden; } - - /** - * Converts the response data into a {@link JsonObject}. - * - * @return The converted response data as a json tree. - * @deprecated Use {@link ServerListPingType#getPingResponse(ResponseData)} - */ - @Deprecated - public @NotNull JsonObject build() { - return ServerListPingType.getModernPingResponse(this, true); - } - - /** - * Represents a player line in the server list hover. - * - * @deprecated See {@link NamedAndIdentified} - */ - @Deprecated - public static class PingPlayer { - - private static @NotNull PingPlayer of(@NotNull String name, @NotNull UUID uuid) { - return new PingPlayer(name, uuid); - } - - private final String name; - private final UUID uuid; - - private PingPlayer(@NotNull String name, @NotNull UUID uuid) { - this.name = name; - this.uuid = uuid; - } - - public @NotNull String getName() { - return name; - } - - public @NotNull UUID getUuid() { - return uuid; - } - } } diff --git a/src/main/java/net/minestom/server/scoreboard/BelowNameTag.java b/src/main/java/net/minestom/server/scoreboard/BelowNameTag.java index b5817c96772..5e85964a527 100644 --- a/src/main/java/net/minestom/server/scoreboard/BelowNameTag.java +++ b/src/main/java/net/minestom/server/scoreboard/BelowNameTag.java @@ -25,18 +25,6 @@ public class BelowNameTag implements Scoreboard { private final ScoreboardObjectivePacket scoreboardObjectivePacket; - /** - * Creates a new below name scoreboard. - * - * @param name The objective name of the scoreboard - * @param value The value of the scoreboard - * @deprecated Use {@link #BelowNameTag(String, Component)} - */ - @Deprecated - public BelowNameTag(String name, String value) { - this(name, Component.text(value)); - } - /** * Creates a new below name scoreboard. * diff --git a/src/main/java/net/minestom/server/scoreboard/Scoreboard.java b/src/main/java/net/minestom/server/scoreboard/Scoreboard.java index ca3faecdd7a..ddc42f51f48 100644 --- a/src/main/java/net/minestom/server/scoreboard/Scoreboard.java +++ b/src/main/java/net/minestom/server/scoreboard/Scoreboard.java @@ -15,20 +15,6 @@ */ public interface Scoreboard extends Viewable, PacketGroupingAudience { - /** - * Creates a creation objective packet. - * - * @param value The value for the objective - * @param type The type for the objective - * @return the creation objective packet - * @deprecated Use {@link #getCreationObjectivePacket(Component, ScoreboardObjectivePacket.Type)} - */ - @Deprecated - @NotNull - default ScoreboardObjectivePacket getCreationObjectivePacket(String value, ScoreboardObjectivePacket.Type type) { - return this.getCreationObjectivePacket(Component.text(value), type); - } - /** * Creates a creation objective packet. * diff --git a/src/main/java/net/minestom/server/scoreboard/Sidebar.java b/src/main/java/net/minestom/server/scoreboard/Sidebar.java index d35dd8e0478..03778ff4a36 100644 --- a/src/main/java/net/minestom/server/scoreboard/Sidebar.java +++ b/src/main/java/net/minestom/server/scoreboard/Sidebar.java @@ -19,7 +19,7 @@ /** * Represents a sidebar which can contain up to 16 {@link ScoreboardLine}. *

    - * In order to use it you need to create a new instance using the constructor {@link #Sidebar(String)} and create new lines + * In order to use it you need to create a new instance using the constructor {@link #Sidebar(Component)} and create new lines * with {@link #createLine(ScoreboardLine)}. You can then add a {@link Player} to the viewing list using {@link #addViewer(Player)} * and remove him later with {@link #removeViewer(Player)}. *

    @@ -50,17 +50,6 @@ public class Sidebar implements Scoreboard { private Component title; - /** - * Creates a new sidebar - * - * @param title The title of the sidebar - * @deprecated Use {@link #Sidebar(Component)} - */ - @Deprecated - public Sidebar(@NotNull String title) { - this(Component.text(title)); - } - /** * Creates a new sidebar * @@ -77,17 +66,6 @@ public Sidebar(@NotNull Component title) { } } - /** - * Changes the {@link Sidebar} title - * - * @param title The new sidebar title - * @deprecated Use {@link #setTitle(Component)} - */ - @Deprecated - public void setTitle(@NotNull String title) { - this.setTitle(Component.text(title)); - } - /** * Changes the {@link Sidebar} title * diff --git a/src/main/java/net/minestom/server/tag/TagNbtSeparator.java b/src/main/java/net/minestom/server/tag/TagNbtSeparator.java index 83ea125f1bf..e283b5e5558 100644 --- a/src/main/java/net/minestom/server/tag/TagNbtSeparator.java +++ b/src/main/java/net/minestom/server/tag/TagNbtSeparator.java @@ -72,7 +72,7 @@ private static void convert(List path, String key, BinaryTag nbt, Consum } consumer.accept(makeEntry(path, Tag.class.cast(tag), List.of(values))); } catch (Exception e) { - e.printStackTrace(); + MinecraftServer.getExceptionManager().handleException(e); consumer.accept(makeEntry(path, Tag.NBT(key), nbt)); } } diff --git a/src/main/java/net/minestom/server/terminal/MinestomConsoleWriter.java b/src/main/java/net/minestom/server/terminal/MinestomConsoleWriter.java new file mode 100644 index 00000000000..738c3d0ba9b --- /dev/null +++ b/src/main/java/net/minestom/server/terminal/MinestomConsoleWriter.java @@ -0,0 +1,36 @@ +package net.minestom.server.terminal; + +import org.fusesource.jansi.AnsiConsole; +import org.tinylog.core.LogEntry; +import org.tinylog.writers.AbstractFormatPatternWriter; + +import java.util.Map; + +import static net.minestom.server.terminal.MinestomTerminal.reader; + +public final class MinestomConsoleWriter extends AbstractFormatPatternWriter { + public MinestomConsoleWriter(Map properties) { + super(properties); + } + + @Override + public void write(LogEntry logEntry) throws Exception { + String rendered = render(logEntry); + String formatted = TerminalColorConverter.format(rendered); + if (reader != null) { + reader.printAbove(formatted); + } else { + AnsiConsole.out().print(formatted); + } + } + + @Override + public void flush() { + // EMPTY + } + + @Override + public void close() { + // EMPTY + } +} diff --git a/src/main/java/net/minestom/server/terminal/MinestomTerminal.java b/src/main/java/net/minestom/server/terminal/MinestomTerminal.java new file mode 100644 index 00000000000..a71fca4ffa1 --- /dev/null +++ b/src/main/java/net/minestom/server/terminal/MinestomTerminal.java @@ -0,0 +1,100 @@ +package net.minestom.server.terminal; + +import net.minestom.server.MinecraftServer; +import net.minestom.server.command.builder.Command; +import net.minestom.server.command.builder.suggestion.Suggestion; +import net.minestom.server.command.builder.suggestion.SuggestionEntry; +import net.minestom.server.listener.TabCompleteListener; +import org.jetbrains.annotations.ApiStatus; +import org.jline.reader.Candidate; +import org.jline.reader.Completer; +import org.jline.reader.EndOfFileException; +import org.jline.reader.LineReader; +import org.jline.reader.LineReaderBuilder; +import org.jline.reader.ParsedLine; +import org.jline.reader.UserInterruptException; +import org.jline.terminal.Terminal; +import org.jline.terminal.TerminalBuilder; + +import java.io.IOException; +import java.util.List; + +public class MinestomTerminal { + private static final String PROMPT = "> "; + private static volatile Terminal terminal; + static volatile LineReader reader; + private static volatile boolean running = false; + + @ApiStatus.Internal + public static void start() { + final Thread thread = new Thread(null, () -> { + try { + terminal = TerminalBuilder.terminal(); + } catch (IOException e) { + MinecraftServer.getExceptionManager().handleException(e); + } + reader = LineReaderBuilder.builder() + .completer(new MinestomCompleter()) + .terminal(terminal) + .build(); + running = true; + + while (running) { + String command; + try { + command = reader.readLine(PROMPT); + var commandManager = MinecraftServer.getCommandManager(); + commandManager.execute(commandManager.getConsoleSender(), command); + } catch (UserInterruptException e) { + // Handle Ctrl + C + System.exit(0); + return; + } catch (EndOfFileException e) { + return; + } + } + }, "Jline"); + thread.setDaemon(true); + thread.start(); + } + + @ApiStatus.Internal + public static void stop() { + running = false; + if (terminal != null) { + try { + terminal.close(); + } catch (IOException e) { + MinecraftServer.getExceptionManager().handleException(e); + } + reader = null; + } + } + + private static final class MinestomCompleter implements Completer { + @Override + public void complete(LineReader reader, ParsedLine line, List candidates) { + final var commandManager = MinecraftServer.getCommandManager(); + final var consoleSender = commandManager.getConsoleSender(); + if (line.wordIndex() == 0) { + final String commandString = line.word().toLowerCase(); + candidates.addAll( + commandManager.getDispatcher().getCommands().stream() + .map(Command::getName) + .filter(name -> commandString.isBlank() || name.toLowerCase().startsWith(commandString)) + .map(Candidate::new) + .toList() + ); + } else { + final String text = line.line(); + final Suggestion suggestion = TabCompleteListener.getSuggestion(consoleSender, text); + if (suggestion != null) { + suggestion.getEntries().stream() + .map(SuggestionEntry::getEntry) + .map(Candidate::new) + .forEach(candidates::add); + } + } + } + } +} diff --git a/src/main/java/net/minestom/server/terminal/TerminalColorConverter.java b/src/main/java/net/minestom/server/terminal/TerminalColorConverter.java new file mode 100644 index 00000000000..2c9fc094e28 --- /dev/null +++ b/src/main/java/net/minestom/server/terminal/TerminalColorConverter.java @@ -0,0 +1,100 @@ +package net.minestom.server.terminal; + +import net.kyori.adventure.text.format.NamedTextColor; +import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; +import net.minestom.server.ServerFlag; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * A string converter to convert a string to an ansi-colored one. + * + * @see TerminalConsoleAppender + * @see Paper + */ +final class TerminalColorConverter { + + private static final String RGB_ANSI = "\u001B[38;2;%d;%d;%dm"; + private static final String ANSI_RESET = "\u001B[m"; + private static final String LOOKUP = "0123456789abcdefklmnor"; + private static final String[] ANSI_CODES = new String[]{ + getAnsiColor(NamedTextColor.BLACK, "\u001B[0;30m"), // Black §0 + getAnsiColor(NamedTextColor.DARK_BLUE, "\u001B[0;34m"), // Dark Blue §1 + getAnsiColor(NamedTextColor.DARK_GREEN, "\u001B[0;32m"), // Dark Green §2 + getAnsiColor(NamedTextColor.DARK_AQUA, "\u001B[0;36m"), // Dark Aqua §3 + getAnsiColor(NamedTextColor.DARK_RED, "\u001B[0;31m"), // Dark Red §4 + getAnsiColor(NamedTextColor.DARK_PURPLE, "\u001B[0;35m"), // Dark Purple §5 + getAnsiColor(NamedTextColor.GOLD, "\u001B[0;33m"), // Gold §6 + getAnsiColor(NamedTextColor.GRAY, "\u001B[0;37m"), // Gray §7 + getAnsiColor(NamedTextColor.DARK_GRAY, "\u001B[0;30;1m"), // Dark Gray §8 + getAnsiColor(NamedTextColor.BLUE, "\u001B[0;34;1m"), // Blue §9 + getAnsiColor(NamedTextColor.GREEN, "\u001B[0;32;1m"), // Green §a + getAnsiColor(NamedTextColor.AQUA, "\u001B[0;36;1m"), // Aqua §b + getAnsiColor(NamedTextColor.RED, "\u001B[0;31;1m"), // Red §c + getAnsiColor(NamedTextColor.LIGHT_PURPLE, "\u001B[0;35;1m"), // Light Purple §d + getAnsiColor(NamedTextColor.YELLOW, "\u001B[0;33;1m"), // Yellow §e + getAnsiColor(NamedTextColor.WHITE, "\u001B[0;37;1m"), // White §f + "\u001B[5m", // Obfuscated §k + "\u001B[1m", // Bold §l + "\u001B[9m", // Strikethrough §m + "\u001B[4m", // Underline §n + "\u001B[3m", // Italic §o + ANSI_RESET, // Reset §r + }; + private static final Pattern RGB_PATTERN = Pattern.compile(LegacyComponentSerializer.SECTION_CHAR + "#([\\da-fA-F]{6})"); + private static final Pattern NAMED_PATTERN = Pattern.compile(LegacyComponentSerializer.SECTION_CHAR + "([\\da-fk-orA-FK-OR])"); + + private TerminalColorConverter() { + } + + private static String getAnsiColor(NamedTextColor color, String fallback) { + return getAnsiColorFromHexColor(color.value(), fallback); + } + + private static String getAnsiColorFromHexColor(int color, String fallback) { + return ServerFlag.TERMINAL_SUPPORT_HEX_COLOR ? String.format(RGB_ANSI, (color >> 16) & 0xFF, (color >> 8) & 0xFF, color & 0xFF) : fallback; + } + + private static String getAnsiColorFromHexColor(int color) { + return getAnsiColorFromHexColor(color, ""); + } + + /** + * Format the colored string to an ansi-colored one. + * + * @param string the string to format + * @return the formatted string + */ + public static String format(String string) { + if (string.indexOf(LegacyComponentSerializer.SECTION_CHAR) == -1) { + return string; + } + + string = RGB_PATTERN.matcher(string).replaceAll(match -> { + if (ServerFlag.TERMINAL_SUPPORT_COLOR) { + String hex = match.group(1); + return getAnsiColorFromHexColor(Integer.parseInt(hex, 16)); + } else { + return ""; + } + }); + + Matcher matcher = NAMED_PATTERN.matcher(string); + StringBuilder builder = new StringBuilder(); + while (matcher.find()) { + int format = LOOKUP.indexOf(Character.toLowerCase(matcher.group().charAt(1))); + if (format != -1) { + matcher.appendReplacement(builder, ServerFlag.TERMINAL_SUPPORT_COLOR ? ANSI_CODES[format] : ""); + } else { + matcher.appendReplacement(builder, matcher.group()); + } + } + matcher.appendTail(builder); + + if (ServerFlag.TERMINAL_SUPPORT_COLOR) { + builder.append(ANSI_RESET); + } + return builder.toString(); + } +} diff --git a/src/main/java/net/minestom/server/thread/Acquirable.java b/src/main/java/net/minestom/server/thread/Acquirable.java index ab56f33af80..ece76148a83 100644 --- a/src/main/java/net/minestom/server/thread/Acquirable.java +++ b/src/main/java/net/minestom/server/thread/Acquirable.java @@ -26,8 +26,8 @@ public sealed interface Acquirable permits AcquirableImpl { if (currentThread instanceof TickThread) { return ((TickThread) currentThread).entries().stream() .flatMap(partitionEntry -> partitionEntry.elements().stream()) - .filter(tickable -> tickable instanceof Entity) - .map(tickable -> (Entity) tickable); + .filter(Entity.class::isInstance) //Microtus - update java keyword usage + .map(Entity.class::cast); //Microtus - update java keyword usage } return Stream.empty(); } diff --git a/src/main/java/net/minestom/server/utils/TickUtils.java b/src/main/java/net/minestom/server/utils/TickUtils.java index 84ac9ec1436..15bdbee8558 100644 --- a/src/main/java/net/minestom/server/utils/TickUtils.java +++ b/src/main/java/net/minestom/server/utils/TickUtils.java @@ -43,4 +43,9 @@ public static int fromDuration(@NotNull Duration duration, int msPerTick) { Check.argCondition(duration.isNegative(), "Duration cannot be negative"); return (int) (duration.toMillis() / msPerTick); } + + /** + * Default private default constructor. + */ + private TickUtils() { } } diff --git a/src/main/java/net/minestom/server/utils/UniqueIdUtils.java b/src/main/java/net/minestom/server/utils/UniqueIdUtils.java index 8d04807afb2..93c6d86ea39 100644 --- a/src/main/java/net/minestom/server/utils/UniqueIdUtils.java +++ b/src/main/java/net/minestom/server/utils/UniqueIdUtils.java @@ -12,16 +12,21 @@ */ @ApiStatus.Internal public final class UniqueIdUtils { + + public static final String UUID_GROUP_REPLACEMENT = "$1-$2-$3-$4-$5"; // Microtus - improve string pattern usage public static final Pattern UNIQUE_ID_PATTERN = Pattern.compile("\\b[0-9a-f]{8}\\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\\b[0-9a-f]{12}\\b"); + // Microtus - improve string pattern usage + add private constructor + private UniqueIdUtils() {} + /** * Checks whether the {@code input} string is an {@link UUID}. * * @param input The input string to be checked * @return {@code true} if the input an unique identifier, otherwise {@code false} */ - public static boolean isUniqueId(String input) { - return input.matches(UNIQUE_ID_PATTERN.pattern()); + public static boolean isUniqueId(@NotNull String input) { + return !input.trim().isEmpty() && UNIQUE_ID_PATTERN.matcher(input).matches(); // Microtus - improve string pattern usage } public static @NotNull UUID fromNbt(@NotNull IntArrayBinaryTag tag) { diff --git a/src/main/java/net/minestom/server/utils/time/TimeUnit.java b/src/main/java/net/minestom/server/utils/time/TimeUnit.java index 7e181a47c91..43e25a3f283 100644 --- a/src/main/java/net/minestom/server/utils/time/TimeUnit.java +++ b/src/main/java/net/minestom/server/utils/time/TimeUnit.java @@ -11,11 +11,6 @@ public final class TimeUnit { public static final TemporalUnit MILLISECOND = ChronoUnit.MILLIS; public static final TemporalUnit SERVER_TICK = Tick.SERVER_TICKS; public static final TemporalUnit CLIENT_TICK = Tick.CLIENT_TICKS; - /** - * @deprecated Please use either {@link #SERVER_TICK} or {@link #CLIENT_TICK} - */ - @Deprecated(forRemoval = true) - public static final TemporalUnit TICK = CLIENT_TICK; private TimeUnit() { } diff --git a/src/main/java/net/minestom/server/world/biome/Biome.java b/src/main/java/net/minestom/server/world/biome/Biome.java index 30ba781b312..7276a7b912c 100644 --- a/src/main/java/net/minestom/server/world/biome/Biome.java +++ b/src/main/java/net/minestom/server/world/biome/Biome.java @@ -1,5 +1,6 @@ package net.minestom.server.world.biome; +import java.util.Locale; import net.minestom.server.coordinate.Point; import net.minestom.server.registry.DynamicRegistry; import net.minestom.server.registry.ProtocolObject; diff --git a/src/test/java/net/minestom/server/ServerProcessTest.java b/src/test/java/net/minestom/server/ServerProcessTest.java index 23fc5c7f2ec..07bf2a6fbac 100644 --- a/src/test/java/net/minestom/server/ServerProcessTest.java +++ b/src/test/java/net/minestom/server/ServerProcessTest.java @@ -9,10 +9,10 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assumptions.assumeTrue; -public class ServerProcessTest { +class ServerProcessTest { @Test - public void init() { + void init() { // These like to fail on github actions assumeTrue(System.getenv("GITHUB_ACTIONS") == null); @@ -24,7 +24,7 @@ public void init() { } @Test - public void tick() { + void tick() { // These like to fail on github actions assumeTrue(System.getenv("GITHUB_ACTIONS") == null); diff --git a/src/test/java/net/minestom/server/advancements/AdvancementIntegrationTest.java b/src/test/java/net/minestom/server/advancements/AdvancementIntegrationTest.java index d74d97e8b82..2d317516f9e 100644 --- a/src/test/java/net/minestom/server/advancements/AdvancementIntegrationTest.java +++ b/src/test/java/net/minestom/server/advancements/AdvancementIntegrationTest.java @@ -10,10 +10,10 @@ import static org.junit.jupiter.api.Assertions.*; @EnvTest -public class AdvancementIntegrationTest { +class AdvancementIntegrationTest { @Test - public void addAndRemoveViewer(Env env) { + void addAndRemoveViewer(Env env) { var instance = env.createFlatInstance(); var player = env.createPlayer(instance, new Pos(0, 42, 0)); @@ -46,7 +46,7 @@ public void addAndRemoveViewer(Env env) { } @Test - public void removeViewerOnDisconnect(Env env) { + void removeViewerOnDisconnect(Env env) { var instance = env.createFlatInstance(); var player = env.createPlayer(instance, new Pos(0, 42, 0)); diff --git a/src/test/java/net/minestom/server/adventure/provider/TranslationTest.java b/src/test/java/net/minestom/server/adventure/provider/TranslationTest.java index 6754317b800..fa2ea6380af 100644 --- a/src/test/java/net/minestom/server/adventure/provider/TranslationTest.java +++ b/src/test/java/net/minestom/server/adventure/provider/TranslationTest.java @@ -4,10 +4,10 @@ import net.minestom.server.adventure.MinestomAdventure; import org.junit.jupiter.api.Test; -public class TranslationTest { +class TranslationTest { @Test - public void testUnregisteredTranslation() { + void testUnregisteredTranslation() { MinestomAdventure.AUTOMATIC_COMPONENT_TRANSLATION = true; try { MinestomFlattenerProvider.INSTANCE.flatten(Component.translatable("key.unregistered"), text -> { diff --git a/src/test/java/net/minestom/server/collision/EntityBlockTouchTickIntegrationTest.java b/src/test/java/net/minestom/server/collision/EntityBlockTouchTickIntegrationTest.java index f5fbb8a9b99..2160a817501 100644 --- a/src/test/java/net/minestom/server/collision/EntityBlockTouchTickIntegrationTest.java +++ b/src/test/java/net/minestom/server/collision/EntityBlockTouchTickIntegrationTest.java @@ -20,9 +20,9 @@ import static org.junit.jupiter.api.Assertions.assertTrue; @EnvTest -public class EntityBlockTouchTickIntegrationTest { +class EntityBlockTouchTickIntegrationTest { @Test - public void entityPhysicsCheckTouchTick(Env env) { + void entityPhysicsCheckTouchTick(Env env) { var instance = env.createFlatInstance(); Set positions = new HashSet<>(); @@ -60,7 +60,7 @@ public void onTouch(@NotNull Touch touch) { } @Test - public void entityPhysicsCheckTouchTickFarZ(Env env) { + void entityPhysicsCheckTouchTickFarZ(Env env) { var instance = env.createFlatInstance(); instance.loadChunk(new Pos(1000, 1000, 1000)); @@ -100,7 +100,7 @@ public void onTouch(@NotNull Touch touch) { } @Test - public void entityPhysicsCheckTouchTickFarX(Env env) { + void entityPhysicsCheckTouchTickFarX(Env env) { var instance = env.createFlatInstance(); instance.loadChunk(new Pos(1000, 1000, 1000)); @@ -148,7 +148,7 @@ public void onTouch(@NotNull Touch touch) { } @Test - public void entityPhysicsCheckTouchTickFarNegative(Env env) { + void entityPhysicsCheckTouchTickFarNegative(Env env) { var instance = env.createFlatInstance(); instance.loadChunk(new Pos(-1000, 44, -1000)); diff --git a/src/test/java/net/minestom/server/collision/EntityProjectileCollisionIntegrationTest.java b/src/test/java/net/minestom/server/collision/EntityProjectileCollisionIntegrationTest.java index ccfc27c7872..025461ff5cb 100644 --- a/src/test/java/net/minestom/server/collision/EntityProjectileCollisionIntegrationTest.java +++ b/src/test/java/net/minestom/server/collision/EntityProjectileCollisionIntegrationTest.java @@ -26,10 +26,10 @@ import static org.junit.jupiter.api.Assertions.*; @EnvTest -public class EntityProjectileCollisionIntegrationTest { +class EntityProjectileCollisionIntegrationTest { @Test - public void blockShootAndBlockRemoval(Env env) { + void blockShootAndBlockRemoval(Env env) { final Instance instance = env.createFlatInstance(); instance.setWorldBorder(WorldBorder.DEFAULT_BORDER.withDiameter(1000)); @@ -73,7 +73,7 @@ public void blockShootAndBlockRemoval(Env env) { } @Test - public void entityShoot(Env env) { + void entityShoot(Env env) { final Instance instance = env.createFlatInstance(); instance.setWorldBorder(WorldBorder.DEFAULT_BORDER.withDiameter(1000)); @@ -121,7 +121,7 @@ private void singleEntityShoot( } @Test - public void entitySelfShoot(Env env) { + void entitySelfShoot(Env env) { final Instance instance = env.createFlatInstance(); instance.setWorldBorder(WorldBorder.DEFAULT_BORDER.withDiameter(1000)); diff --git a/src/test/java/net/minestom/server/collision/PlacementCollisionIntegrationTest.java b/src/test/java/net/minestom/server/collision/PlacementCollisionIntegrationTest.java index 27a2f36c19f..f3e90e530f4 100644 --- a/src/test/java/net/minestom/server/collision/PlacementCollisionIntegrationTest.java +++ b/src/test/java/net/minestom/server/collision/PlacementCollisionIntegrationTest.java @@ -12,30 +12,30 @@ import static org.junit.jupiter.api.Assertions.*; @EnvTest -public class PlacementCollisionIntegrationTest { +class PlacementCollisionIntegrationTest { @Test - public void empty(Env env) { + void empty(Env env) { var instance = env.createFlatInstance(); assertNull(BlockCollision.canPlaceBlockAt(instance, new Vec(0, 40, 0), Block.STONE)); } @Test - public void entityBlock(Env env) { + void entityBlock(Env env) { var instance = env.createFlatInstance(); new Entity(EntityType.ZOMBIE).setInstance(instance, new Pos(0, 40, 0)).join(); assertNotNull(BlockCollision.canPlaceBlockAt(instance, new Vec(0, 40, 0), Block.STONE)); } @Test - public void slab(Env env) { + void slab(Env env) { var instance = env.createFlatInstance(); new Entity(EntityType.ZOMBIE).setInstance(instance, new Pos(0, 40.75, 0)).join(); assertNull(BlockCollision.canPlaceBlockAt(instance, new Vec(0, 40, 0), Block.STONE_SLAB)); } @Test - public void belowPlayer(Env env) { + void belowPlayer(Env env) { var instance = env.createFlatInstance(); env.createPlayer(instance, new Pos(5.7, -8, 6.389)); assertNull(BlockCollision.canPlaceBlockAt(instance, new Vec(5, -9, 6), Block.STONE)); diff --git a/src/test/java/net/minestom/server/collision/TestShape.java b/src/test/java/net/minestom/server/collision/TestShape.java index 8ccc65d5a66..49c71f7af9c 100644 --- a/src/test/java/net/minestom/server/collision/TestShape.java +++ b/src/test/java/net/minestom/server/collision/TestShape.java @@ -11,7 +11,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class TestShape { +class TestShape { private static @NotNull Stream isFullFaceCases() { return Stream.of( diff --git a/src/test/java/net/minestom/server/command/ArgumentParserTest.java b/src/test/java/net/minestom/server/command/ArgumentParserTest.java index 9f5f68a566b..e044e512aba 100644 --- a/src/test/java/net/minestom/server/command/ArgumentParserTest.java +++ b/src/test/java/net/minestom/server/command/ArgumentParserTest.java @@ -11,10 +11,10 @@ /** * Test string version of arguments. */ -public class ArgumentParserTest { +class ArgumentParserTest { @Test - public void testArgumentParser() { + void testArgumentParser() { // Test each argument assertParserEquals("Literal", ArgumentType.Literal("example")); assertParserEquals("Boolean", ArgumentType.Boolean("example")); diff --git a/src/test/java/net/minestom/server/command/ArgumentTest.java b/src/test/java/net/minestom/server/command/ArgumentTest.java index f31ba6fb020..6b8846ed7c6 100644 --- a/src/test/java/net/minestom/server/command/ArgumentTest.java +++ b/src/test/java/net/minestom/server/command/ArgumentTest.java @@ -11,16 +11,16 @@ import static org.junit.jupiter.api.Assertions.*; -public class ArgumentTest { +class ArgumentTest { @Test - public void testParseSelf() { + void testParseSelf() { assertEquals("example", Argument.parse(new ServerSender(), ArgumentType.String("example"))); assertEquals(55, Argument.parse(new ServerSender(), ArgumentType.Integer("55"))); } @Test - public void testCallback() { + void testCallback() { var arg = ArgumentType.String("id"); assertFalse(arg.hasErrorCallback()); @@ -30,7 +30,7 @@ public void testCallback() { } @Test - public void testDefaultValue() { + void testDefaultValue() { var arg = ArgumentType.String("id"); assertFalse(arg.isOptional()); @@ -40,7 +40,7 @@ public void testDefaultValue() { } @Test - public void testSuggestionCallback() { + void testSuggestionCallback() { var arg = ArgumentType.String("id"); assertFalse(arg.hasSuggestion()); diff --git a/src/test/java/net/minestom/server/command/CommandConditionTest.java b/src/test/java/net/minestom/server/command/CommandConditionTest.java index f7450b020c9..f76f113a161 100644 --- a/src/test/java/net/minestom/server/command/CommandConditionTest.java +++ b/src/test/java/net/minestom/server/command/CommandConditionTest.java @@ -13,10 +13,10 @@ import static org.junit.jupiter.api.Assertions.*; -public class CommandConditionTest { +class CommandConditionTest { @Test - public void mainCondition() { + void mainCondition() { var dispatcher = new CommandDispatcher(); assertNull(dispatcher.findCommand("name")); var sender = new Sender(); @@ -39,7 +39,7 @@ public void mainCondition() { } @Test - public void subCondition() { + void subCondition() { var dispatcher = new CommandDispatcher(); assertNull(dispatcher.findCommand("name")); var sender = new Sender(); @@ -83,7 +83,7 @@ public void subCondition() { } @Test - public void subConditionOverride() { + void subConditionOverride() { var dispatcher = new CommandDispatcher(); assertNull(dispatcher.findCommand("name")); var sender = new Sender(); diff --git a/src/test/java/net/minestom/server/command/CommandManagerTest.java b/src/test/java/net/minestom/server/command/CommandManagerTest.java index 5d9b24d4afc..99cb85e3177 100644 --- a/src/test/java/net/minestom/server/command/CommandManagerTest.java +++ b/src/test/java/net/minestom/server/command/CommandManagerTest.java @@ -11,10 +11,10 @@ import static org.junit.jupiter.api.Assertions.*; -public class CommandManagerTest { +class CommandManagerTest { @Test - public void testCommandRegistration() { + void testCommandRegistration() { var manager = new CommandManager(); var command = new Command("name1", "name2"); @@ -33,7 +33,7 @@ public void testCommandRegistration() { } @Test - public void testUnknownCommandCallback() { + void testUnknownCommandCallback() { var manager = new CommandManager(); AtomicBoolean check = new AtomicBoolean(false); @@ -49,7 +49,7 @@ public void testUnknownCommandCallback() { } @Test - public void testSharedArgumentSyntaxABFirst() { + void testSharedArgumentSyntaxABFirst() { var manager = new CommandManager(); var checkA = new AtomicBoolean(false); @@ -77,7 +77,7 @@ public void testSharedArgumentSyntaxABFirst() { } @Test - public void testSharedArgumentSyntaxAFirst() { + void testSharedArgumentSyntaxAFirst() { var manager = new CommandManager(); var checkA = new AtomicBoolean(false); diff --git a/src/test/java/net/minestom/server/command/CommandPacketFilteringTest.java b/src/test/java/net/minestom/server/command/CommandPacketFilteringTest.java index 0ce8a207fba..f1723d9525b 100644 --- a/src/test/java/net/minestom/server/command/CommandPacketFilteringTest.java +++ b/src/test/java/net/minestom/server/command/CommandPacketFilteringTest.java @@ -10,18 +10,18 @@ import java.util.UUID; @SuppressWarnings("ConstantConditions") -public class CommandPacketFilteringTest { +class CommandPacketFilteringTest { private static final Player PLAYER = new Player(UUID.randomUUID(), "", null); @Test - public void singleCommandFilteredFalse() { + void singleCommandFilteredFalse() { final Command foo = new Command("foo"); foo.setCondition(((sender, commandString) -> false)); assertFiltering(foo, ""); } @Test - public void singleCommandFilteredTrue() { + void singleCommandFilteredTrue() { final Command foo = new Command("foo"); foo.setCondition(((sender, commandString) -> true)); assertFiltering(foo, """ @@ -31,7 +31,7 @@ public void singleCommandFilteredTrue() { } @Test - public void singleCommandUnfiltered() { + void singleCommandUnfiltered() { final Command foo = new Command("foo"); assertFiltering(foo, """ foo=% @@ -40,7 +40,7 @@ public void singleCommandUnfiltered() { } @Test - public void singleCommandFilteredTrueWithFilteredSubcommandTrueWithFilteredSyntaxFalse() { + void singleCommandFilteredTrueWithFilteredSubcommandTrueWithFilteredSyntaxFalse() { final Command foo = new Command("foo"); foo.setCondition((sender, commandString) -> true); final Command bar = new Command("bar"); @@ -55,7 +55,7 @@ public void singleCommandFilteredTrueWithFilteredSubcommandTrueWithFilteredSynta } @Test - public void singleCommandFilteredTrueWithFilteredSubcommandFalse() { + void singleCommandFilteredTrueWithFilteredSubcommandFalse() { final Command foo = new Command("foo"); foo.setCondition((sender, commandString) -> true); final Command bar = new Command("bar"); @@ -68,7 +68,7 @@ public void singleCommandFilteredTrueWithFilteredSubcommandFalse() { } @Test - public void singleCommandFilteredTrueWithFilteredSubcommandTrue() { + void singleCommandFilteredTrueWithFilteredSubcommandTrue() { final Command foo = new Command("foo"); foo.setCondition((sender, commandString) -> true); final Command bar = new Command("bar"); @@ -82,7 +82,7 @@ public void singleCommandFilteredTrueWithFilteredSubcommandTrue() { } @Test - public void singleCommandFilteredTrueWithFilteredSubcommandTrueWithFilteredSyntaxBoth() { + void singleCommandFilteredTrueWithFilteredSubcommandTrueWithFilteredSyntaxBoth() { final Command foo = new Command("foo"); foo.setCondition((sender, commandString) -> true); final Command bar = new Command("bar"); @@ -99,7 +99,7 @@ public void singleCommandFilteredTrueWithFilteredSubcommandTrueWithFilteredSynta } @Test - public void singleCommandConditionalArgGroupTrue() { + void singleCommandConditionalArgGroupTrue() { final Command foo = new Command("foo"); foo.addConditionalSyntax((sender, commandString) -> true, null, ArgumentType.Group("test", ArgumentType.Literal("bar"))); assertFiltering(foo, """ @@ -110,7 +110,7 @@ public void singleCommandConditionalArgGroupTrue() { } @Test - public void singleCommandConditionalArgGroupFalse() { + void singleCommandConditionalArgGroupFalse() { final Command foo = new Command("foo"); foo.addConditionalSyntax((sender, commandString) -> false, null, ArgumentType.Group("test", ArgumentType.Literal("foo"))); assertFiltering(foo, """ @@ -120,7 +120,7 @@ public void singleCommandConditionalArgGroupFalse() { } @Test - public void singleCommandUnconditionalArgGroup() { + void singleCommandUnconditionalArgGroup() { final Command foo = new Command("foo"); foo.addSyntax(null, ArgumentType.Group("test", ArgumentType.Literal("bar"))); assertFiltering(foo, """ @@ -131,7 +131,7 @@ public void singleCommandUnconditionalArgGroup() { } @Test - public void singleCommandConditionalArgGroupTrue2() { + void singleCommandConditionalArgGroupTrue2() { final Command foo = new Command("foo"); foo.addConditionalSyntax((sender, commandString) -> true, null, ArgumentType.Group("test", ArgumentType.Literal("bar"), ArgumentType.Literal("baz"))); assertFiltering(foo, """ @@ -143,7 +143,7 @@ public void singleCommandConditionalArgGroupTrue2() { } @Test - public void singleCommandConditionalArgGroupFalse2() { + void singleCommandConditionalArgGroupFalse2() { final Command foo = new Command("foo"); foo.addConditionalSyntax((sender, commandString) -> false, null, ArgumentType.Group("test", ArgumentType.Literal("foo"), ArgumentType.Literal("baz"))); assertFiltering(foo, """ @@ -153,7 +153,7 @@ public void singleCommandConditionalArgGroupFalse2() { } @Test - public void singleCommandUnconditionalArgGroup2() { + void singleCommandUnconditionalArgGroup2() { final Command foo = new Command("foo"); foo.addSyntax(null, ArgumentType.Group("test", ArgumentType.Literal("bar"), ArgumentType.Literal("baz"))); assertFiltering(foo, """ @@ -165,7 +165,7 @@ public void singleCommandUnconditionalArgGroup2() { } @Test - public void singleCommandUnconditionalArgLoop() { + void singleCommandUnconditionalArgLoop() { final Command foo = new Command("foo"); foo.addSyntax(null, ArgumentType.Loop("test", ArgumentType.Literal("bar"), ArgumentType.Literal("baz"))); assertFiltering(foo, """ @@ -177,7 +177,7 @@ public void singleCommandUnconditionalArgLoop() { } @Test - public void singleCommandConditionalArgLoopTrue() { + void singleCommandConditionalArgLoopTrue() { final Command foo = new Command("foo"); foo.addConditionalSyntax((sender, commandString) -> true, null, ArgumentType.Loop("test", ArgumentType.Literal("bar"), ArgumentType.Literal("baz"))); assertFiltering(foo, """ @@ -189,7 +189,7 @@ public void singleCommandConditionalArgLoopTrue() { } @Test - public void singleCommandConditionalArgLoopFalse() { + void singleCommandConditionalArgLoopFalse() { final Command foo = new Command("foo"); foo.addConditionalSyntax((sender, commandString) -> false, null, ArgumentType.Loop("test", ArgumentType.Literal("bar"), ArgumentType.Literal("baz"))); assertFiltering(foo, """ diff --git a/src/test/java/net/minestom/server/command/CommandPacketTest.java b/src/test/java/net/minestom/server/command/CommandPacketTest.java index 512aadd1123..2b516699473 100644 --- a/src/test/java/net/minestom/server/command/CommandPacketTest.java +++ b/src/test/java/net/minestom/server/command/CommandPacketTest.java @@ -9,9 +9,9 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -public class CommandPacketTest { +class CommandPacketTest { @Test - public void singleCommandWithOneSyntax() { + void singleCommandWithOneSyntax() { final Command foo = new Command("foo"); foo.addSyntax(CommandPacketTest::dummyExecutor, ArgumentType.Integer("bar")); @@ -34,7 +34,7 @@ public void singleCommandWithOneSyntax() { } @Test - public void executeLike() { + void executeLike() { enum Dimension {OVERWORLD, THE_NETHER, THE_END} final Command execute = new Command("execute"); execute.addSyntax(CommandPacketTest::dummyExecutor, ArgumentType.Loop("params", @@ -62,7 +62,7 @@ enum Dimension {OVERWORLD, THE_NETHER, THE_END} } @Test - public void singleCommandTwoEnum() { + void singleCommandTwoEnum() { var graph = Graph.builder(ArgumentType.Literal("foo")) .append(ArgumentType.Enum("bar", A.class), b -> b.append(ArgumentType.Enum("baz", B.class))) .build(); @@ -76,7 +76,7 @@ public void singleCommandTwoEnum() { } @Test - public void singleCommandRestrictedWord() { + void singleCommandRestrictedWord() { var graph = Graph.builder(ArgumentType.Literal("foo")) .append(ArgumentType.Word("bar").from("A", "B", "C")) .build(); @@ -89,7 +89,7 @@ public void singleCommandRestrictedWord() { } @Test - public void singleCommandWord() { + void singleCommandWord() { var graph = Graph.builder(ArgumentType.Literal("foo")) .append(ArgumentType.Word("bar")) .build(); @@ -102,7 +102,7 @@ public void singleCommandWord() { } @Test - public void singleCommandCommandAfterEnum() { + void singleCommandCommandAfterEnum() { var graph = Graph.builder(ArgumentType.Literal("foo")) .append(ArgumentType.Enum("bar", A.class), b -> b.append(ArgumentType.Command("baz"))) .build(); @@ -117,7 +117,7 @@ public void singleCommandCommandAfterEnum() { } @Test - public void twoCommandIntEnumInt() { + void twoCommandIntEnumInt() { var graph = Graph.builder(ArgumentType.Literal("foo")) .append(ArgumentType.Integer("int1"), b -> b.append(ArgumentType.Enum("test", A.class), c -> c.append(ArgumentType.Integer("int2")))) .build(); @@ -139,7 +139,7 @@ public void twoCommandIntEnumInt() { } @Test - public void singleCommandTwoGroupOfIntInt() { + void singleCommandTwoGroupOfIntInt() { var graph = Graph.builder(ArgumentType.Literal("foo")) .append(ArgumentType.Group("1", ArgumentType.Integer("int1"), ArgumentType.Integer("int2")), b -> b.append(ArgumentType.Group("2", ArgumentType.Integer("int3"), ArgumentType.Integer("int4")))) @@ -155,7 +155,7 @@ public void singleCommandTwoGroupOfIntInt() { """, graph); } @Test - public void twoEnumAndOneLiteralChild() { + void twoEnumAndOneLiteralChild() { var graph = Graph.builder(ArgumentType.Literal("foo")) .append(ArgumentType.Enum("a", A.class)) .append(ArgumentType.Literal("l")) @@ -170,7 +170,7 @@ public void twoEnumAndOneLiteralChild() { } @Test - public void commandAliasWithoutArg() { + void commandAliasWithoutArg() { var graph = Graph.builder(ArgumentType.Word("foo").from("foo", "bar")) .build(); assertPacketGraph(""" @@ -180,7 +180,7 @@ public void commandAliasWithoutArg() { } @Test - public void commandAliasWithArg() { + void commandAliasWithArg() { var graph = Graph.builder(ArgumentType.Word("foo").from("foo", "bar")) .append(ArgumentType.Literal("l")) .build(); @@ -192,7 +192,7 @@ public void commandAliasWithArg() { } @Test - public void cmdArgShortcut() { + void cmdArgShortcut() { var foo = Graph.builder(ArgumentType.Literal("foo")) .append(ArgumentType.String("msg")) .build(); @@ -210,7 +210,7 @@ public void cmdArgShortcut() { } @Test - public void cmdArgShortcutWithPartialArg() { + void cmdArgShortcutWithPartialArg() { var foo = Graph.builder(ArgumentType.Literal("foo")) .append(ArgumentType.String("msg")) .build(); diff --git a/src/test/java/net/minestom/server/command/CommandParseTest.java b/src/test/java/net/minestom/server/command/CommandParseTest.java index 5f2a03b5ee1..6e9e74f4d86 100644 --- a/src/test/java/net/minestom/server/command/CommandParseTest.java +++ b/src/test/java/net/minestom/server/command/CommandParseTest.java @@ -11,16 +11,16 @@ import static net.minestom.server.command.builder.arguments.ArgumentType.Word; import static org.junit.jupiter.api.Assertions.*; -public class CommandParseTest { +class CommandParseTest { @Test - public void emptyCommand() { + void emptyCommand() { var graph = Graph.merge(Graph.builder(Literal("foo"), createExecutor(new AtomicBoolean())).build()); assertUnknown(graph, ""); } @Test - public void singleParameterlessCommand() { + void singleParameterlessCommand() { final AtomicBoolean b = new AtomicBoolean(); var foo = Graph.merge(Graph.builder(Literal("foo"), createExecutor(b)).build()); assertValid(foo, "foo", b); @@ -29,7 +29,7 @@ public void singleParameterlessCommand() { } @Test - public void twoParameterlessCommand() { + void twoParameterlessCommand() { final AtomicBoolean b = new AtomicBoolean(); final AtomicBoolean b1 = new AtomicBoolean(); var graph = Graph.merge( @@ -44,7 +44,7 @@ public void twoParameterlessCommand() { } @Test - public void singleCommandWithMultipleSyntax() { + void singleCommandWithMultipleSyntax() { final AtomicBoolean add = new AtomicBoolean(); final AtomicBoolean action = new AtomicBoolean(); var foo = Graph.merge(Graph.builder(Literal("foo")) @@ -69,7 +69,7 @@ public void singleCommandWithMultipleSyntax() { } @Test - public void singleCommandOptionalArgs() { + void singleCommandOptionalArgs() { final AtomicBoolean b = new AtomicBoolean(); final AtomicReference expectedFirstArg = new AtomicReference<>("T"); var foo = Graph.merge(Graph.builder(Literal("foo")) @@ -92,7 +92,7 @@ public void singleCommandOptionalArgs() { } @Test - public void singleCommandSingleEnumArg() { + void singleCommandSingleEnumArg() { enum A {a, b} final AtomicBoolean b = new AtomicBoolean(); var foo = Graph.merge(Graph.builder(Literal("foo")) @@ -105,7 +105,7 @@ enum A {a, b} } @Test - public void aliasWithoutArgs() { + void aliasWithoutArgs() { final AtomicBoolean b = new AtomicBoolean(); var foo = Graph.merge(Graph.builder(Word("").from("foo", "bar"), createExecutor(b)) .build()); @@ -115,7 +115,7 @@ public void aliasWithoutArgs() { } @Test - public void aliasWithArgs() { + void aliasWithArgs() { final AtomicBoolean b = new AtomicBoolean(); var foo = Graph.merge(Graph.builder(Word("").from("foo", "bar")) .append(ArgumentType.Integer("test"), createExecutor(b)) diff --git a/src/test/java/net/minestom/server/command/CommandSenderTest.java b/src/test/java/net/minestom/server/command/CommandSenderTest.java index 7cbabb81a23..5fe42d7bdca 100644 --- a/src/test/java/net/minestom/server/command/CommandSenderTest.java +++ b/src/test/java/net/minestom/server/command/CommandSenderTest.java @@ -17,10 +17,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; -public class CommandSenderTest { +class CommandSenderTest { @Test - public void testSenderPermissions() { + void testSenderPermissions() { CommandSender sender = new SenderTest(); @@ -37,7 +37,7 @@ public void testSenderPermissions() { } @Test - public void testMessageSending() { + void testMessageSending() { SenderTest sender = new SenderTest(); assertNull(sender.getMostRecentMessage()); diff --git a/src/test/java/net/minestom/server/command/CommandSuggestionIntegrationTest.java b/src/test/java/net/minestom/server/command/CommandSuggestionIntegrationTest.java index 28fc868a864..fb4ad0c0b47 100644 --- a/src/test/java/net/minestom/server/command/CommandSuggestionIntegrationTest.java +++ b/src/test/java/net/minestom/server/command/CommandSuggestionIntegrationTest.java @@ -16,10 +16,10 @@ import static org.junit.jupiter.api.Assertions.assertNull; @EnvTest -public class CommandSuggestionIntegrationTest { +class CommandSuggestionIntegrationTest { @Test - public void suggestion(Env env) { + void suggestion(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var player = connection.connect(instance, new Pos(0, 42, 0)).join(); @@ -50,7 +50,7 @@ public void suggestion(Env env) { } @Test - public void suggestionWithDefaults(Env env) { + void suggestionWithDefaults(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var player = connection.connect(instance, new Pos(0, 42, 0)).join(); @@ -62,16 +62,16 @@ public void suggestionWithDefaults(Env env) { var command = new Command("foo"); - command.addSyntax((sender,context)->{}, suggestArg, defaultArg); + command.addSyntax((sender, context) -> { + }, suggestArg, defaultArg); env.process().command().register(command); var listener = connection.trackIncoming(TabCompletePacket.class); player.addPacketToQueue(new ClientTabCompletePacket(1, "foo 1")); player.interpretPacketQueue(); - listener.assertSingle(tabCompletePacket -> { - assertEquals(List.of(new TabCompletePacket.Match("suggestion", null)), tabCompletePacket.matches()); - }); + listener.assertSingle(tabCompletePacket -> + assertEquals(List.of(new TabCompletePacket.Match("suggestion", null)), tabCompletePacket.matches())); } @Test diff --git a/src/test/java/net/minestom/server/command/CommandSyntaxMultiTest.java b/src/test/java/net/minestom/server/command/CommandSyntaxMultiTest.java index ca0fec6265f..063ad7f7671 100644 --- a/src/test/java/net/minestom/server/command/CommandSyntaxMultiTest.java +++ b/src/test/java/net/minestom/server/command/CommandSyntaxMultiTest.java @@ -7,7 +7,6 @@ import java.lang.String; import java.util.List; import java.util.Map; -import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; import static net.minestom.server.command.builder.arguments.ArgumentType.Float; @@ -16,10 +15,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.fail; -public class CommandSyntaxMultiTest { +class CommandSyntaxMultiTest { @Test - public void integerFloat() { + void integerFloat() { List>> args = List.of( List.of(Literal("integer"), Integer("number")), List.of(Literal("float"), Float("number")) @@ -29,7 +28,7 @@ public void integerFloat() { } @Test - public void argPriority() { + void argPriority() { List>> args = List.of( List.of(Word("word")), List.of(Literal("literal")) @@ -38,7 +37,7 @@ public void argPriority() { } @Test - public void similarArgs() { + void similarArgs() { List>> args = List.of( List.of(Word("a")), List.of(Word("b"), Word("a")) diff --git a/src/test/java/net/minestom/server/command/CommandSyntaxSingleTest.java b/src/test/java/net/minestom/server/command/CommandSyntaxSingleTest.java index 838620a4a1e..4380bd5be50 100644 --- a/src/test/java/net/minestom/server/command/CommandSyntaxSingleTest.java +++ b/src/test/java/net/minestom/server/command/CommandSyntaxSingleTest.java @@ -15,9 +15,9 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.fail; -public class CommandSyntaxSingleTest { +class CommandSyntaxSingleTest { @Test - public void singleInteger() { + void singleInteger() { List> args = List.of(Integer("number")); assertSyntax(args, "5", ExpectedExecution.SYNTAX, Map.of("number", 5)); assertSyntax(args, "5 5", ExpectedExecution.DEFAULT); @@ -25,7 +25,7 @@ public void singleInteger() { } @Test - public void singleIntegerInteger() { + void singleIntegerInteger() { List> args = List.of(Integer("number"), Integer("number2")); assertSyntax(args, "5", ExpectedExecution.DEFAULT); assertSyntax(args, "5 6", ExpectedExecution.SYNTAX, Map.of("number", 5, "number2", 6)); @@ -33,7 +33,7 @@ public void singleIntegerInteger() { } @Test - public void singleString() { + void singleString() { List> args = List.of(String("string")); assertSyntax(args, """ "value" @@ -43,7 +43,7 @@ public void singleString() { } @Test - public void singleStringString() { + void singleStringString() { List> args = List.of(String("string"), String("string2")); assertSyntax(args, "test", ExpectedExecution.DEFAULT); assertSyntax(args, """ @@ -57,7 +57,7 @@ public void singleStringString() { } @Test - public void singleGroup() { + void singleGroup() { List> args = List.of(Group("loop", Integer("first"), Integer("second"))); // 1 2 { @@ -71,7 +71,7 @@ public void singleGroup() { } @Test - public void singleLoop() { + void singleLoop() { List> stringLoop = List.of(Loop("loop", String("value"))); assertSyntax(stringLoop, "one two three", ExpectedExecution.SYNTAX, Map.of("loop", List.of("one", "two", "three"))); @@ -80,7 +80,7 @@ public void singleLoop() { } @Test - public void singleLoopGroup() { + void singleLoopGroup() { List> groupLoop = List.of(Loop("loop", Group("group", Integer("first"), Integer("second")))); // 1 2 { @@ -109,7 +109,7 @@ public void singleLoopGroup() { } @Test - public void singleLoopDoubleGroup() { + void singleLoopDoubleGroup() { List> groupLoop = List.of( Loop("loop", Group("group", BlockState("block"), EntityType("entity_type")), diff --git a/src/test/java/net/minestom/server/command/CommandTest.java b/src/test/java/net/minestom/server/command/CommandTest.java index 420530aa47c..d56c151d1d2 100644 --- a/src/test/java/net/minestom/server/command/CommandTest.java +++ b/src/test/java/net/minestom/server/command/CommandTest.java @@ -10,10 +10,10 @@ import static org.junit.jupiter.api.Assertions.*; -public class CommandTest { +class CommandTest { @Test - public void testNames() { + void testNames() { Command command = new Command("name1", "name2", "name3"); assertEquals("name1", command.getName()); @@ -27,7 +27,7 @@ public void testNames() { } @Test - public void testGlobalListener() { + void testGlobalListener() { var manager = new CommandManager(); AtomicBoolean hasRun = new AtomicBoolean(false); diff --git a/src/test/java/net/minestom/server/command/GraphConversionExecutorTest.java b/src/test/java/net/minestom/server/command/GraphConversionExecutorTest.java index 55e5612f3e4..0bb5c4470c0 100644 --- a/src/test/java/net/minestom/server/command/GraphConversionExecutorTest.java +++ b/src/test/java/net/minestom/server/command/GraphConversionExecutorTest.java @@ -8,9 +8,9 @@ import static net.minestom.server.command.builder.arguments.ArgumentType.Literal; import static org.junit.jupiter.api.Assertions.*; -public class GraphConversionExecutorTest { +class GraphConversionExecutorTest { @Test - public void defaultCondition() { + void defaultCondition() { final Command foo = new Command("foo"); // Constant true { @@ -31,7 +31,7 @@ public void defaultCondition() { } @Test - public void emptySyntaxCondition() { + void emptySyntaxCondition() { final Command foo = new Command("foo"); foo.addSyntax(GraphConversionExecutorTest::dummyExecutor, Literal("first")); @@ -44,7 +44,7 @@ public void emptySyntaxCondition() { } @Test - public void syntaxConditionTrue() { + void syntaxConditionTrue() { final Command foo = new Command("foo"); foo.addConditionalSyntax((sender, context) -> true, GraphConversionExecutorTest::dummyExecutor, Literal("first")); @@ -57,7 +57,7 @@ public void syntaxConditionTrue() { } @Test - public void syntaxConditionFalse() { + void syntaxConditionFalse() { final Command foo = new Command("foo"); foo.addConditionalSyntax((sender, context) -> false, GraphConversionExecutorTest::dummyExecutor, Literal("first")); @@ -70,7 +70,7 @@ public void syntaxConditionFalse() { } @Test - public void commandConditionFalse() { + void commandConditionFalse() { final Command foo = new Command("foo"); foo.setCondition((sender, commandString) -> false); final Graph graph = Graph.fromCommand(foo); diff --git a/src/test/java/net/minestom/server/command/GraphConversionTest.java b/src/test/java/net/minestom/server/command/GraphConversionTest.java index 7c294232ed4..a429406c471 100644 --- a/src/test/java/net/minestom/server/command/GraphConversionTest.java +++ b/src/test/java/net/minestom/server/command/GraphConversionTest.java @@ -9,16 +9,16 @@ import static net.minestom.server.command.builder.arguments.ArgumentType.*; import static org.junit.jupiter.api.Assertions.assertTrue; -public class GraphConversionTest { +class GraphConversionTest { @Test - public void empty() { + void empty() { final Command foo = new Command("foo"); var graph = Graph.builder(Literal("foo")).build(); assertEqualsGraph(graph, foo); } @Test - public void singleLiteral() { + void singleLiteral() { final Command foo = new Command("foo"); var first = Literal("first"); foo.addSyntax(GraphConversionTest::dummyExecutor, first); @@ -28,7 +28,7 @@ public void singleLiteral() { } @Test - public void literalsPath() { + void literalsPath() { final Command foo = new Command("foo"); var first = Literal("first"); var second = Literal("second"); @@ -43,7 +43,7 @@ public void literalsPath() { } @Test - public void doubleSyntax() { + void doubleSyntax() { enum A {A, B, C, D, E} final Command foo = new Command("foo"); @@ -64,7 +64,7 @@ enum A {A, B, C, D, E} } @Test - public void doubleSyntaxMerge() { + void doubleSyntaxMerge() { final Command foo = new Command("foo"); var bar = Literal("bar"); @@ -81,7 +81,7 @@ public void doubleSyntaxMerge() { } @Test - public void subcommand() { + void subcommand() { final Command main = new Command("main"); final Command sub = new Command("sub"); @@ -107,14 +107,14 @@ public void subcommand() { } @Test - public void alias() { + void alias() { final Command main = new Command("main", "alias"); var graph = Graph.builder(Word("main").from("main", "alias")).build(); assertEqualsGraph(graph, main); } @Test - public void aliases() { + void aliases() { final Command main = new Command("main", "first", "second"); var graph = Graph.builder(Word("main").from("main", "first", "second")).build(); assertEqualsGraph(graph, main); diff --git a/src/test/java/net/minestom/server/command/GraphMergeTest.java b/src/test/java/net/minestom/server/command/GraphMergeTest.java index d257c0bd888..bed954ced10 100644 --- a/src/test/java/net/minestom/server/command/GraphMergeTest.java +++ b/src/test/java/net/minestom/server/command/GraphMergeTest.java @@ -8,10 +8,10 @@ import static net.minestom.server.command.builder.arguments.ArgumentType.Literal; import static org.junit.jupiter.api.Assertions.assertTrue; -public class GraphMergeTest { +class GraphMergeTest { @Test - public void commands() { + void commands() { var foo = new Command("foo"); var bar = new Command("bar"); var result = Graph.builder(Literal("")) @@ -22,7 +22,7 @@ public void commands() { } @Test - public void empty() { + void empty() { var graph1 = Graph.builder(Literal("foo")).build(); var graph2 = Graph.builder(Literal("bar")).build(); var result = Graph.builder(Literal("")) @@ -33,7 +33,7 @@ public void empty() { } @Test - public void literals() { + void literals() { var graph1 = Graph.builder(Literal("foo")).append(Literal("1")).build(); var graph2 = Graph.builder(Literal("bar")).append(Literal("2")).build(); var result = Graph.builder(Literal("")) diff --git a/src/test/java/net/minestom/server/command/GraphTest.java b/src/test/java/net/minestom/server/command/GraphTest.java index 388768e3bb3..91dff666e2c 100644 --- a/src/test/java/net/minestom/server/command/GraphTest.java +++ b/src/test/java/net/minestom/server/command/GraphTest.java @@ -9,9 +9,9 @@ import static net.minestom.server.command.builder.arguments.ArgumentType.Literal; import static org.junit.jupiter.api.Assertions.*; -public class GraphTest { +class GraphTest { @Test - public void empty() { + void empty() { var result = Graph.builder(Literal("")) .build(); var node = result.root(); @@ -20,7 +20,7 @@ public void empty() { } @Test - public void next() { + void next() { var result = Graph.builder(Literal("")) .append(Literal("foo")) .build(); @@ -31,7 +31,7 @@ public void next() { } @Test - public void immutableNextBuilder() { + void immutableNextBuilder() { var result = Graph.builder(Literal("")) .append(Literal("foo")) .append(Literal("bar")) @@ -42,7 +42,7 @@ public void immutableNextBuilder() { } @Test - public void immutableNextCommand() { + void immutableNextCommand() { final Command foo = new Command("foo"); var first = Literal("first"); foo.addSyntax(GraphTest::dummyExecutor, first); @@ -54,7 +54,7 @@ public void immutableNextCommand() { } @Test - public void immutableNextCommands() { + void immutableNextCommands() { final Command foo, bar; { diff --git a/src/test/java/net/minestom/server/command/SubcommandTest.java b/src/test/java/net/minestom/server/command/SubcommandTest.java index 6ed762fa232..88968d428de 100644 --- a/src/test/java/net/minestom/server/command/SubcommandTest.java +++ b/src/test/java/net/minestom/server/command/SubcommandTest.java @@ -8,10 +8,10 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -public class SubcommandTest { +class SubcommandTest { @Test - public void testSubCommands() { + void testSubCommands() { var manager = new CommandManager(); var parent = new Command("parent"); @@ -33,7 +33,7 @@ public void testSubCommands() { } @Test - public void testSubCommandConditions() { + void testSubCommandConditions() { var manager = new CommandManager(); var parent = new Command("parent"); diff --git a/src/test/java/net/minestom/server/coordinate/CoordinateTest.java b/src/test/java/net/minestom/server/coordinate/CoordinateTest.java index 560cf470c2c..2ebccae5928 100644 --- a/src/test/java/net/minestom/server/coordinate/CoordinateTest.java +++ b/src/test/java/net/minestom/server/coordinate/CoordinateTest.java @@ -11,10 +11,10 @@ import static net.minestom.server.utils.chunk.ChunkUtils.*; import static org.junit.jupiter.api.Assertions.*; -public class CoordinateTest { +class CoordinateTest { @Test - public void chunkIndex() { + void chunkIndex() { var index = getChunkIndex(2, 5); assertEquals(2, getChunkCoordX(index)); assertEquals(5, getChunkCoordZ(index)); @@ -29,7 +29,7 @@ public void chunkIndex() { } @Test - public void chunkCoordinate() { + void chunkCoordinate() { assertEquals(0, getChunkCoordinate(15)); assertEquals(1, getChunkCoordinate(16)); assertEquals(-1, getChunkCoordinate(-16)); @@ -43,7 +43,7 @@ public void chunkCoordinate() { } @Test - public void chunkCount() { + void chunkCount() { assertEquals(289, getChunkCount(8)); assertEquals(169, getChunkCount(6)); assertEquals(121, getChunkCount(5)); @@ -53,7 +53,7 @@ public void chunkCount() { } @Test - public void vecAddition() { + void vecAddition() { Vec temp = Vec.ZERO; assertEquals(0, temp.x()); assertEquals(0, temp.y()); @@ -81,7 +81,7 @@ public void vecAddition() { } @Test - public void vecWith() { + void vecWith() { Vec temp = Vec.ZERO.withX(1); assertEquals(1, temp.x()); assertEquals(0, temp.y()); @@ -94,7 +94,7 @@ public void vecWith() { } @Test - public void toSectionRelativeCoordinate() { + void toSectionRelativeCoordinate() { assertEquals(8, ChunkUtils.toSectionRelativeCoordinate(-40)); assertEquals(12, ChunkUtils.toSectionRelativeCoordinate(-20)); assertEquals(0, ChunkUtils.toSectionRelativeCoordinate(0)); @@ -107,7 +107,7 @@ public void toSectionRelativeCoordinate() { } @Test - public void blockIndex() { + void blockIndex() { // Test if the block index is correctly converted back and forth List tempEquals = List.of( @@ -151,7 +151,7 @@ public void blockIndex() { } @Test - public void blockIndexDuplicate() { + void blockIndexDuplicate() { LongSet temp = new LongOpenHashSet(); for (int x = 0; x < Chunk.CHUNK_SIZE_X; x++) { diff --git a/src/test/java/net/minestom/server/coordinate/PosViewDirectionTest.java b/src/test/java/net/minestom/server/coordinate/PosViewDirectionTest.java index e0ae029f68f..1072819aa01 100644 --- a/src/test/java/net/minestom/server/coordinate/PosViewDirectionTest.java +++ b/src/test/java/net/minestom/server/coordinate/PosViewDirectionTest.java @@ -4,11 +4,11 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class PosViewDirectionTest { +class PosViewDirectionTest { private static final float EPSILON = 0.01f; @Test - public void withLookAtPos() { + void withLookAtPos() { Pos initialPosition = new Pos(0, 40, 0); Pos position; diff --git a/src/test/java/net/minestom/server/entity/EntityBoundingBoxIntegrationTest.java b/src/test/java/net/minestom/server/entity/EntityBoundingBoxIntegrationTest.java index dc20cd87d83..01bbdd9065a 100644 --- a/src/test/java/net/minestom/server/entity/EntityBoundingBoxIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/EntityBoundingBoxIntegrationTest.java @@ -13,9 +13,9 @@ import static org.junit.jupiter.api.Assertions.assertEquals; @EnvTest -public class EntityBoundingBoxIntegrationTest { +class EntityBoundingBoxIntegrationTest { @Test - public void pose(Env env) { + void pose(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var player = connection.connect(instance, new Pos(0, 42, 0)).join(); @@ -36,7 +36,7 @@ public void pose(Env env) { } @Test - public void eyeHeight(Env env) { + void eyeHeight(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var player = connection.connect(instance, new Pos(0, 42, 0)).join(); @@ -54,7 +54,7 @@ public void eyeHeight(Env env) { } @Test - public void pickupItem(Env env) { + void pickupItem(Env env) { final var instance = env.createFlatInstance(); final var listener = env.listen(PickupItemEvent.class); final var spawnPos = new Pos(0, 42, 0); diff --git a/src/test/java/net/minestom/server/entity/EntityInstanceIntegrationTest.java b/src/test/java/net/minestom/server/entity/EntityInstanceIntegrationTest.java index 5a9d128ef0d..ba578f774f6 100644 --- a/src/test/java/net/minestom/server/entity/EntityInstanceIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/EntityInstanceIntegrationTest.java @@ -11,10 +11,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; @EnvTest -public class EntityInstanceIntegrationTest { +class EntityInstanceIntegrationTest { @Test - public void entityJoin(Env env) { + void entityJoin(Env env) { var instance = env.createFlatInstance(); var entity = new Entity(EntityTypes.ZOMBIE); entity.setInstance(instance, new Pos(0, 42, 0)).join(); @@ -23,7 +23,7 @@ public void entityJoin(Env env) { } @Test - public void playerJoin(Env env) { + void playerJoin(Env env) { var instance = env.createFlatInstance(); var player = env.createPlayer(instance, new Pos(0, 42, 0)); assertEquals(instance, player.getInstance()); @@ -31,7 +31,7 @@ public void playerJoin(Env env) { } @Test - public void playerSwitch(Env env) { + void playerSwitch(Env env) { var instance = env.createFlatInstance(); var instance2 = env.createFlatInstance(); var connection = env.createConnection(); diff --git a/src/test/java/net/minestom/server/entity/EntityLineOfSightIntegrationTest.java b/src/test/java/net/minestom/server/entity/EntityLineOfSightIntegrationTest.java index a6bb809294a..eb4c8083d25 100644 --- a/src/test/java/net/minestom/server/entity/EntityLineOfSightIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/EntityLineOfSightIntegrationTest.java @@ -9,9 +9,9 @@ import static org.junit.jupiter.api.Assertions.*; @EnvTest -public class EntityLineOfSightIntegrationTest { +class EntityLineOfSightIntegrationTest { @Test - public void entityPhysicsCheckLineOfSight(Env env) { + void entityPhysicsCheckLineOfSight(Env env) { var instance = env.createFlatInstance(); var entity = new Entity(EntityTypes.ZOMBIE); @@ -35,7 +35,7 @@ public void entityPhysicsCheckLineOfSight(Env env) { } @Test - public void entityPhysicsCheckLineOfSightBehind(Env env) { + void entityPhysicsCheckLineOfSightBehind(Env env) { var instance = env.createFlatInstance(); var entity = new Entity(EntityTypes.ZOMBIE); @@ -59,7 +59,7 @@ public void entityPhysicsCheckLineOfSightBehind(Env env) { } @Test - public void entityPhysicsCheckLineOfSightNearMiss(Env env) { + void entityPhysicsCheckLineOfSightNearMiss(Env env) { var instance = env.createFlatInstance(); var entity = new Entity(EntityTypes.ZOMBIE); @@ -83,7 +83,7 @@ public void entityPhysicsCheckLineOfSightNearMiss(Env env) { } @Test - public void entityPhysicsCheckLineOfSightNearHit(Env env) { + void entityPhysicsCheckLineOfSightNearHit(Env env) { var instance = env.createFlatInstance(); var entity = new Entity(EntityTypes.ZOMBIE); @@ -109,7 +109,7 @@ public void entityPhysicsCheckLineOfSightNearHit(Env env) { } @Test - public void entityPhysicsCheckLineOfSightCorrectOrder(Env env) { + void entityPhysicsCheckLineOfSightCorrectOrder(Env env) { var instance = env.createFlatInstance(); var entity = new Entity(EntityTypes.ZOMBIE); @@ -130,7 +130,7 @@ public void entityPhysicsCheckLineOfSightCorrectOrder(Env env) { } @Test - public void entityPhysicsCheckLineOfSightBigMiss(Env env) { + void entityPhysicsCheckLineOfSightBigMiss(Env env) { var instance = env.createFlatInstance(); var entity = new Entity(EntityTypes.ZOMBIE); @@ -145,7 +145,7 @@ public void entityPhysicsCheckLineOfSightBigMiss(Env env) { assertTrue(entity.hasLineOfSight(entity2, false)); } @Test - public void entityPhysicsCheckLineOfSightLargeBoundingBox(Env env) { + void entityPhysicsCheckLineOfSightLargeBoundingBox(Env env) { var instance = env.createFlatInstance(); var entity = new Entity(EntityTypes.ZOMBIE); diff --git a/src/test/java/net/minestom/server/entity/EntityMetaIntegrationTest.java b/src/test/java/net/minestom/server/entity/EntityMetaIntegrationTest.java index fdd5a255479..6dee22a179a 100644 --- a/src/test/java/net/minestom/server/entity/EntityMetaIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/EntityMetaIntegrationTest.java @@ -14,10 +14,10 @@ import static org.junit.jupiter.api.Assertions.*; @EnvTest -public class EntityMetaIntegrationTest { +class EntityMetaIntegrationTest { @Test - public void notifyAboutChanges(Env env) { + void notifyAboutChanges(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var otherPlayer = connection.connect(instance, new Pos(0, 42, 0)).join(); @@ -85,7 +85,7 @@ private void validMetaDataPackets(List packets, int entity } @Test - public void customName(Env env) { + void customName(Env env) { //Base things. var connection = env.createConnection(); var instance = env.createFlatInstance(); diff --git a/src/test/java/net/minestom/server/entity/EntityMetaTest.java b/src/test/java/net/minestom/server/entity/EntityMetaTest.java index a9e6025d03e..210883d3cbe 100644 --- a/src/test/java/net/minestom/server/entity/EntityMetaTest.java +++ b/src/test/java/net/minestom/server/entity/EntityMetaTest.java @@ -7,10 +7,10 @@ import static org.junit.jupiter.api.Assertions.assertTrue; -public class EntityMetaTest { +class EntityMetaTest { @Test - public void ensureRegistration() throws IllegalAccessException { + void ensureRegistration() throws IllegalAccessException { List list = new ArrayList<>(); for (var field : EntityTypes.class.getDeclaredFields()) { final EntityType entityType = (EntityType) field.get(this); diff --git a/src/test/java/net/minestom/server/entity/EntityProjectileIntegrationTest.java b/src/test/java/net/minestom/server/entity/EntityProjectileIntegrationTest.java index 814257ce83d..d5f4bf0c9e5 100644 --- a/src/test/java/net/minestom/server/entity/EntityProjectileIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/EntityProjectileIntegrationTest.java @@ -8,9 +8,9 @@ import static org.junit.jupiter.api.Assertions.assertEquals; @EnvTest -public class EntityProjectileIntegrationTest { +class EntityProjectileIntegrationTest { @Test - public void gravityVelocity(Env env) { + void gravityVelocity(Env env) { var instance = env.createFlatInstance(); var shooter = new EntityCreature(EntityType.SKELETON); shooter.setInstance(instance, new Pos(0, 42, 0)).join(); @@ -42,7 +42,7 @@ public void gravityVelocity(Env env) { } @Test - public void noGravityVelocity(Env env) { + void noGravityVelocity(Env env) { var instance = env.createFlatInstance(); var shooter = new EntityCreature(EntityType.SKELETON); shooter.setInstance(instance, new Pos(0, 42, 0)).join(); diff --git a/src/test/java/net/minestom/server/entity/EntityRemovalIntegrationTest.java b/src/test/java/net/minestom/server/entity/EntityRemovalIntegrationTest.java index 42d6e2f2377..35387a6cdcd 100644 --- a/src/test/java/net/minestom/server/entity/EntityRemovalIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/EntityRemovalIntegrationTest.java @@ -16,10 +16,10 @@ import static org.junit.jupiter.api.Assertions.*; @EnvTest -public class EntityRemovalIntegrationTest { +class EntityRemovalIntegrationTest { @Test - public void destructionPacket(Env env) { + void destructionPacket(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); connection.connect(instance, new Pos(0, 40, 0)).join(); @@ -33,7 +33,7 @@ public void destructionPacket(Env env) { } @Test - public void instanceRemoval(Env env) { + void instanceRemoval(Env env) { var instance = env.createFlatInstance(); var entity = new Entity(EntityType.ZOMBIE); entity.setInstance(instance, new Pos(0, 40, 0)).join(); @@ -45,7 +45,7 @@ public void instanceRemoval(Env env) { } @Test - public void tickTimedRemoval(Env env) throws InterruptedException { + void tickTimedRemoval(Env env) throws InterruptedException { var instance = env.createFlatInstance(); var entity = new TestEntity(2, TimeUnit.SERVER_TICK); entity.setInstance(instance, new Pos(0, 40, 0)).join(); @@ -65,7 +65,7 @@ public void tickTimedRemoval(Env env) throws InterruptedException { } @Test - public void entityGC(Env env) { + void entityGC(Env env) { // Ensure that entities do not stay in memory after they are removed var instance = env.createFlatInstance(); var entity = new Entity(EntityType.ZOMBIE); @@ -80,7 +80,7 @@ public void entityGC(Env env) { } @Test - public void entityNodeGC(Env env) { + void entityNodeGC(Env env) { // Ensure that the entities GCed when a local listener is present var node = env.process().eventHandler(); var entity = new Entity(EntityType.ZOMBIE); @@ -97,7 +97,7 @@ public void entityNodeGC(Env env) { } static final class TestEntity extends Entity { - public TestEntity(long delay, TemporalUnit unit) { + TestEntity(long delay, TemporalUnit unit) { super(EntityType.ZOMBIE); scheduleRemove(delay, unit); } diff --git a/src/test/java/net/minestom/server/entity/EntityTeleportIntegrationTest.java b/src/test/java/net/minestom/server/entity/EntityTeleportIntegrationTest.java index f9d5cc148cd..fb851f9f122 100644 --- a/src/test/java/net/minestom/server/entity/EntityTeleportIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/EntityTeleportIntegrationTest.java @@ -14,10 +14,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; @EnvTest -public class EntityTeleportIntegrationTest { +class EntityTeleportIntegrationTest { @Test - public void entityChunkTeleport(Env env) { + void entityChunkTeleport(Env env) { var instance = env.createFlatInstance(); var entity = new Entity(EntityTypes.ZOMBIE); entity.setInstance(instance, new Pos(0, 42, 0)).join(); @@ -29,7 +29,7 @@ public void entityChunkTeleport(Env env) { } @Test - public void entityTeleport(Env env) { + void entityTeleport(Env env) { var instance = env.createFlatInstance(); var entity = new Entity(EntityTypes.ZOMBIE); entity.setInstance(instance, new Pos(0, 42, 0)).join(); @@ -41,7 +41,7 @@ public void entityTeleport(Env env) { } @Test - public void playerChunkTeleport(Env env) { + void playerChunkTeleport(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var player = connection.connect(instance, new Pos(0, 40, 0)).join(); @@ -74,7 +74,7 @@ public void playerChunkTeleport(Env env) { } @Test - public void playerTeleport(Env env) { + void playerTeleport(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var player = connection.connect(instance, new Pos(0, 40, 0)).join(); diff --git a/src/test/java/net/minestom/server/entity/EntityViewDirectionIntegrationTest.java b/src/test/java/net/minestom/server/entity/EntityViewDirectionIntegrationTest.java index a6cb8e7aa75..906384ebee0 100644 --- a/src/test/java/net/minestom/server/entity/EntityViewDirectionIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/EntityViewDirectionIntegrationTest.java @@ -9,11 +9,11 @@ import static org.junit.jupiter.api.Assertions.assertTrue; @EnvTest -public class EntityViewDirectionIntegrationTest { +class EntityViewDirectionIntegrationTest { private static final float EPSILON = 0.01f; @Test - public void viewYawAndPitch(Env env) { + void viewYawAndPitch(Env env) { var instance = env.createFlatInstance(); var entity = new Entity(EntityType.ZOMBIE); entity.setInstance(instance, new Pos(0, 40, 0)).join(); @@ -48,7 +48,7 @@ public void viewYawAndPitch(Env env) { } @Test - public void lookAtPos(Env env) { + void lookAtPos(Env env) { var instance = env.createFlatInstance(); var entity = new Entity(EntityType.ZOMBIE); double eyeHeight = entity.getEyeHeight(); // adding this to some position Y coordinates, to look horizontally @@ -87,7 +87,7 @@ public void lookAtPos(Env env) { } @Test - public void lookAtEntitySameType(Env env) { + void lookAtEntitySameType(Env env) { var instance = env.createFlatInstance(); // same type, same eye height var e1 = new Entity(EntityType.ZOMBIE); @@ -121,7 +121,7 @@ public void lookAtEntitySameType(Env env) { } @Test - public void lookAtEntityDifferentType(Env env) { + void lookAtEntityDifferentType(Env env) { var instance = env.createFlatInstance(); // same type, same eye height var e1 = new Entity(EntityType.ZOMBIE); diff --git a/src/test/java/net/minestom/server/entity/EntityViewIntegrationTest.java b/src/test/java/net/minestom/server/entity/EntityViewIntegrationTest.java index 181b303252a..b87d2081c41 100644 --- a/src/test/java/net/minestom/server/entity/EntityViewIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/EntityViewIntegrationTest.java @@ -9,10 +9,10 @@ import static org.junit.jupiter.api.Assertions.*; @EnvTest -public class EntityViewIntegrationTest { +class EntityViewIntegrationTest { @Test - public void emptyEntity(Env env) { + void emptyEntity(Env env) { var instance = env.createFlatInstance(); var entity = new Entity(EntityType.ZOMBIE); entity.setInstance(instance, new Pos(0, 40, 42)).join(); @@ -20,14 +20,14 @@ public void emptyEntity(Env env) { } @Test - public void emptyPlayer(Env env) { + void emptyPlayer(Env env) { var instance = env.createFlatInstance(); var player = env.createPlayer(instance, new Pos(0, 42, 0)); assertEquals(0, player.getViewers().size()); } @Test - public void multiPlayers(Env env) { + void multiPlayers(Env env) { var instance = env.createFlatInstance(); var p1 = env.createPlayer(instance, new Pos(0, 42, 42)); var p2 = env.createPlayer(instance, new Pos(0, 42, 42)); @@ -48,7 +48,7 @@ public void multiPlayers(Env env) { } @Test - public void manualViewers(Env env) { + void manualViewers(Env env) { var instance = env.createFlatInstance(); var p1 = env.createPlayer(instance, new Pos(0, 42, 0)); var p2 = env.createPlayer(instance, new Pos(0, 42, 5_000)); @@ -65,7 +65,7 @@ public void manualViewers(Env env) { } @Test - public void movements(Env env) { + void movements(Env env) { var instance = env.createFlatInstance(); var p1 = env.createPlayer(instance, new Pos(0, 42, 0)); var p2 = env.createPlayer(instance, new Pos(0, 42, 96)); @@ -79,7 +79,7 @@ public void movements(Env env) { } @Test - public void autoViewable(Env env) { + void autoViewable(Env env) { var instance = env.createFlatInstance(); var p1 = env.createPlayer(instance, new Pos(0, 42, 0)); assertTrue(p1.isAutoViewable()); @@ -96,7 +96,7 @@ public void autoViewable(Env env) { } @Test - public void predictableViewers(Env env) { + void predictableViewers(Env env) { var instance = env.createFlatInstance(); var p = env.createPlayer(instance, new Pos(0, 42, 0)); assertTrue(p.hasPredictableViewers()); @@ -123,7 +123,7 @@ public void predictableViewers(Env env) { } @Test - public void livingVehicle(Env env) { + void livingVehicle(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var player = connection.connect(instance, new Pos(0, 40, 0)).join(); @@ -153,7 +153,7 @@ public void livingVehicle(Env env) { } @Test - public void vehicleInheritance(Env env) { + void vehicleInheritance(Env env) { var instance = env.createFlatInstance(); var p1 = env.createPlayer(instance, new Pos(0, 40, 0)); var p2 = env.createPlayer(instance, new Pos(0, 40, 0)); diff --git a/src/test/java/net/minestom/server/entity/EntityViewerRuleIntegrationTest.java b/src/test/java/net/minestom/server/entity/EntityViewerRuleIntegrationTest.java index 40038cf6f25..6074de4b7fc 100644 --- a/src/test/java/net/minestom/server/entity/EntityViewerRuleIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/EntityViewerRuleIntegrationTest.java @@ -10,10 +10,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; @EnvTest -public class EntityViewerRuleIntegrationTest { +class EntityViewerRuleIntegrationTest { @Test - public void viewableRule(Env env) { + void viewableRule(Env env) { var instance = env.createFlatInstance(); var p1 = env.createPlayer(instance, new Pos(0, 42, 0)); p1.updateViewableRule(p -> p.getEntityId() == p1.getEntityId() + 1); @@ -30,7 +30,7 @@ public void viewableRule(Env env) { } @Test - public void viewableRuleUpdate(Env env) { + void viewableRuleUpdate(Env env) { var instance = env.createFlatInstance(); var p1 = env.createPlayer(instance, new Pos(0, 42, 0)); @@ -48,7 +48,7 @@ public void viewableRuleUpdate(Env env) { } @Test - public void viewableRuleDouble(Env env) { + void viewableRuleDouble(Env env) { var instance = env.createFlatInstance(); var p1 = env.createPlayer(instance, new Pos(0, 42, 0)); var p2 = env.createPlayer(instance, new Pos(0, 42, 0)); @@ -80,7 +80,7 @@ public void viewableRuleDouble(Env env) { } @Test - public void viewerRule(Env env) { + void viewerRule(Env env) { var instance = env.createFlatInstance(); var p1 = env.createPlayer(instance, new Pos(0, 42, 0)); p1.updateViewerRule(e -> e.getEntityId() == p1.getEntityId() + 1); @@ -97,7 +97,7 @@ public void viewerRule(Env env) { } @Test - public void viewerRuleUpdate(Env env) { + void viewerRuleUpdate(Env env) { var instance = env.createFlatInstance(); var p1 = env.createPlayer(instance, new Pos(0, 42, 0)); AtomicBoolean enabled = new AtomicBoolean(false); @@ -114,7 +114,7 @@ public void viewerRuleUpdate(Env env) { } @Test - public void viewerRuleDouble(Env env) { + void viewerRuleDouble(Env env) { var instance = env.createFlatInstance(); var p1 = env.createPlayer(instance, new Pos(0, 42, 0)); var p2 = env.createPlayer(instance, new Pos(0, 42, 0)); diff --git a/src/test/java/net/minestom/server/entity/GameModeTest.java b/src/test/java/net/minestom/server/entity/GameModeTest.java index 2d7ea85dd07..f249cac8065 100644 --- a/src/test/java/net/minestom/server/entity/GameModeTest.java +++ b/src/test/java/net/minestom/server/entity/GameModeTest.java @@ -4,18 +4,18 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class GameModeTest { +class GameModeTest { @Test - public void toId() { - assertEquals(GameMode.SURVIVAL.id(), 0); - assertEquals(GameMode.CREATIVE.id(), 1); - assertEquals(GameMode.ADVENTURE.id(), 2); - assertEquals(GameMode.SPECTATOR.id(), 3); + void toId() { + assertEquals(0, GameMode.SURVIVAL.id()); + assertEquals(1, GameMode.CREATIVE.id()); + assertEquals(2, GameMode.ADVENTURE.id()); + assertEquals(3, GameMode.SPECTATOR.id()); } @Test - public void fromId() { + void fromId() { assertEquals(GameMode.SURVIVAL, GameMode.fromId(0)); assertEquals(GameMode.CREATIVE, GameMode.fromId(1)); assertEquals(GameMode.ADVENTURE, GameMode.fromId(2)); diff --git a/src/test/java/net/minestom/server/entity/PassengerIntegrationTest.java b/src/test/java/net/minestom/server/entity/PassengerIntegrationTest.java index 2ce48c46d71..2fc942d25e5 100644 --- a/src/test/java/net/minestom/server/entity/PassengerIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/PassengerIntegrationTest.java @@ -10,10 +10,10 @@ import static org.junit.jupiter.api.Assertions.*; @EnvTest -public class PassengerIntegrationTest { +class PassengerIntegrationTest { @Test - public void passenger(Env env) { + void passenger(Env env) { var instance = env.createFlatInstance(); var vehicle = new Entity(EntityType.ZOMBIE); var passenger = new Entity(EntityType.ZOMBIE); @@ -30,7 +30,7 @@ public void passenger(Env env) { } @Test - public void passengerTeleport(Env env) { + void passengerTeleport(Env env) { var instance = env.createFlatInstance(); var vehicle = new Entity(EntityType.ZOMBIE); var passenger = new Entity(EntityType.ZOMBIE); diff --git a/src/test/java/net/minestom/server/entity/PlayerHeldIntegrationTest.java b/src/test/java/net/minestom/server/entity/PlayerHeldIntegrationTest.java index ecd9a07bdf7..e6456108baf 100644 --- a/src/test/java/net/minestom/server/entity/PlayerHeldIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/PlayerHeldIntegrationTest.java @@ -12,10 +12,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; @EnvTest -public class PlayerHeldIntegrationTest { +class PlayerHeldIntegrationTest { @Test - public void playerHeld(Env env) { + void playerHeld(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var player = connection.connect(instance, new Pos(0, 40, 0)).join(); @@ -32,7 +32,7 @@ public void playerHeld(Env env) { } @Test - public void playerHeldEvent(Env env) { + void playerHeldEvent(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var player = connection.connect(instance, new Pos(0, 40, 0)).join(); diff --git a/src/test/java/net/minestom/server/entity/PlayerSkinTest.java b/src/test/java/net/minestom/server/entity/PlayerSkinTest.java index 6446903da29..27629136e4b 100644 --- a/src/test/java/net/minestom/server/entity/PlayerSkinTest.java +++ b/src/test/java/net/minestom/server/entity/PlayerSkinTest.java @@ -6,18 +6,18 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNull; -public class PlayerSkinTest { +class PlayerSkinTest { @Disabled @Test - public void validName() { + void validName() { var skin = PlayerSkin.fromUsername("jeb_"); assertNotNull(skin); } @Disabled @Test - public void invalidName() { + void invalidName() { var skin = PlayerSkin.fromUsername("jfdsa84vvcxadubasdfcvn"); assertNull(skin); } diff --git a/src/test/java/net/minestom/server/entity/ai/ClosestEntityTargetTest.java b/src/test/java/net/minestom/server/entity/ai/ClosestEntityTargetTest.java index 5c34c621e1b..25d78311447 100644 --- a/src/test/java/net/minestom/server/entity/ai/ClosestEntityTargetTest.java +++ b/src/test/java/net/minestom/server/entity/ai/ClosestEntityTargetTest.java @@ -12,10 +12,10 @@ import static org.junit.jupiter.api.Assertions.assertNull; @EnvTest -public class ClosestEntityTargetTest { +class ClosestEntityTargetTest { @Test - public void validFindTarget(Env env) { + void validFindTarget(Env env) { var instance = env.createFlatInstance(); var self = new EntityCreature(EntityType.ZOMBIE); diff --git a/src/test/java/net/minestom/server/entity/metadata/animal/FrogMetaTest.java b/src/test/java/net/minestom/server/entity/metadata/animal/FrogMetaTest.java new file mode 100644 index 00000000000..1ba1805b527 --- /dev/null +++ b/src/test/java/net/minestom/server/entity/metadata/animal/FrogMetaTest.java @@ -0,0 +1,19 @@ +package net.minestom.server.entity.metadata.animal; + +import net.minestom.server.entity.metadata.animal.FrogMeta.Variant; +import net.minestom.server.network.NetworkBuffer; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +// Microtus - meta update + add test for the variant read method +class FrogMetaTest { + + @Test + void testFrogVariantRead() { + /*assertEquals(Variant.WARM, Variant.getVariant(Variant.WARM.ordinal())); + assertEquals(Variant.TEMPERATE, Variant.getVariant(0)); + assertNull(Variant.getVariant(-1)); + assertNull(Variant.getVariant(100));*/ + } +} \ No newline at end of file diff --git a/src/test/java/net/minestom/server/entity/player/PlayerIntegrationTest.java b/src/test/java/net/minestom/server/entity/player/PlayerIntegrationTest.java index 98b914f82c9..52e95cdfbb9 100644 --- a/src/test/java/net/minestom/server/entity/player/PlayerIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/player/PlayerIntegrationTest.java @@ -26,14 +26,14 @@ import static org.junit.jupiter.api.Assertions.*; @EnvTest -public class PlayerIntegrationTest { +class PlayerIntegrationTest { /** * Test to see whether player abilities are updated correctly and events * are handled properly when changing gamemode. */ @Test - public void gamemodeTest(Env env) { + void gamemodeTest(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var player = connection.connect(instance, new Pos(0, 42, 0)).join(); @@ -74,7 +74,7 @@ public void gamemodeTest(Env env) { } @Test - public void handSwapTest(Env env) { + void handSwapTest(Env env) { ClientSettingsPacket packet = new ClientSettingsPacket("en_us", (byte) 16, ChatMessageType.FULL, true, (byte) 127, Player.MainHand.LEFT, true, true); @@ -112,7 +112,7 @@ private void assertAbilities(Player player, boolean isInvulnerable, boolean isFl } @Test - public void playerJoinPackets(Env env) { + void playerJoinPackets(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); @@ -143,7 +143,7 @@ public void playerJoinPackets(Env env) { * when changing dimensions */ @Test - public void refreshPlayerTest(Env env) { + void refreshPlayerTest(Env env) { final int TEST_PERMISSION_LEVEL = 2; final var testDimension = env.process().dimensionType().register(NamespaceID.from("minestom:test_dimension"), DimensionType.builder().build()); @@ -178,7 +178,7 @@ public void refreshPlayerTest(Env env) { } @Test - public void deathLocationTest(Env env) { + void deathLocationTest(Env env) { String dimensionNamespace = "minestom:test_dimension"; final var testDimension = env.process().dimensionType().register(NamespaceID.from(dimensionNamespace), DimensionType.builder().build()); @@ -195,7 +195,7 @@ public void deathLocationTest(Env env) { } @Test - public void displayNameTest(Env env) { + void displayNameTest(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var tracker = connection.trackIncoming(PlayerInfoUpdatePacket.class); diff --git a/src/test/java/net/minestom/server/entity/player/PlayerMovementIntegrationTest.java b/src/test/java/net/minestom/server/entity/player/PlayerMovementIntegrationTest.java index 713d641483b..cfec07eb39f 100644 --- a/src/test/java/net/minestom/server/entity/player/PlayerMovementIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/player/PlayerMovementIntegrationTest.java @@ -32,10 +32,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; @EnvTest -public class PlayerMovementIntegrationTest { +class PlayerMovementIntegrationTest { @Test - public void teleportConfirm(Env env) { + void teleportConfirm(Env env) { var instance = env.createFlatInstance(); var p1 = env.createPlayer(instance, new Pos(0, 40, 0)); // No confirmation @@ -51,7 +51,7 @@ public void teleportConfirm(Env env) { // FIXME //@Test - public void singleTickMovementUpdate(Env env) { + void singleTickMovementUpdate(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var p1 = env.createPlayer(instance, new Pos(0, 40, 0)); @@ -68,7 +68,7 @@ public void singleTickMovementUpdate(Env env) { } @Test - public void chunkUpdateDebounceTest(Env env) { + void chunkUpdateDebounceTest(Env env) { final Instance flatInstance = env.createFlatInstance(); final int viewDiameter = ServerFlag.CHUNK_VIEW_DISTANCE * 2 + 1; // Preload all possible chunks to avoid issues due to async loading diff --git a/src/test/java/net/minestom/server/entity/player/PlayerRespawnChunkIntegrationTest.java b/src/test/java/net/minestom/server/entity/player/PlayerRespawnChunkIntegrationTest.java index b870c0ec8d6..3e1b9c6237d 100644 --- a/src/test/java/net/minestom/server/entity/player/PlayerRespawnChunkIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/player/PlayerRespawnChunkIntegrationTest.java @@ -19,12 +19,11 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; - @EnvTest -public class PlayerRespawnChunkIntegrationTest { +class PlayerRespawnChunkIntegrationTest { @Test - public void testChunkUnloadsOnRespawn(Env env) { + void testChunkUnloadsOnRespawn(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); Player player = connection.connect(instance, new Pos(0, 40, 0)).join(); @@ -38,7 +37,7 @@ public void testChunkUnloadsOnRespawn(Env env) { } @Test - public void testChunkReloadCount(Env env) { + void testChunkReloadCount(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); Player player = connection.connect(instance, new Pos(0, 40, 0)).join(); @@ -52,7 +51,7 @@ public void testChunkReloadCount(Env env) { } @Test - public void testPlayerTryRespawn(Env env) { + void testPlayerTryRespawn(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); Player player = connection.connect(instance, new Pos(0, 40, 0)).join(); diff --git a/src/test/java/net/minestom/server/event/EventNodeGraphTest.java b/src/test/java/net/minestom/server/event/EventNodeGraphTest.java index c9f650b9eca..37d80074407 100644 --- a/src/test/java/net/minestom/server/event/EventNodeGraphTest.java +++ b/src/test/java/net/minestom/server/event/EventNodeGraphTest.java @@ -6,16 +6,16 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class EventNodeGraphTest { +class EventNodeGraphTest { @Test - public void single() { + void single() { EventNode node = EventNode.all("main"); verifyGraph(node, new EventNodeImpl.Graph("main", "Event", 0, List.of())); } @Test - public void singleChild() { + void singleChild() { EventNode node = EventNode.all("main"); node.addChild(EventNode.all("child")); verifyGraph(node, new EventNodeImpl.Graph("main", "Event", 0, @@ -24,7 +24,7 @@ public void singleChild() { } @Test - public void childrenPriority() { + void childrenPriority() { { EventNode node = EventNode.all("main"); node.addChild(EventNode.all("child1").setPriority(5)); diff --git a/src/test/java/net/minestom/server/event/EventNodeMapTest.java b/src/test/java/net/minestom/server/event/EventNodeMapTest.java index e803aa3e531..28c019a1c67 100644 --- a/src/test/java/net/minestom/server/event/EventNodeMapTest.java +++ b/src/test/java/net/minestom/server/event/EventNodeMapTest.java @@ -13,10 +13,10 @@ import static net.minestom.testing.TestUtils.waitUntilCleared; import static org.junit.jupiter.api.Assertions.*; -public class EventNodeMapTest { +class EventNodeMapTest { @Test - public void uniqueMapping() { + void uniqueMapping() { var item = ItemStack.of(Material.DIAMOND); var node = EventNode.all("main"); var itemNode1 = node.map(item, EventFilter.ITEM); @@ -31,7 +31,7 @@ public void uniqueMapping() { } @Test - public void lazyRegistration() { + void lazyRegistration() { var item = ItemStack.of(Material.DIAMOND); var node = (EventNodeImpl) EventNode.all("main"); var itemNode = node.map(item, EventFilter.ITEM); @@ -42,7 +42,7 @@ public void lazyRegistration() { } @Test - public void secondMap() { + void secondMap() { var item = ItemStack.of(Material.DIAMOND); var node = (EventNodeImpl) EventNode.all("main"); var itemNode = node.map(item, EventFilter.ITEM); @@ -51,7 +51,7 @@ public void secondMap() { } @Test - public void map() { + void map() { var item = ItemStack.of(Material.DIAMOND); var node = EventNode.all("main"); @@ -76,7 +76,7 @@ public void map() { } @Test - public void entityLocal() { + void entityLocal() { var process = MinecraftServer.updateProcess(); var node = process.eventHandler(); var entity = new Entity(EntityType.ZOMBIE); @@ -102,7 +102,7 @@ public void entityLocal() { } @Test - public void ownerGC() { + void ownerGC() { // Ensure that the mapped object gets GCed var item = ItemStack.of(Material.DIAMOND); var node = EventNode.all("main"); diff --git a/src/test/java/net/minestom/server/event/EventNodeQueryTest.java b/src/test/java/net/minestom/server/event/EventNodeQueryTest.java index 9e035b0f764..fd481a2b8ff 100644 --- a/src/test/java/net/minestom/server/event/EventNodeQueryTest.java +++ b/src/test/java/net/minestom/server/event/EventNodeQueryTest.java @@ -9,10 +9,10 @@ import static net.minestom.testing.TestUtils.assertEqualsIgnoreOrder; import static org.junit.jupiter.api.Assertions.assertEquals; -public class EventNodeQueryTest { +class EventNodeQueryTest { @Test - public void find() { + void find() { var node = EventNode.all("main"); assertEquals(List.of(), node.findChildren("test")); @@ -33,7 +33,7 @@ public void find() { } @Test - public void findType() { + void findType() { var node = EventNode.all("main"); assertEquals(List.of(), node.findChildren("test", Event.class)); @@ -58,7 +58,7 @@ public void findType() { } @Test - public void replace() { + void replace() { var node = EventNode.all("main"); var child1 = EventNode.all("test"); diff --git a/src/test/java/net/minestom/server/event/EventNodeTest.java b/src/test/java/net/minestom/server/event/EventNodeTest.java index 114033a08a7..b1e46999c54 100644 --- a/src/test/java/net/minestom/server/event/EventNodeTest.java +++ b/src/test/java/net/minestom/server/event/EventNodeTest.java @@ -17,7 +17,7 @@ import static net.minestom.testing.TestUtils.waitUntilCleared; import static org.junit.jupiter.api.Assertions.*; -public class EventNodeTest { +class EventNodeTest { static class EventTest implements Event { } @@ -57,7 +57,7 @@ record EntityTestEvent(Entity entity) implements EntityEvent { } @Test - public void testCall() { + void testCall() { var node = EventNode.all("main"); AtomicBoolean result = new AtomicBoolean(false); var listener = EventListener.of(EventTest.class, eventTest -> result.set(true)); @@ -74,7 +74,7 @@ public void testCall() { } @Test - public void testHandle() { + void testHandle() { var node = EventNode.all("main"); var handle = node.getHandle(EventTest.class); assertSame(handle, node.getHandle(EventTest.class)); @@ -84,7 +84,7 @@ public void testHandle() { } @Test - public void testCancellable() { + void testCancellable() { var node = EventNode.all("main"); AtomicBoolean result = new AtomicBoolean(false); var listener = EventListener.builder(CancellableTest.class) @@ -103,7 +103,7 @@ public void testCancellable() { } @Test - public void recursiveSub() { + void recursiveSub() { var node = EventNode.all("main"); AtomicBoolean result1 = new AtomicBoolean(false); AtomicBoolean result2 = new AtomicBoolean(false); @@ -144,7 +144,7 @@ public void recursiveSub() { //} @Test - public void testChildren() { + void testChildren() { var node = EventNode.all("main"); AtomicInteger result = new AtomicInteger(0); var child1 = EventNode.all("child1").setPriority(1) @@ -159,14 +159,14 @@ public void testChildren() { }); node.addChild(child1); node.addChild(child2); - assertEquals(node.getChildren().size(), 2, "The node should have 2 children"); + assertEquals(2, node.getChildren().size(), "The node should have 2 children"); node.call(new EventTest()); assertEquals(2, result.get(), "The event should be called after the call"); // Test removal result.set(0); node.removeChild(child2); - assertEquals(node.getChildren().size(), 1, "The node should have 1 child"); + assertEquals(1, node.getChildren().size() , "The node should have 1 child"); node.call(new EventTest()); assertEquals(1, result.get(), "child2 should has been removed"); @@ -178,7 +178,7 @@ public void testChildren() { } @Test - public void testFiltering() { + void testFiltering() { AtomicBoolean result = new AtomicBoolean(false); AtomicBoolean childResult = new AtomicBoolean(false); @@ -202,7 +202,7 @@ public void testFiltering() { } @Test - public void testBinding() { + void testBinding() { var node = EventNode.all("main"); AtomicBoolean result = new AtomicBoolean(false); @@ -224,7 +224,7 @@ public void testBinding() { } @Test - public void nodeEmptyGC() { + void nodeEmptyGC() { var node = EventNode.all("main"); var ref = new WeakReference<>(node); @@ -234,7 +234,7 @@ public void nodeEmptyGC() { } @Test - public void nodeGC() { + void nodeGC() { var node = EventNode.all("main"); var ref = new WeakReference<>(node); node.addListener(EventTest.class, event -> { @@ -261,7 +261,7 @@ public void nodeGC() { // } @Test - public void nodeMapGC() { + void nodeMapGC() { var node = EventNode.all("main"); var handler = ItemStack.AIR; diff --git a/src/test/java/net/minestom/server/instance/BlockClientNbtTest.java b/src/test/java/net/minestom/server/instance/BlockClientNbtTest.java index 712780344b5..da788786704 100644 --- a/src/test/java/net/minestom/server/instance/BlockClientNbtTest.java +++ b/src/test/java/net/minestom/server/instance/BlockClientNbtTest.java @@ -15,10 +15,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; -public class BlockClientNbtTest { +class BlockClientNbtTest { @Test - public void basic() { + void basic() { assertNull(BlockUtils.extractClientNbt(Block.STONE)); assertNull(BlockUtils.extractClientNbt(Block.GRASS_BLOCK)); assertEquals(CompoundBinaryTag.empty(), BlockUtils.extractClientNbt(Block.CHEST)); @@ -28,7 +28,7 @@ public void basic() { } @Test - public void handler() { + void handler() { var handler = new BlockHandler() { @Override public @NotNull Collection> getBlockEntityTags() { diff --git a/src/test/java/net/minestom/server/instance/BlockLightMergeIntegrationTest.java b/src/test/java/net/minestom/server/instance/BlockLightMergeIntegrationTest.java index 522beecc6c2..43dd77ecbe1 100644 --- a/src/test/java/net/minestom/server/instance/BlockLightMergeIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/BlockLightMergeIntegrationTest.java @@ -18,7 +18,7 @@ @EnvTest public class BlockLightMergeIntegrationTest { @Test - public void testPropagationAir(Env env) { + void testPropagationAir(Env env) { Instance instance = env.createFlatInstance(); instance.setChunkSupplier(LightingChunk::new); for (int x = -3; x <= 3; x++) { @@ -39,7 +39,7 @@ public void testPropagationAir(Env env) { } @Test - public void testTorch(Env env) { + void testTorch(Env env) { Instance instance = env.createFlatInstance(); instance.setChunkSupplier(LightingChunk::new); instance.setGenerator(unit -> { @@ -65,7 +65,7 @@ public void testTorch(Env env) { } @Test - public void testTorch2(Env env) { + void testTorch2(Env env) { Instance instance = env.createFlatInstance(); instance.setChunkSupplier(LightingChunk::new); @@ -91,7 +91,7 @@ public void testTorch2(Env env) { } @Test - public void testPropagationAir2(Env env) { + void testPropagationAir2(Env env) { Instance instance = env.createFlatInstance(); instance.setChunkSupplier(LightingChunk::new); for (int x = -3; x <= 3; x++) { @@ -116,7 +116,7 @@ public void testPropagationAir2(Env env) { } @Test - public void testPropagationAirRemoval(Env env) { + void testPropagationAirRemoval(Env env) { Instance instance = env.createFlatInstance(); instance.setChunkSupplier(LightingChunk::new); for (int x = -3; x <= 3; x++) { @@ -145,7 +145,7 @@ public void testPropagationAirRemoval(Env env) { } @Test - public void testBorderOcclusion(Env env) { + void testBorderOcclusion(Env env) { Instance instance = env.createFlatInstance(); instance.setChunkSupplier(LightingChunk::new); for (int x = -3; x <= 3; x++) { @@ -178,7 +178,7 @@ public void testBorderOcclusion(Env env) { } @Test - public void testBorderOcclusion2(Env env) { + void testBorderOcclusion2(Env env) { Instance instance = env.createFlatInstance(); instance.setChunkSupplier(LightingChunk::new); for (int x = -3; x <= 3; x++) { @@ -210,7 +210,7 @@ public void testBorderOcclusion2(Env env) { } @Test - public void testBorderOcclusion3(Env env) { + void testBorderOcclusion3(Env env) { Instance instance = env.createFlatInstance(); instance.setChunkSupplier(LightingChunk::new); for (int x = -3; x <= 3; x++) { @@ -241,7 +241,7 @@ public void testBorderOcclusion3(Env env) { } @Test - public void testBorderCrossing(Env env) { + void testBorderCrossing(Env env) { Instance instance = env.createFlatInstance(); instance.setChunkSupplier(LightingChunk::new); for (int x = -3; x <= 3; x++) { @@ -293,7 +293,7 @@ public void testBorderCrossing(Env env) { } @Test - public void testBorderOcclusionRemoval(Env env) { + void testBorderOcclusionRemoval(Env env) { Instance instance = env.createFlatInstance(); instance.setChunkSupplier(LightingChunk::new); for (int x = -3; x <= 3; x++) { @@ -332,7 +332,7 @@ public void testBorderOcclusionRemoval(Env env) { } @Test - public void chunkIntersection(Env env) { + void chunkIntersection(Env env) { Instance instance = env.createFlatInstance(); instance.setChunkSupplier(LightingChunk::new); for (int x = 4; x <= 7; x++) { @@ -397,7 +397,7 @@ public void lightLookupTestCrossBorder(Env env) { } @Test - public void skylight(Env env) { + void skylight(Env env) { Instance instance = env.createFlatInstance(); instance.setChunkSupplier(LightingChunk::new); for (int x = 4; x <= 7; x++) { @@ -434,7 +434,7 @@ public void skylightShortGrass(Env env) { } @Test - public void skylightContained(Env env) { + void skylightContained(Env env) { Instance instance = env.createFlatInstance(); instance.setChunkSupplier(LightingChunk::new); for (int x = 4; x <= 7; x++) { @@ -460,7 +460,7 @@ public void skylightContained(Env env) { } @Test - public void testDiagonalRemoval(Env env) { + void testDiagonalRemoval(Env env) { Instance instance = env.createFlatInstance(); instance.setChunkSupplier(LightingChunk::new); for (int x = -3; x <= 3; x++) { @@ -494,7 +494,7 @@ public void testDiagonalRemoval(Env env) { } @Test - public void testDiagonalRemoval2(Env env) { + void testDiagonalRemoval2(Env env) { Instance instance = env.createFlatInstance(); instance.setChunkSupplier(LightingChunk::new); for (int x = -3; x <= 3; x++) { @@ -520,7 +520,7 @@ public void testDiagonalRemoval2(Env env) { } @Test - public void testDouble(Env env) { + void testDouble(Env env) { Instance instance = env.createFlatInstance(); instance.setChunkSupplier(LightingChunk::new); for (int x = -3; x <= 3; x++) { @@ -554,7 +554,7 @@ public void testDouble(Env env) { } @Test - public void testBlockRemoval(Env env) { + void testBlockRemoval(Env env) { Instance instance = env.createFlatInstance(); instance.setChunkSupplier(LightingChunk::new); for (int x = -3; x <= 3; x++) { diff --git a/src/test/java/net/minestom/server/instance/BlockPlaceIntegrationTest.java b/src/test/java/net/minestom/server/instance/BlockPlaceIntegrationTest.java index f353e4aa823..b97dd5441f9 100644 --- a/src/test/java/net/minestom/server/instance/BlockPlaceIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/BlockPlaceIntegrationTest.java @@ -16,7 +16,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; @EnvTest -public class BlockPlaceIntegrationTest { +class BlockPlaceIntegrationTest { @Test void testPlacementOutOfLimit(Env env) { diff --git a/src/test/java/net/minestom/server/instance/BlockPropertiesTest.java b/src/test/java/net/minestom/server/instance/BlockPropertiesTest.java index 3fbe44370df..ca0bf1cf03e 100644 --- a/src/test/java/net/minestom/server/instance/BlockPropertiesTest.java +++ b/src/test/java/net/minestom/server/instance/BlockPropertiesTest.java @@ -7,16 +7,16 @@ import static net.minestom.server.utils.block.BlockUtils.parseProperties; import static org.junit.jupiter.api.Assertions.assertEquals; -public class BlockPropertiesTest { +class BlockPropertiesTest { @Test - public void empty() { + void empty() { assertEquals(Map.of(), parseProperties("[]")); assertEquals(Map.of(), parseProperties("")); } @Test - public void noBrackets() { + void noBrackets() { assertEquals(Map.of(), parseProperties("random test without brackets")); assertEquals(Map.of(), parseProperties("[")); assertEquals(Map.of(), parseProperties("[end")); @@ -27,28 +27,28 @@ public void noBrackets() { } @Test - public void spaces() { + void spaces() { assertEquals(Map.of(), parseProperties("[ ]")); } @Test - public void comma() { + void comma() { assertEquals(Map.of(), parseProperties("[ , , ,,,, ]")); } @Test - public void single() { + void single() { assertEquals(Map.of("facing", "east"), parseProperties("[facing=east]")); } @Test - public void doubleSpace() { + void doubleSpace() { assertEquals(Map.of("facing", "east", "key", "value"), parseProperties("[facing=east,key=value ]")); assertEquals(Map.of("facing", "east", "key", "value"), parseProperties("[ facing = east, key= value ]")); } @Test - public void allLengths() { + void allLengths() { // Verify all length variations for (int i = 0; i < 13; i++) { StringBuilder properties = new StringBuilder("["); @@ -67,7 +67,7 @@ public void allLengths() { } @Test - public void corrupted() { + void corrupted() { final int size = 12; StringBuilder properties = new StringBuilder("["); for (int j = 0; j < size; j++) { diff --git a/src/test/java/net/minestom/server/instance/ChunkViewerIntegrationTest.java b/src/test/java/net/minestom/server/instance/ChunkViewerIntegrationTest.java index 429a26a0a49..5e9b92c3c5c 100644 --- a/src/test/java/net/minestom/server/instance/ChunkViewerIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/ChunkViewerIntegrationTest.java @@ -13,11 +13,11 @@ import static org.junit.jupiter.api.Assertions.assertEquals; @EnvTest -public class ChunkViewerIntegrationTest { +class ChunkViewerIntegrationTest { @ParameterizedTest @ValueSource(booleans = {false, true}) - public void basicJoin(boolean sharedInstance, Env env) { + void basicJoin(boolean sharedInstance, Env env) { Instance instance = env.createFlatInstance(); if (sharedInstance) { // Chunks get their viewers from the instance @@ -36,7 +36,7 @@ public void basicJoin(boolean sharedInstance, Env env) { } @Test - public void renderDistance(Env env) { + void renderDistance(Env env) { final int viewRadius = MinecraftServer.getChunkViewDistance(); final int count = ChunkUtils.getChunkCount(viewRadius); var instance = env.createFlatInstance(); diff --git a/src/test/java/net/minestom/server/instance/EntityTrackerIntegrationTest.java b/src/test/java/net/minestom/server/instance/EntityTrackerIntegrationTest.java index bc306382d49..8d1a5339c51 100644 --- a/src/test/java/net/minestom/server/instance/EntityTrackerIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/EntityTrackerIntegrationTest.java @@ -21,10 +21,10 @@ import static org.junit.jupiter.api.Assertions.assertSame; @EnvTest -public class EntityTrackerIntegrationTest { +class EntityTrackerIntegrationTest { @Test - public void maxDistance(Env env) { + void maxDistance(Env env) { final Instance instance = env.createFlatInstance(); final Pos spawnPos = new Pos(0, 41, 0); final int viewDistanceInChunks = ServerFlag.ENTITY_VIEW_DISTANCE; @@ -53,7 +53,7 @@ public void updateOldViewer(@NotNull Player player) { } @Test - public void cornerInstanceSwap(Env env) { + void cornerInstanceSwap(Env env) { final Instance instance = env.createFlatInstance(); final Instance anotherInstance = env.createFlatInstance(); final Pos spawnPos = new Pos(0, 41, 0); @@ -83,7 +83,7 @@ public void updateOldViewer(@NotNull Player player) { } @Test - public void viewable(Env env) { + void viewable(Env env) { final Instance instance = env.createFlatInstance(); final Pos spawnPos = new Pos(0, 41, 0); var viewable = instance.getEntityTracker().viewable(spawnPos.chunkX(), spawnPos.chunkZ()); @@ -101,7 +101,7 @@ public void viewable(Env env) { } @Test - public void viewableShared(Env env) { + void viewableShared(Env env) { final InstanceContainer instance = (InstanceContainer) env.createFlatInstance(); var shared = env.process().instance().createSharedInstance(instance); var sharedList = instance.getSharedInstances(); diff --git a/src/test/java/net/minestom/server/instance/EntityTrackerTest.java b/src/test/java/net/minestom/server/instance/EntityTrackerTest.java index 45508ef388c..fa1ed75e21b 100644 --- a/src/test/java/net/minestom/server/instance/EntityTrackerTest.java +++ b/src/test/java/net/minestom/server/instance/EntityTrackerTest.java @@ -11,9 +11,9 @@ import static org.junit.jupiter.api.Assertions.*; -public class EntityTrackerTest { +class EntityTrackerTest { @Test - public void register() { + void register() { var ent1 = new Entity(EntityType.ZOMBIE); var updater = new EntityTracker.Update<>() { @Override @@ -40,7 +40,7 @@ public void remove(@NotNull Entity entity) { } @Test - public void move() { + void move() { var ent1 = new Entity(EntityType.ZOMBIE); var updater = new EntityTracker.Update<>() { @Override @@ -65,7 +65,7 @@ public void remove(@NotNull Entity entity) { } @Test - public void tracking() { + void tracking() { var ent1 = new Entity(EntityType.ZOMBIE); var ent2 = new Entity(EntityType.ZOMBIE); @@ -124,7 +124,7 @@ public void remove(@NotNull Entity entity) { } @Test - public void nearby() { + void nearby() { var ent1 = new Entity(EntityType.ZOMBIE); var ent2 = new Entity(EntityType.ZOMBIE); var ent3 = new Entity(EntityType.ZOMBIE); @@ -177,7 +177,7 @@ public void remove(@NotNull Entity entity) { } @Test - public void nearbySingleChunk() { + void nearbySingleChunk() { var ent1 = new Entity(EntityType.ZOMBIE); var ent2 = new Entity(EntityType.ZOMBIE); var ent3 = new Entity(EntityType.ZOMBIE); @@ -217,7 +217,7 @@ public void remove(@NotNull Entity entity) { } @Test - public void collectionView() { + void collectionView() { var ent1 = new Entity(EntityType.ZOMBIE); var updater = new EntityTracker.Update<>() { @Override diff --git a/src/test/java/net/minestom/server/instance/GeneratorForkIntegrationTest.java b/src/test/java/net/minestom/server/instance/GeneratorForkIntegrationTest.java index 13d48448a3b..336fe4a7520 100644 --- a/src/test/java/net/minestom/server/instance/GeneratorForkIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/GeneratorForkIntegrationTest.java @@ -11,10 +11,10 @@ import static org.junit.jupiter.api.Assertions.*; @EnvTest -public class GeneratorForkIntegrationTest { +class GeneratorForkIntegrationTest { @Test - public void local(Env env) { + void local(Env env) { var manager = env.process().instance(); var instance = manager.createInstanceContainer(); var block = Block.STONE; @@ -29,7 +29,7 @@ public void local(Env env) { } @Test - public void size(Env env) { + void size(Env env) { var manager = env.process().instance(); var instance = manager.createInstanceContainer(); // Set the Generator @@ -46,7 +46,7 @@ public void size(Env env) { } @Test - public void signal(Env env) { + void signal(Env env) { var manager = env.process().instance(); var instance = manager.createInstanceContainer(); var block = Block.STONE; @@ -65,7 +65,7 @@ public void signal(Env env) { } @Test - public void air(Env env) { + void air(Env env) { var manager = env.process().instance(); var instance = manager.createInstanceContainer(); instance.setGenerator(unit -> { @@ -79,7 +79,7 @@ public void air(Env env) { } @Test - public void fillHeight(Env env) { + void fillHeight(Env env) { var manager = env.process().instance(); var instance = manager.createInstanceContainer(); instance.setGenerator(unit -> { @@ -95,7 +95,7 @@ public void fillHeight(Env env) { } @Test - public void biome(Env env) { + void biome(Env env) { var manager = env.process().instance(); var instance = manager.createInstanceContainer(); diff --git a/src/test/java/net/minestom/server/instance/GeneratorIntegrationTest.java b/src/test/java/net/minestom/server/instance/GeneratorIntegrationTest.java index 280fd487106..b256f63041b 100644 --- a/src/test/java/net/minestom/server/instance/GeneratorIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/GeneratorIntegrationTest.java @@ -14,11 +14,11 @@ import static org.junit.jupiter.api.Assertions.assertSame; @EnvTest -public class GeneratorIntegrationTest { +class GeneratorIntegrationTest { @ParameterizedTest @ValueSource(booleans = {false, true}) - public void loader(boolean data, Env env) { + void loader(boolean data, Env env) { var manager = env.process().instance(); var block = data ? Block.STONE.withNbt(CompoundBinaryTag.builder().putString("key", "value").build()) : Block.STONE; var instance = manager.createInstanceContainer(); @@ -31,7 +31,7 @@ public void loader(boolean data, Env env) { } @Test - public void exceptionCatch(Env env) { + void exceptionCatch(Env env) { var manager = env.process().instance(); var instance = manager.createInstanceContainer(); @@ -49,7 +49,7 @@ public void exceptionCatch(Env env) { } @Test - public void fillHeightNegative(Env env) { + void fillHeightNegative(Env env) { var manager = env.process().instance(); var instance = manager.createInstanceContainer(); instance.setGenerator(unit -> unit.modifier().fillHeight(-64, -60, Block.STONE)); @@ -63,7 +63,7 @@ public void fillHeightNegative(Env env) { } @Test - public void fillHeightSingleSectionFull(Env env) { + void fillHeightSingleSectionFull(Env env) { var manager = env.process().instance(); var instance = manager.createInstanceContainer(); instance.setGenerator(unit -> unit.modifier().fillHeight(0, 16, Block.GRASS_BLOCK)); @@ -74,7 +74,7 @@ public void fillHeightSingleSectionFull(Env env) { } @Test - public void fillHeightSingleSection(Env env) { + void fillHeightSingleSection(Env env) { var manager = env.process().instance(); var instance = manager.createInstanceContainer(); instance.setGenerator(unit -> unit.modifier().fillHeight(4, 5, Block.GRASS_BLOCK)); @@ -85,7 +85,7 @@ public void fillHeightSingleSection(Env env) { } @Test - public void fillHeightOverride(Env env) { + void fillHeightOverride(Env env) { var manager = env.process().instance(); var instance = manager.createInstanceContainer(); instance.setGenerator(unit -> { diff --git a/src/test/java/net/minestom/server/instance/InstanceBlockIntegrationTest.java b/src/test/java/net/minestom/server/instance/InstanceBlockIntegrationTest.java index 7a01e703f56..b972671d340 100644 --- a/src/test/java/net/minestom/server/instance/InstanceBlockIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/InstanceBlockIntegrationTest.java @@ -17,10 +17,10 @@ import static org.junit.jupiter.api.Assertions.assertThrows; @EnvTest -public class InstanceBlockIntegrationTest { +class InstanceBlockIntegrationTest { @Test - public void basic(Env env) { + void basic(Env env) { var instance = env.createFlatInstance(); assertThrows(NullPointerException.class, () -> instance.getBlock(0, 0, 0), "No exception throw when getting a block in an unloaded chunk"); @@ -41,7 +41,7 @@ public void basic(Env env) { } @Test - public void unloadCache(Env env) { + void unloadCache(Env env) { var instance = env.createFlatInstance(); instance.loadChunk(0, 0).join(); @@ -57,7 +57,7 @@ public void unloadCache(Env env) { } @Test - public void blockNbt(Env env) { + void blockNbt(Env env) { var instance = env.createFlatInstance(); assertThrows(NullPointerException.class, () -> instance.getBlock(0, 0, 0), "No exception throw when getting a block in an unloaded chunk"); diff --git a/src/test/java/net/minestom/server/instance/InstanceBlockPacketIntegrationTest.java b/src/test/java/net/minestom/server/instance/InstanceBlockPacketIntegrationTest.java index 1c73062d6af..b557b9e4cf6 100644 --- a/src/test/java/net/minestom/server/instance/InstanceBlockPacketIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/InstanceBlockPacketIntegrationTest.java @@ -21,10 +21,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; @EnvTest -public class InstanceBlockPacketIntegrationTest { +class InstanceBlockPacketIntegrationTest { @Test - public void replaceAir(Env env) { + void replaceAir(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); connection.connect(instance, new Pos(0, 40, 0)).join(); @@ -44,7 +44,7 @@ public void replaceAir(Env env) { } @Test - public void placeBlockEntity(Env env) { + void placeBlockEntity(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); connection.connect(instance, new Pos(0, 40, 0)).join(); diff --git a/src/test/java/net/minestom/server/instance/InstanceContainerTest.java b/src/test/java/net/minestom/server/instance/InstanceContainerTest.java index 5c2548b7f18..d1c31d51c04 100644 --- a/src/test/java/net/minestom/server/instance/InstanceContainerTest.java +++ b/src/test/java/net/minestom/server/instance/InstanceContainerTest.java @@ -8,13 +8,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class InstanceContainerTest { +class InstanceContainerTest { static { } @Test - public void copyPreservesTag() { + void copyPreservesTag() { var tag = Tag.String("test"); var instance = new InstanceContainer(UUID.randomUUID(), DimensionType.OVERWORLD); instance.setTag(tag, "123"); diff --git a/src/test/java/net/minestom/server/instance/InstanceEventsIntegrationTest.java b/src/test/java/net/minestom/server/instance/InstanceEventsIntegrationTest.java index 8f2404e5a4c..7fd9f89ee54 100644 --- a/src/test/java/net/minestom/server/instance/InstanceEventsIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/InstanceEventsIntegrationTest.java @@ -7,9 +7,9 @@ import org.junit.jupiter.api.Test; @EnvTest -public class InstanceEventsIntegrationTest { +class InstanceEventsIntegrationTest { @Test - public void registerAndUnregisterInstance(Env env) { + void registerAndUnregisterInstance(Env env) { var registerListener = env.listen(InstanceRegisterEvent.class); var unregisterListener = env.listen(InstanceUnregisterEvent.class); diff --git a/src/test/java/net/minestom/server/instance/InstanceUnregisterIntegrationTest.java b/src/test/java/net/minestom/server/instance/InstanceUnregisterIntegrationTest.java index ed7173f89fe..c830e87e18e 100644 --- a/src/test/java/net/minestom/server/instance/InstanceUnregisterIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/InstanceUnregisterIntegrationTest.java @@ -15,10 +15,10 @@ import static net.minestom.testing.TestUtils.waitUntilCleared; @EnvTest -public class InstanceUnregisterIntegrationTest { +class InstanceUnregisterIntegrationTest { @Test - public void sharedInstance(Env env) { + void sharedInstance(Env env) { // Ensure that unregistering a shared instance does not unload the container chunks var instanceManager = env.process().instance(); var instance = instanceManager.createInstanceContainer(); @@ -40,7 +40,7 @@ public void sharedInstance(Env env) { } @Test - public void instanceGC(Env env) { + void instanceGC(Env env) { var instance = env.createFlatInstance(); var ref = new WeakReference<>(instance); env.process().instance().unregisterInstance(instance); @@ -51,7 +51,7 @@ public void instanceGC(Env env) { } @Test - public void instanceNodeGC(Env env) { + void instanceNodeGC(Env env) { final class Game { final Instance instance; @@ -70,7 +70,7 @@ final class Game { } @Test - public void chunkGC(Env env) { + void chunkGC(Env env) { // Ensure that unregistering an instance does release its chunks var instance = env.createFlatInstance(); var chunk = instance.loadChunk(0, 0).join(); @@ -85,7 +85,7 @@ public void chunkGC(Env env) { } @Test - public void testGCWithEventsLambda(Env env) { + void testGCWithEventsLambda(Env env) { var ref = new WeakReference<>(new InstanceContainer(UUID.randomUUID(), DimensionType.OVERWORLD)); env.process().instance().registerInstance(ref.get()); diff --git a/src/test/java/net/minestom/server/instance/InstanceWorldPositionIntegrationTest.java b/src/test/java/net/minestom/server/instance/InstanceWorldPositionIntegrationTest.java new file mode 100644 index 00000000000..ec35f8af049 --- /dev/null +++ b/src/test/java/net/minestom/server/instance/InstanceWorldPositionIntegrationTest.java @@ -0,0 +1,48 @@ +package net.minestom.server.instance; + +import net.minestom.server.coordinate.Pos; +import net.minestom.server.event.instance.InstanceWorldPositionChangeEvent; +import net.minestom.testing.Env; +import net.minestom.testing.EnvTest; +import org.jetbrains.annotations.NotNull; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +//Microtus start - integrate world spawn position +@EnvTest +class InstanceWorldPositionIntegrationTest { + + @Test + void testInstanceWorldPositionUpdate(@NotNull Env env) { + var instance = env.createFlatInstance(); + assertEquals(Pos.ZERO, instance.getWorldSpawnPosition()); + instance.setWorldSpawnPosition(new Pos(1, 2, 3)); + assertNotEquals(Pos.ZERO, instance.getWorldSpawnPosition()); + Pos newSpawnPosition = new Pos(100, 200, 35, 90, 0); + instance.setWorldSpawnPosition(newSpawnPosition); + assertEquals(newSpawnPosition, instance.getWorldSpawnPosition()); + env.destroyInstance(instance); + } + + @Test + void testCancelledWorldPositionUpdate(@NotNull Env env) { + var instance = env.createFlatInstance(); + assertFalse(instance.setWorldSpawnPosition(Pos.ZERO)); + env.destroyInstance(instance); + } + + @Test + void testInstanceWorldPositionChangeEvent(@NotNull Env env) { + var instance = env.createFlatInstance(); + var listener = env.listen(InstanceWorldPositionChangeEvent.class); + Pos newSpawnPosition = new Pos(100, 200, 35, 90, 0); + listener.followup(event -> { + assertEquals(Pos.ZERO, event.getOldPosition()); + assertEquals(newSpawnPosition, event.getNewPosition()); + }); + instance.setWorldSpawnPosition(newSpawnPosition); + env.destroyInstance(instance); + } +} +//Microtus end - integrate world spawn position diff --git a/src/test/java/net/minestom/server/instance/generator/GeneratorForkConsumerIntegrationTest.java b/src/test/java/net/minestom/server/instance/generator/GeneratorForkConsumerIntegrationTest.java index 11de225ec4c..182893258e5 100644 --- a/src/test/java/net/minestom/server/instance/generator/GeneratorForkConsumerIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/generator/GeneratorForkConsumerIntegrationTest.java @@ -14,10 +14,10 @@ import static org.junit.jupiter.api.Assertions.assertNull; @EnvTest -public class GeneratorForkConsumerIntegrationTest { +class GeneratorForkConsumerIntegrationTest { @Test - public void empty(Env env) { + void empty(Env env) { var manager = env.process().instance(); var instance = manager.createInstanceContainer(); AtomicReference failed = new AtomicReference<>(); @@ -34,44 +34,40 @@ public void empty(Env env) { } @Test - public void local(Env env) { + void local(Env env) { var manager = env.process().instance(); var instance = manager.createInstanceContainer(); - instance.setGenerator(unit -> { - unit.fork(setter -> { - var dynamic = (GeneratorImpl.DynamicFork) setter; - assertNull(dynamic.minSection); - assertEquals(0, dynamic.width); - assertEquals(0, dynamic.height); - assertEquals(0, dynamic.depth); - setter.setBlock(unit.absoluteStart(), Block.STONE); - assertEquals(unit.absoluteStart(), dynamic.minSection); - assertEquals(1, dynamic.width); - assertEquals(1, dynamic.height); - assertEquals(1, dynamic.depth); - }); - }); + instance.setGenerator(unit -> unit.fork(setter -> { + var dynamic = (GeneratorImpl.DynamicFork) setter; + assertNull(dynamic.minSection); + assertEquals(0, dynamic.width); + assertEquals(0, dynamic.height); + assertEquals(0, dynamic.depth); + setter.setBlock(unit.absoluteStart(), Block.STONE); + assertEquals(unit.absoluteStart(), dynamic.minSection); + assertEquals(1, dynamic.width); + assertEquals(1, dynamic.height); + assertEquals(1, dynamic.depth); + })); instance.loadChunk(0, 0).join(); assertEquals(Block.STONE, instance.getBlock(0, -64, 0)); } @Test - public void doubleLocal(Env env) { + void doubleLocal(Env env) { var manager = env.process().instance(); var instance = manager.createInstanceContainer(); - instance.setGenerator(unit -> { - unit.fork(setter -> { - setter.setBlock(unit.absoluteStart(), Block.STONE); - setter.setBlock(unit.absoluteStart().add(1, 0, 0), Block.STONE); - }); - }); + instance.setGenerator(unit -> unit.fork(setter -> { + setter.setBlock(unit.absoluteStart(), Block.STONE); + setter.setBlock(unit.absoluteStart().add(1, 0, 0), Block.STONE); + })); instance.loadChunk(0, 0).join(); assertEquals(Block.STONE, instance.getBlock(0, -64, 0)); assertEquals(Block.STONE, instance.getBlock(1, -64, 0)); } @Test - public void neighborZ(Env env) { + void neighborZ(Env env) { var manager = env.process().instance(); var instance = manager.createInstanceContainer(); instance.setGenerator(unit -> { @@ -97,7 +93,7 @@ public void neighborZ(Env env) { } @Test - public void neighborX(Env env) { + void neighborX(Env env) { var manager = env.process().instance(); var instance = manager.createInstanceContainer(); instance.setGenerator(unit -> { @@ -123,7 +119,7 @@ public void neighborX(Env env) { } @Test - public void neighborY(Env env) { + void neighborY(Env env) { var manager = env.process().instance(); var instance = manager.createInstanceContainer(); instance.setGenerator(unit -> { @@ -147,7 +143,7 @@ public void neighborY(Env env) { } @Test - public void verticalAndHorizontalSectionBorders(Env env) { + void verticalAndHorizontalSectionBorders(Env env) { var manager = env.process().instance(); var instance = manager.createInstanceContainer(); Set points = ConcurrentHashMap.newKeySet(); diff --git a/src/test/java/net/minestom/server/instance/generator/GeneratorTest.java b/src/test/java/net/minestom/server/instance/generator/GeneratorTest.java index f961a8ead8c..78008fd73b5 100644 --- a/src/test/java/net/minestom/server/instance/generator/GeneratorTest.java +++ b/src/test/java/net/minestom/server/instance/generator/GeneratorTest.java @@ -22,11 +22,11 @@ import static net.minestom.server.utils.chunk.ChunkUtils.floorSection; import static org.junit.jupiter.api.Assertions.*; -public class GeneratorTest { +class GeneratorTest { @Test - public void unitSize() { - assertDoesNotThrow(() -> dummyUnit(Vec.ZERO, Vec.SECTION)); - assertDoesNotThrow(() -> dummyUnit(Vec.SECTION, new Vec(32))); + void unitSize() { + assertDoesNotThrow(() -> dummyUnit(Vec.ZERO, new Vec(16))); + assertDoesNotThrow(() -> dummyUnit(new Vec(16), new Vec(32))); assertThrows(IllegalArgumentException.class, () -> dummyUnit(new Vec(15), Vec.ZERO)); assertThrows(IllegalArgumentException.class, () -> dummyUnit(new Vec(15), new Vec(32))); assertThrows(IllegalArgumentException.class, () -> dummyUnit(new Vec(15), new Vec(31))); @@ -35,7 +35,7 @@ public void unitSize() { @ParameterizedTest @MethodSource("sectionFloorParam") - public void sectionFloor(int expected, int input) { + void sectionFloor(int expected, int input) { assertEquals(expected, floorSection(input), "floorSection(" + input + ")"); } @@ -54,7 +54,7 @@ private static Stream sectionFloorParam() { @ParameterizedTest @MethodSource("sectionCeilParam") - public void sectionCeil(int expected, int input) { + void sectionCeil(int expected, int input) { assertEquals(expected, ceilSection(input), "ceilSection(" + input + ")"); } @@ -72,7 +72,7 @@ private static Stream sectionCeilParam() { } @Test - public void chunkSize() { + void chunkSize() { final int minSection = 0; final int maxSection = 5; final int chunkX = 3; @@ -87,7 +87,7 @@ public void chunkSize() { } @Test - public void chunkSizeNeg() { + void chunkSizeNeg() { final int minSection = -1; final int maxSection = 5; final int chunkX = 3; @@ -102,7 +102,7 @@ public void chunkSizeNeg() { } @Test - public void sectionSize() { + void sectionSize() { final int sectionX = 3; final int sectionY = -5; final int sectionZ = -2; @@ -113,7 +113,7 @@ public void sectionSize() { } @Test - public void chunkSubdivide() { + void chunkSubdivide() { final int minSection = -1; final int maxSection = 5; final int chunkX = 3; @@ -133,7 +133,7 @@ public void chunkSubdivide() { } @Test - public void chunkAbsolute() { + void chunkAbsolute() { final int minSection = 0; final int maxSection = 5; final int chunkX = 3; @@ -154,7 +154,7 @@ public void chunkAbsolute() { } @Test - public void chunkAbsoluteAll() { + void chunkAbsoluteAll() { final int minSection = 0; final int maxSection = 5; final int chunkX = 3; @@ -182,7 +182,7 @@ public void chunkAbsoluteAll() { } @Test - public void chunkRelative() { + void chunkRelative() { final int minSection = -1; final int maxSection = 5; final int chunkX = 3; @@ -209,7 +209,7 @@ public void chunkRelative() { } @Test - public void chunkRelativeAll() { + void chunkRelativeAll() { final int minSection = -1; final int maxSection = 5; final int chunkX = 3; @@ -238,7 +238,7 @@ public void chunkRelativeAll() { } @Test - public void chunkFillHeightExact() { + void chunkFillHeightExact() { final int minSection = -1; final int maxSection = 5; final int sectionCount = maxSection - minSection; @@ -262,7 +262,7 @@ public void chunkFillHeightExact() { } @Test - public void chunkFillHeightOneOff() { + void chunkFillHeightOneOff() { final int minSection = -1; final int maxSection = 5; final int sectionCount = maxSection - minSection; diff --git a/src/test/java/net/minestom/server/instance/light/BlockIsOccludedTest.java b/src/test/java/net/minestom/server/instance/light/BlockIsOccludedTest.java index 5cded9c29fb..0160c531571 100644 --- a/src/test/java/net/minestom/server/instance/light/BlockIsOccludedTest.java +++ b/src/test/java/net/minestom/server/instance/light/BlockIsOccludedTest.java @@ -10,9 +10,9 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -public class BlockIsOccludedTest { +class BlockIsOccludedTest { @Test - public void blockAir() { + void blockAir() { Shape airBlock = Block.AIR.registry().collisionShape(); for (BlockFace face : BlockFace.values()) { @@ -21,7 +21,7 @@ public void blockAir() { } @Test - public void blockLantern() { + void blockLantern() { Shape shape = Block.LANTERN.registry().collisionShape(); Shape airBlock = Block.AIR.registry().collisionShape(); @@ -31,7 +31,7 @@ public void blockLantern() { } @Test - public void blockSpruceLeaves() { + void blockSpruceLeaves() { Shape shape = Block.SPRUCE_LEAVES.registry().collisionShape(); Shape airBlock = Block.AIR.registry().collisionShape(); @@ -41,7 +41,7 @@ public void blockSpruceLeaves() { } @Test - public void blockCauldron() { + void blockCauldron() { Shape shape = Block.CAULDRON.registry().collisionShape(); Shape airBlock = Block.AIR.registry().collisionShape(); @@ -51,7 +51,7 @@ public void blockCauldron() { } @Test - public void blockSlabBottomAir() { + void blockSlabBottomAir() { Shape shape = Block.SANDSTONE_SLAB.registry().collisionShape(); Shape airBlock = Block.AIR.registry().collisionShape(); @@ -65,7 +65,7 @@ public void blockSlabBottomAir() { } @Test - public void blockSlabTopEnchantingTable() { + void blockSlabTopEnchantingTable() { Shape shape1 = Block.SANDSTONE_SLAB.withProperty("type", "top").registry().collisionShape(); Shape shape2 = Block.ENCHANTING_TABLE.registry().collisionShape(); @@ -79,7 +79,7 @@ public void blockSlabTopEnchantingTable() { } @Test - public void blockStairWest() { + void blockStairWest() { Shape shape = Block.SANDSTONE_STAIRS.withProperties(Map.of( "facing", "west", "half", "bottom", @@ -97,7 +97,7 @@ public void blockStairWest() { } @Test - public void blockSlabBottomStone() { + void blockSlabBottomStone() { Shape shape = Block.SANDSTONE_SLAB.registry().collisionShape(); Shape stoneBlock = Block.STONE.registry().collisionShape(); @@ -110,7 +110,7 @@ public void blockSlabBottomStone() { } @Test - public void blockStone() { + void blockStone() { Shape shape = Block.STONE.registry().collisionShape(); Shape airBlock = Block.AIR.registry().collisionShape(); @@ -120,7 +120,7 @@ public void blockStone() { } @Test - public void blockStair() { + void blockStair() { Shape shape = Block.SANDSTONE_STAIRS.registry().collisionShape(); Shape airBlock = Block.AIR.registry().collisionShape(); @@ -134,7 +134,7 @@ public void blockStair() { } @Test - public void blockSlab() { + void blockSlab() { Shape shape = Block.SANDSTONE_SLAB.registry().collisionShape(); Shape airBlock = Block.AIR.registry().collisionShape(); @@ -148,7 +148,7 @@ public void blockSlab() { } @Test - public void blockSlabBottomAndSlabTop() { + void blockSlabBottomAndSlabTop() { Shape shape1 = Block.SANDSTONE_SLAB.registry().collisionShape(); Shape shape2 = Block.SANDSTONE_SLAB.withProperty("type", "top").registry().collisionShape(); @@ -162,7 +162,7 @@ public void blockSlabBottomAndSlabTop() { } @Test - public void blockSlabBottomAndSlabBottom() { + void blockSlabBottomAndSlabBottom() { Shape shape = Block.SANDSTONE_SLAB.registry().collisionShape(); assertTrue(shape.isOccluded(shape, BlockFace.BOTTOM)); @@ -175,7 +175,7 @@ public void blockSlabBottomAndSlabBottom() { } @Test - public void blockStairAndSlabBottom() { + void blockStairAndSlabBottom() { Shape shape1 = Block.STONE_STAIRS.registry().collisionShape(); Shape shape2 = Block.SANDSTONE_SLAB.registry().collisionShape(); @@ -189,7 +189,7 @@ public void blockStairAndSlabBottom() { } @Test - public void blockStairAndSlabTop() { + void blockStairAndSlabTop() { Shape shape1 = Block.STONE_STAIRS.registry().collisionShape(); Shape shape2 = Block.SANDSTONE_SLAB.withProperty("type", "top").registry().collisionShape(); diff --git a/src/test/java/net/minestom/server/instance/light/BlockLightTest.java b/src/test/java/net/minestom/server/instance/light/BlockLightTest.java index 2280d01192b..dd93d686e7d 100644 --- a/src/test/java/net/minestom/server/instance/light/BlockLightTest.java +++ b/src/test/java/net/minestom/server/instance/light/BlockLightTest.java @@ -13,10 +13,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.fail; -public class BlockLightTest { +class BlockLightTest { @Test - public void empty() { + void empty() { var palette = Palette.blocks(); var result = LightCompute.compute(palette, BlockLight.buildInternalQueue(palette)); for (byte light : result) { @@ -25,7 +25,7 @@ public void empty() { } @Test - public void glowstone() { + void glowstone() { var palette = Palette.blocks(); palette.set(0, 1, 0, Block.GLOWSTONE.stateId()); assertLight(palette, Map.of( @@ -35,7 +35,7 @@ public void glowstone() { } @Test - public void doubleGlowstone() { + void doubleGlowstone() { var palette = Palette.blocks(); palette.set(0, 1, 0, Block.GLOWSTONE.stateId()); palette.set(4, 1, 4, Block.GLOWSTONE.stateId()); @@ -48,7 +48,7 @@ public void doubleGlowstone() { } @Test - public void glowstoneBorder() { + void glowstoneBorder() { var palette = Palette.blocks(); palette.set(0, 1, 0, Block.GLOWSTONE.stateId()); assertLight(palette, Map.of( @@ -65,7 +65,7 @@ public void glowstoneBorder() { } @Test - public void glowstoneBlock() { + void glowstoneBlock() { var palette = Palette.blocks(); palette.set(0, 1, 0, Block.GLOWSTONE.stateId()); palette.set(0, 1, 1, Block.STONE.stateId()); @@ -76,7 +76,7 @@ public void glowstoneBlock() { } @Test - public void isolated() { + void isolated() { var palette = Palette.blocks(); palette.set(4, 1, 4, Block.GLOWSTONE.stateId()); @@ -102,7 +102,7 @@ public void isolated() { } @Test - public void isolatedStair() { + void isolatedStair() { var palette = Palette.blocks(); palette.set(4, 1, 4, Block.GLOWSTONE.stateId()); palette.set(3, 1, 4, Block.OAK_STAIRS.withProperties(Map.of( @@ -123,7 +123,7 @@ public void isolatedStair() { } @Test - public void isolatedStairOpposite() { + void isolatedStairOpposite() { var palette = Palette.blocks(); palette.set(4, 1, 4, Block.GLOWSTONE.stateId()); palette.set(3, 1, 4, Block.OAK_STAIRS.withProperties(Map.of( @@ -149,7 +149,7 @@ public void isolatedStairOpposite() { } @Test - public void isolatedStairWest() { + void isolatedStairWest() { var palette = Palette.blocks(); palette.set(4, 1, 4, Block.GLOWSTONE.stateId()); palette.set(3, 1, 4, Block.OAK_STAIRS.withProperties(Map.of( @@ -178,7 +178,7 @@ public void isolatedStairWest() { } @Test - public void isolatedStairSouth() { + void isolatedStairSouth() { var palette = Palette.blocks(); palette.set(4, 1, 4, Block.GLOWSTONE.stateId()); palette.set(3, 1, 4, Block.OAK_STAIRS.withProperties(Map.of( diff --git a/src/test/java/net/minestom/server/instance/light/WorldRelightIntegrationTest.java b/src/test/java/net/minestom/server/instance/light/WorldRelightIntegrationTest.java index a3147e5b014..10b5a53014e 100644 --- a/src/test/java/net/minestom/server/instance/light/WorldRelightIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/light/WorldRelightIntegrationTest.java @@ -16,7 +16,7 @@ import static net.minestom.server.instance.BlockLightMergeIntegrationTest.assertLightInstance; @EnvTest -public class WorldRelightIntegrationTest { +class WorldRelightIntegrationTest { private @NotNull Instance createLightingInstance(@NotNull ServerProcess process) { var instance = process.instance().createInstanceContainer(); instance.setGenerator(unit -> { @@ -28,7 +28,7 @@ public class WorldRelightIntegrationTest { } @Test - public void testBorderLava(Env env) { + void testBorderLava(Env env) { Instance instance = env.createFlatInstance(); instance.setChunkSupplier(LightingChunk::new); instance.loadChunk(6, 16).join(); @@ -46,7 +46,7 @@ public void testBorderLava(Env env) { } @Test - public void testBlockRemoval(Env env) { + void testBlockRemoval(Env env) { Instance instance = createLightingInstance(env.process()); instance.setChunkSupplier(LightingChunk::new); for (int x = -3; x <= 3; x++) { diff --git a/src/test/java/net/minestom/server/instance/palette/PaletteOptimizationTest.java b/src/test/java/net/minestom/server/instance/palette/PaletteOptimizationTest.java index 9916d52ab23..877f265955d 100644 --- a/src/test/java/net/minestom/server/instance/palette/PaletteOptimizationTest.java +++ b/src/test/java/net/minestom/server/instance/palette/PaletteOptimizationTest.java @@ -8,23 +8,23 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -public class PaletteOptimizationTest { +class PaletteOptimizationTest { @Test - public void empty() { + void empty() { var palette = createPalette(); paletteEquals(palette.palette, palette.optimizedPalette()); } @Test - public void single() { + void single() { var palette = createPalette(); palette.set(0, 0, 0, 1); paletteEquals(palette.palette, palette.optimizedPalette()); } @Test - public void random() { + void random() { var random = new Random(12345); var palette = createPalette(); palette.setAll((x, y, z) -> random.nextInt(256)); @@ -34,7 +34,7 @@ public void random() { } @Test - public void manualFill() { + void manualFill() { var palette = createPalette(); palette.setAll((x, y, z) -> 1); paletteEquals(palette.palette, palette.optimizedPalette()); diff --git a/src/test/java/net/minestom/server/instance/palette/PaletteTest.java b/src/test/java/net/minestom/server/instance/palette/PaletteTest.java index 3372ade4565..583214ea6d1 100644 --- a/src/test/java/net/minestom/server/instance/palette/PaletteTest.java +++ b/src/test/java/net/minestom/server/instance/palette/PaletteTest.java @@ -11,17 +11,17 @@ import static org.junit.jupiter.api.Assertions.*; -public class PaletteTest { +class PaletteTest { @Test - public void singlePlacement() { + void singlePlacement() { var palette = Palette.blocks(); palette.set(0, 0, 1, 1); assertEquals(1, palette.get(0, 0, 1)); } @Test - public void placement() { + void placement() { var palettes = testPalettes(); for (Palette palette : palettes) { final int dimension = palette.dimension(); @@ -56,7 +56,7 @@ public void placement() { } @Test - public void placementHighValue() { + void placementHighValue() { final int value = 250_000; for (Palette palette : testPalettes()) { palette.set(0, 0, 1, value); @@ -65,7 +65,7 @@ public void placementHighValue() { } @Test - public void negPlacement() { + void negPlacement() { var palettes = testPalettes(); for (Palette palette : palettes) { assertThrows(IllegalArgumentException.class, () -> palette.set(-1, 0, 0, 64)); @@ -79,7 +79,7 @@ public void negPlacement() { } @Test - public void resize() { + void resize() { Palette palette = Palette.newPalette(16, 5, 2); palette.set(0, 0, 0, 1); assertEquals(2, palette.bitsPerEntry()); @@ -98,7 +98,7 @@ public void resize() { @Test - public void fill() { + void fill() { var palettes = testPalettes(); for (Palette palette : palettes) { assertEquals(0, palette.count()); @@ -129,7 +129,7 @@ public void fill() { } @Test - public void bulk() { + void bulk() { var palettes = testPalettes(); for (Palette palette : palettes) { final int dimension = palette.dimension(); @@ -154,7 +154,7 @@ public void bulk() { } @Test - public void bulkAll() { + void bulkAll() { var palettes = testPalettes(); for (Palette palette : palettes) { // Fill all entries @@ -172,7 +172,7 @@ public void bulkAll() { } @Test - public void bulkAllOrder() { + void bulkAllOrder() { var palettes = testPalettes(); for (Palette palette : palettes) { AtomicInteger count = new AtomicInteger(); @@ -210,7 +210,7 @@ public void bulkAllOrder() { } @Test - public void setAllConstant() { + void setAllConstant() { var palettes = testPalettes(); for (Palette palette : palettes) { palette.setAll((x, y, z) -> 1); @@ -219,7 +219,7 @@ public void setAllConstant() { } @Test - public void getAllPresent() { + void getAllPresent() { var palettes = testPalettes(); for (Palette palette : palettes) { palette.getAllPresent((x, y, z, value) -> fail("The palette should be empty")); @@ -234,7 +234,7 @@ public void getAllPresent() { } @Test - public void replaceAll() { + void replaceAll() { var palettes = testPalettes(); for (Palette palette : palettes) { palette.setAll((x, y, z) -> x + y + z + 1); @@ -247,7 +247,7 @@ public void replaceAll() { } @Test - public void replace() { + void replace() { var palettes = testPalettes(); for (Palette palette : palettes) { palette.set(0, 0, 0, 1); @@ -260,7 +260,7 @@ public void replace() { } @Test - public void replaceLoop() { + void replaceLoop() { var palette = Palette.newPalette(2, 15, 4); palette.setAll((x, y, z) -> x + y + z); final int dimension = palette.dimension(); @@ -274,7 +274,7 @@ public void replaceLoop() { } @Test - public void dimension() { + void dimension() { assertThrows(Exception.class, () -> Palette.newPalette(-4, 5, 3)); assertThrows(Exception.class, () -> Palette.newPalette(0, 5, 3)); assertThrows(Exception.class, () -> Palette.newPalette(1, 5, 3)); diff --git a/src/test/java/net/minestom/server/inventory/InventoryCloseStateTest.java b/src/test/java/net/minestom/server/inventory/InventoryCloseStateTest.java index 21d92088f43..cdae802c5b0 100644 --- a/src/test/java/net/minestom/server/inventory/InventoryCloseStateTest.java +++ b/src/test/java/net/minestom/server/inventory/InventoryCloseStateTest.java @@ -11,11 +11,11 @@ import static org.junit.jupiter.api.Assertions.assertEquals; @EnvTest -public class InventoryCloseStateTest { +class InventoryCloseStateTest { @Test - public void doNotReceiveClosePacketFromServerWhenSendingClientCloseWindowPacket(Env env) { + void doNotReceiveClosePacketFromServerWhenSendingClientCloseWindowPacket(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var player = connection.connect(instance, new Pos(0, 42, 0)).join(); diff --git a/src/test/java/net/minestom/server/inventory/InventoryIntegrationTest.java b/src/test/java/net/minestom/server/inventory/InventoryIntegrationTest.java index 0dd16e9c362..24f89ccf1fa 100644 --- a/src/test/java/net/minestom/server/inventory/InventoryIntegrationTest.java +++ b/src/test/java/net/minestom/server/inventory/InventoryIntegrationTest.java @@ -149,7 +149,7 @@ public void closeInventoryTest(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var player = connection.connect(instance, new Pos(0, 42, 0)).join(); - final var inventory = new Inventory(InventoryType.CHEST_1_ROW, "title"); + final var inventory = new Inventory(InventoryType.CHEST_1_ROW, Component.text("title")); player.openInventory(inventory); assertSame(inventory, player.getOpenInventory()); player.closeInventory(); @@ -162,7 +162,7 @@ public void openInventoryOnItemDropFromInventoryClosingTest(Env env) { var connection = env.createConnection(); var player = connection.connect(instance, new Pos(0, 42, 0)).join(); var listener = env.listen(ItemDropEvent.class); - final var firstInventory = new Inventory(InventoryType.CHEST_1_ROW, "title"); + final var firstInventory = new Inventory(InventoryType.CHEST_1_ROW, Component.text("title")); player.openInventory(firstInventory); assertSame(firstInventory, player.getOpenInventory()); player.getInventory().setCursorItem(ItemStack.of(Material.STONE)); @@ -173,7 +173,7 @@ public void openInventoryOnItemDropFromInventoryClosingTest(Env env) { player.openInventory(firstInventory); player.getInventory().setCursorItem(ItemStack.of(Material.STONE)); - final var secondInventory = new Inventory(InventoryType.CHEST_1_ROW, "title"); + final var secondInventory = new Inventory(InventoryType.CHEST_1_ROW, Component.text("title")); listener.followup(event -> event.getPlayer().openInventory(secondInventory)); player.closeInventory(); assertSame(secondInventory, player.getOpenInventory()); diff --git a/src/test/java/net/minestom/server/inventory/InventoryTest.java b/src/test/java/net/minestom/server/inventory/InventoryTest.java index 5ca8aaf6518..8dded330e60 100644 --- a/src/test/java/net/minestom/server/inventory/InventoryTest.java +++ b/src/test/java/net/minestom/server/inventory/InventoryTest.java @@ -9,7 +9,9 @@ import static org.junit.jupiter.api.Assertions.*; -public class InventoryTest { +class InventoryTest { + + private static final Component TITLE = Component.text("title"); static { // Required to prevent initialization error during event call @@ -17,8 +19,8 @@ public class InventoryTest { } @Test - public void testCreation() { - Inventory inventory = new Inventory(InventoryType.CHEST_1_ROW, "title"); + void testCreation() { + Inventory inventory = new Inventory(InventoryType.CHEST_1_ROW, TITLE); assertEquals(InventoryType.CHEST_1_ROW, inventory.getInventoryType()); assertEquals(Component.text("title"), inventory.getTitle()); @@ -27,11 +29,11 @@ public void testCreation() { } @Test - public void testEntry() { + void testEntry() { var item1 = ItemStack.of(Material.DIAMOND); var item2 = ItemStack.of(Material.GOLD_INGOT); - Inventory inventory = new Inventory(InventoryType.CHEST_1_ROW, "title"); + Inventory inventory = new Inventory(InventoryType.CHEST_1_ROW, TITLE); assertSame(ItemStack.AIR, inventory.getItemStack(0)); inventory.setItemStack(0, item1); assertSame(item1, inventory.getItemStack(0)); @@ -53,9 +55,9 @@ public void testEntry() { } @Test - public void testTake() { + void testTake() { ItemStack item = ItemStack.of(Material.DIAMOND, 32); - Inventory inventory = new Inventory(InventoryType.CHEST_1_ROW, "title"); + Inventory inventory = new Inventory(InventoryType.CHEST_1_ROW, TITLE); inventory.setItemStack(0, item); assertTrue(inventory.takeItemStack(item, TransactionOption.DRY_RUN)); assertTrue(inventory.takeItemStack(item.withAmount(31), TransactionOption.DRY_RUN)); @@ -67,8 +69,8 @@ public void testTake() { } @Test - public void testAdd() { - Inventory inventory = new Inventory(InventoryType.HOPPER, "title"); + void testAdd() { + Inventory inventory = new Inventory(InventoryType.HOPPER, TITLE); assertTrue(inventory.addItemStack(ItemStack.of(Material.DIAMOND, 32), TransactionOption.ALL_OR_NOTHING)); assertTrue(inventory.addItemStack(ItemStack.of(Material.GOLD_BLOCK, 32), TransactionOption.ALL_OR_NOTHING)); assertTrue(inventory.addItemStack(ItemStack.of(Material.MAP, 32), TransactionOption.ALL_OR_NOTHING)); @@ -78,16 +80,16 @@ public void testAdd() { } @Test - public void testIds() { + void testIds() { for (int i = 0; i <= 1000; ++i) { - final byte windowId = new Inventory(InventoryType.CHEST_1_ROW, "title").getWindowId(); + final byte windowId = new Inventory(InventoryType.CHEST_1_ROW, TITLE).getWindowId(); assertTrue(windowId > 0); } } @Test public void testStackSize99() { - var inventory = new Inventory(InventoryType.CHEST_1_ROW, "title"); + var inventory = new Inventory(InventoryType.CHEST_1_ROW, Component.text("title")); var item = ItemStack.builder(Material.DIAMOND).set(ItemComponent.MAX_STACK_SIZE, 99).amount(99).build(); assertTrue(inventory.addItemStack(item, TransactionOption.ALL_OR_NOTHING)); @@ -96,7 +98,7 @@ public void testStackSize99() { @Test public void testStackSize99OnSmaller() { - var inventory = new Inventory(InventoryType.CHEST_1_ROW, "title"); + var inventory = new Inventory(InventoryType.CHEST_1_ROW, Component.text("title")); var item44 = ItemStack.builder(Material.DIAMOND).set(ItemComponent.MAX_STACK_SIZE, 44).amount(43).build(); var item99 = ItemStack.builder(Material.DIAMOND).set(ItemComponent.MAX_STACK_SIZE, 99).amount(99).build(); diff --git a/src/test/java/net/minestom/server/inventory/PlayerInventoryIntegrationTest.java b/src/test/java/net/minestom/server/inventory/PlayerInventoryIntegrationTest.java index d3eb036644e..98fd77b083f 100644 --- a/src/test/java/net/minestom/server/inventory/PlayerInventoryIntegrationTest.java +++ b/src/test/java/net/minestom/server/inventory/PlayerInventoryIntegrationTest.java @@ -16,12 +16,12 @@ import static org.junit.jupiter.api.Assertions.*; @EnvTest -public class PlayerInventoryIntegrationTest { +class PlayerInventoryIntegrationTest { private static final ItemStack MAGIC_STACK = ItemStack.of(Material.DIAMOND, 3); @Test - public void setSlotDuplicateTest(Env env) { + void setSlotDuplicateTest(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var player = connection.connect(instance, new Pos(0, 42, 0)).join(); @@ -41,7 +41,7 @@ public void setSlotDuplicateTest(Env env) { } @Test - public void setCursorItemDuplicateTest(Env env) { + void setCursorItemDuplicateTest(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var player = connection.connect(instance, new Pos(0, 42, 0)).join(); @@ -61,7 +61,7 @@ public void setCursorItemDuplicateTest(Env env) { } @Test - public void clearInventoryTest(Env env) { + void clearInventoryTest(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var player = connection.connect(instance, new Pos(0, 42, 0)).join(); @@ -105,7 +105,7 @@ public void clearInventoryTest(Env env) { } @Test - public void equipmentViewTest(Env env) { + void equipmentViewTest(Env env) { var instance = env.createFlatInstance(); var connectionArmored = env.createConnection(); var playerArmored = connectionArmored.connect(instance, new Pos(0, 42, 0)).join(); @@ -119,9 +119,7 @@ public void equipmentViewTest(Env env) { // Setting to an item should send EntityEquipmentPacket to viewer playerArmored.getInventory().setEquipment(EquipmentSlot.HELMET, MAGIC_STACK); - equipmentTracker.assertSingle(entityEquipmentPacket -> { - assertEquals(MAGIC_STACK, entityEquipmentPacket.equipments().get(EquipmentSlot.HELMET)); - }); + equipmentTracker.assertSingle(entityEquipmentPacket -> assertEquals(MAGIC_STACK, entityEquipmentPacket.equipments().get(EquipmentSlot.HELMET))); // Setting to the same item shouldn't send packet equipmentTracker = connectionViewer.trackIncoming(EntityEquipmentPacket.class); @@ -131,13 +129,11 @@ public void equipmentViewTest(Env env) { // Setting to air should send packet equipmentTracker = connectionViewer.trackIncoming(EntityEquipmentPacket.class); playerArmored.getInventory().setEquipment(EquipmentSlot.HELMET, ItemStack.AIR); - equipmentTracker.assertSingle(entityEquipmentPacket -> { - assertEquals(ItemStack.AIR, entityEquipmentPacket.equipments().get(EquipmentSlot.HELMET)); - }); + equipmentTracker.assertSingle(entityEquipmentPacket -> assertEquals(ItemStack.AIR, entityEquipmentPacket.equipments().get(EquipmentSlot.HELMET))); } @Test - public void heldItemViewTest(Env env) { + void heldItemViewTest(Env env) { var instance = env.createFlatInstance(); var connectionHolder = env.createConnection(); var playerHolder = connectionHolder.connect(instance, new Pos(0, 42, 0)).join(); @@ -152,23 +148,17 @@ public void heldItemViewTest(Env env) { // Setting held item var equipmentTracker = connectionViewer.trackIncoming(EntityEquipmentPacket.class); playerHolder.setItemInMainHand(MAGIC_STACK); - equipmentTracker.assertSingle(entityEquipmentPacket -> { - assertEquals(MAGIC_STACK, entityEquipmentPacket.equipments().get(EquipmentSlot.MAIN_HAND)); - }); + equipmentTracker.assertSingle(entityEquipmentPacket -> assertEquals(MAGIC_STACK, entityEquipmentPacket.equipments().get(EquipmentSlot.MAIN_HAND))); // Changing held slot to an empty slot should update MAIN_HAND to empty item equipmentTracker = connectionViewer.trackIncoming(EntityEquipmentPacket.class); playerHolder.setHeldItemSlot((byte) 3); - equipmentTracker.assertSingle(entityEquipmentPacket -> { - assertEquals(ItemStack.AIR, entityEquipmentPacket.equipments().get(EquipmentSlot.MAIN_HAND)); - }); + equipmentTracker.assertSingle(entityEquipmentPacket -> assertEquals(ItemStack.AIR, entityEquipmentPacket.equipments().get(EquipmentSlot.MAIN_HAND))); // Changing held slot to the original slot should update MAIN_HAND to original item equipmentTracker = connectionViewer.trackIncoming(EntityEquipmentPacket.class); playerHolder.setHeldItemSlot((byte) 0); - equipmentTracker.assertSingle(entityEquipmentPacket -> { - assertEquals(MAGIC_STACK, entityEquipmentPacket.equipments().get(EquipmentSlot.MAIN_HAND)); - }); + equipmentTracker.assertSingle(entityEquipmentPacket -> assertEquals(MAGIC_STACK, entityEquipmentPacket.equipments().get(EquipmentSlot.MAIN_HAND))); } } diff --git a/src/test/java/net/minestom/server/inventory/PlayerSlotConversionTest.java b/src/test/java/net/minestom/server/inventory/PlayerSlotConversionTest.java index 99205103912..20e11292072 100644 --- a/src/test/java/net/minestom/server/inventory/PlayerSlotConversionTest.java +++ b/src/test/java/net/minestom/server/inventory/PlayerSlotConversionTest.java @@ -8,10 +8,10 @@ /** * Test conversion from packet slots to internal ones (used in events and inventory methods) */ -public class PlayerSlotConversionTest { +class PlayerSlotConversionTest { @Test - public void hotbar() { + void hotbar() { // Convert 36-44 into 0-8 for (int i = 0; i < 9; i++) { assertEquals(i, convertPlayerInventorySlot(i + 36, OFFSET)); @@ -19,7 +19,7 @@ public void hotbar() { } @Test - public void mainInventory() { + void mainInventory() { // No conversion, slots should stay 9-35 for (int i = 9; i < 9 * 4; i++) { assertEquals(i, convertPlayerInventorySlot(i, OFFSET)); @@ -27,7 +27,7 @@ public void mainInventory() { } @Test - public void armor() { + void armor() { assertEquals(HELMET_SLOT, 41); assertEquals(CHESTPLATE_SLOT, 42); assertEquals(LEGGINGS_SLOT, 43); @@ -43,7 +43,7 @@ public void armor() { } @Test - public void craft() { + void craft() { assertEquals(CRAFT_RESULT, 36); assertEquals(CRAFT_SLOT_1, 37); assertEquals(CRAFT_SLOT_2, 38); diff --git a/src/test/java/net/minestom/server/inventory/click/integration/HeldClickIntegrationTest.java b/src/test/java/net/minestom/server/inventory/click/integration/HeldClickIntegrationTest.java index 5b9918f973e..bae0fad9898 100644 --- a/src/test/java/net/minestom/server/inventory/click/integration/HeldClickIntegrationTest.java +++ b/src/test/java/net/minestom/server/inventory/click/integration/HeldClickIntegrationTest.java @@ -1,5 +1,8 @@ package net.minestom.server.inventory.click.integration; +import net.kyori.adventure.text.Component; +import net.minestom.testing.Env; +import net.minestom.testing.EnvTest; import net.minestom.server.coordinate.Pos; import net.minestom.server.entity.Player; import net.minestom.server.event.inventory.InventoryPreClickEvent; @@ -10,8 +13,6 @@ import net.minestom.server.item.Material; import net.minestom.server.network.packet.client.play.ClientClickWindowPacket; import net.minestom.server.utils.inventory.PlayerInventoryUtils; -import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; import org.junit.jupiter.api.Test; import java.util.List; @@ -19,10 +20,10 @@ import static org.junit.jupiter.api.Assertions.*; @EnvTest -public class HeldClickIntegrationTest { +class HeldClickIntegrationTest { @Test - public void heldSelf(Env env) { + void heldSelf(Env env) { var instance = env.createFlatInstance(); var player = env.createPlayer(instance, new Pos(0, 40, 0)); var inventory = player.getInventory(); @@ -96,10 +97,10 @@ public void heldSelf(Env env) { } @Test - public void heldExternal(Env env) { + void heldExternal(Env env) { var instance = env.createFlatInstance(); var player = env.createPlayer(instance, new Pos(0, 40, 0)); - var inventory = new Inventory(InventoryType.HOPPER, "test"); + var inventory = new Inventory(InventoryType.HOPPER, Component.text("test")); var playerInv = player.getInventory(); player.openInventory(inventory); var listener = env.listen(InventoryPreClickEvent.class); diff --git a/src/test/java/net/minestom/server/inventory/click/integration/LeftClickIntegrationTest.java b/src/test/java/net/minestom/server/inventory/click/integration/LeftClickIntegrationTest.java index f7eb8f68963..c69276744a0 100644 --- a/src/test/java/net/minestom/server/inventory/click/integration/LeftClickIntegrationTest.java +++ b/src/test/java/net/minestom/server/inventory/click/integration/LeftClickIntegrationTest.java @@ -1,6 +1,9 @@ package net.minestom.server.inventory.click.integration; +import net.kyori.adventure.text.Component; +import net.minestom.testing.Env; +import net.minestom.testing.EnvTest; import net.minestom.server.coordinate.Pos; import net.minestom.server.entity.Player; import net.minestom.server.event.inventory.InventoryPreClickEvent; @@ -11,8 +14,6 @@ import net.minestom.server.item.Material; import net.minestom.server.network.packet.client.play.ClientClickWindowPacket; import net.minestom.server.utils.inventory.PlayerInventoryUtils; -import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; import org.junit.jupiter.api.Test; import java.util.List; @@ -21,10 +22,10 @@ import static org.junit.jupiter.api.Assertions.assertNull; @EnvTest -public class LeftClickIntegrationTest { +class LeftClickIntegrationTest { @Test - public void leftSelf(Env env) { + void leftSelf(Env env) { var instance = env.createFlatInstance(); var player = env.createPlayer(instance, new Pos(0, 40, 0)); var inventory = player.getInventory(); @@ -82,10 +83,10 @@ public void leftSelf(Env env) { } @Test - public void leftExternal(Env env) { + void leftExternal(Env env) { var instance = env.createFlatInstance(); var player = env.createPlayer(instance, new Pos(0, 40, 0)); - var inventory = new Inventory(InventoryType.HOPPER, "test"); + var inventory = new Inventory(InventoryType.HOPPER, Component.text("test")); player.openInventory(inventory); var listener = env.listen(InventoryPreClickEvent.class); inventory.setItemStack(1, ItemStack.of(Material.DIAMOND)); diff --git a/src/test/java/net/minestom/server/inventory/click/integration/RightClickIntegrationTest.java b/src/test/java/net/minestom/server/inventory/click/integration/RightClickIntegrationTest.java index 73868fd700a..781cfe4b864 100644 --- a/src/test/java/net/minestom/server/inventory/click/integration/RightClickIntegrationTest.java +++ b/src/test/java/net/minestom/server/inventory/click/integration/RightClickIntegrationTest.java @@ -1,5 +1,8 @@ package net.minestom.server.inventory.click.integration; +import net.kyori.adventure.text.Component; +import net.minestom.testing.Env; +import net.minestom.testing.EnvTest; import net.minestom.server.coordinate.Pos; import net.minestom.server.entity.Player; import net.minestom.server.event.inventory.InventoryPreClickEvent; @@ -10,8 +13,6 @@ import net.minestom.server.item.Material; import net.minestom.server.network.packet.client.play.ClientClickWindowPacket; import net.minestom.server.utils.inventory.PlayerInventoryUtils; -import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; import org.junit.jupiter.api.Test; import java.util.List; @@ -20,10 +21,10 @@ import static org.junit.jupiter.api.Assertions.assertNull; @EnvTest -public class RightClickIntegrationTest { +class RightClickIntegrationTest { @Test - public void rightSelf(Env env) { + void rightSelf(Env env) { var instance = env.createFlatInstance(); var player = env.createPlayer(instance, new Pos(0, 40, 0)); var inventory = player.getInventory(); @@ -104,10 +105,10 @@ public void rightSelf(Env env) { } @Test - public void rightExternal(Env env) { + void rightExternal(Env env) { var instance = env.createFlatInstance(); var player = env.createPlayer(instance, new Pos(0, 40, 0)); - var inventory = new Inventory(InventoryType.HOPPER, "test"); + var inventory = new Inventory(InventoryType.HOPPER, Component.text("test")); player.openInventory(inventory); var listener = env.listen(InventoryPreClickEvent.class); inventory.setItemStack(1, ItemStack.of(Material.DIAMOND)); diff --git a/src/test/java/net/minestom/server/item/ItemAirTest.java b/src/test/java/net/minestom/server/item/ItemAirTest.java index 1dd8a87d1ae..39a04f71cd8 100644 --- a/src/test/java/net/minestom/server/item/ItemAirTest.java +++ b/src/test/java/net/minestom/server/item/ItemAirTest.java @@ -4,9 +4,9 @@ import static org.junit.jupiter.api.Assertions.*; -public class ItemAirTest { +class ItemAirTest { @Test - public void testAir() { + void testAir() { var item = ItemStack.of(Material.DIAMOND_SWORD); assertFalse(item.isAir()); assertTrue(ItemStack.AIR.isAir()); diff --git a/src/test/java/net/minestom/server/network/PacketWriteReadTest.java b/src/test/java/net/minestom/server/network/PacketWriteReadTest.java index 19e86f0e2ac..41097deef63 100644 --- a/src/test/java/net/minestom/server/network/PacketWriteReadTest.java +++ b/src/test/java/net/minestom/server/network/PacketWriteReadTest.java @@ -161,12 +161,12 @@ public static void setupClient() { } @Test - public void serverTest() { + void serverTest() { SERVER_PACKETS.forEach(PacketWriteReadTest::testPacket); } @Test - public void clientTest() { + void clientTest() { CLIENT_PACKETS.forEach(PacketWriteReadTest::testPacket); } diff --git a/src/test/java/net/minestom/server/network/SendablePacketTest.java b/src/test/java/net/minestom/server/network/SendablePacketTest.java index c7d046a6c5e..c9744ddeb31 100644 --- a/src/test/java/net/minestom/server/network/SendablePacketTest.java +++ b/src/test/java/net/minestom/server/network/SendablePacketTest.java @@ -11,10 +11,10 @@ import static org.junit.jupiter.api.Assertions.*; -public class SendablePacketTest { +class SendablePacketTest { @Test - public void lazy() { + void lazy() { var packet = new SystemChatPacket(Component.text("Hello World!"), false); AtomicBoolean called = new AtomicBoolean(false); var lazy = new LazyPacket(() -> { @@ -27,7 +27,7 @@ public void lazy() { } @Test - public void cached() { + void cached() { var packet = new SystemChatPacket(Component.text("Hello World!"), false); var cached = new CachedPacket(packet); assertSame(packet, cached.packet(ConnectionState.PLAY)); diff --git a/src/test/java/net/minestom/server/network/SocketReadTest.java b/src/test/java/net/minestom/server/network/SocketReadTest.java index 4c8db097022..0b97ff1b1ec 100644 --- a/src/test/java/net/minestom/server/network/SocketReadTest.java +++ b/src/test/java/net/minestom/server/network/SocketReadTest.java @@ -16,11 +16,11 @@ import static org.junit.jupiter.api.Assertions.*; -public class SocketReadTest { +class SocketReadTest { @ParameterizedTest @ValueSource(booleans = {false, true}) - public void complete(boolean compressed) throws DataFormatException { + void complete(boolean compressed) throws DataFormatException { var packet = new ClientPluginMessagePacket("channel", new byte[2000]); var buffer = ObjectPool.PACKET_POOL.get(); @@ -44,7 +44,7 @@ public void complete(boolean compressed) throws DataFormatException { @ParameterizedTest @ValueSource(booleans = {false, true}) - public void completeTwo(boolean compressed) throws DataFormatException { + void completeTwo(boolean compressed) throws DataFormatException { var packet = new ClientPluginMessagePacket("channel", new byte[2000]); var buffer = ObjectPool.PACKET_POOL.get(); @@ -70,7 +70,7 @@ public void completeTwo(boolean compressed) throws DataFormatException { @ParameterizedTest @ValueSource(booleans = {false, true}) - public void insufficientLength(boolean compressed) throws DataFormatException { + void insufficientLength(boolean compressed) throws DataFormatException { // Write a complete packet then the next packet length without any payload var packet = new ClientPluginMessagePacket("channel", new byte[2000]); @@ -98,7 +98,7 @@ public void insufficientLength(boolean compressed) throws DataFormatException { @ParameterizedTest @ValueSource(booleans = {false, true}) - public void incomplete(boolean compressed) throws DataFormatException { + void incomplete(boolean compressed) throws DataFormatException { // Write a complete packet and incomplete var-int length for the next packet var packet = new ClientPluginMessagePacket("channel", new byte[2000]); diff --git a/src/test/java/net/minestom/server/network/SocketWriteTest.java b/src/test/java/net/minestom/server/network/SocketWriteTest.java index bcaadeade4d..cb450e32e59 100644 --- a/src/test/java/net/minestom/server/network/SocketWriteTest.java +++ b/src/test/java/net/minestom/server/network/SocketWriteTest.java @@ -14,7 +14,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; -public class SocketWriteTest { +class SocketWriteTest { record IntPacket(int value) implements ServerPacket.Play { @Override @@ -41,7 +41,7 @@ public int playId() { } @Test - public void writeSingleUncompressed() { + void writeSingleUncompressed() { var packet = new IntPacket(5); var buffer = ObjectPool.PACKET_POOL.get(); @@ -53,7 +53,7 @@ public void writeSingleUncompressed() { } @Test - public void writeMultiUncompressed() { + void writeMultiUncompressed() { var packet = new IntPacket(5); var buffer = ObjectPool.PACKET_POOL.get(); @@ -66,7 +66,7 @@ public void writeMultiUncompressed() { } @Test - public void writeSingleCompressed() { + void writeSingleCompressed() { var string = "Hello world!".repeat(200); var stringLength = string.getBytes(StandardCharsets.UTF_8).length; var lengthLength = Utils.getVarIntSize(stringLength); @@ -82,7 +82,7 @@ public void writeSingleCompressed() { } @Test - public void writeSingleCompressedSmall() { + void writeSingleCompressedSmall() { var packet = new IntPacket(5); var buffer = ObjectPool.PACKET_POOL.get(); @@ -94,7 +94,7 @@ public void writeSingleCompressedSmall() { } @Test - public void writeMultiCompressedSmall() { + void writeMultiCompressedSmall() { var packet = new IntPacket(5); var buffer = ObjectPool.PACKET_POOL.get(); diff --git a/src/test/java/net/minestom/server/network/socket/ServerAddressTest.java b/src/test/java/net/minestom/server/network/socket/ServerAddressTest.java index e3d5357e812..49dec17a054 100644 --- a/src/test/java/net/minestom/server/network/socket/ServerAddressTest.java +++ b/src/test/java/net/minestom/server/network/socket/ServerAddressTest.java @@ -11,11 +11,12 @@ import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assumptions.assumeTrue; +import static org.junit.jupiter.api.Assumptions.assumeTrue; -public class ServerAddressTest { +class ServerAddressTest { @Test - public void inetAddressTest() throws IOException { + void inetAddressTest() throws IOException { // These like to fail on github actions assumeTrue(System.getenv("GITHUB_ACTIONS") == null); @@ -31,7 +32,7 @@ public void inetAddressTest() throws IOException { } @Test - public void inetAddressDynamicTest() throws IOException { + void inetAddressDynamicTest() throws IOException { // These like to fail on github actions assumeTrue(System.getenv("GITHUB_ACTIONS") == null); @@ -47,7 +48,7 @@ public void inetAddressDynamicTest() throws IOException { } @Test - public void unixAddressTest() throws IOException { + void unixAddressTest() throws IOException { // These like to fail on github actions assumeTrue(System.getenv("GITHUB_ACTIONS") == null); @@ -65,7 +66,7 @@ public void unixAddressTest() throws IOException { } @Test - public void noAddressTest() throws IOException { + void noAddressTest() throws IOException { var server = new Server(new PacketProcessor(new PacketListenerManager())); assertDoesNotThrow(server::stop); } diff --git a/src/test/java/net/minestom/server/notifications/NotificationIntegrationTest.java b/src/test/java/net/minestom/server/notifications/NotificationIntegrationTest.java new file mode 100644 index 00000000000..c1f5ac3136a --- /dev/null +++ b/src/test/java/net/minestom/server/notifications/NotificationIntegrationTest.java @@ -0,0 +1,58 @@ +package net.minestom.server.notifications; + +import net.kyori.adventure.text.Component; +import net.minestom.server.advancements.FrameType; +import net.minestom.server.coordinate.Pos; +import net.minestom.server.item.ItemStack; +import net.minestom.server.item.Material; +import net.minestom.server.network.packet.server.play.AdvancementsPacket; +import net.minestom.testing.Collector; +import net.minestom.testing.Env; +import net.minestom.testing.annotations.EnvironmentTest; +import org.junit.jupiter.api.Test; + +import java.util.Optional; + +import static org.junit.jupiter.api.Assertions.*; + +@EnvironmentTest +class NotificationIntegrationTest { + + @Test + void testBuilder() { + var notification = Notification.builder() + .icon(Material.ITEM_FRAME) + .title(Component.text("unit test")) + .frameType(FrameType.TASK) + .build(); + assertEquals(FrameType.TASK, notification.type()); + assertEquals(ItemStack.of(Material.ITEM_FRAME), notification.icon()); + assertEquals(Component.text("unit test"), notification.title()); + } + + @Test + void testSend(Env env) { + var instance = env.createFlatInstance(); + var connection = env.createConnection(); + Collector advancementsPacketCollector = connection.trackIncoming(AdvancementsPacket.class); + var player = connection.connect(instance, new Pos(0, 42, 0)).join(); + var notification = Notification.builder() + .icon(Material.ITEM_FRAME) + .title(Component.text("unit test")) + .frameType(FrameType.TASK) + .build(); + notification.send(player); + advancementsPacketCollector.assertCount(2); + AdvancementsPacket advancementsPacket = advancementsPacketCollector.collect().get(1); + assertNotNull(advancementsPacket); + Optional advancementMapping = advancementsPacket.advancementMappings().stream().findFirst(); + advancementMapping.ifPresent(advancementMapping1 -> { + AdvancementsPacket.Advancement advancement = advancementMapping1.value(); + assertFalse(advancement.sendTelemetryData()); + var displayData = advancement.displayData(); + assertEquals(ItemStack.of(Material.ITEM_FRAME), displayData.icon()); + assertEquals(Component.text("unit test"), displayData.title()); + assertEquals(FrameType.TASK, displayData.frameType()); + }); + } +} diff --git a/src/test/java/net/minestom/server/permission/TestPermissions.java b/src/test/java/net/minestom/server/permission/TestPermissions.java index f6bcde9c641..5df1d985ac9 100644 --- a/src/test/java/net/minestom/server/permission/TestPermissions.java +++ b/src/test/java/net/minestom/server/permission/TestPermissions.java @@ -14,14 +14,14 @@ import static org.junit.jupiter.api.Assertions.assertTrue; // TODO: more tests -public class TestPermissions { +class TestPermissions { private Player player; private Permission permission1, permission2, permission3, wildcard; @BeforeEach - public void init() { + void init() { MinecraftServer.init(); // for entity manager player = new Player(UUID.randomUUID(), "TestPlayer", null) { @Override @@ -49,13 +49,13 @@ public boolean isOnline() { } @Test - public void noPermission() { + void noPermission() { assertFalse(player.hasPermission("")); assertFalse(player.hasPermission("random.permission")); } @Test - public void hasPermissionClass() { + void hasPermissionClass() { assertFalse(player.hasPermission(permission1)); player.addPermission(permission1); @@ -67,7 +67,7 @@ public void hasPermissionClass() { } @Test - public void hasPermissionNameNbt() { + void hasPermissionNameNbt() { player.addPermission(permission1); assertTrue(player.hasPermission("perm.name")); assertTrue(player.hasPermission("perm.name", @@ -81,7 +81,7 @@ public void hasPermissionNameNbt() { } @Test - public void hasPatternMatchingWildcard() { + void hasPatternMatchingWildcard() { Permission permission = new Permission("foo.b*r.baz"); Permission match = new Permission("foo.baaar.baz"); Permission match2 = new Permission("foo.br.baz"); @@ -105,7 +105,7 @@ public void hasPatternMatchingWildcard() { } @Test - public void hasPermissionWildcard() { + void hasPermissionWildcard() { Permission permission = new Permission("foo.b*"); Permission match = new Permission("foo.baaar.baz"); Permission match2 = new Permission("foo.b"); @@ -129,7 +129,7 @@ public void hasPermissionWildcard() { } @Test - public void hasAllPermissionsWithWildcard() { + void hasAllPermissionsWithWildcard() { assertFalse(player.hasPermission(permission2)); assertFalse(player.hasPermission(permission3)); player.addPermission(wildcard); @@ -138,7 +138,7 @@ public void hasAllPermissionsWithWildcard() { } @AfterEach - public void cleanup() { + void cleanup() { } } diff --git a/src/test/java/net/minestom/server/snapshot/ChunkSnapshotIntegrationTest.java b/src/test/java/net/minestom/server/snapshot/ChunkSnapshotIntegrationTest.java index 6f0809d0cba..35ffcf8aa11 100644 --- a/src/test/java/net/minestom/server/snapshot/ChunkSnapshotIntegrationTest.java +++ b/src/test/java/net/minestom/server/snapshot/ChunkSnapshotIntegrationTest.java @@ -8,10 +8,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; @EnvTest -public class ChunkSnapshotIntegrationTest { +class ChunkSnapshotIntegrationTest { @Test - public void blocks(Env env) { + void blocks(Env env) { var instance = env.createFlatInstance(); instance.setBlock(0, 0, 0, Block.STONE); var snapshot = ServerSnapshot.update(); diff --git a/src/test/java/net/minestom/server/snapshot/EntitySnapshotIntegrationTest.java b/src/test/java/net/minestom/server/snapshot/EntitySnapshotIntegrationTest.java index 734b3c88892..c471c487315 100644 --- a/src/test/java/net/minestom/server/snapshot/EntitySnapshotIntegrationTest.java +++ b/src/test/java/net/minestom/server/snapshot/EntitySnapshotIntegrationTest.java @@ -10,10 +10,10 @@ import static org.junit.jupiter.api.Assertions.assertNull; @EnvTest -public class EntitySnapshotIntegrationTest { +class EntitySnapshotIntegrationTest { @Test - public void basic(Env env) { + void basic(Env env) { var instance = env.createFlatInstance(); var ent = new Entity(EntityType.ZOMBIE); ent.setInstance(instance).join(); diff --git a/src/test/java/net/minestom/server/snapshot/InstanceSnapshotIntegrationTest.java b/src/test/java/net/minestom/server/snapshot/InstanceSnapshotIntegrationTest.java index 7863e30ea16..973a3401ae0 100644 --- a/src/test/java/net/minestom/server/snapshot/InstanceSnapshotIntegrationTest.java +++ b/src/test/java/net/minestom/server/snapshot/InstanceSnapshotIntegrationTest.java @@ -7,10 +7,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; @EnvTest -public class InstanceSnapshotIntegrationTest { +class InstanceSnapshotIntegrationTest { @Test - public void basic(Env env) { + void basic(Env env) { env.createFlatInstance(); var snapshot = ServerSnapshot.update(); diff --git a/src/test/java/net/minestom/server/tag/TagComponentTest.java b/src/test/java/net/minestom/server/tag/TagComponentTest.java index 44c126e1795..55a37fd275d 100644 --- a/src/test/java/net/minestom/server/tag/TagComponentTest.java +++ b/src/test/java/net/minestom/server/tag/TagComponentTest.java @@ -6,10 +6,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; -public class TagComponentTest { +class TagComponentTest { @Test - public void get() { + void get() { var component = Component.text("Hey"); var tag = Tag.Component("component"); var handler = TagHandler.newHandler(); @@ -18,14 +18,14 @@ public void get() { } @Test - public void empty() { + void empty() { var tag = Tag.Component("component"); var handler = TagHandler.newHandler(); assertNull(handler.getTag(tag)); } @Test - public void invalidTag() { + void invalidTag() { var tag = Tag.Component("entry"); var handler = TagHandler.newHandler(); handler.setTag(Tag.Integer("entry"), 1); @@ -33,7 +33,7 @@ public void invalidTag() { } @Test - public void nbtFallback() { + void nbtFallback() { var component = Component.text("Hey"); var tag = Tag.Component("component"); var handler = TagHandler.newHandler(); diff --git a/src/test/java/net/minestom/server/tag/TagEqualityTest.java b/src/test/java/net/minestom/server/tag/TagEqualityTest.java index 79905d4ee8e..5bba1cbbbc7 100644 --- a/src/test/java/net/minestom/server/tag/TagEqualityTest.java +++ b/src/test/java/net/minestom/server/tag/TagEqualityTest.java @@ -5,10 +5,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; -public class TagEqualityTest { +class TagEqualityTest { @Test - public void sameType() { + void sameType() { var tag1 = Tag.Integer("key"); var tag2 = Tag.Integer("key"); assertEquals(tag1, tag1); @@ -17,49 +17,49 @@ public void sameType() { } @Test - public void differentKey() { + void differentKey() { var tag1 = Tag.Integer("key1"); var tag2 = Tag.Integer("key2"); assertNotEquals(tag1, tag2); } @Test - public void sameList() { + void sameList() { var tag1 = Tag.Integer("key").list(); var tag2 = Tag.Integer("key").list(); assertEquals(tag1, tag2); } @Test - public void differentList() { + void differentList() { var tag1 = Tag.Integer("key").list(); var tag2 = Tag.Integer("key"); assertNotEquals(tag1, tag2); } @Test - public void unmatchedList() { + void unmatchedList() { var tag1 = Tag.Integer("key").list().list(); var tag2 = Tag.Integer("key").list(); assertNotEquals(tag1, tag2); } @Test - public void samePath() { + void samePath() { var tag1 = Tag.Integer("key").path("path"); var tag2 = Tag.Integer("key").path("path"); assertEquals(tag1, tag2); } @Test - public void differentPath() { + void differentPath() { var tag1 = Tag.Integer("key").path("path"); var tag2 = Tag.Integer("key").path("path2"); assertNotEquals(tag1, tag2); } @Test - public void unmatchedPath() { + void unmatchedPath() { var tag1 = Tag.Integer("key").path("path", "path2"); var tag2 = Tag.Integer("key").path("path"); assertNotEquals(tag1, tag2); diff --git a/src/test/java/net/minestom/server/tag/TagHandlerCopyTest.java b/src/test/java/net/minestom/server/tag/TagHandlerCopyTest.java index 11b8660c350..aca9523ad96 100644 --- a/src/test/java/net/minestom/server/tag/TagHandlerCopyTest.java +++ b/src/test/java/net/minestom/server/tag/TagHandlerCopyTest.java @@ -6,10 +6,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; -public class TagHandlerCopyTest { +class TagHandlerCopyTest { @Test - public void copy() { + void copy() { var handler = TagHandler.newHandler(); handler.setTag(Tag.String("key"), "test"); @@ -18,7 +18,7 @@ public void copy() { } @Test - public void copyCachePath() { + void copyCachePath() { var tag = Tag.String("key").path("path"); var handler = TagHandler.newHandler(); handler.setTag(tag, "test"); @@ -43,7 +43,7 @@ public void copyCachePath() { } @Test - public void copyCache() { + void copyCache() { var tag = Tag.String("key"); var handler = TagHandler.newHandler(); handler.setTag(tag, "test"); @@ -71,7 +71,7 @@ public void copyCache() { } @Test - public void copyRehashing() { + void copyRehashing() { var handler = TagHandler.newHandler(); TagHandler handlerCopy; for (int i = 0; i < 1000; i++) { diff --git a/src/test/java/net/minestom/server/tag/TagHandlerReadableCopyTest.java b/src/test/java/net/minestom/server/tag/TagHandlerReadableCopyTest.java index 90d4a646654..82774de7c00 100644 --- a/src/test/java/net/minestom/server/tag/TagHandlerReadableCopyTest.java +++ b/src/test/java/net/minestom/server/tag/TagHandlerReadableCopyTest.java @@ -6,10 +6,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertSame; -public class TagHandlerReadableCopyTest { +class TagHandlerReadableCopyTest { @Test - public void copyCache() { + void copyCache() { var tag = Tag.String("key"); var handler = TagHandler.newHandler(); handler.setTag(tag, "test"); @@ -23,7 +23,7 @@ public void copyCache() { } @Test - public void copyCachePath() { + void copyCachePath() { var tag = Tag.String("key").path("path"); var handler = TagHandler.newHandler(); handler.setTag(tag, "test"); @@ -38,14 +38,14 @@ public void copyCachePath() { } @Test - public void copyCacheReuse() { + void copyCacheReuse() { var handler = TagHandler.newHandler(); handler.setTag(Tag.String("key"), "test"); assertSame(handler.readableCopy(), handler.readableCopy()); } @Test - public void copyRehashing() { + void copyRehashing() { var tag = Tag.String("key"); var handler = TagHandler.newHandler(); handler.setTag(tag, "test"); diff --git a/src/test/java/net/minestom/server/tag/TagItemTest.java b/src/test/java/net/minestom/server/tag/TagItemTest.java index 688a271ef02..9925d94ce67 100644 --- a/src/test/java/net/minestom/server/tag/TagItemTest.java +++ b/src/test/java/net/minestom/server/tag/TagItemTest.java @@ -11,10 +11,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; -public class TagItemTest { +class TagItemTest { @Test - public void get() { + void get() { var item = ItemStack.of(Material.DIAMOND); var tag = Tag.ItemStack("item"); var handler = TagHandler.newHandler(); @@ -24,7 +24,7 @@ public void get() { } @Test - public void getDifferentObject() { + void getDifferentObject() { var item = ItemStack.of(Material.DIAMOND); var handler = TagHandler.newHandler(); handler.setTag(Tag.ItemStack("item"), item); @@ -33,7 +33,7 @@ public void getDifferentObject() { } @Test - public void remove() { + void remove() { var item = ItemStack.of(Material.DIAMOND); var tag = Tag.ItemStack("item"); var handler = TagHandler.newHandler(); @@ -45,7 +45,7 @@ public void remove() { } @Test - public void gc() { + void gc() { var item = ItemStack.of(Material.DIAMOND); var tag = Tag.ItemStack("item"); var handler = TagHandler.newHandler(); @@ -60,7 +60,7 @@ public void gc() { } @Test - public void invalidation() { + void invalidation() { var item = ItemStack.of(Material.DIAMOND); var item2 = ItemStack.of(Material.DIAMOND, 2); var handler = TagHandler.newHandler(); @@ -73,7 +73,7 @@ public void invalidation() { } @Test - public void differentTagInvalidation() { + void differentTagInvalidation() { var item = ItemStack.of(Material.DIAMOND); var item2 = ItemStack.of(Material.DIAMOND, 2); var handler = TagHandler.newHandler(); @@ -95,7 +95,7 @@ public void differentTagInvalidation() { } @Test - public void snbt() { + void snbt() { var handler = TagHandler.newHandler(); var tag = Tag.ItemStack("item"); handler.setTag(tag, ItemStack.of(Material.DIAMOND)); diff --git a/src/test/java/net/minestom/server/tag/TagListTest.java b/src/test/java/net/minestom/server/tag/TagListTest.java index 28ba07d2c86..ae025e28379 100644 --- a/src/test/java/net/minestom/server/tag/TagListTest.java +++ b/src/test/java/net/minestom/server/tag/TagListTest.java @@ -9,10 +9,10 @@ import static net.minestom.testing.TestUtils.assertEqualsSNBT; import static org.junit.jupiter.api.Assertions.*; -public class TagListTest { +class TagListTest { @Test - public void basic() { + void basic() { var handler = TagHandler.newHandler(); Tag tag = Tag.Integer("number"); Tag> list = tag.list(); @@ -27,7 +27,7 @@ public void basic() { } @Test - public void cache() { + void cache() { var handler = TagHandler.newHandler(); var tag = Tag.Integer("number").list(); var val = List.of(1, 2, 3); @@ -37,7 +37,7 @@ public void cache() { } @Test - public void recursiveCache() { + void recursiveCache() { var handler = TagHandler.newHandler(); var tag = Tag.Integer("number").list().list(); var val = List.of(List.of(1, 2, 3), List.of(4, 5, 6)); @@ -49,7 +49,7 @@ public void recursiveCache() { } @Test - public void recursiveCacheIncorrect() { + void recursiveCacheIncorrect() { var handler = TagHandler.newHandler(); var tag = Tag.Integer("number").list().list(); var val = List.of(List.of(1, 2, 3), new ArrayList<>(Arrays.asList(4, 5, 6))); @@ -62,7 +62,7 @@ public void recursiveCacheIncorrect() { } @Test - public void snbt() { + void snbt() { var handler = TagHandler.newHandler(); Tag> tag = Tag.Integer("numbers").list(); @@ -75,7 +75,7 @@ public void snbt() { } @Test - public void empty() { + void empty() { var handler = TagHandler.newHandler(); Tag> tag = Tag.Integer("numbers").list(); handler.setTag(tag, List.of()); @@ -83,7 +83,7 @@ public void empty() { } @Test - public void emptySnbt() { + void emptySnbt() { var handler = TagHandler.newHandler(); Tag> tag = Tag.Integer("numbers").list(); handler.setTag(tag, List.of()); @@ -95,7 +95,7 @@ public void emptySnbt() { } @Test - public void removal() { + void removal() { var handler = TagHandler.newHandler(); Tag> tag = Tag.Integer("numbers").list(); handler.setTag(tag, List.of(1)); @@ -105,7 +105,7 @@ public void removal() { } @Test - public void removalSnbt() { + void removalSnbt() { var handler = TagHandler.newHandler(); Tag> tag = Tag.Integer("numbers").list(); handler.setTag(tag, List.of(1)); @@ -119,7 +119,7 @@ public void removalSnbt() { } @Test - public void chaining() { + void chaining() { var handler = TagHandler.newHandler(); Tag>> tag = Tag.Integer("numbers").list().list(); var integers = List.of(List.of(1, 2, 3), List.of(4, 5, 6)); @@ -130,7 +130,7 @@ public void chaining() { } @Test - public void chainingSnbt() { + void chainingSnbt() { var handler = TagHandler.newHandler(); Tag>> tag = Tag.Integer("numbers").list().list(); var integers = List.of(List.of(1, 2, 3), List.of(4, 5, 6)); @@ -148,7 +148,7 @@ public void chainingSnbt() { } @Test - public void defaultValue() { + void defaultValue() { var handler = TagHandler.newHandler(); var val = List.of(1, 2, 3); var tag = Tag.Integer("number").list().defaultValue(val); @@ -156,7 +156,7 @@ public void defaultValue() { } @Test - public void defaultValueReset() { + void defaultValueReset() { var handler = TagHandler.newHandler(); var tag = Tag.Integer("number").defaultValue(5); var list = tag.list(); @@ -165,7 +165,7 @@ public void defaultValueReset() { } @Test - public void immutability() { + void immutability() { var handler = TagHandler.newHandler(); var tag = Tag.Integer("number").list(); List val = new ArrayList<>(); @@ -181,7 +181,7 @@ public void immutability() { } @Test - public void chainingImmutability() { + void chainingImmutability() { var handler = TagHandler.newHandler(); Tag>> tag = Tag.Integer("numbers").list().list(); List> val = new ArrayList<>(); @@ -201,7 +201,7 @@ public void chainingImmutability() { } @Test - public void immutabilitySnbt() { + void immutabilitySnbt() { var handler = TagHandler.newHandler(); var tag = Tag.Integer("numbers").list(); List val = new ArrayList<>(); @@ -223,7 +223,7 @@ public void immutabilitySnbt() { } @Test - public void chainingImmutabilitySnbt() { + void chainingImmutabilitySnbt() { var handler = TagHandler.newHandler(); Tag>> tag = Tag.Integer("numbers").list().list(); List> val = new ArrayList<>(); diff --git a/src/test/java/net/minestom/server/tag/TagMapTest.java b/src/test/java/net/minestom/server/tag/TagMapTest.java index 08595008d38..c2ea9ead15f 100644 --- a/src/test/java/net/minestom/server/tag/TagMapTest.java +++ b/src/test/java/net/minestom/server/tag/TagMapTest.java @@ -5,13 +5,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; -public class TagMapTest { +class TagMapTest { private record Entry(int value) { } @Test - public void map() { + void map() { var handler = TagHandler.newHandler(); var intTag = Tag.Integer("key"); var tag = intTag.map(Entry::new, Entry::value); @@ -22,7 +22,7 @@ public void map() { } @Test - public void mapDefault() { + void mapDefault() { var handler = TagHandler.newHandler(); var intTag = Tag.Integer("key"); var tag = intTag.map(Entry::new, Entry::value); @@ -35,7 +35,7 @@ public void mapDefault() { } @Test - public void mapDefaultAbsent() { + void mapDefaultAbsent() { var handler = TagHandler.newHandler(); var tag = Tag.Integer("key").map(Entry::new, Entry::value); assertNull(handler.getTag(tag)); diff --git a/src/test/java/net/minestom/server/tag/TagNbtSeparatorTest.java b/src/test/java/net/minestom/server/tag/TagNbtSeparatorTest.java index 17ff99ad5e6..42f36199e25 100644 --- a/src/test/java/net/minestom/server/tag/TagNbtSeparatorTest.java +++ b/src/test/java/net/minestom/server/tag/TagNbtSeparatorTest.java @@ -9,10 +9,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class TagNbtSeparatorTest { +class TagNbtSeparatorTest { @Test - public void primitives() { + void primitives() { assertSeparation(new TagNbtSeparator.Entry<>(Tag.Byte("key"), (byte) 1), "key", ByteBinaryTag.byteBinaryTag((byte) 1)); assertSeparation(new TagNbtSeparator.Entry<>(Tag.Short("key"), (short) 1), @@ -28,20 +28,20 @@ public void primitives() { } @Test - public void compound() { + void compound() { assertSeparation(new TagNbtSeparator.Entry<>(Tag.Byte("key").path("path"), (byte) 1), "path", CompoundBinaryTag.builder().putByte("key", (byte) 1).build()); } @Test - public void compoundMultiple() { + void compoundMultiple() { assertSeparation(Set.of(new TagNbtSeparator.Entry<>(Tag.Byte("key").path("path"), (byte) 1), new TagNbtSeparator.Entry<>(Tag.Integer("key2").path("path"), 2)), "path", CompoundBinaryTag.builder().putByte("key", (byte) 1).putInt("key2", 2).build()); } @Test - public void list() { + void list() { assertSeparation(new TagNbtSeparator.Entry<>(Tag.Integer("key").list(), List.of(1)), "key", ListBinaryTag.listBinaryTag(BinaryTagTypes.INT, List.of(IntBinaryTag.intBinaryTag(1)))); } diff --git a/src/test/java/net/minestom/server/tag/TagPathTest.java b/src/test/java/net/minestom/server/tag/TagPathTest.java index 67fcdcbcc3c..53d6ade4e24 100644 --- a/src/test/java/net/minestom/server/tag/TagPathTest.java +++ b/src/test/java/net/minestom/server/tag/TagPathTest.java @@ -7,10 +7,10 @@ import static net.minestom.testing.TestUtils.assertEqualsSNBT; import static org.junit.jupiter.api.Assertions.*; -public class TagPathTest { +class TagPathTest { @Test - public void basic() { + void basic() { var handler = TagHandler.newHandler(); var tag = Tag.Integer("number"); var path = tag.path("display"); @@ -28,13 +28,13 @@ public void basic() { } @Test - public void invalidPath() { + void invalidPath() { assertThrows(IllegalArgumentException.class, () -> Tag.Integer("number").path("")); assertThrows(IllegalArgumentException.class, () -> Tag.Integer("number").path("path", null)); } @Test - public void emptyRemoval() { + void emptyRemoval() { var handler = TagHandler.newHandler(); var tag = Tag.Integer("number").path("display"); handler.removeTag(tag); @@ -43,7 +43,7 @@ public void emptyRemoval() { } @Test - public void snbt() { + void snbt() { var handler = TagHandler.newHandler(); var tag = Tag.Integer("number").path("display"); handler.setTag(tag, 5); @@ -60,7 +60,7 @@ public void snbt() { } @Test - public void doubleSnbt() { + void doubleSnbt() { var handler = TagHandler.newHandler(); var tag = Tag.Integer("number").path("display"); var tag1 = Tag.String("string").path("display"); @@ -90,7 +90,7 @@ public void doubleSnbt() { } @Test - public void secondPathClearSnbt() { + void secondPathClearSnbt() { var handler = TagHandler.newHandler(); var numberTag = Tag.Integer("number").path("path1", "path2"); var stringTag = Tag.String("string").path("path1"); @@ -118,7 +118,7 @@ public void secondPathClearSnbt() { } @Test - public void differentPath() { + void differentPath() { var handler = TagHandler.newHandler(); var tag = Tag.Integer("number"); var path = tag.path("display"); @@ -150,7 +150,7 @@ public void differentPath() { } @Test - public void overrideSnbt() { + void overrideSnbt() { var handler = TagHandler.newHandler(); var tag = Tag.Integer("key"); var tag1 = Tag.Integer("value").path("key"); @@ -172,7 +172,7 @@ public void overrideSnbt() { } @Test - public void forgetPath() { + void forgetPath() { var handler = TagHandler.newHandler(); var tag = Tag.Integer("key"); var path = Tag.Integer("value").path("key"); @@ -181,7 +181,7 @@ public void forgetPath() { } @Test - public void pathInvalidClear() { + void pathInvalidClear() { var handler = TagHandler.newHandler(); var tag1 = Tag.Integer("pathInvalidClear1").path("key"); var tag2 = Tag.Integer("pathInvalidClear2").path("key"); @@ -190,7 +190,7 @@ public void pathInvalidClear() { } @Test - public void chaining() { + void chaining() { var handler = TagHandler.newHandler(); var tag = Tag.Integer("key"); var path = Tag.Integer("key").path("first", "second"); @@ -213,7 +213,7 @@ public void chaining() { } @Test - public void chainingDouble() { + void chainingDouble() { var handler = TagHandler.newHandler(); var path = Tag.Integer("key").path("first", "second"); var path1 = Tag.Integer("key").path("first"); @@ -257,7 +257,7 @@ public void chainingDouble() { } @Test - public void structureObstruction() { + void structureObstruction() { record Entry(int value) { } @@ -311,7 +311,7 @@ public void write(@NotNull TagWritable writer, @NotNull Entry value) { } @Test - public void tagObstruction() { + void tagObstruction() { var handler = TagHandler.newHandler(); var tag = Tag.Integer("key"); var path = Tag.Integer("value").path("key", "second"); diff --git a/src/test/java/net/minestom/server/tag/TagStructureTest.java b/src/test/java/net/minestom/server/tag/TagStructureTest.java index 303d0c3649e..9c8381c5aea 100644 --- a/src/test/java/net/minestom/server/tag/TagStructureTest.java +++ b/src/test/java/net/minestom/server/tag/TagStructureTest.java @@ -10,7 +10,7 @@ import static net.minestom.testing.TestUtils.assertEqualsSNBT; import static org.junit.jupiter.api.Assertions.*; -public class TagStructureTest { +class TagStructureTest { private static final Tag STRUCTURE_TAG = Tag.Structure("entry", new TagSerializer<>() { private static final Tag VALUE_TAG = Tag.String("value"); @@ -46,7 +46,7 @@ private record Entry(String value) { } @Test - public void basic() { + void basic() { var handler = TagHandler.newHandler(); assertNull(handler.getTag(STRUCTURE_TAG)); assertFalse(handler.hasTag(STRUCTURE_TAG)); @@ -62,7 +62,7 @@ public void basic() { } @Test - public void snbt() { + void snbt() { var handler = TagHandler.newHandler(); var entry = new Entry("hello"); handler.setTag(STRUCTURE_TAG, entry); @@ -79,7 +79,7 @@ public void snbt() { } @Test - public void overrideBasic() { + void overrideBasic() { var handler = TagHandler.newHandler(); assertNull(handler.getTag(STRUCTURE_TAG)); assertFalse(handler.hasTag(STRUCTURE_TAG)); @@ -105,7 +105,7 @@ public void overrideBasic() { } @Test - public void overrideNbt() { + void overrideNbt() { var handler = TagHandler.newHandler(); var entry1 = new Entry("hello"); var entry2 = new Entry("hello2"); @@ -134,7 +134,7 @@ public void overrideNbt() { } @Test - public void pathOverride() { + void pathOverride() { var handler = TagHandler.newHandler(); Tag uuidTag = Tag.UUID("Id").path("SkullOwner"); Tag skinTag = Tag.Structure("Properties", new TagSerializer() { diff --git a/src/test/java/net/minestom/server/tag/TagTransientTest.java b/src/test/java/net/minestom/server/tag/TagTransientTest.java index 1dce03d1305..e8fc926f3e3 100644 --- a/src/test/java/net/minestom/server/tag/TagTransientTest.java +++ b/src/test/java/net/minestom/server/tag/TagTransientTest.java @@ -5,10 +5,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; -public class TagTransientTest { +class TagTransientTest { @Test - public void twoTransientTags() { + void twoTransientTags() { var tagHandler = TagHandler.newHandler(); Tag tag1 = Tag.Transient("a"); Tag tag2 = Tag.Transient("b"); @@ -19,7 +19,7 @@ public void twoTransientTags() { } @Test - public void twoTransientTagsEqual() { + void twoTransientTagsEqual() { var tagHandler = TagHandler.newHandler(); Tag tag1 = Tag.Transient("a"); Tag tag2 = Tag.Transient("a"); @@ -30,7 +30,7 @@ public void twoTransientTagsEqual() { } @Test - public void tagHandlerCopyPreservesTransient() { + void tagHandlerCopyPreservesTransient() { var tagHandler = TagHandler.newHandler(); Tag tag = Tag.Transient("a"); tagHandler.setTag(tag, "abcdef"); @@ -41,7 +41,7 @@ public void tagHandlerCopyPreservesTransient() { } @Test - public void asCompoundDoesNotPreserveTransient() { + void asCompoundDoesNotPreserveTransient() { var tagHandler = TagHandler.newHandler(); Tag tag = Tag.Transient("a"); tagHandler.setTag(tag, "abcdef"); diff --git a/src/test/java/net/minestom/server/tag/TagUpdateTest.java b/src/test/java/net/minestom/server/tag/TagUpdateTest.java index 222b875de23..59a64d77c7c 100644 --- a/src/test/java/net/minestom/server/tag/TagUpdateTest.java +++ b/src/test/java/net/minestom/server/tag/TagUpdateTest.java @@ -6,10 +6,10 @@ import static net.minestom.testing.TestUtils.assertEqualsSNBT; import static org.junit.jupiter.api.Assertions.*; -public class TagUpdateTest { +class TagUpdateTest { @Test - public void update() { + void update() { var tag = Tag.Integer("coin"); var handler = TagHandler.newHandler(); handler.updateTag(tag, integer -> { @@ -25,7 +25,7 @@ public void update() { } @Test - public void updateDefault() { + void updateDefault() { var tag = Tag.Integer("coin").defaultValue(25); var handler = TagHandler.newHandler(); handler.updateTag(tag, integer -> { @@ -41,7 +41,7 @@ public void updateDefault() { } @Test - public void updateRemoval() { + void updateRemoval() { var tag = Tag.Integer("coin"); var handler = TagHandler.newHandler(); handler.setTag(tag, 5); @@ -54,7 +54,7 @@ public void updateRemoval() { } @Test - public void updateRemovalPath() { + void updateRemovalPath() { var tag = Tag.Integer("coin").path("path"); var handler = TagHandler.newHandler(); handler.setTag(tag, 5); @@ -67,7 +67,7 @@ public void updateRemovalPath() { } @Test - public void updateAndGet() { + void updateAndGet() { var tag = Tag.Integer("coin"); var handler = TagHandler.newHandler(); var result = handler.updateAndGetTag(tag, integer -> { @@ -83,7 +83,7 @@ public void updateAndGet() { } @Test - public void getAndUpdate() { + void getAndUpdate() { var tag = Tag.Integer("coin"); var handler = TagHandler.newHandler(); var result = handler.getAndUpdateTag(tag, integer -> { @@ -99,7 +99,7 @@ public void getAndUpdate() { } @Test - public void updateHiddenSimilarity() { + void updateHiddenSimilarity() { var tag1 = Tag.Integer("coin"); var tag2 = Tag.Integer("coin").map(i -> i + 1, i -> i - 1); var handler = TagHandler.newHandler(); @@ -110,7 +110,7 @@ public void updateHiddenSimilarity() { } @Test - public void updateStructureConversion() { + void updateStructureConversion() { record Test(int coin) { } @@ -131,7 +131,7 @@ record Test(int coin) { } @Test - public void updateStructureConversionPath() { + void updateStructureConversionPath() { record Test(int coin) { } @@ -152,7 +152,7 @@ record Test(int coin) { } @Test - public void updateStructureConversionPathDouble() { + void updateStructureConversionPathDouble() { record Test(int coin) { } record Structure(Test test) { @@ -176,7 +176,7 @@ record Structure(Test test) { } @Test - public void updateViewConversion() { + void updateViewConversion() { record Test(int coin) { } @@ -194,7 +194,7 @@ record Test(int coin) { } @Test - public void updateIncompatible() { + void updateIncompatible() { var tagI = Tag.Integer("coin"); var tagD = Tag.Double("coin"); var handler = TagHandler.newHandler(); @@ -203,7 +203,7 @@ public void updateIncompatible() { } @Test - public void updateInner() { + void updateInner() { var tag = Tag.Structure("vec", Vec.class); var tagX = Tag.Double("x").path("vec"); var handler = TagHandler.newHandler(); diff --git a/src/test/java/net/minestom/server/tag/TagUuidTest.java b/src/test/java/net/minestom/server/tag/TagUuidTest.java index 0e8d1acde9a..c6793a2b38c 100644 --- a/src/test/java/net/minestom/server/tag/TagUuidTest.java +++ b/src/test/java/net/minestom/server/tag/TagUuidTest.java @@ -7,10 +7,10 @@ import static org.junit.jupiter.api.Assertions.*; -public class TagUuidTest { +class TagUuidTest { @Test - public void get() { + void get() { var uuid = UUID.randomUUID(); var tag = Tag.UUID("uuid"); var handler = TagHandler.newHandler(); @@ -19,14 +19,14 @@ public void get() { } @Test - public void empty() { + void empty() { var tag = Tag.UUID("uuid"); var handler = TagHandler.newHandler(); assertNull(handler.getTag(tag)); } @Test - public void invalidTag() { + void invalidTag() { var tag = Tag.UUID("entry"); var handler = TagHandler.newHandler(); handler.setTag(Tag.Integer("entry"), 1); @@ -34,7 +34,7 @@ public void invalidTag() { } @Test - public void toNbt() { + void toNbt() { var tag = Tag.UUID("uuid"); var handler = TagHandler.newHandler(); handler.setTag(tag, UUID.fromString("9ab8ca63-3d7b-43ba-b805-a20a352dae9c")); @@ -44,7 +44,7 @@ public void toNbt() { } @Test - public void fromNbt() { + void fromNbt() { var tag = Tag.UUID("uuid"); var handler = TagHandler.newHandler(); handler.setTag(Tag.NBT("uuid"), IntArrayBinaryTag.intArrayBinaryTag(-1699165597, 1031488442, -1207590390, 892186268)); diff --git a/src/test/java/net/minestom/server/tag/TagValueShareTest.java b/src/test/java/net/minestom/server/tag/TagValueShareTest.java index bbed3b075d0..b375a45d41a 100644 --- a/src/test/java/net/minestom/server/tag/TagValueShareTest.java +++ b/src/test/java/net/minestom/server/tag/TagValueShareTest.java @@ -11,40 +11,40 @@ /** * Test tags that can share cached values. */ -public class TagValueShareTest { +class TagValueShareTest { record Entry(int value) { } @Test - public void same() { + void same() { var tag = Tag.String("test"); assertTrue(tag.shareValue(tag)); } @Test - public void similar() { + void similar() { var tag = Tag.String("test"); var tag2 = Tag.String("test"); assertTrue(tag.shareValue(tag2)); } @Test - public void differentDefault() { + void differentDefault() { var tag = Tag.String("test").defaultValue("test2"); var tag2 = Tag.String("test").defaultValue("test3"); assertTrue(tag.shareValue(tag2)); } @Test - public void differentType() { + void differentType() { var tag = Tag.String("test"); var tag2 = Tag.Integer("test"); assertFalse(tag.shareValue(tag2)); } @Test - public void mapSame() { + void mapSame() { // Force identical functions Function t1 = Entry::new; Function t2 = Entry::value; @@ -56,26 +56,26 @@ public void mapSame() { } @Test - public void mapChild() { + void mapChild() { var intTag = Tag.Integer("key"); var tag = intTag.map(Entry::new, Entry::value); assertFalse(intTag.shareValue(tag)); } @Test - public void list() { + void list() { var tag = Tag.String("test").list(); assertTrue(tag.shareValue(tag)); } @Test - public void listScope() { + void listScope() { var tag = Tag.String("test"); assertFalse(tag.shareValue(tag.list())); } @Test - public void similarList() { + void similarList() { var tag = Tag.String("test").list(); var tag2 = Tag.String("test").list(); assertTrue(tag.shareValue(tag2)); @@ -83,7 +83,7 @@ public void similarList() { } @Test - public void differentList() { + void differentList() { var tag = Tag.String("test").list(); var tag2 = Tag.String("test").list(); assertFalse(tag.shareValue(tag2.list())); @@ -91,7 +91,7 @@ public void differentList() { } @Test - public void differentListType() { + void differentListType() { var tag = Tag.String("test").list(); var tag2 = Tag.Integer("test").list(); assertFalse(tag.shareValue(tag2)); @@ -99,14 +99,14 @@ public void differentListType() { } @Test - public void recordStructure() { + void recordStructure() { var tag = Tag.Structure("test", Vec.class); var tag2 = Tag.Structure("test", Vec.class); assertTrue(tag.shareValue(tag2)); } @Test - public void recordStructureList() { + void recordStructureList() { var tag = Tag.Structure("test", Vec.class).list(); var tag2 = Tag.Structure("test", Vec.class).list(); assertTrue(tag.shareValue(tag2)); diff --git a/src/test/java/net/minestom/server/tag/TagViewTest.java b/src/test/java/net/minestom/server/tag/TagViewTest.java index 9e532187700..4aff1257e08 100644 --- a/src/test/java/net/minestom/server/tag/TagViewTest.java +++ b/src/test/java/net/minestom/server/tag/TagViewTest.java @@ -8,7 +8,7 @@ import static net.minestom.testing.TestUtils.assertEqualsSNBT; import static org.junit.jupiter.api.Assertions.*; -public class TagViewTest { +class TagViewTest { private static final Tag VIEW_TAG = Tag.View(new TagSerializer<>() { private static final Tag VALUE_TAG = Tag.String("value"); @@ -29,7 +29,7 @@ private record Entry(String value) { } @Test - public void basic() { + void basic() { var handler = TagHandler.newHandler(); assertNull(handler.getTag(VIEW_TAG)); assertFalse(handler.hasTag(VIEW_TAG)); @@ -45,7 +45,7 @@ public void basic() { } @Test - public void snbt() { + void snbt() { var handler = TagHandler.newHandler(); var entry = new Entry("hello"); handler.setTag(VIEW_TAG, entry); @@ -60,7 +60,7 @@ public void snbt() { } @Test - public void snbtOverride() { + void snbtOverride() { var handler = TagHandler.newHandler(); var entry = new Entry("hello"); handler.setTag(VIEW_TAG, entry); @@ -79,7 +79,7 @@ public void snbtOverride() { } @Test - public void empty() { + void empty() { var handler = TagHandler.newHandler(); var tag = Tag.View(new TagSerializer() { @Override @@ -109,7 +109,7 @@ public void write(@NotNull TagWritable writer, @NotNull Entry value) { } @Test - public void path() { + void path() { var handler = TagHandler.newHandler(); var tag = VIEW_TAG.path("path"); assertNull(handler.getTag(tag)); @@ -126,7 +126,7 @@ public void path() { } @Test - public void pathSnbt() { + void pathSnbt() { var handler = TagHandler.newHandler(); var tag = VIEW_TAG.path("path"); var entry = new Entry("hello"); @@ -144,7 +144,7 @@ public void pathSnbt() { } @Test - public void compoundSerializer() { + void compoundSerializer() { var tag = Tag.View(TagSerializer.COMPOUND); var handler = TagHandler.newHandler(); handler.setTag(tag, CompoundBinaryTag.builder().putString("value", "hello").build()); diff --git a/src/test/java/net/minestom/server/thread/AcquirableTest.java b/src/test/java/net/minestom/server/thread/AcquirableTest.java index 4ad821cc2ab..6129c929cec 100644 --- a/src/test/java/net/minestom/server/thread/AcquirableTest.java +++ b/src/test/java/net/minestom/server/thread/AcquirableTest.java @@ -9,10 +9,10 @@ import static org.junit.jupiter.api.Assertions.assertNotEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -public class AcquirableTest { +class AcquirableTest { @Test - public void assignation() { + void assignation() { AtomicReference tickThread = new AtomicReference<>(); Entity entity = new Entity(EntityType.ZOMBIE) { @Override diff --git a/src/test/java/net/minestom/server/thread/ThreadDispatcherTest.java b/src/test/java/net/minestom/server/thread/ThreadDispatcherTest.java index 00f7b48addb..d9de83b15b8 100644 --- a/src/test/java/net/minestom/server/thread/ThreadDispatcherTest.java +++ b/src/test/java/net/minestom/server/thread/ThreadDispatcherTest.java @@ -14,10 +14,10 @@ import static org.junit.jupiter.api.Assertions.*; -public class ThreadDispatcherTest { +class ThreadDispatcherTest { @Test - public void elementTick() { + void elementTick() { final AtomicInteger counter = new AtomicInteger(); ThreadDispatcher dispatcher = ThreadDispatcher.singleThread(); assertEquals(1, dispatcher.threads().size()); @@ -45,7 +45,7 @@ public void elementTick() { } @Test - public void partitionTick() { + void partitionTick() { // Partitions implementing Tickable should be ticked same as elements final AtomicInteger counter1 = new AtomicInteger(); final AtomicInteger counter2 = new AtomicInteger(); @@ -74,7 +74,7 @@ public void partitionTick() { } @Test - public void uniqueThread() { + void uniqueThread() { // Ensure that partitions are properly dispatched across threads final int threadCount = 10; ThreadDispatcher dispatcher = ThreadDispatcher.of(ThreadProvider.counter(), threadCount); @@ -103,7 +103,7 @@ public void uniqueThread() { } @Test - public void threadUpdate() { + void threadUpdate() { // Ensure that partitions threads are properly updated every tick // when RefreshType.ALWAYS is used interface Updater extends Tickable { diff --git a/src/test/java/net/minestom/server/utils/ChunkUtilsTest.java b/src/test/java/net/minestom/server/utils/ChunkUtilsTest.java index 5327ad0533a..c6d314ab4f1 100644 --- a/src/test/java/net/minestom/server/utils/ChunkUtilsTest.java +++ b/src/test/java/net/minestom/server/utils/ChunkUtilsTest.java @@ -9,11 +9,11 @@ import java.util.*; import java.util.stream.Stream; -public class ChunkUtilsTest { +class ChunkUtilsTest { @ParameterizedTest @MethodSource("testForDifferingChunksInRangeParams") - public void testForDifferingChunksInRange(int nx, int nz, int ox, int oz, int r) { + void testForDifferingChunksInRange(int nx, int nz, int ox, int oz, int r) { final Set n = new HashSet<>(); final Set o = new HashSet<>(); ChunkUtils.forChunksInRange(nx, nz, r, (x, z) -> n.add(new ChunkCoordinate(x, z))); diff --git a/src/test/java/net/minestom/server/utils/NamespaceIDTest.java b/src/test/java/net/minestom/server/utils/NamespaceIDTest.java index 01783c5089c..6ed987c3947 100644 --- a/src/test/java/net/minestom/server/utils/NamespaceIDTest.java +++ b/src/test/java/net/minestom/server/utils/NamespaceIDTest.java @@ -5,10 +5,10 @@ import static org.junit.jupiter.api.Assertions.*; -public class NamespaceIDTest { +class NamespaceIDTest { @Test - public void init() { + void init() { var namespace = NamespaceID.from("minecraft:any"); assertEquals("minecraft", namespace.domain()); assertEquals("any", namespace.path()); @@ -21,7 +21,7 @@ public void init() { } @Test - public void equals() { + void equals() { var namespace = NamespaceID.from("minecraft:any"); assertEquals(namespace, NamespaceID.from("minecraft:any")); assertNotEquals(namespace, NamespaceID.from("minecraft:any2")); @@ -29,7 +29,7 @@ public void equals() { } @Test - public void hashCodeConsistentWithEquals() { + void hashCodeConsistentWithEquals() { var namespace = NamespaceID.from("minecraft:any"); var key = Key.key("minecraft:any"); @@ -38,50 +38,50 @@ public void hashCodeConsistentWithEquals() { } @Test - public void atMostOneColon() { + void atMostOneColon() { assertThrows(AssertionError.class, () -> NamespaceID.from("minecraft:block:wool")); } @Test - public void noSlashInDomain() { + void noSlashInDomain() { assertThrows(AssertionError.class, () -> NamespaceID.from("minecraft/java_edition:any")); } @Test - public void noDotInDomain() { + void noDotInDomain() { assertThrows(AssertionError.class, () -> NamespaceID.from("minecraft.java:game")); } @Test - public void noUppercase() { + void noUppercase() { assertThrows(AssertionError.class, () -> NamespaceID.from("Minecraft:any")); assertThrows(AssertionError.class, () -> NamespaceID.from("minecraft:Any")); } @Test - public void noSpace() { + void noSpace() { assertThrows(AssertionError.class, () -> NamespaceID.from("minecraft:a n y")); } @Test - public void onlyLatinLowercase() { + void onlyLatinLowercase() { assertThrows(AssertionError.class, () -> NamespaceID.from("Minecraft:voilà")); assertThrows(AssertionError.class, () -> NamespaceID.from("minecraft:où_ça")); assertThrows(AssertionError.class, () -> NamespaceID.from("minecraft:schrödingers_var")); } @Test - public void numbersAllowed() { + void numbersAllowed() { NamespaceID.from("0xc1:468786471"); } @Test - public void dotAllowedInPath() { + void dotAllowedInPath() { NamespaceID.from("minecraft:ambient.cave"); } @Test - public void slashAllowedInPath() { + void slashAllowedInPath() { NamespaceID.from("minecraft:textures/blocks/dirt.png"); } } diff --git a/src/test/java/net/minestom/server/utils/ObjectPoolTest.java b/src/test/java/net/minestom/server/utils/ObjectPoolTest.java index 42c8557addf..d3dc473514d 100644 --- a/src/test/java/net/minestom/server/utils/ObjectPoolTest.java +++ b/src/test/java/net/minestom/server/utils/ObjectPoolTest.java @@ -8,10 +8,10 @@ import static org.junit.jupiter.api.Assertions.*; -public class ObjectPoolTest { +class ObjectPoolTest { @Test - public void pool() { + void pool() { var pool = ObjectPool.BUFFER_POOL; Set pooledBuffers = new HashSet<>(); pool.clear(); @@ -31,7 +31,7 @@ public void pool() { } @Test - public void autoClose() { + void autoClose() { var pool = ObjectPool.BUFFER_POOL; assertEquals(0, pool.count()); try (var ignored = pool.hold()) { diff --git a/src/test/java/net/minestom/server/utils/PositionUtilsTest.java b/src/test/java/net/minestom/server/utils/PositionUtilsTest.java index 888bee67eda..aeba8005db9 100644 --- a/src/test/java/net/minestom/server/utils/PositionUtilsTest.java +++ b/src/test/java/net/minestom/server/utils/PositionUtilsTest.java @@ -5,10 +5,10 @@ import static org.junit.jupiter.api.Assertions.*; -public class PositionUtilsTest { +class PositionUtilsTest { @Test - public void yaw() { + void yaw() { float plusX = PositionUtils.getLookYaw(10, 0); assertEquals(-90, plusX, 1E-5); @@ -34,7 +34,7 @@ public void yaw() { } @Test - public void highPitch() { + void highPitch() { float high = PositionUtils.getLookPitch(0, 999999, 0); assertEquals(-90, high, 1E-5); diff --git a/src/test/java/net/minestom/server/utils/TranslationIntegrationTest.java b/src/test/java/net/minestom/server/utils/TranslationIntegrationTest.java index 5a4dc13b7e4..4ec77373024 100644 --- a/src/test/java/net/minestom/server/utils/TranslationIntegrationTest.java +++ b/src/test/java/net/minestom/server/utils/TranslationIntegrationTest.java @@ -23,7 +23,7 @@ import static org.junit.jupiter.api.Assertions.assertNotEquals; @EnvTest -public class TranslationIntegrationTest { +class TranslationIntegrationTest { @BeforeAll static void translator() { @@ -34,7 +34,7 @@ static void translator() { } @Test - public void testTranslationEnabled(final Env env) { + void testTranslationEnabled(final Env env) { final var instance = env.createFlatInstance(); final var connection = env.createConnection(); final var player = connection.connect(instance, new Pos(0, 40, 0)).join(); @@ -53,7 +53,7 @@ public void testTranslationEnabled(final Env env) { } @Test - public void testTranslationDisabled(final Env env) { + void testTranslationDisabled(final Env env) { final var instance = env.createFlatInstance(); final var connection = env.createConnection(); final var player = connection.connect(instance, new Pos(0, 40, 0)).join(); diff --git a/src/test/java/net/minestom/server/utils/UniqueIdUtilsTest.java b/src/test/java/net/minestom/server/utils/UniqueIdUtilsTest.java new file mode 100644 index 00000000000..a12b906b9a7 --- /dev/null +++ b/src/test/java/net/minestom/server/utils/UniqueIdUtilsTest.java @@ -0,0 +1,17 @@ +package net.minestom.server.utils; + +import org.junit.jupiter.api.Test; + +import java.util.UUID; + +import static net.minestom.server.utils.UniqueIdUtils.*; +import static org.junit.jupiter.api.Assertions.*; + +class UniqueIdUtilsTest { + + @Test + void testUniqueIDCheck() { + assertFalse(isUniqueId("")); + assertTrue(isUniqueId(UUID.randomUUID().toString())); + } +} diff --git a/src/test/java/net/minestom/server/utils/block/BlockIteratorTest.java b/src/test/java/net/minestom/server/utils/block/BlockIteratorTest.java index 56503dbdf90..d8381807460 100644 --- a/src/test/java/net/minestom/server/utils/block/BlockIteratorTest.java +++ b/src/test/java/net/minestom/server/utils/block/BlockIteratorTest.java @@ -9,14 +9,14 @@ import static org.junit.jupiter.api.Assertions.*; -public class BlockIteratorTest { +class BlockIteratorTest { private void assertContains(List points, Point point) { assertTrue(points.contains(point), "Expected " + points + " to contain " + point); } @Test - public void test2dOffsetppp() { - Vec s = new Vec(0, 0.1, 0); + void test2dOffsetppp() { + Vec s = new Vec(0, 0.1, 0); Vec e = new Vec(2, 1, 0); BlockIterator iterator = new BlockIterator(s, e, 0, 4); @@ -29,8 +29,8 @@ public void test2dOffsetppp() { } @Test - public void test2dOffsetppn() { - Vec s = new Vec(0, 0.1, 0); + void test2dOffsetppn() { + Vec s = new Vec(0, 0.1, 0); Vec e = new Vec(-2, 1, 0); BlockIterator iterator = new BlockIterator(s, e, 0, 4); @@ -44,8 +44,8 @@ public void test2dOffsetppn() { } @Test - public void test2dOffsetnpp() { - Vec s = new Vec(0, -0.1, 0); + void test2dOffsetnpp() { + Vec s = new Vec(0, -0.1, 0); Vec e = new Vec(2, 1, 0); BlockIterator iterator = new BlockIterator(s, e, 0, 4); @@ -59,8 +59,8 @@ public void test2dOffsetnpp() { } @Test - public void test2dOffsetnnp() { - Vec s = new Vec(0, -0.1, 0); + void test2dOffsetnnp() { + Vec s = new Vec(0, -0.1, 0); Vec e = new Vec(-2, 1, 0); BlockIterator iterator = new BlockIterator(s, e, 0, 4); @@ -75,15 +75,15 @@ public void test2dOffsetnnp() { } @Test - public void testZeroVelocity() { - Vec s = new Vec(0, 0, 0); + void testZeroVelocity() { + Vec s = new Vec(0, 0, 0); Vec e = new Vec(0, 0, 0); BlockIterator iterator = new BlockIterator(s, e, 0, 4); assertFalse(iterator.hasNext()); } @Test - public void testLongDistance() { + void testLongDistance() { Vec s = new Vec(42.5, 0, 51.5); Vec e = new Vec(-12, 0, -36); BlockIterator iterator = new BlockIterator(s, e, 0, 37); @@ -163,7 +163,7 @@ public void testLongDistance() { } @Test - public void testSkipping() { + void testSkipping() { Vec s = new Vec(0.5, 40, 0.5); Vec e = new Vec(27, 0, 21); BlockIterator iterator = new BlockIterator(s, e, 0, 34); @@ -235,8 +235,8 @@ public void testSkipping() { } @Test - public void testExactEnd() { - Vec s = new Vec(0.5, 0, 0.5); + void testExactEnd() { + Vec s = new Vec(0.5, 0, 0.5); Vec e = new Vec(0, 1, 0); BlockIterator iterator = new BlockIterator(s, e, 0, 1); assertEquals(new Vec(0, 0, 0), iterator.next()); @@ -245,8 +245,8 @@ public void testExactEnd() { } @Test - public void testSameEnd() { - Vec s = new Vec(0.5, 0, 0.5); + void testSameEnd() { + Vec s = new Vec(0.5, 0, 0.5); Vec e = new Vec(0, 1, 0); BlockIterator iterator = new BlockIterator(s, e, 0, 0.5); assertEquals(new Vec(0, 0, 0), iterator.next()); @@ -254,8 +254,8 @@ public void testSameEnd() { } @Test - public void test3dExtraCollection() { - Vec s = new Vec(0.1, 0.1, 0.1); + void test3dExtraCollection() { + Vec s = new Vec(0.1, 0.1, 0.1); Vec e = new Vec(1, 1, 1); BlockIterator iterator = new BlockIterator(s, e, 0, 4); @@ -290,8 +290,8 @@ public void test3dExtraCollection() { } @Test - public void test2dpp() { - Vec s = new Vec(0, 0, 0); + void test2dpp() { + Vec s = new Vec(0, 0, 0); Vec e = new Vec(2, 1, 0); BlockIterator iterator = new BlockIterator(s, e, 0, 4); @@ -316,8 +316,8 @@ public void test2dpp() { } @Test - public void test2dpn() { - Vec s = new Vec(0, 0, 0); + void test2dpn() { + Vec s = new Vec(0, 0, 0); Vec e = new Vec(-2, 1, 0); BlockIterator iterator = new BlockIterator(s, e, 0, 4); @@ -343,8 +343,8 @@ public void test2dpn() { } @Test - public void test2dnn() { - Vec s = new Vec(0, 0, 0); + void test2dnn() { + Vec s = new Vec(0, 0, 0); Vec e = new Vec(-2, -1, 0); BlockIterator iterator = new BlockIterator(s, e, 0, 4); @@ -372,8 +372,8 @@ public void test2dnn() { } @Test - public void falling() { - Vec s = new Vec(0, 42, 0); + void falling() { + Vec s = new Vec(0, 42, 0); Vec e = new Vec(0, -10, 0); BlockIterator iterator = new BlockIterator(s, e, 0, 14.142135623730951); diff --git a/src/test/java/net/minestom/server/utils/collection/AutoIncrementMapTest.java b/src/test/java/net/minestom/server/utils/collection/AutoIncrementMapTest.java index b19454170b5..04946c4ab86 100644 --- a/src/test/java/net/minestom/server/utils/collection/AutoIncrementMapTest.java +++ b/src/test/java/net/minestom/server/utils/collection/AutoIncrementMapTest.java @@ -4,9 +4,9 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class AutoIncrementMapTest { +class AutoIncrementMapTest { @Test - public void test() { + void test() { AutoIncrementMap map = new AutoIncrementMap<>(); for (int i = 0; i < 1000; i++) { assertEquals(i, map.get("test" + i)); diff --git a/src/test/java/net/minestom/server/utils/collection/ObjectArrayTest.java b/src/test/java/net/minestom/server/utils/collection/ObjectArrayTest.java index ee2f9544050..cece245e052 100644 --- a/src/test/java/net/minestom/server/utils/collection/ObjectArrayTest.java +++ b/src/test/java/net/minestom/server/utils/collection/ObjectArrayTest.java @@ -5,11 +5,11 @@ import static org.junit.jupiter.api.Assertions.*; -public class ObjectArrayTest { +class ObjectArrayTest { @ParameterizedTest @ValueSource(booleans = {false, true}) - public void objectArray(boolean concurrent) { + void objectArray(boolean concurrent) { ObjectArray array = concurrent ? ObjectArray.concurrent() : ObjectArray.singleThread(); array.set(50, "Hey"); @@ -37,7 +37,7 @@ public void objectArray(boolean concurrent) { @ParameterizedTest @ValueSource(booleans = {false, true}) - public void arrayCopy(boolean concurrent) { + void arrayCopy(boolean concurrent) { ObjectArray array = concurrent ? ObjectArray.concurrent() : ObjectArray.singleThread(); array.set(1, "Hey"); diff --git a/testing/build.gradle.kts b/testing/build.gradle.kts index 8926b63c3c7..34c7ab94613 100644 --- a/testing/build.gradle.kts +++ b/testing/build.gradle.kts @@ -1,14 +1,23 @@ plugins { - `java-library` -// `maven-publish` + id("java-library") + id("net.kyori.indra") + id("net.kyori.indra.publishing") + signing } -group = "net.minestom.testing" -// version declared by root project +group = "net.onelitefeather.microtus.testing" -dependencies { - api(rootProject) +repositories { + maven("https://s01.oss.sonatype.org/content/repositories/snapshots") + mavenCentral() + maven(url = "https://jitpack.io") +} + +dependencies { + // Minestom API + api(project(mapOf("path" to ":"))) + // Junit Testing Framework api(libs.junit.api) api(libs.junit.params) api(libs.junit.suite.api) @@ -16,14 +25,36 @@ dependencies { runtimeOnly(libs.junit.suite.engine) } -//publishing { -// publications { -// create("maven") { -// groupId = "net.minestom.testing" -// artifactId = "testing" -// version = "1.0" -// -// from(components["java"]) -// } -// } -//} +tasks.getByName("test") { + useJUnitPlatform() +} + +indra { + javaVersions { + target(21) + testWith(21) + } + + github("OneLiteFeatherNET", "Microtus") { + ci(true) + publishing(false) + } + mitLicense() + signWithKeyFromPrefixedProperties("onelitefeather") + configurePublications { + pom { + developers { + developer { + id.set("themeinerlp") + name.set("Phillipp Glanz") + email.set("p.glanz@madfix.me") + } + developer { + id.set("theEvilReaper") + name.set("Steffen Wonning") + email.set("steffenwx@gmail.com") + } + } + } + } +} \ No newline at end of file diff --git a/testing/src/main/java/net/minestom/testing/Env.java b/testing/src/main/java/net/minestom/testing/Env.java index 23f26476783..d89cd42f381 100644 --- a/testing/src/main/java/net/minestom/testing/Env.java +++ b/testing/src/main/java/net/minestom/testing/Env.java @@ -56,4 +56,14 @@ default boolean tickWhile(BooleanSupplier condition, Duration timeout) { default void destroyInstance(Instance instance) { process().instance().unregisterInstance(instance); } + + /** + * Cleanup the test environment + * @since 1.4.1 + */ + void cleanup(); + + static Env createInstance(ServerProcess process) { + return new EnvImpl(process); + } } diff --git a/testing/src/main/java/net/minestom/testing/EnvImpl.java b/testing/src/main/java/net/minestom/testing/EnvImpl.java index 89f1c9c7ad6..cb41fcc9264 100644 --- a/testing/src/main/java/net/minestom/testing/EnvImpl.java +++ b/testing/src/main/java/net/minestom/testing/EnvImpl.java @@ -48,7 +48,8 @@ public EnvImpl(ServerProcess process) { return flexible; } - void cleanup() { + @Override + public void cleanup() { this.listeners.forEach(FlexibleListenerImpl::check); this.process.stop(); } diff --git a/testing/src/main/java/net/minestom/testing/EnvTest.java b/testing/src/main/java/net/minestom/testing/EnvTest.java index ebaeea0e1fa..794953ca905 100644 --- a/testing/src/main/java/net/minestom/testing/EnvTest.java +++ b/testing/src/main/java/net/minestom/testing/EnvTest.java @@ -10,11 +10,15 @@ import java.lang.annotation.Target; import java.lang.reflect.Method; +/** + * @deprecated As of Microtus 1.4.2, because this version don't support Non Env tests and env tests at the same time use {@link net.minestom.testing.annotations.EnvironmentTest} instead. + */ @ExtendWith(EnvTest.EnvParameterResolver.class) @ExtendWith(EnvTest.EnvBefore.class) @ExtendWith(EnvTest.EnvCleaner.class) @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) +@Deprecated(since = "1.4.2", forRemoval = true) public @interface EnvTest { final class EnvBefore implements BeforeEachCallback { diff --git a/testing/src/main/java/net/minestom/testing/annotations/EnvironmentTest.java b/testing/src/main/java/net/minestom/testing/annotations/EnvironmentTest.java new file mode 100644 index 00000000000..954d2aa2719 --- /dev/null +++ b/testing/src/main/java/net/minestom/testing/annotations/EnvironmentTest.java @@ -0,0 +1,21 @@ +package net.minestom.testing.annotations; + +import net.minestom.testing.environment.TestEnvironmentCleaner; +import net.minestom.testing.environment.TestEnvironmentParameterResolver; +import org.junit.jupiter.api.extension.ExtendWith; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Creates a fake environment for Microtus + * @since 1.4.2 + */ +@ExtendWith(TestEnvironmentCleaner.class) +@ExtendWith(TestEnvironmentParameterResolver.class) +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +public @interface EnvironmentTest { +} diff --git a/testing/src/main/java/net/minestom/testing/environment/TestEnvironmentCleaner.java b/testing/src/main/java/net/minestom/testing/environment/TestEnvironmentCleaner.java new file mode 100644 index 00000000000..6b354229791 --- /dev/null +++ b/testing/src/main/java/net/minestom/testing/environment/TestEnvironmentCleaner.java @@ -0,0 +1,25 @@ +package net.minestom.testing.environment; + +import net.minestom.testing.Env; +import org.junit.jupiter.api.extension.ExtensionContext; +import org.junit.jupiter.api.extension.InvocationInterceptor; +import org.junit.jupiter.api.extension.ReflectiveInvocationContext; + +import java.lang.reflect.Method; +import java.util.List; + +/** + * Handles {@link Env} to clean the Test Environment after usage + * @since 1.4.2 + */ +public final class TestEnvironmentCleaner implements InvocationInterceptor { + @Override + public void interceptTestMethod(Invocation invocation, ReflectiveInvocationContext invocationContext, ExtensionContext extensionContext) throws Throwable { + invocation.proceed(); + List arguments = invocationContext.getArguments(); + arguments.stream().filter(Env.class::isInstance).findFirst().ifPresent(o -> { + Env env = (Env) o; + env.cleanup(); + }); + } +} diff --git a/testing/src/main/java/net/minestom/testing/environment/TestEnvironmentParameterResolver.java b/testing/src/main/java/net/minestom/testing/environment/TestEnvironmentParameterResolver.java new file mode 100644 index 00000000000..77f023b7268 --- /dev/null +++ b/testing/src/main/java/net/minestom/testing/environment/TestEnvironmentParameterResolver.java @@ -0,0 +1,20 @@ +package net.minestom.testing.environment; + +import net.minestom.server.MinecraftServer; +import net.minestom.testing.Env; +import org.junit.jupiter.api.extension.ExtensionContext; +import org.junit.jupiter.api.extension.ParameterContext; +import org.junit.jupiter.api.extension.ParameterResolutionException; +import org.junit.jupiter.api.extension.support.TypeBasedParameterResolver; + +/** + * Handles {@link Env} parameter for JUnit Tests to inject the TestEnvironment + * @since 1.4.1 + */ +public final class TestEnvironmentParameterResolver extends TypeBasedParameterResolver { + @Override + public Env resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) + throws ParameterResolutionException { + return Env.createInstance(MinecraftServer.updateProcess()); + } +} From 4f7e47e83aa491c276a555e29f7e00733a529f6c Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Mon, 5 Aug 2024 14:57:32 +0200 Subject: [PATCH 02/93] Bump version to 1.5.0 --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index d5742adfa18..6c6dce9622e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -10,7 +10,7 @@ plugins { group = "net.onelitefeather.microtus" -version = System.getenv("TAG_VERSION") ?: "1.4.3-SNAPSHOT" +version = System.getenv("TAG_VERSION") ?: "1.4.0-SNAPSHOT" allprojects { group = "net.onelitefeather.microtus" From b88d792eb32126082f3143f98145d784968156e9 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Mon, 5 Aug 2024 15:10:24 +0200 Subject: [PATCH 03/93] Add missing import --- src/main/java/net/minestom/server/tag/TagNbtSeparator.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/net/minestom/server/tag/TagNbtSeparator.java b/src/main/java/net/minestom/server/tag/TagNbtSeparator.java index e283b5e5558..93584dbb606 100644 --- a/src/main/java/net/minestom/server/tag/TagNbtSeparator.java +++ b/src/main/java/net/minestom/server/tag/TagNbtSeparator.java @@ -1,6 +1,7 @@ package net.minestom.server.tag; import net.kyori.adventure.nbt.*; +import net.minestom.server.MinecraftServer; import net.minestom.server.utils.nbt.BinaryTagUtil; import java.util.ArrayList; From 4bc530cf53d6340b263eca448dbc8a793b8e696b Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Mon, 5 Aug 2024 15:10:48 +0200 Subject: [PATCH 04/93] Add support for older as 1.21 minecraft worlds --- .../java/net/minestom/server/instance/anvil/AnvilLoader.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/net/minestom/server/instance/anvil/AnvilLoader.java b/src/main/java/net/minestom/server/instance/anvil/AnvilLoader.java index 44990bce260..47730cbd0c9 100644 --- a/src/main/java/net/minestom/server/instance/anvil/AnvilLoader.java +++ b/src/main/java/net/minestom/server/instance/anvil/AnvilLoader.java @@ -246,6 +246,10 @@ private Block[] loadBlockPalette(@NotNull ListBinaryTag paletteTag) { if (blockName.equals("minecraft:air")) { convertedPalette[i] = Block.AIR; } else { + + if (blockName.equals("minecraft:grass")) { + blockName = "minecraft:grass_block"; + } Block block = Objects.requireNonNull(Block.fromNamespaceId(blockName), "Unknown block " + blockName); // Properties final Map properties = new HashMap<>(); From 7f75882d408a90c4eefadab2686358b9c1c39bb8 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Mon, 5 Aug 2024 15:11:00 +0200 Subject: [PATCH 05/93] Update BOM dependencies --- bom/build.gradle.kts | 6 ------ 1 file changed, 6 deletions(-) diff --git a/bom/build.gradle.kts b/bom/build.gradle.kts index c087880974a..dcfc9fd2257 100644 --- a/bom/build.gradle.kts +++ b/bom/build.gradle.kts @@ -29,8 +29,6 @@ dependencies { // Libraries api(libs.gson) api(libs.jcTools) - // Path finding - api(libs.hydrazine) // Adventure, for user-interface api(libs.bundles.adventure) @@ -45,10 +43,6 @@ dependencies { // Minestom Data (From MinestomDataGenerator) api(libs.minestomData) - // NBT parsing/manipulation/saving - api("io.github.jglrxavpok.hephaistos:common:${libs.versions.hephaistos.get()}") - api("io.github.jglrxavpok.hephaistos:gson:${libs.versions.hephaistos.get()}") - // BStats api(libs.bstats.base) } From 18fdb7838c26b347728816f1da321b64b1d4e95d Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Wed, 22 May 2024 20:26:17 +0200 Subject: [PATCH 06/93] Apply microtus patches 1-20 --- build-logic/build.gradle.kts | 2 +- .../net/minestom/codegen/CodeGenerator.java | 105 +-- .../codegen/MinestomCodeGenerator.java | 26 + .../codegen/biome/BiomeGenerator.java | 146 ++++ .../codegen/color/DyeColorGenerator.java | 73 +- .../entity/VillagerProfessionGenerator.java | 1 + .../codegen/entity/VillagerTypeGenerator.java | 1 + .../codegen/feature/FeatureFlagGenerator.java | 108 +++ .../codegen/fluid/FluidGenerator.java | 64 +- gradle/wrapper/gradle-wrapper.properties | 2 +- .../minestom/server/attribute/Attributes.java | 61 ++ .../server/item/banner/BannerPatterns.java | 89 +++ .../java/net/minestom/server/ServerFlag.java | 16 + .../entity/attribute/AttributeManager.java | 0 .../minestom/server/instance/AnvilLoader.java | 0 .../server/item/banner/BannerPattern.java | 39 ++ .../server/item/banner/BannerPatternImpl.java | 48 ++ .../server/item/metadata/BannerMeta.java | 165 +++++ .../server/item/metadata/ShieldMeta.java | 131 ++++ .../server/network/NetworkBufferTypes.java | 639 ++++++++++++++++++ .../world/biomes/particle/BiomeOption.java | 16 + .../world/biomes/particle/BlockOption.java | 32 + .../world/biomes/particle/DefaultOption.java | 20 + .../world/biomes/particle/DustOption.java | 34 + .../world/biomes/particle/ItemOption.java | 27 + .../minestom.common-conventions.gradle.kts | 28 + .../minestom.native-conventions.gradle.kts | 14 + ...minestom.publishing-conventions.gradle.kts | 40 ++ .../microtus/ExtensionPlugin.kt | 76 +++ .../microtus/GenerateExtension.kt | 79 +++ .../microtus/models/Extension.kt | 76 +++ .../java/net/minestom/server/InsideTest.java | 4 +- .../EntityBlockPhysicsIntegrationTest.java | 128 ++-- .../server/command/ArgumentTypeTest.java | 76 ++- .../entity/metadata/animal/FrogMetaTest.java | 5 +- .../PlayerBlockPlacementIntegrationTest.java | 4 +- .../minestom/server/instance/BlockTest.java | 12 +- .../inventory/InventoryIntegrationTest.java | 21 +- .../server/network/NetworkBufferTest.java | 28 +- 39 files changed, 2153 insertions(+), 283 deletions(-) create mode 100644 code-generators/src/main/java/net/minestom/codegen/biome/BiomeGenerator.java create mode 100644 code-generators/src/main/java/net/minestom/codegen/feature/FeatureFlagGenerator.java create mode 100644 src/autogenerated/java/net/minestom/server/attribute/Attributes.java create mode 100644 src/autogenerated/java/net/minestom/server/item/banner/BannerPatterns.java create mode 100644 src/main/java/net/minestom/server/entity/attribute/AttributeManager.java create mode 100644 src/main/java/net/minestom/server/instance/AnvilLoader.java create mode 100644 src/main/java/net/minestom/server/item/banner/BannerPattern.java create mode 100644 src/main/java/net/minestom/server/item/banner/BannerPatternImpl.java create mode 100644 src/main/java/net/minestom/server/item/metadata/BannerMeta.java create mode 100644 src/main/java/net/minestom/server/item/metadata/ShieldMeta.java create mode 100644 src/main/java/net/minestom/server/network/NetworkBufferTypes.java create mode 100644 src/main/java/net/minestom/server/world/biomes/particle/BiomeOption.java create mode 100644 src/main/java/net/minestom/server/world/biomes/particle/BlockOption.java create mode 100644 src/main/java/net/minestom/server/world/biomes/particle/DefaultOption.java create mode 100644 src/main/java/net/minestom/server/world/biomes/particle/DustOption.java create mode 100644 src/main/java/net/minestom/server/world/biomes/particle/ItemOption.java create mode 100644 src/main/kotlin/minestom.common-conventions.gradle.kts create mode 100644 src/main/kotlin/minestom.native-conventions.gradle.kts create mode 100644 src/main/kotlin/minestom.publishing-conventions.gradle.kts create mode 100644 src/main/kotlin/net/onelitefeather/microtus/ExtensionPlugin.kt create mode 100644 src/main/kotlin/net/onelitefeather/microtus/GenerateExtension.kt create mode 100644 src/main/kotlin/net/onelitefeather/microtus/models/Extension.kt diff --git a/build-logic/build.gradle.kts b/build-logic/build.gradle.kts index 432eafa33eb..78c0b62d906 100644 --- a/build-logic/build.gradle.kts +++ b/build-logic/build.gradle.kts @@ -15,4 +15,4 @@ dependencies { implementation("net.kyori", "indra-publishing-sonatype", indraVersion) implementation("org.graalvm.buildtools", "native-gradle-plugin", "0.9.28") implementation("io.github.gradle-nexus", "publish-plugin", "2.0.0-rc-1") -} \ No newline at end of file +} diff --git a/code-generators/src/main/java/net/minestom/codegen/CodeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/CodeGenerator.java index 8aa876ec201..e1d2d6277a7 100644 --- a/code-generators/src/main/java/net/minestom/codegen/CodeGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/CodeGenerator.java @@ -3,40 +3,45 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonObject; -import com.squareup.javapoet.*; +import com.squareup.javapoet.AnnotationSpec; +import com.squareup.javapoet.ClassName; +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.JavaFile; +import com.squareup.javapoet.TypeSpec; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.lang.model.SourceVersion; import javax.lang.model.element.Modifier; import java.io.File; -import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import java.util.List; -import java.util.Locale; +import java.util.HashMap; +import java.util.Map; -public class CodeGenerator { +import static net.minestom.codegen.MinestomCodeGenerator.DEFAULT_INDENT; +import static net.minestom.codegen.MinestomCodeGenerator.extractNamespaces; + +@ApiStatus.Internal +public class CodeGenerator implements CodeExporter { protected static final Gson GSON = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create(); private static final Logger LOGGER = LoggerFactory.getLogger(CodeGenerator.class); - private final File outputFolder; - public CodeGenerator(File outputFolder) { + public CodeGenerator(@NotNull File outputFolder) { this.outputFolder = outputFolder; } public void generate(InputStream resourceFile, String packageName, String typeName, String loaderName, String generatedName) { if (resourceFile == null) { - LOGGER.error("Failed to find resource file for " + typeName); + LOGGER.error("Failed to find resource file for {}", typeName); return; } ClassName typeClass = ClassName.get(packageName, typeName); ClassName loaderClass = ClassName.get(packageName, loaderName); - JsonObject json; - json = GSON.fromJson(new InputStreamReader(resourceFile), JsonObject.class); + JsonObject json = GSON.fromJson(new InputStreamReader(resourceFile), JsonObject.class); ClassName materialsCN = ClassName.get(packageName, generatedName); // BlockConstants class TypeSpec.Builder blockConstantsClass = TypeSpec.interfaceBuilder(materialsCN) @@ -44,17 +49,16 @@ public void generate(InputStream resourceFile, String packageName, String typeNa .addAnnotation(AnnotationSpec.builder(SuppressWarnings.class).addMember("value", "$S", "unused").build()) .addJavadoc("Code autogenerated, do not edit!"); + Map replacementOptions = new HashMap<>(); + replacementOptions.put("minecraft:", ""); + replacementOptions.put(".", "_"); // Use data json.keySet().forEach(namespace -> { - final String constantName = namespace - .replace("minecraft:", "") - .replace(".", "_") - .toUpperCase(Locale.ROOT); + final String constantName = extractNamespaces(namespace, replacementOptions); blockConstantsClass.addField( FieldSpec.builder(typeClass, constantName) .addModifiers(Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL) .initializer( - // TypeClass.STONE = MaterialLoader.fromNamespaceId("minecraft:stone") "$T.get($S)", loaderClass, namespace @@ -62,69 +66,12 @@ public void generate(InputStream resourceFile, String packageName, String typeNa .build() ); }); - writeFiles( - List.of(JavaFile.builder(packageName, blockConstantsClass.build()) - .indent(" ") - .skipJavaLangImports(true) - .build()), - outputFolder); - } - - public void generateKeys(InputStream resourceFile, String packageName, String typeName, String generatedName) { - if (resourceFile == null) { - LOGGER.error("Failed to find resource file for " + typeName); - return; - } - - ClassName typeClass = ClassName.bestGuess(packageName + "." + typeName); // Use bestGuess to handle nested class - ClassName registryKeyClass = ClassName.get("net.minestom.server.registry", "DynamicRegistry", "Key"); - ParameterizedTypeName typedRegistryKeyClass = ParameterizedTypeName.get(registryKeyClass, typeClass); - - JsonObject json; - json = GSON.fromJson(new InputStreamReader(resourceFile), JsonObject.class); - ClassName materialsCN = ClassName.get(packageName, generatedName); - // BlockConstants class - TypeSpec.Builder blockConstantsClass = TypeSpec.interfaceBuilder(materialsCN) - // Add @SuppressWarnings("unused") - .addAnnotation(AnnotationSpec.builder(SuppressWarnings.class).addMember("value", "$S", "unused").build()) - .addJavadoc("Code autogenerated, do not edit!"); - - // Use data - json.keySet().forEach(namespace -> { - String constantName = namespace - .replace("minecraft:", "") - .replace(".", "_") - .toUpperCase(Locale.ROOT); - if (!SourceVersion.isName(constantName)) { - constantName = "_" + constantName; - } - blockConstantsClass.addField( - FieldSpec.builder(typedRegistryKeyClass, constantName) - .addModifiers(Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL) - .initializer( - // TypeClass.STONE = NamespaceID.from("minecraft:stone") - "$T.of($S)", - registryKeyClass, - namespace - ) - .build() - ); - }); - writeFiles( - List.of(JavaFile.builder(packageName, blockConstantsClass.build()) - .indent(" ") + writeFile( + JavaFile.builder(packageName, blockConstantsClass.build()) + .indent(DEFAULT_INDENT) .skipJavaLangImports(true) - .build()), - outputFolder); - } - - private void writeFiles(@NotNull List fileList, File outputFolder) { - for (JavaFile javaFile : fileList) { - try { - javaFile.writeTo(outputFolder); - } catch (IOException e) { - LOGGER.error("An error occured while writing source code to the file system.", e); - } - } + .build(), + outputFolder + ); } } diff --git a/code-generators/src/main/java/net/minestom/codegen/MinestomCodeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/MinestomCodeGenerator.java index 63b26f97d26..94773d6fbfd 100644 --- a/code-generators/src/main/java/net/minestom/codegen/MinestomCodeGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/MinestomCodeGenerator.java @@ -22,16 +22,31 @@ public abstract class MinestomCodeGenerator implements CodeExporter { protected static final Modifier[] CONSTANT_MODIFIERS = {Modifier.PRIVATE, Modifier.STATIC, Modifier.FINAL}; protected static final Modifier[] PRIVATE_FINAL_MODIFIERS = {Modifier.PRIVATE, Modifier.FINAL}; protected static final String DEFAULT_INDENT = " "; +<<<<<<< HEAD /** * Creates a new code generator. */ protected MinestomCodeGenerator() { +======= + protected String packageName; + + /** + * Creates a new code generator. + * @param packageName the package name of the generated class + */ + protected MinestomCodeGenerator(@NotNull String packageName) { + if (packageName.trim().isEmpty()) { + throw new IllegalArgumentException("Package name cannot be empty"); + } + this.packageName = packageName; +>>>>>>> ab0874cf0 (Apply microtus patches 1-20) } public abstract void generate(); protected static @NotNull String extractNamespace(@NotNull String namespace) { +<<<<<<< HEAD return namespace.replace("minecraft:", "").toUpperCase(Locale.ROOT); } @@ -45,6 +60,17 @@ protected MinestomCodeGenerator() { } protected static String toConstant(String namespace) { +======= +>>>>>>> ab0874cf0 (Apply microtus patches 1-20) return namespace.replace("minecraft:", "").toUpperCase(Locale.ROOT); } + + protected static @NotNull String extractNamespaces(@NotNull String namespace, @NotNull Map arguments) { + if (arguments.isEmpty()) return extractNamespace(namespace); + + for (Map.Entry entry : arguments.entrySet()) { + namespace = namespace.replace(entry.getKey(), entry.getValue()); + } + return namespace.toUpperCase(Locale.ROOT); + } } diff --git a/code-generators/src/main/java/net/minestom/codegen/biome/BiomeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/biome/BiomeGenerator.java new file mode 100644 index 00000000000..f82f817012c --- /dev/null +++ b/code-generators/src/main/java/net/minestom/codegen/biome/BiomeGenerator.java @@ -0,0 +1,146 @@ +package net.minestom.codegen.biome; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.squareup.javapoet.AnnotationSpec; +import com.squareup.javapoet.ArrayTypeName; +import com.squareup.javapoet.ClassName; +import com.squareup.javapoet.CodeBlock; +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.JavaFile; +import com.squareup.javapoet.MethodSpec; +import com.squareup.javapoet.ParameterSpec; +import com.squareup.javapoet.TypeName; +import com.squareup.javapoet.TypeSpec; +import java.awt.Color; +import java.io.File; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.List; +import javax.lang.model.element.Modifier; +import net.minestom.codegen.MinestomCodeGenerator; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@ApiStatus.Internal +@ApiStatus.NonExtendable +public final class BiomeGenerator extends MinestomCodeGenerator { + + private static final String BIOME_KEY = "biome"; + private static final String BIOME_FILE_PACKAGE = "net.minestom.server.world.biomes"; // Microtus - Biomes + private static final String CLASS_NAME = "Biomes"; // Microtus - Biomes + private static final Logger LOGGER = LoggerFactory.getLogger(BiomeGenerator.class); + private final InputStream biomeFile; + private final File outputFolder; + + public BiomeGenerator(@Nullable InputStream biomeFile, @NotNull File outputFolder) { + super(BIOME_FILE_PACKAGE); + this.biomeFile = biomeFile; + this.outputFolder = outputFolder; + } + + @Override + public void generate() { + if (biomeFile == null) { + LOGGER.error("Failed to find biome.json."); + LOGGER.error("Stopped code generation for biomes."); + return; + } + if (!outputFolder.exists() && !outputFolder.mkdirs()) { + LOGGER.error("Output folder for code generation does not exist and could not be created."); + return; + } + + JsonElement biomes = GSON.fromJson(new InputStreamReader(biomeFile), JsonElement.class); + ClassName biomeCN = ClassName.get(BIOME_FILE_PACKAGE, CLASS_NAME); + ClassName biomeCn = ClassName.get(BIOME_FILE_PACKAGE, "Biome"); + ClassName categoryCn = biomeCn.nestedClass("Category"); + ClassName minecraftServerCn = ClassName.get("net.minestom.server", "MinecraftServer"); + ClassName namespaceIDCn = ClassName.get("net.minestom.server.utils", "NamespaceID"); + ClassName biomeEffectsCn = ClassName.get(BIOME_FILE_PACKAGE, "BiomeEffects"); + // Dye Color Enum + TypeSpec.Builder biomesEnum = TypeSpec.enumBuilder(biomeCN) + .addModifiers(Modifier.PUBLIC).addJavadoc("AUTOGENERATED by " + getClass().getSimpleName()); + + // Fields + biomesEnum.addFields( + List.of( + FieldSpec.builder(biomeCn, BIOME_KEY, Modifier.PRIVATE, Modifier.FINAL).build(), + FieldSpec.builder(ArrayTypeName.of(biomeCN), "VALUES", Modifier.PRIVATE, Modifier.STATIC, Modifier.FINAL).initializer(CLASS_NAME + ".values()").build() // Microtus - Banner and shield meta + ) + ); + + // Methods + biomesEnum.addMethods( + List.of( + // Constructor + MethodSpec.constructorBuilder() + .addParameter( + ParameterSpec.builder(biomeCn, BIOME_KEY).addAnnotation(NotNull.class).build() + ) + .addStatement("this.$1L = $1L", BIOME_KEY) + .build(), + MethodSpec.methodBuilder(BIOME_KEY) + .addModifiers(Modifier.PUBLIC) + .returns(biomeCn.annotated(AnnotationSpec.builder(NotNull.class).build())) + .addStatement("return this.$L", BIOME_KEY) + .build(), + MethodSpec.methodBuilder("getValue") + .addModifiers(Modifier.PUBLIC, Modifier.STATIC) + .addParameter(ParameterSpec.builder(TypeName.INT, "id").build()) + .addAnnotation(Nullable.class) + .returns(ClassName.get(BIOME_FILE_PACKAGE, CLASS_NAME)) + .addCode("return VALUES[$L];", "id") + .build(), + MethodSpec.methodBuilder("registerBiomes") + .addModifiers(Modifier.PUBLIC, Modifier.STATIC) + .beginControlFlow("for (var $L : VALUES)", BIOME_KEY) + .addStatement("$1T.getBiomeManager().addBiome($2L.$2L())", minecraftServerCn, BIOME_KEY) + .endControlFlow() + .build() + ) + ); + final JsonObject biomesAsJsonObject = biomes.getAsJsonObject(); + biomesAsJsonObject.keySet().forEach(biome -> { + var biomeObject = biomesAsJsonObject.get(biome).getAsJsonObject(); + var temperature = biomeObject.get("temperature").getAsFloat(); + var downfall = biomeObject.get("downfall").getAsFloat(); + var hasPrecipitation = biomeObject.get("has_precipitation").getAsBoolean(); + var fogColor = Integer.toHexString(new Color(biomeObject.get("fogColor").getAsInt()).getRGB()).substring(2); + var waterColor = Integer.toHexString(new Color(biomeObject.get("waterColor").getAsInt()).getRGB()).substring(2); + var waterFogColor = Integer.toHexString(new Color(biomeObject.get("waterFogColor").getAsInt()).getRGB()).substring(2); + var skyColor = Integer.toHexString(new Color(biomeObject.get("skyColor").getAsInt()).getRGB()).substring(2); + var effectCodeBlock = CodeBlock.builder(); + effectCodeBlock = effectCodeBlock.add("$T.builder().fogColor(0x$L).waterColor(0x$L).waterFogColor(0x$L).skyColor(0x$L)", biomeEffectsCn, fogColor, waterColor, waterFogColor, skyColor); + if (biomeObject.has("grassColor")) { + var grassColor = Integer.toHexString(new Color(biomeObject.get("grassColor").getAsInt()).getRGB()).substring(2); + effectCodeBlock = effectCodeBlock.add(".grassColor(0x$L)", grassColor); + } + if (biomeObject.has("foliageColor")) { + var foliageColor = Integer.toHexString(new Color(biomeObject.get("foliageColor").getAsInt()).getRGB()).substring(2); + effectCodeBlock = effectCodeBlock.add(".foliageColor(0x$L)", foliageColor); + } + effectCodeBlock = effectCodeBlock.add(".build()"); + var namespacedCode = CodeBlock.of("$T.from($S)", namespaceIDCn, biome.replaceFirst("minecraft:", "")); + biomesEnum.addEnumConstant(extractNamespace(biome), TypeSpec.anonymousClassBuilder( + "$T.builder().name($L).category($T.NONE).depth(0.125F).scale(0.05F).temperature($Lf).downfall($Lf).showPrecipitation($L).effects($L).build()", + biomeCn, namespacedCode, categoryCn, temperature, downfall, hasPrecipitation, effectCodeBlock.build() + ).build() + ); + }); + + // Write files to outputFolder + writeFiles( + List.of( + JavaFile.builder(BIOME_FILE_PACKAGE, biomesEnum.build()) + .indent(DEFAULT_INDENT) + .skipJavaLangImports(true) + .build() + ), + outputFolder + ); + } +} diff --git a/code-generators/src/main/java/net/minestom/codegen/color/DyeColorGenerator.java b/code-generators/src/main/java/net/minestom/codegen/color/DyeColorGenerator.java index da85a1d66e5..6175c5e5f21 100644 --- a/code-generators/src/main/java/net/minestom/codegen/color/DyeColorGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/color/DyeColorGenerator.java @@ -5,6 +5,8 @@ import com.google.gson.JsonObject; import com.squareup.javapoet.*; import net.minestom.codegen.MinestomCodeGenerator; +import net.minestom.codegen.util.GenerationHelper; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; @@ -18,12 +20,21 @@ import java.util.List; import java.util.stream.StreamSupport; -public class DyeColorGenerator extends MinestomCodeGenerator { +@ApiStatus.NonExtendable +@ApiStatus.Internal +public final class DyeColorGenerator extends MinestomCodeGenerator { + + private static final String CLASS_NAME = "DyeColor"; // Microtus - Banner and shield meta + private static final String TEXTURE_DIFFUSE_COLOR = "textureDiffuseColor"; + private static final String TEXT_COLOR = "textColor"; + private static final String FIREWORK_COLOR = "fireworkColor"; + private static final String MAP_COLOR_ID = "mapColorId"; private static final Logger LOGGER = LoggerFactory.getLogger(DyeColorGenerator.class); private final InputStream dyeColorsFile; private final File outputFolder; public DyeColorGenerator(@Nullable InputStream dyeColorsFile, @NotNull File outputFolder) { + super("net.minestom.server.color"); this.dyeColorsFile = dyeColorsFile; this.outputFolder = outputFolder; } @@ -39,11 +50,11 @@ public void generate() { LOGGER.error("Output folder for code generation does not exist and could not be created."); return; } - // Important classes we use alot - ClassName colorCN = ClassName.get("net.minestom.server.color", "Color"); + // Important classes we use a lot + ClassName colorCN = ClassName.get(packageName, "Color"); JsonArray dyeColors = GSON.fromJson(new InputStreamReader(dyeColorsFile), JsonArray.class); - ClassName dyeColorCN = ClassName.get("net.minestom.server.color", "DyeColor"); + ClassName dyeColorCN = ClassName.get(packageName, CLASS_NAME); // Dye Color Enum TypeSpec.Builder dyeColorEnum = TypeSpec.enumBuilder(dyeColorCN) .addSuperinterface(ClassName.get("net.kyori.adventure.util", "RGBLike")) @@ -63,10 +74,11 @@ public void generate() { FieldSpec.builder(binaryTagSerializerTypeCN, "NBT_TYPE", Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL) .initializer("$T.fromEnumStringable($T.class)", binaryTagSerializerCN, dyeColorCN) .build(), - FieldSpec.builder(colorCN, "textureDiffuseColor", Modifier.PRIVATE, Modifier.FINAL).build(), - FieldSpec.builder(colorCN, "textColor", Modifier.PRIVATE, Modifier.FINAL).build(), - FieldSpec.builder(colorCN, "fireworkColor", Modifier.PRIVATE, Modifier.FINAL).build(), - FieldSpec.builder(TypeName.INT, "mapColorId", Modifier.PRIVATE, Modifier.FINAL).build() + FieldSpec.builder(colorCN, TEXTURE_DIFFUSE_COLOR, PRIVATE_FINAL_MODIFIERS).build(), + FieldSpec.builder(colorCN, TEXT_COLOR, PRIVATE_FINAL_MODIFIERS).build(), + FieldSpec.builder(colorCN, FIREWORK_COLOR, PRIVATE_FINAL_MODIFIERS).build(), + FieldSpec.builder(TypeName.INT, MAP_COLOR_ID, PRIVATE_FINAL_MODIFIERS).build(), + FieldSpec.builder(ArrayTypeName.of(dyeColorCN), "VALUES", CONSTANT_MODIFIERS).initializer(CLASS_NAME + ".values()").build() // Microtus - Banner and shield meta ) ); @@ -77,28 +89,28 @@ public void generate() { MethodSpec.constructorBuilder() .addParameters( List.of( - ParameterSpec.builder(colorCN, "textureDiffuseColor").addAnnotation(NotNull.class).build(), - ParameterSpec.builder(colorCN, "textColor").addAnnotation(NotNull.class).build(), - ParameterSpec.builder(colorCN, "fireworkColor").addAnnotation(NotNull.class).build(), - ParameterSpec.builder(TypeName.INT, "mapColorId").build() + ParameterSpec.builder(colorCN, TEXTURE_DIFFUSE_COLOR).addAnnotation(NotNull.class).build(), + ParameterSpec.builder(colorCN, TEXT_COLOR).addAnnotation(NotNull.class).build(), + ParameterSpec.builder(colorCN, FIREWORK_COLOR).addAnnotation(NotNull.class).build(), + ParameterSpec.builder(TypeName.INT, MAP_COLOR_ID).build() ) ) - .addStatement("this.textureDiffuseColor = textureDiffuseColor") - .addStatement("this.textColor = textColor") - .addStatement("this.fireworkColor = fireworkColor") - .addStatement("this.mapColorId = mapColorId") + .addStatement(GenerationHelper.VARIABLE_SETTER, TEXTURE_DIFFUSE_COLOR) + .addStatement(GenerationHelper.VARIABLE_SETTER, TEXT_COLOR) + .addStatement(GenerationHelper.VARIABLE_SETTER, FIREWORK_COLOR) + .addStatement(GenerationHelper.VARIABLE_SETTER, MAP_COLOR_ID) .build(), MethodSpec.methodBuilder("color") .addModifiers(Modifier.PUBLIC) .returns(colorCN.annotated(AnnotationSpec.builder(NotNull.class).build())) .addStatement("return this.textureDiffuseColor") .build(), - MethodSpec.methodBuilder("textColor") + MethodSpec.methodBuilder(TEXT_COLOR) .addModifiers(Modifier.PUBLIC) .returns(colorCN.annotated(AnnotationSpec.builder(NotNull.class).build())) .addStatement("return this.textColor") .build(), - MethodSpec.methodBuilder("fireworkColor") + MethodSpec.methodBuilder(FIREWORK_COLOR) .addModifiers(Modifier.PUBLIC) .returns(colorCN.annotated(AnnotationSpec.builder(NotNull.class).build())) .addStatement("return this.fireworkColor") @@ -121,23 +133,30 @@ public void generate() { .addAnnotation(Override.class) .addStatement("return this.textureDiffuseColor.blue()") .build(), - MethodSpec.methodBuilder("mapColorId") + MethodSpec.methodBuilder(MAP_COLOR_ID) .addModifiers(Modifier.PUBLIC) .returns(TypeName.INT) .addStatement("return this.mapColorId") - .build() + .build(), + MethodSpec.methodBuilder("getValue") // Microtus start - Banner and shield meta + .addModifiers(Modifier.PUBLIC, Modifier.STATIC) + .addParameter(ParameterSpec.builder(TypeName.INT, "id").build()) + .addAnnotation(Nullable.class) + .returns(ClassName.get(packageName, CLASS_NAME)) + .addCode("return VALUES[$L];", "id") + .build() // Microtus end - Banner and shield meta ) ); // Use data for (JsonObject dyeColorObject : StreamSupport.stream(dyeColors.spliterator(), true).map(JsonElement::getAsJsonObject).sorted(Comparator.comparingInt(o -> o.get("id").getAsInt())).toList()) { String dyeColorName = dyeColorObject.get("name").getAsString(); - dyeColorEnum.addEnumConstant(toConstant(dyeColorName), TypeSpec.anonymousClassBuilder( + dyeColorEnum.addEnumConstant(extractNamespace(dyeColorName), TypeSpec.anonymousClassBuilder( "new $T(0x$L), new $T(0x$L), new $T(0x$L), $L", - colorCN, Integer.toString(dyeColorObject.get("textureDiffuseColor").getAsInt(), 16), - colorCN, Integer.toString(dyeColorObject.get("textColor").getAsInt(), 16), - colorCN, Integer.toString(dyeColorObject.get("fireworkColor").getAsInt(), 16), - dyeColorObject.get("mapColorId").getAsInt() + colorCN, Integer.toString(dyeColorObject.get(TEXTURE_DIFFUSE_COLOR).getAsInt(), 16), + colorCN, Integer.toString(dyeColorObject.get(TEXT_COLOR).getAsInt(), 16), + colorCN, Integer.toString(dyeColorObject.get(FIREWORK_COLOR).getAsInt(), 16), + dyeColorObject.get(MAP_COLOR_ID).getAsInt() ).build() ); } @@ -145,8 +164,8 @@ public void generate() { // Write files to outputFolder writeFiles( List.of( - JavaFile.builder("net.minestom.server.color", dyeColorEnum.build()) - .indent(" ") + JavaFile.builder(packageName, dyeColorEnum.build()) + .indent(DEFAULT_INDENT) .skipJavaLangImports(true) .build() ), diff --git a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java index 9309c8ec68d..d25441a83db 100644 --- a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java @@ -31,6 +31,7 @@ public final class VillagerProfessionGenerator extends MinestomCodeGenerator { public VillagerProfessionGenerator(@Nullable InputStream villagerProfessionsFile, @NotNull File outputFolder) { + super(""); this.villagerProfessionsFile = villagerProfessionsFile; this.outputFolder = outputFolder; } diff --git a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java index 0f59af765a7..bc26041d017 100644 --- a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java @@ -29,6 +29,7 @@ public final class VillagerTypeGenerator extends MinestomCodeGenerator { private final File outputFolder; public VillagerTypeGenerator(@Nullable InputStream villagerTypesFile, @NotNull File outputFolder) { + super(""); this.villagerTypesFile = villagerTypesFile; this.outputFolder = outputFolder; } diff --git a/code-generators/src/main/java/net/minestom/codegen/feature/FeatureFlagGenerator.java b/code-generators/src/main/java/net/minestom/codegen/feature/FeatureFlagGenerator.java new file mode 100644 index 00000000000..b8dd93b040f --- /dev/null +++ b/code-generators/src/main/java/net/minestom/codegen/feature/FeatureFlagGenerator.java @@ -0,0 +1,108 @@ +package net.minestom.codegen.feature; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.squareup.javapoet.*; +import net.minestom.codegen.MinestomCodeGenerator; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.lang.model.element.Modifier; +import java.io.File; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.List; + +public class FeatureFlagGenerator extends MinestomCodeGenerator { + + private static final String FEATURE_FLAG_FILE_PACKAGE = "net.minestom.server.feature"; // Microtus - Feature flag + private static final String CLASS_NAME = "FeatureFlags"; + private static final String FEATURE_KEY = "feature"; + private static final Logger LOGGER = LoggerFactory.getLogger(FeatureFlagGenerator.class); + + private final InputStream featureFlagFile; + private final File outputFolder; + + /** + * Creates a new code generator. + * + * @param packageName the package name of the generated class + */ + public FeatureFlagGenerator(InputStream featureFlagFile, File outputFolder) { + super(FEATURE_FLAG_FILE_PACKAGE); + this.featureFlagFile = featureFlagFile; + this.outputFolder = outputFolder; + } + + @Override + public void generate() { + if (featureFlagFile == null) { + LOGGER.error("Failed to find feature_flag.json."); + LOGGER.error("Stopped code generation for feature_flag.json."); + return; + } + if (!outputFolder.exists() && !outputFolder.mkdirs()) { + LOGGER.error("Output folder for code generation does not exist and could not be created."); + return; + } + JsonElement featureFlags = GSON.fromJson(new InputStreamReader(featureFlagFile), JsonElement.class); + + ClassName featureFlag = ClassName.get(FEATURE_FLAG_FILE_PACKAGE, CLASS_NAME); + ClassName namespacedId = ClassName.get("net.minestom.server.utils", "NamespaceID"); + + TypeSpec.Builder featureFlagEnum = TypeSpec.enumBuilder(featureFlag) + .addModifiers(Modifier.PUBLIC).addJavadoc("AUTOGENERATED by " + getClass().getSimpleName()); + + // Fields + featureFlagEnum.addFields( + List.of( + FieldSpec.builder(namespacedId, FEATURE_KEY, Modifier.PRIVATE, Modifier.FINAL).build(), + FieldSpec.builder(ArrayTypeName.of(featureFlag), "VALUES", Modifier.PRIVATE, Modifier.STATIC, Modifier.FINAL).initializer(CLASS_NAME + ".values()").build() + ) + ); + + // Methods + featureFlagEnum.addMethods( + List.of( + // Constructor + MethodSpec.constructorBuilder() + .addParameter( + ParameterSpec.builder(namespacedId, FEATURE_KEY).addAnnotation(NotNull.class).build() + ) + .addStatement("this.$1L = $1L", FEATURE_KEY) + .build(), + MethodSpec.methodBuilder(FEATURE_KEY) + .addModifiers(Modifier.PUBLIC) + .returns(namespacedId.annotated(AnnotationSpec.builder(NotNull.class).build())) + .addStatement("return this.$L", FEATURE_KEY) + .build(), + MethodSpec.methodBuilder("getValue") + .addModifiers(Modifier.PUBLIC, Modifier.STATIC) + .addParameter(ParameterSpec.builder(TypeName.INT, "id").build()) + .addAnnotation(Nullable.class) + .returns(ClassName.get(FEATURE_FLAG_FILE_PACKAGE, CLASS_NAME)) + .addCode("return VALUES[$L];", "id") + .build() + ) + ); + featureFlags.getAsJsonArray().forEach(featureFlagElement -> { + String object = featureFlagElement.getAsString(); + featureFlagEnum.addEnumConstant(extractNamespace(object), TypeSpec.anonymousClassBuilder( + "$T.from($S)", + namespacedId, object + ).build() + ); + }); + writeFiles( + List.of( + JavaFile.builder(FEATURE_FLAG_FILE_PACKAGE, featureFlagEnum.build()) + .indent(DEFAULT_INDENT) + .skipJavaLangImports(true) + .build() + ), + outputFolder + ); + } +} diff --git a/code-generators/src/main/java/net/minestom/codegen/fluid/FluidGenerator.java b/code-generators/src/main/java/net/minestom/codegen/fluid/FluidGenerator.java index 642489970cf..3968e9ec6eb 100644 --- a/code-generators/src/main/java/net/minestom/codegen/fluid/FluidGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/fluid/FluidGenerator.java @@ -3,23 +3,27 @@ import com.google.gson.JsonObject; import com.squareup.javapoet.*; import net.minestom.codegen.MinestomCodeGenerator; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import net.minestom.codegen.util.GenerationHelper; import javax.lang.model.element.Modifier; import java.io.File; import java.io.InputStream; import java.io.InputStreamReader; -import java.util.List; +@ApiStatus.NonExtendable +@ApiStatus.Internal public final class FluidGenerator extends MinestomCodeGenerator { private static final Logger LOGGER = LoggerFactory.getLogger(FluidGenerator.class); private final InputStream fluidsFile; private final File outputFolder; public FluidGenerator(@Nullable InputStream fluidsFile, @NotNull File outputFolder) { + super("net.minestom.server.fluid"); this.fluidsFile = fluidsFile; this.outputFolder = outputFolder; } @@ -35,47 +39,36 @@ public void generate() { LOGGER.error("Output folder for code generation does not exist and could not be created."); return; } - // Important classes we use alot - ClassName namespaceIDClassName = ClassName.get("net.minestom.server.utils", "NamespaceID"); - ClassName registriesClassName = ClassName.get("net.minestom.server.registry", "FluidRegistries"); JsonObject fluids = GSON.fromJson(new InputStreamReader(fluidsFile), JsonObject.class); - ClassName fluidClassName = ClassName.get("net.minestom.server.fluid", "Fluid"); + ClassName fluidClassName = ClassName.get(packageName, "Fluid"); // Particle TypeSpec.Builder fluidClass = TypeSpec.enumBuilder(fluidClassName) - .addSuperinterface(ClassName.get("net.kyori.adventure.key", "Keyed")) + .addSuperinterface(KEYORI_ADVENTURE_KEY) .addModifiers(Modifier.PUBLIC).addJavadoc("AUTOGENERATED by " + getClass().getSimpleName()); fluidClass.addField( - FieldSpec.builder(namespaceIDClassName, "id") - .addModifiers(Modifier.PRIVATE, Modifier.FINAL).addAnnotation(NotNull.class).build() + FieldSpec.builder(NAMESPACE_ID_CLASS, "id") + .addModifiers(PRIVATE_FINAL_MODIFIERS).addAnnotation(NotNull.class).build() ); // static field fluidClass.addField( FieldSpec.builder(ArrayTypeName.of(fluidClassName), "VALUES") - .addModifiers(Modifier.PRIVATE, Modifier.STATIC, Modifier.FINAL) + .addModifiers(CONSTANT_MODIFIERS) .initializer("values()") .build() ); fluidClass.addMethod( MethodSpec.constructorBuilder() - .addParameter(ParameterSpec.builder(namespaceIDClassName, "id").addAnnotation(NotNull.class).build()) + .addParameter(ParameterSpec.builder(NAMESPACE_ID_CLASS, "id").addAnnotation(NotNull.class).build()) .addStatement("this.id = id") - .addStatement("$T.fluids.put(id, this)", registriesClassName) + .addStatement("$T.fluids.put(id, this)", REGISTRY_CLASS) .build() ); // Override key method (adventure) - fluidClass.addMethod( - MethodSpec.methodBuilder("key") - .returns(ClassName.get("net.kyori.adventure.key", "Key")) - .addAnnotation(Override.class) - .addAnnotation(NotNull.class) - .addStatement("return this.id") - .addModifiers(Modifier.PUBLIC) - .build() - ); + fluidClass.addMethod(GenerationHelper.ADVENTURE_KEY_METHOD); // getId method fluidClass.addMethod( MethodSpec.methodBuilder("getId") @@ -87,23 +80,14 @@ public void generate() { // getNamespaceID method fluidClass.addMethod( MethodSpec.methodBuilder("getNamespaceID") - .returns(namespaceIDClassName) + .returns(NAMESPACE_ID_CLASS) .addAnnotation(NotNull.class) .addStatement("return this.id") .addModifiers(Modifier.PUBLIC) .build() ); // toString method - fluidClass.addMethod( - MethodSpec.methodBuilder("toString") - .addAnnotation(NotNull.class) - .addAnnotation(Override.class) - .returns(String.class) - // this resolves to [Namespace] - .addStatement("return \"[\" + this.id + \"]\"") - .addModifiers(Modifier.PUBLIC) - .build() - ); + fluidClass.addMethod(GenerationHelper.TO_STRING); // fromId Method fluidClass.addMethod( @@ -122,22 +106,22 @@ public void generate() { // Use data fluids.entrySet().forEach(entry -> { final String fluidName = entry.getKey(); - fluidClass.addEnumConstant(toConstant(fluidName), TypeSpec.anonymousClassBuilder( + fluidClass.addEnumConstant( + extractNamespace(fluidName), + TypeSpec.anonymousClassBuilder( "$T.from($S)", - namespaceIDClassName, + NAMESPACE_ID_CLASS, fluidName ).build() ); }); // Write files to outputFolder - writeFiles( - List.of( - JavaFile.builder("net.minestom.server.fluid", fluidClass.build()) - .indent(" ") - .skipJavaLangImports(true) - .build() - ), + writeFile( + JavaFile.builder(packageName, fluidClass.build()) + .indent(DEFAULT_INDENT) + .skipJavaLangImports(true) + .build(), outputFolder ); } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 6f7a6eb33e8..1af9e0930b8 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/src/autogenerated/java/net/minestom/server/attribute/Attributes.java b/src/autogenerated/java/net/minestom/server/attribute/Attributes.java new file mode 100644 index 00000000000..a5edd76b551 --- /dev/null +++ b/src/autogenerated/java/net/minestom/server/attribute/Attributes.java @@ -0,0 +1,61 @@ +package net.minestom.server.attribute; + +import net.minestom.server.MinecraftServer; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * AUTOGENERATED by AttributeGenerator + */ +public enum Attributes { + GENERIC_ARMOR(new Attribute("minecraft:generic.armor", 0.0f, 30.0f)), + + GENERIC_ARMOR_TOUGHNESS(new Attribute("minecraft:generic.armor_toughness", 0.0f, 20.0f)), + + GENERIC_ATTACK_DAMAGE(new Attribute("minecraft:generic.attack_damage", 2.0f, 2048.0f)), + + GENERIC_ATTACK_KNOCKBACK(new Attribute("minecraft:generic.attack_knockback", 0.0f, 5.0f)), + + GENERIC_ATTACK_SPEED(new Attribute("minecraft:generic.attack_speed", 4.0f, 1024.0f)), + + GENERIC_FLYING_SPEED(new Attribute("minecraft:generic.flying_speed", 0.4f, 1024.0f)), + + GENERIC_FOLLOW_RANGE(new Attribute("minecraft:generic.follow_range", 32.0f, 2048.0f)), + + HORSE_JUMP_STRENGTH(new Attribute("minecraft:horse.jump_strength", 0.7f, 2.0f)), + + GENERIC_KNOCKBACK_RESISTANCE(new Attribute("minecraft:generic.knockback_resistance", 0.0f, 1.0f)), + + GENERIC_LUCK(new Attribute("minecraft:generic.luck", 0.0f, 1024.0f)), + + GENERIC_MAX_ABSORPTION(new Attribute("minecraft:generic.max_absorption", 0.0f, 2048.0f)), + + GENERIC_MAX_HEALTH(new Attribute("minecraft:generic.max_health", 20.0f, 1024.0f)), + + GENERIC_MOVEMENT_SPEED(new Attribute("minecraft:generic.movement_speed", 0.7f, 1024.0f)), + + ZOMBIE_SPAWN_REINFORCEMENTS(new Attribute("minecraft:zombie.spawn_reinforcements", 0.0f, 1.0f)); + + private static final Attributes[] VALUES = values(); + + private final Attribute attribute; + + Attributes(@NotNull Attribute attribute) { + this.attribute = attribute; + } + + public @NotNull Attribute attribute() { + return this.attribute; + } + + @Nullable + public static Attribute getValue(int id) { + return VALUES[id].attribute; + } + + public static void registerAttributes() { + for (var v : VALUES) { + MinecraftServer.getAttributeManager().register(v.attribute()); + } + } +} diff --git a/src/autogenerated/java/net/minestom/server/item/banner/BannerPatterns.java b/src/autogenerated/java/net/minestom/server/item/banner/BannerPatterns.java new file mode 100644 index 00000000000..b53f30b6e26 --- /dev/null +++ b/src/autogenerated/java/net/minestom/server/item/banner/BannerPatterns.java @@ -0,0 +1,89 @@ +package net.minestom.server.item.banner; + +/** + * Code autogenerated, do not edit! + */ +@SuppressWarnings("unused") +interface BannerPatterns { + BannerPattern BASE = BannerPatternImpl.get("minecraft:base"); + + BannerPattern SQUARE_BOTTOM_LEFT = BannerPatternImpl.get("minecraft:square_bottom_left"); + + BannerPattern SQUARE_BOTTOM_RIGHT = BannerPatternImpl.get("minecraft:square_bottom_right"); + + BannerPattern SQUARE_TOP_LEFT = BannerPatternImpl.get("minecraft:square_top_left"); + + BannerPattern SQUARE_TOP_RIGHT = BannerPatternImpl.get("minecraft:square_top_right"); + + BannerPattern STRIPE_BOTTOM = BannerPatternImpl.get("minecraft:stripe_bottom"); + + BannerPattern STRIPE_TOP = BannerPatternImpl.get("minecraft:stripe_top"); + + BannerPattern STRIPE_LEFT = BannerPatternImpl.get("minecraft:stripe_left"); + + BannerPattern STRIPE_RIGHT = BannerPatternImpl.get("minecraft:stripe_right"); + + BannerPattern STRIPE_CENTER = BannerPatternImpl.get("minecraft:stripe_center"); + + BannerPattern STRIPE_MIDDLE = BannerPatternImpl.get("minecraft:stripe_middle"); + + BannerPattern STRIPE_DOWNRIGHT = BannerPatternImpl.get("minecraft:stripe_downright"); + + BannerPattern STRIPE_DOWNLEFT = BannerPatternImpl.get("minecraft:stripe_downleft"); + + BannerPattern SMALL_STRIPES = BannerPatternImpl.get("minecraft:small_stripes"); + + BannerPattern CROSS = BannerPatternImpl.get("minecraft:cross"); + + BannerPattern STRAIGHT_CROSS = BannerPatternImpl.get("minecraft:straight_cross"); + + BannerPattern TRIANGLE_BOTTOM = BannerPatternImpl.get("minecraft:triangle_bottom"); + + BannerPattern TRIANGLE_TOP = BannerPatternImpl.get("minecraft:triangle_top"); + + BannerPattern TRIANGLES_BOTTOM = BannerPatternImpl.get("minecraft:triangles_bottom"); + + BannerPattern TRIANGLES_TOP = BannerPatternImpl.get("minecraft:triangles_top"); + + BannerPattern DIAGONAL_LEFT = BannerPatternImpl.get("minecraft:diagonal_left"); + + BannerPattern DIAGONAL_UP_RIGHT = BannerPatternImpl.get("minecraft:diagonal_up_right"); + + BannerPattern DIAGONAL_UP_LEFT = BannerPatternImpl.get("minecraft:diagonal_up_left"); + + BannerPattern DIAGONAL_RIGHT = BannerPatternImpl.get("minecraft:diagonal_right"); + + BannerPattern CIRCLE = BannerPatternImpl.get("minecraft:circle"); + + BannerPattern RHOMBUS = BannerPatternImpl.get("minecraft:rhombus"); + + BannerPattern HALF_VERTICAL = BannerPatternImpl.get("minecraft:half_vertical"); + + BannerPattern HALF_HORIZONTAL = BannerPatternImpl.get("minecraft:half_horizontal"); + + BannerPattern HALF_VERTICAL_RIGHT = BannerPatternImpl.get("minecraft:half_vertical_right"); + + BannerPattern HALF_HORIZONTAL_BOTTOM = BannerPatternImpl.get("minecraft:half_horizontal_bottom"); + + BannerPattern BORDER = BannerPatternImpl.get("minecraft:border"); + + BannerPattern CURLY_BORDER = BannerPatternImpl.get("minecraft:curly_border"); + + BannerPattern GRADIENT = BannerPatternImpl.get("minecraft:gradient"); + + BannerPattern GRADIENT_UP = BannerPatternImpl.get("minecraft:gradient_up"); + + BannerPattern BRICKS = BannerPatternImpl.get("minecraft:bricks"); + + BannerPattern GLOBE = BannerPatternImpl.get("minecraft:globe"); + + BannerPattern CREEPER = BannerPatternImpl.get("minecraft:creeper"); + + BannerPattern SKULL = BannerPatternImpl.get("minecraft:skull"); + + BannerPattern FLOWER = BannerPatternImpl.get("minecraft:flower"); + + BannerPattern MOJANG = BannerPatternImpl.get("minecraft:mojang"); + + BannerPattern PIGLIN = BannerPatternImpl.get("minecraft:piglin"); +} diff --git a/src/main/java/net/minestom/server/ServerFlag.java b/src/main/java/net/minestom/server/ServerFlag.java index 2b28ebc130a..1a2c443247c 100644 --- a/src/main/java/net/minestom/server/ServerFlag.java +++ b/src/main/java/net/minestom/server/ServerFlag.java @@ -67,6 +67,22 @@ public final class ServerFlag { public static final @Nullable String EXTENSIONS_DEV_CLASSES = System.getProperty("minestom.extension.indevfolder.classes"); public static final @Nullable String EXTENSIONS_DEV_RESOURCES = System.getProperty("minestom.extension.indevfolder.resources"); + // Biomes + public static final boolean BIOMES_ENABLED = System.getProperty("minestom.attributes.disabled") == null; + + // Attributes + public static final boolean ATTRIBUTES_ENABLED = System.getProperty("minestom.attributes.disabled") == null; + + // Terminal + public static final boolean TERMINAL_ENABLED = System.getProperty("minestom.terminal.disabled") == null; + public static final boolean TERMINAL_SUPPORT_HEX_COLOR = PropertyUtils.getBoolean("minestom.terminal.support-hex-color", true); + public static final boolean TERMINAL_SUPPORT_COLOR = PropertyUtils.getBoolean("minestom.terminal.support-color", true); + // Extensions todo use enabled flag + public static final boolean EXTENSIONS_ENABLED = PropertyUtils.getBoolean("minestom.extension.enabled", false); + public static final @NotNull String EXTENSIONS_FOLDER = System.getProperty("minestom.extension.folder", "extensions"); + public static final @Nullable String EXTENSIONS_DEV_CLASSES = System.getProperty("minestom.extension.indevfolder.classes"); + public static final @Nullable String EXTENSIONS_DEV_RESOURCES = System.getProperty("minestom.extension.indevfolder.resources"); + // Maps public static final @NotNull String MAP_RGB_MAPPING = stringProperty("minestom.map.rgbmapping", "lazy"); public static final @Nullable String MAP_RGB_REDUCTION = stringProperty("minestom.map.rgbreduction"); // Only used if rgb mapping is "approximate" diff --git a/src/main/java/net/minestom/server/entity/attribute/AttributeManager.java b/src/main/java/net/minestom/server/entity/attribute/AttributeManager.java new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/main/java/net/minestom/server/instance/AnvilLoader.java b/src/main/java/net/minestom/server/instance/AnvilLoader.java new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/main/java/net/minestom/server/item/banner/BannerPattern.java b/src/main/java/net/minestom/server/item/banner/BannerPattern.java new file mode 100644 index 00000000000..582bc644d42 --- /dev/null +++ b/src/main/java/net/minestom/server/item/banner/BannerPattern.java @@ -0,0 +1,39 @@ +package net.minestom.server.item.banner; + +import net.kyori.adventure.key.Key; +import net.minestom.server.registry.ProtocolObject; +import net.minestom.server.utils.NamespaceID; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Collection; + +// Microtus - Banner and Shield Meta +public sealed interface BannerPattern extends ProtocolObject, BannerPatterns permits BannerPatternImpl { + static @NotNull Collection<@NotNull BannerPattern> values() { + return BannerPatternImpl.values(); + } + + static @Nullable BannerPattern fromNamespaceId(@NotNull String namespaceID) { + return BannerPatternImpl.getSafe(namespaceID); + } + + static @Nullable BannerPattern fromNamespaceId(@NotNull NamespaceID namespaceID) { + return fromNamespaceId(namespaceID.asString()); + } + + static @Nullable BannerPattern fromId(int id) { + return BannerPatternImpl.getId(id); + } + + static @Nullable BannerPattern fromIdentifier(String identifier) { + return BannerPatternImpl.getIdentifier(identifier); + } + + @Override + default @NotNull Key key() { + return ProtocolObject.super.key(); + } + + @NotNull String identifier(); +} diff --git a/src/main/java/net/minestom/server/item/banner/BannerPatternImpl.java b/src/main/java/net/minestom/server/item/banner/BannerPatternImpl.java new file mode 100644 index 00000000000..063b5565ba8 --- /dev/null +++ b/src/main/java/net/minestom/server/item/banner/BannerPatternImpl.java @@ -0,0 +1,48 @@ +package net.minestom.server.item.banner; + +import net.minestom.server.registry.Registry; +import net.minestom.server.utils.NamespaceID; +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; + +// Microtus - Banner and Shield Meta +public record BannerPatternImpl(NamespaceID namespace, int id, String identifier) implements BannerPattern { + + private static Map IDENTIFIERS = new HashMap<>(); + private static final Registry.Container CONTAINER = Registry.createContainer(Registry.Resource.BANNER_PATTERNS, + (namespace, properties) -> { + int id = properties.getInt("id"); + String identifier = properties.getString("identifier"); + BannerPatternImpl bannerPattern = new BannerPatternImpl(NamespaceID.from(namespace), id, identifier); + IDENTIFIERS.put(identifier, bannerPattern); + return bannerPattern; + }); + + static BannerPattern get(@NotNull String namespace) { + return CONTAINER.get(namespace); + } + + static BannerPattern getSafe(@NotNull String namespace) { + return CONTAINER.getSafe(namespace); + } + + static BannerPattern getId(int id) { + return CONTAINER.getId(id); + } + + static BannerPattern getIdentifier(@NotNull String identifier) { + return IDENTIFIERS.get(identifier); + } + + static Collection values() { + return CONTAINER.values(); + } + + @Override + public String toString() { + return name(); + } +} diff --git a/src/main/java/net/minestom/server/item/metadata/BannerMeta.java b/src/main/java/net/minestom/server/item/metadata/BannerMeta.java new file mode 100644 index 00000000000..9d0a70d06e1 --- /dev/null +++ b/src/main/java/net/minestom/server/item/metadata/BannerMeta.java @@ -0,0 +1,165 @@ +package net.minestom.server.item.metadata; + +/** + * @author theEvilReaper + * @version 1.0.0 + * @since + **/ + +import net.kyori.adventure.text.Component; +import net.minestom.server.color.DyeColor; +import net.minestom.server.item.ItemMetaView; +import net.minestom.server.item.banner.BannerPattern; +import net.minestom.server.tag.Tag; +import net.minestom.server.tag.TagHandler; +import net.minestom.server.tag.TagReadable; +import net.minestom.server.tag.TagSerializer; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.Nullable; +import org.jetbrains.annotations.UnknownNullability; +import org.jglrxavpok.hephaistos.nbt.NBT; +import org.jglrxavpok.hephaistos.nbt.NBTCompound; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * Meta for all {@link net.minestom.server.item.Material#WHITE_BANNER} and {@link net.minestom.server.item.Material#SHIELD} items + * + * @param readable data + */ +// Microtus - Banner and Shield Meta +@ApiStatus.Experimental +public record BannerMeta(TagReadable readable) implements ItemMetaView { + + private static final String PATTERN_KEY = "Pattern"; + private static final String COLOR_KEY = "Color"; + + private static final Tag CUSTOM_NAME = Tag.Component("CustomName").path("BlockEntityTag"); + private static final Tag> PATTERNS = Tag.Structure("Patterns", + TagSerializer.fromCompound(Pattern::fromCompound, Pattern::asCompound)) + .path("BlockEntityTag").list().defaultValue(List.of()); + + + @Contract(value = "_, _ -> new", pure = true) + public static @NotNull Pattern from(@NotNull DyeColor color, @NotNull BannerPattern pattern) { + return new Pattern(color, pattern); + } + + /** + * Get name of the marker, unused by Minestom + * + * @return name of the marker + */ + public @Nullable Component getCustomName() { + return getTag(CUSTOM_NAME); + } + + /** + * Get patterns of the banner + * + * @return patterns of the banner + */ + public @NotNull List getPatterns() { + return getTag(PATTERNS); + } + + @Override + public @UnknownNullability T getTag(@NotNull Tag tag) { + return readable.getTag(tag); + } + + public record Builder(TagHandler tagHandler) implements ItemMetaView.Builder { + public Builder() { + this(TagHandler.newHandler()); + } + + /** + * Set name of the marker, unused by Minestom + * + * @param customName name of the marker + * @return this + */ + public @NotNull Builder customName(Component customName) { + setTag(CUSTOM_NAME, customName); + return this; + } + + /** + * Set the patterns of the banner + * + * @param patterns patterns of the banner + * @return this + */ + public @NotNull Builder patterns(@NotNull List patterns) { + setTag(PATTERNS, patterns); + return this; + } + + /** + * Add a pattern to the banner + * + * @param pattern pattern to add + * @return this + */ + public @NotNull Builder addPattern(Pattern pattern) { + var newList = new ArrayList<>(getTag(PATTERNS)); + newList.add(pattern); + return patterns(newList); + } + + /** + * Remove a pattern from the banner + * + * @param pattern pattern to remove + * @return this + */ + public @NotNull Builder removePattern(Pattern pattern) { + var newList = new ArrayList<>(getTag(PATTERNS)); + newList.remove(pattern); + return patterns(newList); + } + + /** + * Clears the underlying list which contains the pattern values. + * @return this + */ + public @NotNull Builder clearPatterns() { + return patterns(List.of()); + } + } + + public record Pattern(@NotNull DyeColor color, @NotNull BannerPattern pattern) { + + /** + * Retrieves a banner pattern from the given {@code compound}. + * + * @param compound The NBT connection, which should be a banner pattern. + * @return A new created banner pattern. + */ + public static @NotNull Pattern fromCompound(@NotNull NBTCompound compound) { + DyeColor color = compound.containsKey(COLOR_KEY) ? DyeColor.getValue(compound.getByte(COLOR_KEY)) : DyeColor.WHITE; + BannerPattern type; + if (compound.containsKey(PATTERN_KEY)) { + BannerPattern pattern = BannerPattern.fromIdentifier(compound.getString(PATTERN_KEY)); + type = pattern != null ? pattern : BannerPattern.BASE; + } else type = BannerPattern.BASE; + return new Pattern(color, type); + } + + /** + * Retrieves the {@link Pattern} as an {@link NBTCompound}. + * + * @return The banner pattern as a nbt compound. + */ + public @NotNull NBTCompound asCompound() { + return NBT.Compound(Map.of( + COLOR_KEY, NBT.Byte(color.ordinal()), + PATTERN_KEY, NBT.String(pattern.identifier()) + )); + } + } +} diff --git a/src/main/java/net/minestom/server/item/metadata/ShieldMeta.java b/src/main/java/net/minestom/server/item/metadata/ShieldMeta.java new file mode 100644 index 00000000000..56a864253f2 --- /dev/null +++ b/src/main/java/net/minestom/server/item/metadata/ShieldMeta.java @@ -0,0 +1,131 @@ +package net.minestom.server.item.metadata; + +import net.kyori.adventure.text.Component; +import net.minestom.server.color.DyeColor; +import net.minestom.server.item.ItemMetaView; +import net.minestom.server.tag.Tag; +import net.minestom.server.tag.TagHandler; +import net.minestom.server.tag.TagReadable; +import net.minestom.server.tag.TagSerializer; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.jetbrains.annotations.UnknownNullability; + +import java.util.ArrayList; +import java.util.List; + +// Microtus - Banner and Shield Meta +@ApiStatus.Experimental +public record ShieldMeta(@NotNull TagReadable readable) implements ItemMetaView { + + private static final String BASE_KEY = "Base"; + private static final String ENTITY_TAG = "BlockEntityTag"; + private static final Tag CUSTOM_NAME = Tag.Component("CustomName").path(ENTITY_TAG); + private static final Tag BASE_TAG = Tag.Integer(BASE_KEY).path(ENTITY_TAG); + private static final Tag> PATTERNS = Tag.Structure("Patterns", + TagSerializer.fromCompound(BannerMeta.Pattern::fromCompound, BannerMeta.Pattern::asCompound)) + .path(ENTITY_TAG).list().defaultValue(List.of()); + + /** + * Get base color of the shield + * + * @return the base color + */ + public @NotNull DyeColor getBaseColor() { + return DyeColor.getValue(getTag(BASE_TAG)); + } + + /** + * Get name of the marker, unused by Minestom + * + * @return name of the marker + */ + public @Nullable Component getCustomName() { + return getTag(CUSTOM_NAME); + } + + /** + * Get patterns of the shield + * + * @return patterns of the shield + */ + public @NotNull List getPatterns() { + return getTag(PATTERNS); + } + + @Override + public @UnknownNullability T getTag(@NotNull Tag tag) { + return readable.getTag(tag); + } + + public record Builder(@NotNull TagHandler tagHandler) implements ItemMetaView.Builder { + public Builder() { + this(TagHandler.newHandler()); + } + + /** + * Set the color which is used as base color for a shield. + * @param dyeColor the color to set + * @return the builder instance + */ + public @NotNull ShieldMeta.Builder baseColor(@NotNull DyeColor dyeColor) { + setTag(BASE_TAG, dyeColor.ordinal()); + return this; + } + + /** + * Set name of the marker, unused by Minestom + * + * @param customName name of the marker + * @return this + */ + public @NotNull ShieldMeta.Builder customName(@NotNull Component customName) { + setTag(CUSTOM_NAME, customName); + return this; + } + + /** + * Set the patterns of the shield + * + * @param patterns patterns of the shield + * @return this + */ + public @NotNull ShieldMeta.Builder patterns(@NotNull List patterns) { + setTag(PATTERNS, patterns); + return this; + } + + /** + * Add a pattern to the shield + * + * @param pattern pattern to add + * @return this + */ + public @NotNull ShieldMeta.Builder addPattern(BannerMeta.Pattern pattern) { + var newList = new ArrayList<>(getTag(PATTERNS)); + newList.add(pattern); + return patterns(newList); + } + + /** + * Remove a pattern from the shield + * + * @param pattern pattern to remove + * @return this + */ + public @NotNull ShieldMeta.Builder removePattern(BannerMeta.Pattern pattern) { + var newList = new ArrayList<>(getTag(PATTERNS)); + newList.remove(pattern); + return patterns(newList); + } + + /** + * Clears the underlying list which contains the pattern values. + * @return this + */ + public @NotNull ShieldMeta.Builder clearPatterns() { + return patterns(List.of()); + } + } +} diff --git a/src/main/java/net/minestom/server/network/NetworkBufferTypes.java b/src/main/java/net/minestom/server/network/NetworkBufferTypes.java new file mode 100644 index 00000000000..13cc9079a34 --- /dev/null +++ b/src/main/java/net/minestom/server/network/NetworkBufferTypes.java @@ -0,0 +1,639 @@ +package net.minestom.server.network; + +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; +import net.minestom.server.adventure.serializer.nbt.NbtComponentSerializer; +import net.minestom.server.coordinate.Point; +import net.minestom.server.coordinate.Vec; +import net.minestom.server.entity.Entity; +import net.minestom.server.entity.metadata.animal.FrogMeta; +import net.minestom.server.entity.metadata.animal.SnifferMeta; +import net.minestom.server.entity.metadata.animal.tameable.CatMeta; +import net.minestom.server.item.ItemStack; +import net.minestom.server.item.Material; +import net.minestom.server.network.packet.server.play.data.DeathLocation; +import net.minestom.server.utils.Direction; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.UnknownNullability; +import org.jglrxavpok.hephaistos.nbt.*; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.nio.charset.StandardCharsets; +import java.util.UUID; + +final class NetworkBufferTypes { + private static final int SEGMENT_BITS = 0x7F; + private static final int CONTINUE_BIT = 0x80; + + static final TypeImpl BOOLEAN = new TypeImpl<>(Boolean.class, + (buffer, value) -> { + buffer.ensureSize(1); + buffer.nioBuffer.put(buffer.writeIndex(), value ? (byte) 1 : (byte) 0); + return 1; + }, + buffer -> { + final byte value = buffer.nioBuffer.get(buffer.readIndex()); + buffer.readIndex += 1; + return value == 1; + }); + static final TypeImpl BYTE = new TypeImpl<>(Byte.class, + (buffer, value) -> { + buffer.ensureSize(1); + buffer.nioBuffer.put(buffer.writeIndex(), value); + return 1; + }, + buffer -> { + final byte value = buffer.nioBuffer.get(buffer.readIndex()); + buffer.readIndex += 1; + return value; + }); + static final TypeImpl SHORT = new TypeImpl<>(Short.class, + (buffer, value) -> { + buffer.ensureSize(2); + buffer.nioBuffer.putShort(buffer.writeIndex(), value); + return 2; + }, + buffer -> { + final short value = buffer.nioBuffer.getShort(buffer.readIndex()); + buffer.readIndex += 2; + return value; + }); + static final TypeImpl UNSIGNED_SHORT = new TypeImpl<>(Integer.class, + (buffer, value) -> { + buffer.ensureSize(2); + buffer.nioBuffer.putShort(buffer.writeIndex(), (short) (value & 0xFFFF)); + return 2; + }, + buffer -> { + final short value = buffer.nioBuffer.getShort(buffer.readIndex()); + buffer.readIndex += 2; + return value & 0xFFFF; + }); + static final TypeImpl INT = new TypeImpl<>(Integer.class, + (buffer, value) -> { + buffer.ensureSize(4); + buffer.nioBuffer.putInt(buffer.writeIndex(), value); + return 4; + }, + buffer -> { + final int value = buffer.nioBuffer.getInt(buffer.readIndex()); + buffer.readIndex += 4; + return value; + }); + static final TypeImpl LONG = new TypeImpl<>(Long.class, + (buffer, value) -> { + buffer.ensureSize(8); + buffer.nioBuffer.putLong(buffer.writeIndex(), value); + return 8; + }, + buffer -> { + final long value = buffer.nioBuffer.getLong(buffer.readIndex()); + buffer.readIndex += 8; + return value; + }); + static final TypeImpl FLOAT = new TypeImpl<>(Float.class, + (buffer, value) -> { + buffer.ensureSize(4); + buffer.nioBuffer.putFloat(buffer.writeIndex(), value); + return 4; + }, + buffer -> { + final float value = buffer.nioBuffer.getFloat(buffer.readIndex()); + buffer.readIndex += 4; + return value; + }); + static final TypeImpl DOUBLE = new TypeImpl<>(Double.class, + (buffer, value) -> { + buffer.ensureSize(8); + buffer.nioBuffer.putDouble(buffer.writeIndex(), value); + return 8; + }, + buffer -> { + final double value = buffer.nioBuffer.getDouble(buffer.readIndex()); + buffer.readIndex += 8; + return value; + }); + static final TypeImpl VAR_INT = new TypeImpl<>(Integer.class, + (buffer, boxed) -> { + final int value = boxed; + final int index = buffer.writeIndex(); + if ((value & (0xFFFFFFFF << 7)) == 0) { + buffer.ensureSize(1); + buffer.nioBuffer.put(index, (byte) value); + return 1; + } else if ((value & (0xFFFFFFFF << 14)) == 0) { + buffer.ensureSize(2); + buffer.nioBuffer.putShort(index, (short) ((value & 0x7F | 0x80) << 8 | (value >>> 7))); + return 2; + } else if ((value & (0xFFFFFFFF << 21)) == 0) { + buffer.ensureSize(3); + var nio = buffer.nioBuffer; + nio.put(index, (byte) (value & 0x7F | 0x80)); + nio.put(index + 1, (byte) ((value >>> 7) & 0x7F | 0x80)); + nio.put(index + 2, (byte) (value >>> 14)); + return 3; + } else if ((value & (0xFFFFFFFF << 28)) == 0) { + buffer.ensureSize(4); + var nio = buffer.nioBuffer; + nio.putInt(index, (value & 0x7F | 0x80) << 24 | (((value >>> 7) & 0x7F | 0x80) << 16) + | ((value >>> 14) & 0x7F | 0x80) << 8 | (value >>> 21)); + return 4; + } else { + buffer.ensureSize(5); + var nio = buffer.nioBuffer; + nio.putInt(index, (value & 0x7F | 0x80) << 24 | ((value >>> 7) & 0x7F | 0x80) << 16 + | ((value >>> 14) & 0x7F | 0x80) << 8 | ((value >>> 21) & 0x7F | 0x80)); + nio.put(index + 4, (byte) (value >>> 28)); + return 5; + } + }, + buffer -> { + int index = buffer.readIndex(); + // https://github.com/jvm-profiling-tools/async-profiler/blob/a38a375dc62b31a8109f3af97366a307abb0fe6f/src/converter/one/jfr/JfrReader.java#L393 + int result = 0; + for (int shift = 0; ; shift += 7) { + byte b = buffer.nioBuffer.get(index++); + result |= (b & 0x7f) << shift; + if (b >= 0) { + buffer.readIndex += index - buffer.readIndex(); + return result; + } + } + }); + static final TypeImpl VAR_LONG = new TypeImpl<>(Long.class, + (buffer, value) -> { + buffer.ensureSize(10); + int size = 0; + while (true) { + if ((value & ~((long) SEGMENT_BITS)) == 0) { + buffer.nioBuffer.put(buffer.writeIndex() + size, (byte) value.intValue()); + return size + 1; + } + buffer.nioBuffer.put(buffer.writeIndex() + size, (byte) (value & SEGMENT_BITS | CONTINUE_BIT)); + size++; + // Note: >>> means that the sign bit is shifted with the rest of the number rather than being left alone + value >>>= 7; + } + }, + buffer -> { + int length = 0; + + long value = 0; + int position = 0; + byte currentByte; + + while (true) { + currentByte = buffer.nioBuffer.get(buffer.readIndex() + length); + length++; + value |= (long) (currentByte & SEGMENT_BITS) << position; + if ((currentByte & CONTINUE_BIT) == 0) break; + position += 7; + if (position >= 64) throw new RuntimeException("VarLong is too big"); + } + buffer.readIndex += length; + return value; + }); + static final TypeImpl RAW_BYTES = new TypeImpl<>(byte[].class, + (buffer, value) -> { + buffer.ensureSize(value.length); + buffer.nioBuffer.put(buffer.writeIndex(), value); + return value.length; + }, + buffer -> { + final int limit = buffer.nioBuffer.limit(); + final int length = limit - buffer.readIndex(); + assert length > 0 : "Invalid remaining: " + length; + final byte[] bytes = new byte[length]; + buffer.nioBuffer.get(buffer.readIndex(), bytes); + buffer.readIndex += length; + return bytes; + }); + static final TypeImpl STRING = new TypeImpl<>(String.class, + (buffer, value) -> { + final byte[] bytes = value.getBytes(StandardCharsets.UTF_8); + buffer.write(VAR_INT, bytes.length); + buffer.write(RAW_BYTES, bytes); + return -1; + }, + buffer -> { + final int length = buffer.read(VAR_INT); + byte[] bytes = new byte[length]; + buffer.nioBuffer.get(buffer.readIndex(), bytes); + buffer.readIndex += length; + return new String(bytes, StandardCharsets.UTF_8); + }); + static final TypeImpl NBT = new TypeImpl<>(NBT.class, + (buffer, value) -> { + NBTWriter nbtWriter = buffer.nbtWriter; + if (nbtWriter == null) { + nbtWriter = new NBTWriter(new OutputStream() { + @Override + public void write(int b) { + buffer.write(BYTE, (byte) b); + } + }, CompressedProcesser.NONE); + buffer.nbtWriter = nbtWriter; + } + try { + if (value == NBTEnd.INSTANCE) { + // Kotlin - https://discord.com/channels/706185253441634317/706186227493109860/1163703658341478462 + buffer.write(BYTE, (byte) NBTType.TAG_End.getOrdinal()); + } else { + buffer.write(BYTE, (byte) value.getID().getOrdinal()); + nbtWriter.writeRaw(value); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + return -1; + }, + buffer -> { + NBTReader nbtReader = buffer.nbtReader; + if (nbtReader == null) { + nbtReader = new NBTReader(new InputStream() { + @Override + public int read() { + return buffer.read(BYTE) & 0xFF; + } + + @Override + public int available() { + return buffer.readableBytes(); + } + }, CompressedProcesser.NONE); + buffer.nbtReader = nbtReader; + } + try { + byte tagId = buffer.read(BYTE); + if (tagId == NBTType.TAG_End.getOrdinal()) + return NBTEnd.INSTANCE; + return nbtReader.readRaw(tagId); + } catch (IOException | NBTException e) { + throw new RuntimeException(e); + } + }); + static final TypeImpl BLOCK_POSITION = new TypeImpl<>(Point.class, + (buffer, value) -> { + final int blockX = value.blockX(); + final int blockY = value.blockY(); + final int blockZ = value.blockZ(); + final long longPos = (((long) blockX & 0x3FFFFFF) << 38) | + (((long) blockZ & 0x3FFFFFF) << 12) | + ((long) blockY & 0xFFF); + buffer.write(LONG, longPos); + return -1; + }, + buffer -> { + final long value = buffer.read(LONG); + final int x = (int) (value >> 38); + final int y = (int) (value << 52 >> 52); + final int z = (int) (value << 26 >> 38); + return new Vec(x, y, z); + }); + static final TypeImpl COMPONENT = new TypeImpl<>(Component.class, + (buffer, value) -> { + final NBT nbt = NbtComponentSerializer.nbt().serialize(value); + buffer.write(NBT, nbt); + return -1; + }, + buffer -> { + final NBT nbt = buffer.read(NBT); + return NbtComponentSerializer.nbt().deserialize(nbt); + }); + static final TypeImpl JSON_COMPONENT = new TypeImpl<>(Component.class, + (buffer, value) -> { + final String json = GsonComponentSerializer.gson().serialize(value); + buffer.write(STRING, json); + return -1; + }, + buffer -> { + final String json = buffer.read(STRING); + return GsonComponentSerializer.gson().deserialize(json); + }); + static final TypeImpl UUID = new TypeImpl<>(UUID.class, + (buffer, value) -> { + buffer.write(LONG, value.getMostSignificantBits()); + buffer.write(LONG, value.getLeastSignificantBits()); + return -1; + }, + buffer -> { + final long mostSignificantBits = buffer.read(LONG); + final long leastSignificantBits = buffer.read(LONG); + return new UUID(mostSignificantBits, leastSignificantBits); + }); + static final TypeImpl ITEM = new TypeImpl<>(ItemStack.class, + (buffer, value) -> { + if (value.isAir()) { + buffer.write(BOOLEAN, false); + return -1; + } + buffer.write(BOOLEAN, true); + buffer.write(VAR_INT, value.material().id()); + buffer.write(BYTE, (byte) value.amount()); + + // Vanilla does not write an empty object, just an end tag. + NBTCompound nbt = value.meta().toNBT(); + buffer.write(NBT, nbt.isEmpty() ? NBTEnd.INSTANCE : nbt); + return -1; + }, + buffer -> { + final boolean present = buffer.read(BOOLEAN); + if (!present) return ItemStack.AIR; + + final int id = buffer.read(VAR_INT); + final Material material = Material.fromId(id); + if (material == null) throw new RuntimeException("Unknown material id: " + id); + + final int amount = buffer.read(BYTE); + final NBT nbt = buffer.read(NBT); + if (!(nbt instanceof NBTCompound compound)) { + return ItemStack.of(material, amount); + } + + return ItemStack.fromNBT(material, compound, amount); + }); + static final TypeImpl BYTE_ARRAY = new TypeImpl<>(byte[].class, + (buffer, value) -> { + buffer.write(VAR_INT, value.length); + buffer.write(RAW_BYTES, value); + return -1; + }, + buffer -> { + final int length = buffer.read(VAR_INT); + final byte[] bytes = new byte[length]; + buffer.nioBuffer.get(buffer.readIndex(), bytes); + buffer.readIndex += length; + return bytes; + }); + static final TypeImpl LONG_ARRAY = new TypeImpl<>(long[].class, + (buffer, value) -> { + buffer.write(VAR_INT, value.length); + for (long l : value) { + buffer.write(LONG, l); + } + return -1; + }, + buffer -> { + final int length = buffer.read(VAR_INT); + final long[] longs = new long[length]; + for (int i = 0; i < length; i++) { + longs[i] = buffer.read(LONG); + } + return longs; + }); + static final TypeImpl VAR_INT_ARRAY = new TypeImpl<>(int[].class, + (buffer, value) -> { + buffer.write(VAR_INT, value.length); + for (int i : value) { + buffer.write(VAR_INT, i); + } + return -1; + }, + buffer -> { + final int length = buffer.read(VAR_INT); + final int[] ints = new int[length]; + for (int i = 0; i < length; i++) { + ints[i] = buffer.read(VAR_INT); + } + return ints; + }); + static final TypeImpl VAR_LONG_ARRAY = new TypeImpl<>(long[].class, + (buffer, value) -> { + buffer.write(VAR_INT, value.length); + for (long l : value) { + buffer.write(VAR_LONG, l); + } + return -1; + }, + buffer -> { + final int length = buffer.read(VAR_INT); + final long[] longs = new long[length]; + for (int i = 0; i < length; i++) { + longs[i] = buffer.read(VAR_LONG); + } + return longs; + }); + // METADATA + static final TypeImpl OPT_CHAT = new TypeImpl<>(Component.class, + (buffer, value) -> { + if (value == null) { + buffer.write(BOOLEAN, false); + return -1; + } + buffer.write(BOOLEAN, true); + buffer.write(COMPONENT, value); + return -1; + }, + buffer -> { + final boolean present = buffer.read(BOOLEAN); + if (!present) return null; + return buffer.read(COMPONENT); + }); + static final TypeImpl ROTATION = new TypeImpl<>(Point.class, + (buffer, value) -> { + buffer.write(FLOAT, (float) value.x()); + buffer.write(FLOAT, (float) value.y()); + buffer.write(FLOAT, (float) value.z()); + return -1; + }, + buffer -> { + final float x = buffer.read(FLOAT); + final float y = buffer.read(FLOAT); + final float z = buffer.read(FLOAT); + return new Vec(x, y, z); + }); + static final TypeImpl OPT_BLOCK_POSITION = new TypeImpl<>(Point.class, + (buffer, value) -> { + if (value == null) { + buffer.write(BOOLEAN, false); + return -1; + } + buffer.write(BOOLEAN, true); + buffer.write(BLOCK_POSITION, value); + return -1; + }, + buffer -> { + final boolean present = buffer.read(BOOLEAN); + if (!present) return null; + return buffer.read(BLOCK_POSITION); + }); + static final TypeImpl DIRECTION = new TypeImpl<>(Direction.class, + (buffer, value) -> { + buffer.write(VAR_INT, value.ordinal()); + return -1; + }, + buffer -> { + final int ordinal = buffer.read(VAR_INT); + return Direction.values()[ordinal]; + }); + static final TypeImpl OPT_UUID = new TypeImpl<>(UUID.class, + (buffer, value) -> { + if (value == null) { + buffer.write(BOOLEAN, false); + return -1; + } + buffer.write(BOOLEAN, true); + buffer.write(UUID, value); + return -1; + }, + buffer -> { + final boolean present = buffer.read(BOOLEAN); + if (!present) return null; + return buffer.read(UUID); + }); + static final TypeImpl BLOCK_STATE = new TypeImpl<>(Integer.class, + (buffer, value) -> { + buffer.write(NetworkBuffer.VAR_INT, value); + return -1; + }, + buffer -> buffer.read(VAR_INT)); + static final TypeImpl OPT_BLOCK_STATE = new TypeImpl<>(Integer.class, + (buffer, value) -> { + if (value == null) { + buffer.write(NetworkBuffer.VAR_INT, 0); + return -1; + } + buffer.write(VAR_INT, value); + return -1; + }, + buffer -> { + final int value = buffer.read(VAR_INT); + return value == 0 ? null : value; + }); + static final TypeImpl VILLAGER_DATA = new TypeImpl<>(int[].class, + (buffer, value) -> { + buffer.write(VAR_INT, value[0]); + buffer.write(VAR_INT, value[1]); + buffer.write(VAR_INT, value[2]); + return -1; + }, + buffer -> { + final int[] value = new int[3]; + value[0] = buffer.read(VAR_INT); + value[1] = buffer.read(VAR_INT); + value[2] = buffer.read(VAR_INT); + return value; + }); + static final TypeImpl OPT_VAR_INT = new TypeImpl<>(int.class, + (buffer, value) -> { + if (value == null) { + buffer.write(VAR_INT, 0); + return -1; + } + buffer.write(VAR_INT, value + 1); + return -1; + }, + buffer -> { + final int value = buffer.read(VAR_INT); + return value == 0 ? null : value - 1; + }); + static final TypeImpl POSE = new TypeImpl<>(Entity.Pose.class, + (buffer, value) -> { + buffer.write(VAR_INT, value.ordinal()); + return -1; + }, + buffer -> { + final int ordinal = buffer.read(VAR_INT); + return Entity.Pose.values()[ordinal]; + }); + static final TypeImpl DEATH_LOCATION = new TypeImpl<>(DeathLocation.class, + (buffer, value) -> { + if (value == null) { + buffer.write(BOOLEAN, false); + } else { + buffer.write(BOOLEAN, true); + buffer.write(STRING, value.dimension()); + buffer.write(BLOCK_POSITION, value.position()); + } + return -1; + }, + buffer -> { + if (buffer.read(BOOLEAN)) { + return new DeathLocation(buffer.read(STRING), buffer.read(BLOCK_POSITION)); + } + return null; + }); + static final TypeImpl CAT_VARIANT = new TypeImpl<>(CatMeta.Variant.class, + (buffer, value) -> { + buffer.write(VAR_INT, value.ordinal()); + return -1; + }, + buffer -> { + final int ordinal = buffer.read(VAR_INT); + return CatMeta.Variant.values()[ordinal]; + }); + static final TypeImpl FROG_VARIANT = new TypeImpl<>(FrogMeta.Variant.class, + (buffer, value) -> { + buffer.write(VAR_INT, value.ordinal()); + return -1; + }, + buffer -> { + final int ordinal = buffer.read(VAR_INT); + return FrogMeta.Variant.getVariant(ordinal); // Microtus - meta update + }); + static final TypeImpl SNIFFER_STATE = new TypeImpl<>(SnifferMeta.State.class, + (buffer, value) -> { + buffer.write(VAR_INT, value.ordinal()); + return -1; + }, + buffer -> { + final int ordinal = buffer.read(VAR_INT); + return SnifferMeta.State.values()[ordinal]; + }); + static final TypeImpl VECTOR3 = new TypeImpl<>(Point.class, + (buffer, value) -> { + buffer.write(FLOAT, (float) value.x()); + buffer.write(FLOAT, (float) value.y()); + buffer.write(FLOAT, (float) value.z()); + return -1; + }, + buffer -> { + final float x = buffer.read(FLOAT); + final float y = buffer.read(FLOAT); + final float z = buffer.read(FLOAT); + return new Vec(x, y, z); + }); + static final TypeImpl VECTOR3D = new TypeImpl<>(Point.class, + (buffer, value) -> { + buffer.write(DOUBLE, value.x()); + buffer.write(DOUBLE, value.y()); + buffer.write(DOUBLE, value.z()); + return -1; + }, + buffer -> { + final double x = buffer.read(DOUBLE); + final double y = buffer.read(DOUBLE); + final double z = buffer.read(DOUBLE); + return new Vec(x, y, z); + }); + static final TypeImpl QUATERNION = new TypeImpl<>(float[].class, + (buffer, value) -> { + buffer.write(FLOAT, value[0]); + buffer.write(FLOAT, value[1]); + buffer.write(FLOAT, value[2]); + buffer.write(FLOAT, value[3]); + return -1; + }, + buffer -> { + final float x = buffer.read(FLOAT); + final float y = buffer.read(FLOAT); + final float z = buffer.read(FLOAT); + final float w = buffer.read(FLOAT); + return new float[]{x, y, z, w}; + }); + + record TypeImpl(@NotNull Class type, + @NotNull TypeWriter writer, + @NotNull TypeReader reader) implements NetworkBuffer.Type { + } + + interface TypeWriter { + long write(@NotNull NetworkBuffer buffer, @UnknownNullability T value); + } + + interface TypeReader { + @UnknownNullability T read(@NotNull NetworkBuffer buffer); + } +} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/BiomeOption.java b/src/main/java/net/minestom/server/world/biomes/particle/BiomeOption.java new file mode 100644 index 00000000000..07ffda2ba5d --- /dev/null +++ b/src/main/java/net/minestom/server/world/biomes/particle/BiomeOption.java @@ -0,0 +1,16 @@ +package net.minestom.server.world.biomes.particle; + +import net.minestom.server.particle.Particle; +import org.jetbrains.annotations.NotNull; +import org.jglrxavpok.hephaistos.nbt.NBTCompound; + +/** + * Just a generic interface to hold data about biome particles + * @author TheMeinerLP + */ +public interface BiomeOption { + @NotNull + NBTCompound toNbt(); + @NotNull + Particle getType(); +} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/BlockOption.java b/src/main/java/net/minestom/server/world/biomes/particle/BlockOption.java new file mode 100644 index 00000000000..117d9a1ec79 --- /dev/null +++ b/src/main/java/net/minestom/server/world/biomes/particle/BlockOption.java @@ -0,0 +1,32 @@ +package net.minestom.server.world.biomes.particle; + +import net.minestom.server.instance.block.Block; +import net.minestom.server.particle.Particle; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; +import org.jglrxavpok.hephaistos.nbt.NBT; +import org.jglrxavpok.hephaistos.nbt.NBTCompound; + +import java.util.Map; + +@ApiStatus.Experimental +public record BlockOption(@NotNull Block block) implements BiomeOption { + + @Override + public @NotNull NBTCompound toNbt() { + return NBT.Compound(nbtCompound -> { + nbtCompound.setString("type", getType().namespace().toString()); + nbtCompound.setString("Name", block.name()); + Map propertiesMap = block.properties(); + if (!propertiesMap.isEmpty()) { + nbtCompound.set("Properties", NBT.Compound(p -> propertiesMap.forEach(p::setString))); + } + }); + } + + @Override + public @NotNull Particle getType() { + return Particle.BLOCK; + } + +} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/DefaultOption.java b/src/main/java/net/minestom/server/world/biomes/particle/DefaultOption.java new file mode 100644 index 00000000000..1ddad4d7ea4 --- /dev/null +++ b/src/main/java/net/minestom/server/world/biomes/particle/DefaultOption.java @@ -0,0 +1,20 @@ +package net.minestom.server.world.biomes.particle; + +import net.minestom.server.particle.Particle; +import org.jetbrains.annotations.NotNull; +import org.jglrxavpok.hephaistos.nbt.NBT; +import org.jglrxavpok.hephaistos.nbt.NBTCompound; + +import java.util.Map; + +public record DefaultOption(@NotNull Particle particle) implements BiomeOption { + @Override + public @NotNull NBTCompound toNbt() { + return NBT.Compound(Map.of("type", NBT.String(getType().namespace().toString()))); + } + + @Override + public @NotNull Particle getType() { + return particle; + } +} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/DustOption.java b/src/main/java/net/minestom/server/world/biomes/particle/DustOption.java new file mode 100644 index 00000000000..0a84f495820 --- /dev/null +++ b/src/main/java/net/minestom/server/world/biomes/particle/DustOption.java @@ -0,0 +1,34 @@ +package net.minestom.server.world.biomes.particle; + +import net.minestom.server.particle.Particle; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; +import org.jglrxavpok.hephaistos.nbt.NBT; +import org.jglrxavpok.hephaistos.nbt.NBTCompound; + +import java.util.Map; + +/** + * Particle effect which used based on the color values. + * @param red can between 0 and 1 and is divided by 255 + * @param green can between 0 and 1 and is divided by 255 + * @param blue can between 0 and 1 and is divided by 255 + * @param scale can between 0.01 to 4 + */ +@ApiStatus.Experimental +public record DustOption(float red, float green, float blue, float scale) implements BiomeOption { + @Override + public @NotNull NBTCompound toNbt() { + return NBT.Compound(Map.of( + "type", NBT.String(getType().namespace().toString()), + "Red", NBT.Float(red), + "Green", NBT.Float(green), + "Blue", NBT.Float(blue), + "Scale", NBT.Float(scale))); + } + + @Override + public @NotNull Particle getType() { + return Particle.DUST; + } +} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/ItemOption.java b/src/main/java/net/minestom/server/world/biomes/particle/ItemOption.java new file mode 100644 index 00000000000..a977cd052c1 --- /dev/null +++ b/src/main/java/net/minestom/server/world/biomes/particle/ItemOption.java @@ -0,0 +1,27 @@ +package net.minestom.server.world.biomes.particle; + +import net.minestom.server.item.ItemStack; +import net.minestom.server.particle.Particle; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; +import org.jglrxavpok.hephaistos.nbt.NBTCompound; + +/** + * Particle effect which used based on an item inside the biome. + * @param item to bes used + */ +@ApiStatus.Experimental +public record ItemOption(@NotNull ItemStack item) implements BiomeOption { + + @Override + public @NotNull NBTCompound toNbt() { + NBTCompound nbtCompound = item.meta().toNBT(); + return nbtCompound.modify(n -> n.setString("type", getType().namespace().toString())); + } + + @Override + public @NotNull Particle getType() { + return Particle.ITEM; + } + +} diff --git a/src/main/kotlin/minestom.common-conventions.gradle.kts b/src/main/kotlin/minestom.common-conventions.gradle.kts new file mode 100644 index 00000000000..6c56062ffab --- /dev/null +++ b/src/main/kotlin/minestom.common-conventions.gradle.kts @@ -0,0 +1,28 @@ +plugins { + java +} + +// Always exclude checker-qual. This is the single most annoying thing that always reappears. +configurations.all { + // We only use Jetbrains Annotations + exclude("org.checkerframework", "checker-qual") +} + +java { + toolchain { + languageVersion.set(JavaLanguageVersion.of(21)) + } +} + +tasks { + withType { + // We are fully aware, that we should be suppressing these instead of ignoring them here, but man keep my terminal clean. + options.compilerArgs.addAll(listOf("-Xlint:none", "-Xlint:-deprecation", "-Xlint:-unchecked")) + } + withType { + useJUnitPlatform() + // Viewable packets make tracking harder. Could be re-enabled later. + jvmArgs("-Dminestom.viewable-packet=false") + jvmArgs("-Dminestom.inside-test=true") + } +} \ No newline at end of file diff --git a/src/main/kotlin/minestom.native-conventions.gradle.kts b/src/main/kotlin/minestom.native-conventions.gradle.kts new file mode 100644 index 00000000000..4a873e818bb --- /dev/null +++ b/src/main/kotlin/minestom.native-conventions.gradle.kts @@ -0,0 +1,14 @@ +plugins { + id("minestom.common-conventions") + id("org.graalvm.buildtools.native") +} + +graalvmNative { + binaries { + named("main") { + buildArgs.add("--allow-incomplete-classpath") + // One day toolchains will support getting this automagically, but that day is not today. + toolchainDetection.set(false) + } + } +} \ No newline at end of file diff --git a/src/main/kotlin/minestom.publishing-conventions.gradle.kts b/src/main/kotlin/minestom.publishing-conventions.gradle.kts new file mode 100644 index 00000000000..305dd158be3 --- /dev/null +++ b/src/main/kotlin/minestom.publishing-conventions.gradle.kts @@ -0,0 +1,40 @@ +plugins { + id("net.kyori.indra") + id("net.kyori.indra.publishing") + id("net.kyori.indra.publishing.sonatype") + id("io.github.gradle-nexus.publish-plugin") +} + +indra { + javaVersions { + target(21) + testWith(21) + } + + github("OneLiteFeatherNET", "Microtus") { + ci(true) + publishing(false) + } + mitLicense() + signWithKeyFromPrefixedProperties("onelitefeather") + configurePublications { + pom { + developers { + developer { + id.set("themeinerlp") + name.set("Phillipp Glanz") + email.set("p.glanz@madfix.me") + } + developer { + id.set("theEvilReaper") + name.set("Steffen Wonning") + email.set("steffenwx@gmail.com") + } + } + } + } +} + +indraSonatype { + useAlternateSonatypeOSSHost("s01") +} \ No newline at end of file diff --git a/src/main/kotlin/net/onelitefeather/microtus/ExtensionPlugin.kt b/src/main/kotlin/net/onelitefeather/microtus/ExtensionPlugin.kt new file mode 100644 index 00000000000..e02e9d94396 --- /dev/null +++ b/src/main/kotlin/net/onelitefeather/microtus/ExtensionPlugin.kt @@ -0,0 +1,76 @@ +package net.onelitefeather.microtus + +import net.onelitefeather.microtus.models.Extension +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.api.plugins.JavaPlugin +import org.gradle.api.tasks.SourceSet +import org.gradle.api.tasks.SourceSetContainer +import org.gradle.kotlin.dsl.getByType +import org.gradle.kotlin.dsl.register +import org.gradle.kotlin.dsl.withType + +/** + * Represents the gradle plugin extension which can be integrated into a `build.gradle.kts` file to define the properties of the extension. + * The usage of this plugin is as follows: + * + * ```kotlin + * plugins { + * id("net.onelitefeather.microtus.extension") version "" + * // ... + * } + * + * extension { + * //... use the properties of the extension here + * } + * ``` + * + * @since 1.2.0 + * @author TheMeinerLP + */ +class ExtensionPlugin : Plugin { + + private val fileName = "extension.json" + + /** + * Applies the plugin to the project. + * @param target the project to apply the plugin to + */ + override fun apply(target: Project) { + target.run { + val generatedResourcesDirectory = layout.buildDirectory.dir("generated/extension") + val extension = Extension() + extensions.add("extension", extension) + + val library = project.configurations.maybeCreate("library") + val libraries = project.configurations.create("extensionLibrary").extendsFrom(library) + + val generateTask = tasks.register("generateExtension") { + group = "minestom" + + fileName.set(this@ExtensionPlugin.fileName) + librariesRootComponent.set(libraries.incoming.resolutionResult.root) + outputDirectory.set(generatedResourcesDirectory) + this.extension.set(provider { + setDefaults(project, extension) + extension + }) + } + plugins.withType { + extensions.getByType().named(SourceSet.MAIN_SOURCE_SET_NAME) { + resources.srcDir(generateTask) + } + } + } + } + + /** + * Sets some default variables to a [Extension] object. + * @param project the project to get the name and version from + * @param extension the extension to set the variables to + */ + private fun setDefaults(project: Project, extension: Extension) { + extension.name = extension.name ?: project.name + extension.version = extension.version ?: project.version.toString() + } +} \ No newline at end of file diff --git a/src/main/kotlin/net/onelitefeather/microtus/GenerateExtension.kt b/src/main/kotlin/net/onelitefeather/microtus/GenerateExtension.kt new file mode 100644 index 00000000000..0df18c5afb0 --- /dev/null +++ b/src/main/kotlin/net/onelitefeather/microtus/GenerateExtension.kt @@ -0,0 +1,79 @@ +package net.onelitefeather.microtus + +import com.fasterxml.jackson.annotation.JsonInclude +import com.fasterxml.jackson.databind.ObjectMapper +import com.fasterxml.jackson.databind.module.SimpleModule +import com.fasterxml.jackson.module.kotlin.registerKotlinModule +import net.onelitefeather.microtus.models.Extension +import org.gradle.api.DefaultTask +import org.gradle.api.artifacts.repositories.MavenArtifactRepository +import org.gradle.api.artifacts.result.ResolvedComponentResult +import org.gradle.api.artifacts.result.ResolvedDependencyResult +import org.gradle.api.file.DirectoryProperty +import org.gradle.api.provider.Property +import org.gradle.api.tasks.* +import kotlin.jvm.Throws + +/** + * Defines the task which generates the required extension.json file for Minestom. + * @since 1.2.0 + * @author TheMeinerLP + */ +abstract class GenerateExtension : DefaultTask() { + @get:Input + abstract val fileName: Property + + @get:Nested + abstract val extension: Property + + @get:OutputDirectory + abstract val outputDirectory: DirectoryProperty + + @get:Input + @get:Optional + abstract val librariesRootComponent: Property + + /** + * Generates an extension.json file based on the given properties. + */ + @TaskAction + fun generate() { + val module = SimpleModule() + val mapper = ObjectMapper() + .registerKotlinModule() + .registerModule(module) + .setSerializationInclusion(JsonInclude.Include.NON_EMPTY) + val extension = extension.get() + val dependencies = librariesRootComponent.orNull.collectLibraries() + val repos = this.project.repositories.withType(MavenArtifactRepository::class.java) + val externalDependencies = Extension.ExternalDependencies() + externalDependencies.artifacts = dependencies.toList() + val mavenCentral = Extension.Repository() + mavenCentral.url = "https://repo.maven.apache.org/maven2/" + mavenCentral.name = "mavenCentral" + val mappedRepos = repos.map { + val repo = Extension.Repository() + repo.url = it.url.toString() + repo.name = it.name + repo + }.toList() + externalDependencies.repositories = if (mappedRepos.isNotEmpty() || dependencies.isNotEmpty()) { + mappedRepos + listOf(mavenCentral) + } else { + listOf() + } + extension.externalDependencies = externalDependencies + mapper.writeValue(outputDirectory.file(fileName).get().asFile, extension) + } + + /** + * Collects all libraries from the root component and the additional libraries. + * @param additional the additional libraries to add + */ + private fun ResolvedComponentResult?.collectLibraries(additional: List? = null): List { + val resolved = this?.dependencies?.map { dependencyResult -> + (dependencyResult as? ResolvedDependencyResult)?.selected?.moduleVersion?.toString() ?: error("No moduleVersion for $dependencyResult") + } + return ((additional ?: listOf()) + (resolved ?: listOf())).distinct() + } +} \ No newline at end of file diff --git a/src/main/kotlin/net/onelitefeather/microtus/models/Extension.kt b/src/main/kotlin/net/onelitefeather/microtus/models/Extension.kt new file mode 100644 index 00000000000..3e8976c5970 --- /dev/null +++ b/src/main/kotlin/net/onelitefeather/microtus/models/Extension.kt @@ -0,0 +1,76 @@ +package net.onelitefeather.microtus.models + +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.Optional +import org.gradle.internal.impldep.com.fasterxml.jackson.annotation.JsonProperty + +/** + * Represents the allowed data fields for an extension.json file which is required from Minestom to load an extension. + * The following fields are allowed (fields with a * are required): + * + * - name: The name of the extension (*) + * - version: The version of the extension (*) + * - entrypoint: The entrypoint of the extension (*) + * - authors: The authors of the extension + * - dependencies: The dependencies of the extension + * - externalDependencies: The external dependencies of the extension + * @since 1.2.0 + * @author TheMeinerLP + */ +class Extension() { + @Input + var name: String? = null + + @Input + var version: String? = null + + @Input + var entrypoint: String? = null + + @Input + @Optional + @JsonProperty("authors") + var authors: List? = null + + @Input + @Optional + @JsonProperty("dependencies") + var dependencies: List? = null + + @Input + @Optional + @JsonProperty("externalDependencies") + var externalDependencies: ExternalDependencies? = null + + /** + * Represents the external dependencies which is required for the extension to work. + * @since 1.2.0 + * @author TheMeinerLP + */ + class ExternalDependencies { + @JsonProperty("repositories") + var repositories: List? = null + + @Input + @Optional + @JsonProperty("artifacts") + var artifacts: List? = null + + } + + /** + * Represents a repository which is used by an extension to load external dependencies. + * @since 1.2.0 + * @author TheMeinerLP + * @see ExternalDependencies + */ + class Repository { + @Input + @JsonProperty("name") + var name: String? = null + + @Input + @JsonProperty("url") + var url: String? = null + } +} diff --git a/src/test/java/net/minestom/server/InsideTest.java b/src/test/java/net/minestom/server/InsideTest.java index 9adbea2e1e7..ee7564c2a56 100644 --- a/src/test/java/net/minestom/server/InsideTest.java +++ b/src/test/java/net/minestom/server/InsideTest.java @@ -4,9 +4,9 @@ import static org.junit.jupiter.api.Assertions.assertTrue; -public class InsideTest { +class InsideTest { @Test - public void inside() { + void inside() { assertTrue(ServerFlag.INSIDE_TEST); } } diff --git a/src/test/java/net/minestom/server/collision/EntityBlockPhysicsIntegrationTest.java b/src/test/java/net/minestom/server/collision/EntityBlockPhysicsIntegrationTest.java index 0801f00fe72..343d03289d9 100644 --- a/src/test/java/net/minestom/server/collision/EntityBlockPhysicsIntegrationTest.java +++ b/src/test/java/net/minestom/server/collision/EntityBlockPhysicsIntegrationTest.java @@ -20,7 +20,7 @@ import static org.junit.jupiter.api.Assertions.*; @EnvTest -public class EntityBlockPhysicsIntegrationTest { +class EntityBlockPhysicsIntegrationTest { private static final Point PRECISION = new Pos(0.01, 0.01, 0.01); private static boolean checkPoints(Point expected, Point actual) { @@ -48,7 +48,7 @@ private static void assertPossiblePoints(List expected, Point actual) { } @Test - public void entityPhysicsCheckCollision(Env env) { + void entityPhysicsCheckCollision(Env env) { var instance = env.createFlatInstance(); instance.setBlock(0, 43, 1, Block.STONE); @@ -76,7 +76,7 @@ public void entityPhysicsCheckShortDiagonal(Env env) { } @Test - public void entityPhysicsCheckSlab(Env env) { + void entityPhysicsCheckSlab(Env env) { var instance = env.createFlatInstance(); for (int i = -2; i <= 2; ++i) @@ -94,7 +94,7 @@ public void entityPhysicsCheckSlab(Env env) { } @Test - public void entityPhysicsCheckShallowAngle(Env env) { + void entityPhysicsCheckShallowAngle(Env env) { var instance = env.createFlatInstance(); instance.setBlock(13, 99, 16, Block.STONE); @@ -109,7 +109,7 @@ public void entityPhysicsCheckShallowAngle(Env env) { } @Test - public void entityPhysicsCheckFallFence(Env env) { + void entityPhysicsCheckFallFence(Env env) { var instance = env.createFlatInstance(); instance.setBlock(0, 42, 0, Block.OAK_FENCE); @@ -122,7 +122,7 @@ public void entityPhysicsCheckFallFence(Env env) { } @Test - public void entityPhysicsCheckFallHitCarpet(Env env) { + void entityPhysicsCheckFallHitCarpet(Env env) { var instance = env.createFlatInstance(); for (int i = -2; i <= 2; ++i) @@ -141,7 +141,7 @@ public void entityPhysicsCheckFallHitCarpet(Env env) { } @Test - public void entityPhysicsCheckFallHitFence(Env env) { + void entityPhysicsCheckFallHitFence(Env env) { var instance = env.createFlatInstance(); instance.setBlock(0, 42, 0, Block.OAK_FENCE); instance.setBlock(0, 43, 0, Block.BROWN_CARPET); @@ -155,7 +155,7 @@ public void entityPhysicsCheckFallHitFence(Env env) { } @Test - public void entityPhysicsCheckHorizontalFence(Env env) { + void entityPhysicsCheckHorizontalFence(Env env) { var instance = env.createFlatInstance(); instance.setBlock(1, 42, 0, Block.OAK_FENCE); @@ -168,7 +168,7 @@ public void entityPhysicsCheckHorizontalFence(Env env) { } @Test - public void entityPhysicsCheckMultipleBlocksPassFirst(Env env) { + void entityPhysicsCheckMultipleBlocksPassFirst(Env env) { var instance = env.createFlatInstance(); instance.setBlock(4, 40, -1, Block.SANDSTONE_STAIRS); instance.setBlock(16, 40, 0, Block.STONE); @@ -182,7 +182,7 @@ public void entityPhysicsCheckMultipleBlocksPassFirst(Env env) { } @Test - public void entityPhysicsCheckMultipleBlocksHitFirst(Env env) { + void entityPhysicsCheckMultipleBlocksHitFirst(Env env) { var instance = env.createFlatInstance(); instance.setBlock(4, 40, 0, Block.GRASS_BLOCK); instance.setBlock(16, 40, 0, Block.STONE); @@ -199,7 +199,7 @@ public void entityPhysicsCheckMultipleBlocksHitFirst(Env env) { } @Test - public void entityPhysicsCheckHorizontalCarpetedFence(Env env) { + void entityPhysicsCheckHorizontalCarpetedFence(Env env) { var instance = env.createFlatInstance(); instance.setBlock(1, 42, 0, Block.OAK_FENCE); instance.setBlock(1, 43, 0, Block.BROWN_CARPET); @@ -213,7 +213,7 @@ public void entityPhysicsCheckHorizontalCarpetedFence(Env env) { } @Test - public void entityPhysicsCheckDiagonalCarpetedFenceX(Env env) { + void entityPhysicsCheckDiagonalCarpetedFenceX(Env env) { var instance = env.createFlatInstance(); for (int i = -2; i <= 2; ++i) @@ -232,7 +232,7 @@ public void entityPhysicsCheckDiagonalCarpetedFenceX(Env env) { } @Test - public void entityPhysicsCheckDiagonalCarpetedFenceZ(Env env) { + void entityPhysicsCheckDiagonalCarpetedFenceZ(Env env) { var instance = env.createFlatInstance(); for (int i = -2; i <= 2; ++i) @@ -251,7 +251,7 @@ public void entityPhysicsCheckDiagonalCarpetedFenceZ(Env env) { } @Test - public void entityPhysicsCheckDiagonalCarpetedFenceXZ(Env env) { + void entityPhysicsCheckDiagonalCarpetedFenceXZ(Env env) { var instance = env.createFlatInstance(); for (int i = -2; i <= 2; ++i) @@ -282,7 +282,7 @@ public void entityPhysicsCheckDiagonalCarpetedFenceXZ(Env env) { } @Test - public void entityPhysicsCheckFallHitFenceLongMove(Env env) { + void entityPhysicsCheckFallHitFenceLongMove(Env env) { var instance = env.createFlatInstance(); instance.setBlock(0, 42, 0, Block.OAK_FENCE); instance.setBlock(0, 43, 0, Block.BROWN_CARPET); @@ -296,7 +296,7 @@ public void entityPhysicsCheckFallHitFenceLongMove(Env env) { } @Test - public void entityPhysicsCheckFenceAboveHead(Env env) { + void entityPhysicsCheckFenceAboveHead(Env env) { var instance = env.createFlatInstance(); instance.setBlock(0, 45, 0, Block.OAK_FENCE); @@ -310,7 +310,7 @@ public void entityPhysicsCheckFenceAboveHead(Env env) { } @Test - public void entityPhysicsCheckDiagonal(Env env) { + void entityPhysicsCheckDiagonal(Env env) { var instance = env.createFlatInstance(); instance.setBlock(1, 43, 1, Block.STONE); instance.setBlock(1, 43, 2, Block.STONE); @@ -326,7 +326,7 @@ public void entityPhysicsCheckDiagonal(Env env) { } @Test - public void entityPhysicsCheckDirectSlide(Env env) { + void entityPhysicsCheckDirectSlide(Env env) { var instance = env.createFlatInstance(); instance.setBlock(1, 43, 1, Block.STONE); instance.setBlock(1, 43, 2, Block.STONE); @@ -340,7 +340,7 @@ public void entityPhysicsCheckDirectSlide(Env env) { } @Test - public void entityPhysicsCheckCorner(Env env) { + void entityPhysicsCheckCorner(Env env) { var instance = env.createFlatInstance(); for (int i = -2; i <= 2; ++i) for (int j = -2; j <= 2; ++j) @@ -359,7 +359,7 @@ public void entityPhysicsCheckCorner(Env env) { } @Test - public void entityPhysicsCheckEnclosedHit(Env env) { + void entityPhysicsCheckEnclosedHit(Env env) { var instance = env.createFlatInstance(); for (int i = -2; i <= 2; ++i) for (int j = -2; j <= 2; ++j) @@ -381,7 +381,7 @@ public void entityPhysicsCheckEnclosedHit(Env env) { } @Test - public void entityPhysicsCheckEnclosedHitSubBlock(Env env) { + void entityPhysicsCheckEnclosedHitSubBlock(Env env) { var instance = env.createFlatInstance(); for (int i = -2; i <= 2; ++i) for (int j = -2; j <= 2; ++j) @@ -403,7 +403,7 @@ public void entityPhysicsCheckEnclosedHitSubBlock(Env env) { } @Test - public void entityPhysicsCheckEnclosedMiss(Env env) { + void entityPhysicsCheckEnclosedMiss(Env env) { var instance = env.createFlatInstance(); instance.setBlock(11, 43, 11, Block.STONE); @@ -420,7 +420,7 @@ public void entityPhysicsCheckEnclosedMiss(Env env) { } @Test - public void entityPhysicsCheckEntityHit(Env env) { + void entityPhysicsCheckEntityHit() { Point z1 = new Pos(0, 0, 0); Point z2 = new Pos(15, 0, 0); Point z3 = new Pos(11, 0, 0); @@ -438,7 +438,7 @@ public void entityPhysicsCheckEntityHit(Env env) { } @Test - public void entityPhysicsCheckEdgeClip(Env env) { + void entityPhysicsCheckEdgeClip(Env env) { var instance = env.createFlatInstance(); instance.setBlock(1, 43, 1, Block.STONE); @@ -451,7 +451,7 @@ public void entityPhysicsCheckEdgeClip(Env env) { } @Test - public void entityPhysicsCheckEdgeClipSmall(Env env) { + void entityPhysicsCheckEdgeClipSmall(Env env) { var instance = env.createFlatInstance(); instance.setBlock(1, 42, 1, Block.STONE); @@ -465,7 +465,7 @@ public void entityPhysicsCheckEdgeClipSmall(Env env) { } @Test - public void entityPhysicsCheckDoorSubBlockNorth(Env env) { + void entityPhysicsCheckDoorSubBlockNorth(Env env) { var instance = env.createFlatInstance(); Block b = Block.ACACIA_TRAPDOOR.withProperties(Map.of("facing", "north", "open", "true")); @@ -480,7 +480,7 @@ public void entityPhysicsCheckDoorSubBlockNorth(Env env) { } @Test - public void entityPhysicsCheckDoorSubBlockSouth(Env env) { + void entityPhysicsCheckDoorSubBlockSouth(Env env) { var instance = env.createFlatInstance(); Block b = Block.ACACIA_TRAPDOOR.withProperties(Map.of("facing", "south", "open", "true")); @@ -495,7 +495,7 @@ public void entityPhysicsCheckDoorSubBlockSouth(Env env) { } @Test - public void entityPhysicsCheckDoorSubBlockWest(Env env) { + void entityPhysicsCheckDoorSubBlockWest(Env env) { var instance = env.createFlatInstance(); Block b = Block.ACACIA_TRAPDOOR.withProperties(Map.of("facing", "west", "open", "true")); @@ -510,7 +510,7 @@ public void entityPhysicsCheckDoorSubBlockWest(Env env) { } @Test - public void entityPhysicsCheckDoorSubBlockEast(Env env) { + void entityPhysicsCheckDoorSubBlockEast(Env env) { var instance = env.createFlatInstance(); Block b = Block.ACACIA_TRAPDOOR.withProperties(Map.of("facing", "east", "open", "true")); @@ -525,7 +525,7 @@ public void entityPhysicsCheckDoorSubBlockEast(Env env) { } @Test - public void entityPhysicsCheckDoorSubBlockUp(Env env) { + void entityPhysicsCheckDoorSubBlockUp(Env env) { var instance = env.createFlatInstance(); Block b = Block.ACACIA_TRAPDOOR.withProperties(Map.of("half", "top")); @@ -540,7 +540,7 @@ public void entityPhysicsCheckDoorSubBlockUp(Env env) { } @Test - public void entityPhysicsCheckDoorSubBlockDown(Env env) { + void entityPhysicsCheckDoorSubBlockDown(Env env) { var instance = env.createFlatInstance(); Block b = Block.ACACIA_TRAPDOOR; @@ -555,7 +555,7 @@ public void entityPhysicsCheckDoorSubBlockDown(Env env) { } @Test - public void entityPhysicsCheckOnGround(Env env) { + void entityPhysicsCheckOnGround(Env env) { var instance = env.createFlatInstance(); instance.setBlock(0, 40, 0, Block.STONE); @@ -568,7 +568,7 @@ public void entityPhysicsCheckOnGround(Env env) { } @Test - public void entityPhysicsCheckStairTop(Env env) { + void entityPhysicsCheckStairTop(Env env) { var instance = env.createFlatInstance(); instance.setBlock(0, 42, 0, Block.ACACIA_STAIRS); @@ -581,7 +581,7 @@ public void entityPhysicsCheckStairTop(Env env) { } @Test - public void entityPhysicsCheckStairTopSmall(Env env) { + void entityPhysicsCheckStairTopSmall(Env env) { var instance = env.createFlatInstance(); instance.setBlock(0, 42, 0, Block.ACACIA_STAIRS); @@ -594,7 +594,7 @@ public void entityPhysicsCheckStairTopSmall(Env env) { } @Test - public void entityPhysicsCheckNotOnGround(Env env) { + void entityPhysicsCheckNotOnGround(Env env) { var instance = env.createFlatInstance(); for (int i = -2; i <= 2; ++i) @@ -610,7 +610,7 @@ public void entityPhysicsCheckNotOnGround(Env env) { } @Test - public void entityPhysicsCheckNotOnGroundHitUp(Env env) { + void entityPhysicsCheckNotOnGroundHitUp(Env env) { var instance = env.createFlatInstance(); instance.setBlock(0, 60, 0, Block.STONE); @@ -623,7 +623,7 @@ public void entityPhysicsCheckNotOnGroundHitUp(Env env) { } @Test - public void entityPhysicsCheckSlide(Env env) { + void entityPhysicsCheckSlide(Env env) { var instance = env.createFlatInstance(); instance.setBlock(1, 43, 1, Block.STONE); instance.setBlock(1, 43, 2, Block.STONE); @@ -638,7 +638,7 @@ public void entityPhysicsCheckSlide(Env env) { } @Test - public void entityPhysicsSmallMoveCollide(Env env) { + void entityPhysicsSmallMoveCollide(Env env) { var instance = env.createFlatInstance(); instance.setBlock(1, 43, 0, Block.STONE); @@ -659,7 +659,7 @@ public void tmp(Env env) { // Checks C include all checks for crossing one intermediate block (3 block checks) @Test - public void entityPhysicsSmallMoveC0(Env env) { + void entityPhysicsSmallMoveC0(Env env) { var instance = env.createFlatInstance(); instance.setBlock(1, 42, 0, Block.STONE); @@ -674,7 +674,7 @@ public void entityPhysicsSmallMoveC0(Env env) { } @Test - public void entityPhysicsSmallMoveC1(Env env) { + void entityPhysicsSmallMoveC1(Env env) { var instance = env.createFlatInstance(); instance.setBlock(0, 42, 1, Block.STONE); @@ -689,7 +689,7 @@ public void entityPhysicsSmallMoveC1(Env env) { } @Test - public void entityPhysicsSmallMoveC2(Env env) { + void entityPhysicsSmallMoveC2(Env env) { var instance = env.createFlatInstance(); instance.setBlock(1, 42, 1, Block.STONE); @@ -704,7 +704,7 @@ public void entityPhysicsSmallMoveC2(Env env) { } @Test - public void entityPhysicsSmallMoveC3(Env env) { + void entityPhysicsSmallMoveC3(Env env) { var instance = env.createFlatInstance(); instance.setBlock(0, 42, 0, Block.STONE); @@ -719,7 +719,7 @@ public void entityPhysicsSmallMoveC3(Env env) { } @Test - public void entityPhysicsSmallMoveC4(Env env) { + void entityPhysicsSmallMoveC4(Env env) { var instance = env.createFlatInstance(); instance.setBlock(0, 42, 1, Block.STONE); @@ -734,7 +734,7 @@ public void entityPhysicsSmallMoveC4(Env env) { } @Test - public void entityPhysicsSmallMoveC5(Env env) { + void entityPhysicsSmallMoveC5(Env env) { var instance = env.createFlatInstance(); instance.setBlock(1, 42, 0, Block.STONE); @@ -749,7 +749,7 @@ public void entityPhysicsSmallMoveC5(Env env) { } @Test - public void entityPhysicsSmallMoveC6(Env env) { + void entityPhysicsSmallMoveC6(Env env) { var instance = env.createFlatInstance(); instance.setBlock(0, 42, 0, Block.STONE); @@ -764,7 +764,7 @@ public void entityPhysicsSmallMoveC6(Env env) { } @Test - public void entityPhysicsSmallMoveC7(Env env) { + void entityPhysicsSmallMoveC7(Env env) { var instance = env.createFlatInstance(); instance.setBlock(1, 42, 1, Block.STONE); @@ -780,7 +780,7 @@ public void entityPhysicsSmallMoveC7(Env env) { // Checks CE include checks for crossing two intermediate block (4 block checks) @Test - public void entityPhysicsSmallMoveC0E(Env env) { + void entityPhysicsSmallMoveC0E(Env env) { var instance = env.createFlatInstance(); instance.setBlock(1, 43, 0, Block.STONE); @@ -795,7 +795,7 @@ public void entityPhysicsSmallMoveC0E(Env env) { } @Test - public void entityPhysicsSmallMoveC1E(Env env) { + void entityPhysicsSmallMoveC1E(Env env) { var instance = env.createFlatInstance(); instance.setBlock(0, 43, 1, Block.STONE); @@ -810,7 +810,7 @@ public void entityPhysicsSmallMoveC1E(Env env) { } @Test - public void entityPhysicsSmallMoveC2E(Env env) { + void entityPhysicsSmallMoveC2E(Env env) { var instance = env.createFlatInstance(); instance.setBlock(1, 43, 1, Block.STONE); @@ -826,7 +826,7 @@ public void entityPhysicsSmallMoveC2E(Env env) { } @Test - public void entityPhysicsCheckNoCollision(Env env) { + void entityPhysicsCheckNoCollision(Env env) { var instance = env.createFlatInstance(); for (int i = -2; i <= 2; ++i) @@ -842,7 +842,7 @@ public void entityPhysicsCheckNoCollision(Env env) { } @Test - public void entityPhysicsCheckBlockMiss(Env env) { + void entityPhysicsCheckBlockMiss(Env env) { var instance = env.createFlatInstance(); instance.setBlock(0, 43, 2, Block.STONE); instance.setBlock(2, 43, 0, Block.STONE); @@ -856,7 +856,7 @@ public void entityPhysicsCheckBlockMiss(Env env) { } @Test - public void entityPhysicsCheckBlockDirections(Env env) { + void entityPhysicsCheckBlockDirections(Env env) { var instance = env.createFlatInstance(); instance.setBlock(0, 43, 1, Block.STONE); @@ -890,7 +890,7 @@ public void entityPhysicsCheckBlockDirections(Env env) { } @Test - public void entityPhysicsCheckLargeVelocityMiss(Env env) { + void entityPhysicsCheckLargeVelocityMiss(Env env) { var instance = env.createFlatInstance(); var entity = new Entity(EntityType.ZOMBIE); @@ -905,7 +905,7 @@ public void entityPhysicsCheckLargeVelocityMiss(Env env) { } @Test - public void entityPhysicsCheckLargeVelocityHit(Env env) { + void entityPhysicsCheckLargeVelocityHit(Env env) { var instance = env.createFlatInstance(); var entity = new Entity(EntityType.ZOMBIE); @@ -922,7 +922,7 @@ public void entityPhysicsCheckLargeVelocityHit(Env env) { } @Test - public void entityPhysicsCheckNoMove(Env env) { + void entityPhysicsCheckNoMove(Env env) { var instance = env.createFlatInstance(); var entity = new Entity(EntityType.ZOMBIE); @@ -934,7 +934,7 @@ public void entityPhysicsCheckNoMove(Env env) { } @Test - public void entityPhysicsRepeatedCollision(Env env) { + void entityPhysicsRepeatedCollision(Env env) { var instance = env.createFlatInstance(); PhysicsResult previousResult = null; @@ -966,7 +966,7 @@ public void entityPhysicsRepeatedCollision(Env env) { } @Test - public void entityPhysicsCheckNoMoveCache(Env env) { + void entityPhysicsCheckNoMoveCache(Env env) { var instance = env.createFlatInstance(); var entity = new Entity(EntityType.ZOMBIE); @@ -980,7 +980,7 @@ public void entityPhysicsCheckNoMoveCache(Env env) { } @Test - public void entityPhysicsCheckNoMoveLargeVelocityHit(Env env) { + void entityPhysicsCheckNoMoveLargeVelocityHit(Env env) { var instance = env.createFlatInstance(); var entity = new Entity(EntityType.ZOMBIE); @@ -999,7 +999,7 @@ public void entityPhysicsCheckNoMoveLargeVelocityHit(Env env) { } @Test - public void entityPhysicsCheckLargeVelocityHitNoMove(Env env) { + void entityPhysicsCheckLargeVelocityHitNoMove(Env env) { var instance = env.createFlatInstance(); var entity = new Entity(EntityType.ZOMBIE); @@ -1018,7 +1018,7 @@ public void entityPhysicsCheckLargeVelocityHitNoMove(Env env) { } @Test - public void entityPhysicsCheckDoorSubBlockSouthRepeat(Env env) { + void entityPhysicsCheckDoorSubBlockSouthRepeat(Env env) { var instance = env.createFlatInstance(); Block b = Block.ACACIA_TRAPDOOR.withProperties(Map.of("facing", "south", "open", "true")); @@ -1036,7 +1036,7 @@ public void entityPhysicsCheckDoorSubBlockSouthRepeat(Env env) { } @Test - public void entityPhysicsCheckCollisionDownCache(Env env) { + void entityPhysicsCheckCollisionDownCache(Env env) { var instance = env.createFlatInstance(); instance.setBlock(0, 43, 1, Block.STONE); @@ -1056,7 +1056,7 @@ public void entityPhysicsCheckCollisionDownCache(Env env) { } @Test - public void entityPhysicsCheckGravityCached(Env env) { + void entityPhysicsCheckGravityCached(Env env) { var instance = env.createFlatInstance(); instance.setBlock(0, 43, 1, Block.STONE); @@ -1087,7 +1087,7 @@ public void entityPhysicsCheckGravityCached(Env env) { } @Test - public void entityBlockPositionTestSlightlyAbove(Env env) { + void entityBlockPositionTestSlightlyAbove(Env env) { var instance = env.createFlatInstance(); instance.setBlock(0, 42, 0, Block.STONE); @@ -1102,7 +1102,7 @@ public void entityBlockPositionTestSlightlyAbove(Env env) { } @Test - public void entityBlockPositionTestFarAbove(Env env) { + void entityBlockPositionTestFarAbove(Env env) { var instance = env.createFlatInstance(); instance.setBlock(0, 42, 0, Block.STONE); diff --git a/src/test/java/net/minestom/server/command/ArgumentTypeTest.java b/src/test/java/net/minestom/server/command/ArgumentTypeTest.java index 7bbdfa6b345..7ca6ce421f6 100644 --- a/src/test/java/net/minestom/server/command/ArgumentTypeTest.java +++ b/src/test/java/net/minestom/server/command/ArgumentTypeTest.java @@ -35,14 +35,22 @@ import static org.junit.jupiter.api.Assertions.*; -public class ArgumentTypeTest { +class ArgumentTypeTest { static { MinecraftServer.init(); } @Test - public void testArgumentEntityType() { + void testArgumentEnchantment() { + var arg = ArgumentType.Enchantment("enchantment"); + assertInvalidArg(arg, "minecraft:invalid_enchantment"); + assertArg(arg, Enchantment.SWEEPING, Enchantment.SWEEPING.name()); + assertArg(arg, Enchantment.MENDING, Enchantment.MENDING.name()); + } + + @Test + void testArgumentEntityType() { var arg = ArgumentType.EntityType("entity_type"); assertInvalidArg(arg, "minecraft:invalid_entity_type"); assertArg(arg, EntityType.ARMOR_STAND, EntityType.ARMOR_STAND.name()); @@ -50,7 +58,7 @@ public void testArgumentEntityType() { } @Test - public void testArgumentParticle() { + void testArgumentParticle() { var arg = ArgumentType.Particle("particle"); assertInvalidArg(arg, "minecraft:invalid_particle"); assertArg(arg, Particle.BLOCK, Particle.BLOCK.name()); @@ -58,7 +66,7 @@ public void testArgumentParticle() { } @Test - public void testArgumentBlockState() { + void testArgumentBlockState() { var arg = ArgumentType.BlockState("block_state"); assertInvalidArg(arg, "minecraft:invalid_block[invalid_property=invalid_key]"); assertInvalidArg(arg, "minecraft:stone[invalid_property=invalid_key]"); @@ -69,7 +77,7 @@ public void testArgumentBlockState() { } @Test - public void testArgumentColor() { + void testArgumentColor() { var arg = ArgumentType.Color("color"); assertInvalidArg(arg, "invalid_color"); assertArg(arg, Style.style(NamedTextColor.DARK_PURPLE), "dark_purple"); @@ -77,7 +85,7 @@ public void testArgumentColor() { } @Test - public void testArgumentComponent() { + void testArgumentComponent() { var arg = ArgumentType.Component("component"); var component1 = Component.text("Example text", NamedTextColor.DARK_AQUA); var component2 = Component.text("Other example text", Style.style(TextDecoration.OBFUSCATED)); @@ -90,7 +98,7 @@ public void testArgumentComponent() { } @Test - public void testArgumentEntity() { + void testArgumentEntity() { var arg = ArgumentType.Entity("entity"); assertValidArg(arg, "@a"); @@ -127,7 +135,7 @@ public void testArgumentEntity() { } @Test - public void testArgumentFloatRange() { + void testArgumentFloatRange() { var arg = ArgumentType.FloatRange("float_range"); assertArg(arg, new FloatRange(0f, 50f), "0..50"); assertArg(arg, new FloatRange(0f, 0f), "0..0"); @@ -142,7 +150,7 @@ public void testArgumentFloatRange() { } @Test - public void testArgumentIntRange() { + void testArgumentIntRange() { var arg = ArgumentType.IntRange("int_range"); assertArg(arg, new IntRange(0, 50), "0..50"); @@ -161,7 +169,7 @@ public void testArgumentIntRange() { } @Test - public void testArgumentItemStack() { + void testArgumentItemStack() { var arg = ArgumentType.ItemStack("item_stack"); assertArg(arg, ItemStack.AIR, "air"); assertArg(arg, ItemStack.of(Material.GLASS_PANE).withTag(Tag.String("tag"), "value"), "glass_pane{tag:value}"); @@ -172,7 +180,7 @@ public void testArgumentItemStack() { } @Test - public void testArgumentNbtCompoundTag() { + void testArgumentNbtCompoundTag() { var arg = ArgumentType.NbtCompound("nbt_compound"); assertArg(arg, CompoundBinaryTag.builder().putLongArray("long_array", new long[]{12, 49, 119}).build(), "{\"long_array\":[L;12L,49L,119L]}"); @@ -186,7 +194,7 @@ public void testArgumentNbtCompoundTag() { } @Test - public void testArgumentNbtTag() { + void testArgumentNbtTag() { var arg = ArgumentType.NBT("nbt"); assertArg(arg, StringBinaryTag.stringBinaryTag("string"), "string"); assertArg(arg, StringBinaryTag.stringBinaryTag("string"), "\"string\""); @@ -202,14 +210,14 @@ public void testArgumentNbtTag() { } @Test - public void testArgumentResource() { + void testArgumentResource() { var arg = ArgumentType.Resource("resource", "minecraft:block"); assertArg(arg, "minecraft:resource_example", "minecraft:resource_example"); assertInvalidArg(arg, "minecraft:invalid resource"); } @Test - public void testArgumentResourceLocation() { + void testArgumentResourceLocation() { var arg = ArgumentType.ResourceLocation("resource_location"); assertArg(arg, "minecraft:resource_location_example", "minecraft:resource_location_example"); assertInvalidArg(arg, "minecraft:invalid resource location"); @@ -217,14 +225,14 @@ public void testArgumentResourceLocation() { } @Test - public void testArgumentResourceOrTag() { + void testArgumentResourceOrTag() { var arg = ArgumentType.ResourceOrTag("resource_or_tag", "data/minecraft/tags/blocks"); assertArg(arg, "minecraft:resource_or_tag_example", "minecraft:resource_or_tag_example"); assertInvalidArg(arg, "minecraft:invalid resource or tag"); } @Test - public void testArgumentTime() { + void testArgumentTime() { var arg = ArgumentType.Time("time"); assertArg(arg, Duration.of(20, TimeUnit.SERVER_TICK), "20"); assertArg(arg, Duration.of(40, TimeUnit.SERVER_TICK), "40t"); @@ -236,14 +244,14 @@ public void testArgumentTime() { } @Test - public void testArgumentUUID() { + void testArgumentUUID() { var arg = ArgumentType.UUID("uuid"); assertInvalidArg(arg, "invalid_uuid"); assertArg(arg, UUID.fromString("10515090-26f2-49fa-b2ba-9594d4d0451f"), "10515090-26f2-49fa-b2ba-9594d4d0451f"); } @Test - public void testArgumentDouble() { + void testArgumentDouble() { var arg = ArgumentType.Double("double"); assertArg(arg, 2564d, "2564"); assertArg(arg, -591.981d, "-591.981"); @@ -252,7 +260,7 @@ public void testArgumentDouble() { } @Test - public void testArgumentFloat() { + void testArgumentFloat() { var arg = ArgumentType.Float("float"); assertArg(arg, 2564f, "2564"); assertArg(arg, -591.981f, "-591.981"); @@ -261,7 +269,7 @@ public void testArgumentFloat() { } @Test - public void testArgumentInteger() { + void testArgumentInteger() { var arg = ArgumentType.Integer("integer"); assertArg(arg, 2564, "2564"); assertInvalidArg(arg, "256.4"); @@ -269,15 +277,15 @@ public void testArgumentInteger() { } @Test - public void testArgumentLong() { + void testArgumentLong() { var arg = ArgumentType.Long("long"); - assertArg(arg, 2564l, "2564"); + assertArg(arg, 2564L, "2564"); assertInvalidArg(arg, "256.4"); assertInvalidArg(arg, "9223372036854775808"); } @Test - public void testArgumentRelativeBlockPosition() { + void testArgumentRelativeBlockPosition() { var arg = ArgumentType.RelativeBlockPosition("relative_block_position"); var vec = new Vec(-3, 14, 255); @@ -301,7 +309,7 @@ public void testArgumentRelativeBlockPosition() { } @Test - public void testArgumentRelativeVec2() { + void testArgumentRelativeVec2() { var arg = ArgumentType.RelativeVec2("relative_vec_2"); var vec = new Vec(-3, 14.25); @@ -322,7 +330,7 @@ public void testArgumentRelativeVec2() { } @Test - public void testArgumentRelativeVec3() { + void testArgumentRelativeVec3() { var arg = ArgumentType.RelativeVec3("relative_vec_3"); var vec = new Vec(-3, 14.25, 255); @@ -343,7 +351,7 @@ public void testArgumentRelativeVec3() { } @Test - public void testArgumentBoolean() { + void testArgumentBoolean() { var arg = ArgumentType.Boolean("boolean"); assertArg(arg, true, "true"); assertArg(arg, false, "false"); @@ -351,7 +359,7 @@ public void testArgumentBoolean() { } @Test - public void testArgumentEnum() { + void testArgumentEnum() { enum ExampleEnum {FIRST, SECOND, Third, fourth} var arg = ArgumentType.Enum("enum", ExampleEnum.class); @@ -379,7 +387,7 @@ enum ExampleEnum {FIRST, SECOND, Third, fourth} } @Test - public void testArgumentGroup() { + void testArgumentGroup() { var arg = ArgumentType.Group("group", ArgumentType.Integer("integer"), ArgumentType.String("string"), ArgumentType.Double("double")); // Test normal input @@ -405,7 +413,7 @@ public void testArgumentGroup() { } @Test - public void testArgumentLiteral() { + void testArgumentLiteral() { var arg = ArgumentType.Literal("literal"); assertArg(arg, "literal", "literal"); assertInvalidArg(arg, "not_literal"); @@ -413,7 +421,7 @@ public void testArgumentLiteral() { } @Test - public void testArgumentLoop() { + void testArgumentLoop() { var arg = ArgumentType.Loop("loop", ArgumentType.String("string"), ArgumentType.String("string2").map(s -> { throw new IllegalArgumentException("This argument should never be triggered"); })); @@ -423,7 +431,7 @@ public void testArgumentLoop() { } @Test - public void testArgumentString() { + void testArgumentString() { var arg = ArgumentType.String("string"); assertArg(arg, "text", "text"); assertArg(arg, "more text", "\"more text\""); @@ -433,7 +441,7 @@ public void testArgumentString() { } @Test - public void testArgumentStringArray() { + void testArgumentStringArray() { var arg = ArgumentType.StringArray("string_array"); assertArrayArg(arg, new String[]{"example", "text"}, "example text"); assertArrayArg(arg, new String[]{"some", "more", "placeholder", "text"}, "some more placeholder text"); @@ -443,7 +451,7 @@ public void testArgumentStringArray() { } @Test - public void testArgumentWord() { + void testArgumentWord() { var arg = ArgumentType.Word("word").from("word1", "word2", "word3"); assertArg(arg, "word1", "word1"); @@ -455,7 +463,7 @@ public void testArgumentWord() { } @Test - public void testArgumentMapWithSender() { + void testArgumentMapWithSender() { var serverSender = new ServerSender(); var arg = ArgumentType.Word("word").from("word1", "word2", "word3") diff --git a/src/test/java/net/minestom/server/entity/metadata/animal/FrogMetaTest.java b/src/test/java/net/minestom/server/entity/metadata/animal/FrogMetaTest.java index 1ba1805b527..dff4f20dac5 100644 --- a/src/test/java/net/minestom/server/entity/metadata/animal/FrogMetaTest.java +++ b/src/test/java/net/minestom/server/entity/metadata/animal/FrogMetaTest.java @@ -1,7 +1,6 @@ package net.minestom.server.entity.metadata.animal; import net.minestom.server.entity.metadata.animal.FrogMeta.Variant; -import net.minestom.server.network.NetworkBuffer; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; @@ -11,9 +10,9 @@ class FrogMetaTest { @Test void testFrogVariantRead() { - /*assertEquals(Variant.WARM, Variant.getVariant(Variant.WARM.ordinal())); + assertEquals(Variant.WARM, Variant.getVariant(Variant.WARM.ordinal())); assertEquals(Variant.TEMPERATE, Variant.getVariant(0)); assertNull(Variant.getVariant(-1)); - assertNull(Variant.getVariant(100));*/ + assertNull(Variant.getVariant(100)); } } \ No newline at end of file diff --git a/src/test/java/net/minestom/server/entity/player/PlayerBlockPlacementIntegrationTest.java b/src/test/java/net/minestom/server/entity/player/PlayerBlockPlacementIntegrationTest.java index 60b296aaf07..80dfa566688 100644 --- a/src/test/java/net/minestom/server/entity/player/PlayerBlockPlacementIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/player/PlayerBlockPlacementIntegrationTest.java @@ -24,11 +24,11 @@ import static org.junit.jupiter.api.Assertions.assertEquals; @EnvTest -public class PlayerBlockPlacementIntegrationTest { +class PlayerBlockPlacementIntegrationTest { @ParameterizedTest @MethodSource("placeBlockFromAdventureModeParams") - public void placeBlockFromAdventureMode(Block baseBlock, BlockPredicates canPlaceOn, Env env) { + void placeBlockFromAdventureMode(Block baseBlock, BlockPredicates canPlaceOn, Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var player = connection.connect(instance, new Pos(0, 42, 0)).join(); diff --git a/src/test/java/net/minestom/server/instance/BlockTest.java b/src/test/java/net/minestom/server/instance/BlockTest.java index 085ca6db8c9..d762b4df59d 100644 --- a/src/test/java/net/minestom/server/instance/BlockTest.java +++ b/src/test/java/net/minestom/server/instance/BlockTest.java @@ -14,10 +14,10 @@ import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.assertEquals; -public class BlockTest { +class BlockTest { @Test - public void testNBT() { + void testNBT() { Block block = Block.CHEST; assertFalse(block.hasNbt()); assertNull(block.nbt()); @@ -36,7 +36,7 @@ public void testNBT() { } @Test - public void validProperties() { + void validProperties() { Block block = Block.CHEST; assertEquals(block.properties(), Objects.requireNonNull(Block.fromBlockId(block.id())).properties()); @@ -54,7 +54,7 @@ public void validProperties() { } @Test - public void invalidProperties() { + void invalidProperties() { Block block = Block.CHEST; assertThrows(Exception.class, () -> block.withProperty("random", "randomKey")); assertThrows(Exception.class, () -> block.withProperties(Map.of("random", "randomKey"))); @@ -72,14 +72,14 @@ public void testEquality() { } @Test - public void testMutability() { + void testMutability() { Block block = Block.CHEST; assertThrows(Exception.class, () -> block.properties().put("facing", "north")); assertThrows(Exception.class, () -> block.withProperty("facing", "north").properties().put("facing", "south")); } @Test - public void testShape() { + void testShape() { Point start = Block.LANTERN.registry().collisionShape().relativeStart(); Point end = Block.LANTERN.registry().collisionShape().relativeEnd(); diff --git a/src/test/java/net/minestom/server/inventory/InventoryIntegrationTest.java b/src/test/java/net/minestom/server/inventory/InventoryIntegrationTest.java index 24f89ccf1fa..193d74d6a06 100644 --- a/src/test/java/net/minestom/server/inventory/InventoryIntegrationTest.java +++ b/src/test/java/net/minestom/server/inventory/InventoryIntegrationTest.java @@ -16,12 +16,13 @@ import static org.junit.jupiter.api.Assertions.*; @EnvTest -public class InventoryIntegrationTest { +class InventoryIntegrationTest { + private static final Component TITLE = Component.text("title"); private static final ItemStack MAGIC_STACK = ItemStack.of(Material.DIAMOND, 3); @Test - public void setSlotDuplicateTest(Env env) { + void setSlotDuplicateTest(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var player = connection.connect(instance, new Pos(0, 42, 0)).join(); @@ -45,7 +46,7 @@ public void setSlotDuplicateTest(Env env) { } @Test - public void setCursorItemDuplicateTest(Env env) { + void setCursorItemDuplicateTest(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var player = connection.connect(instance, new Pos(0, 42, 0)).join(); @@ -69,7 +70,7 @@ public void setCursorItemDuplicateTest(Env env) { } @Test - public void clearInventoryTest(Env env) { + void clearInventoryTest(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var player = connection.connect(instance, new Pos(0, 42, 0)).join(); @@ -145,11 +146,11 @@ public void clearingPlayerInventoryClearsCursorTest(Env env) { } @Test - public void closeInventoryTest(Env env) { + void closeInventoryTest(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var player = connection.connect(instance, new Pos(0, 42, 0)).join(); - final var inventory = new Inventory(InventoryType.CHEST_1_ROW, Component.text("title")); + final var inventory = new Inventory(InventoryType.CHEST_1_ROW, TITLE); player.openInventory(inventory); assertSame(inventory, player.getOpenInventory()); player.closeInventory(); @@ -157,12 +158,12 @@ public void closeInventoryTest(Env env) { } @Test - public void openInventoryOnItemDropFromInventoryClosingTest(Env env) { + void openInventoryOnItemDropFromInventoryClosingTest(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var player = connection.connect(instance, new Pos(0, 42, 0)).join(); var listener = env.listen(ItemDropEvent.class); - final var firstInventory = new Inventory(InventoryType.CHEST_1_ROW, Component.text("title")); + final var firstInventory = new Inventory(InventoryType.CHEST_1_ROW, TITLE); player.openInventory(firstInventory); assertSame(firstInventory, player.getOpenInventory()); player.getInventory().setCursorItem(ItemStack.of(Material.STONE)); @@ -172,8 +173,8 @@ public void openInventoryOnItemDropFromInventoryClosingTest(Env env) { assertNull(player.getOpenInventory()); player.openInventory(firstInventory); - player.getInventory().setCursorItem(ItemStack.of(Material.STONE)); - final var secondInventory = new Inventory(InventoryType.CHEST_1_ROW, Component.text("title")); + firstInventory.setCursorItem(player, ItemStack.of(Material.STONE)); + final var secondInventory = new Inventory(InventoryType.CHEST_1_ROW, TITLE); listener.followup(event -> event.getPlayer().openInventory(secondInventory)); player.closeInventory(); assertSame(secondInventory, player.getOpenInventory()); diff --git a/src/test/java/net/minestom/server/network/NetworkBufferTest.java b/src/test/java/net/minestom/server/network/NetworkBufferTest.java index ea02bdedd47..16cdeb4cb11 100644 --- a/src/test/java/net/minestom/server/network/NetworkBufferTest.java +++ b/src/test/java/net/minestom/server/network/NetworkBufferTest.java @@ -18,10 +18,10 @@ import static net.minestom.server.network.NetworkBuffer.*; import static org.junit.jupiter.api.Assertions.*; -public class NetworkBufferTest { +class NetworkBufferTest { @Test - public void resize() { + void resize() { var buffer = new NetworkBuffer(6); buffer.write(INT, 6); assertEquals(4, buffer.writeIndex()); @@ -45,7 +45,7 @@ public void resize() { } @Test - public void readableBytes() { + void readableBytes() { var buffer = new NetworkBuffer(); assertEquals(0, buffer.readableBytes()); @@ -63,7 +63,7 @@ public void readableBytes() { } @Test - public void extractBytes() { + void extractBytes() { var buffer = new NetworkBuffer(); buffer.write(BYTE, (byte) 25); @@ -90,7 +90,7 @@ public void extractBytes() { } @Test - public void makeArray() { + void makeArray() { assertArrayEquals(new byte[0], NetworkBuffer.makeArray(buffer -> { })); @@ -103,7 +103,7 @@ public void makeArray() { } @Test - public void numbers() { + void numbers() { assertBufferType(BOOLEAN, false, new byte[]{0x00}); assertBufferType(BOOLEAN, true, new byte[]{0x01}); @@ -196,7 +196,7 @@ public void numbers() { } @Test - public void varInt() { + void varInt() { assertBufferType(VAR_INT, 0, new byte[]{0}); assertBufferType(VAR_INT, 1, new byte[]{0x01}); assertBufferType(VAR_INT, 2, new byte[]{0x02}); @@ -212,7 +212,7 @@ public void varInt() { } @Test - public void varLong() { + void varLong() { assertBufferType(VAR_LONG, 0L, new byte[]{0}); assertBufferType(VAR_LONG, 1L, new byte[]{0x01}); assertBufferType(VAR_LONG, 2L, new byte[]{0x02}); @@ -227,14 +227,14 @@ public void varLong() { } @Test - public void rawBytes() { + void rawBytes() { // FIXME: currently break because the array is identity compared //assertBufferType(NetworkBuffer.RAW_BYTES, new byte[]{0x0B, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64}, // new byte[]{0x0B, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64}); } @Test - public void string() { + void string() { assertBufferType(STRING, "Hello World", new byte[]{0x0B, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64}); } @@ -245,12 +245,12 @@ public void nbt() { } @Test - public void component() { + void component() { assertBufferType(COMPONENT, Component.text("Hello world")); } @Test - public void uuid() { + void uuid() { assertBufferType(UUID, new UUID(0, 0), new byte[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}); assertBufferType(UUID, new UUID(1, 1), new byte[]{0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}); } @@ -263,13 +263,13 @@ public void item() { } @Test - public void optional() { + void optional() { assertBufferTypeOptional(BOOLEAN, null, new byte[]{0}); assertBufferTypeOptional(BOOLEAN, true, new byte[]{1, 1}); } @Test - public void collection() { + void collection() { assertBufferTypeCollection(BOOLEAN, List.of(), new byte[]{0}); assertBufferTypeCollection(BOOLEAN, List.of(true), new byte[]{0x01, 0x01}); } From d5b7714bef1ad2d6e7a42bc6328f3b39910c004d Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Wed, 22 May 2024 20:33:50 +0200 Subject: [PATCH 07/93] Fix compile mistake after apply patches --- .../java/net/minestom/server/item/banner/BannerPattern.java | 5 +++-- .../net/minestom/server/item/banner/BannerPatternImpl.java | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/minestom/server/item/banner/BannerPattern.java b/src/main/java/net/minestom/server/item/banner/BannerPattern.java index 582bc644d42..86d320f1285 100644 --- a/src/main/java/net/minestom/server/item/banner/BannerPattern.java +++ b/src/main/java/net/minestom/server/item/banner/BannerPattern.java @@ -2,6 +2,7 @@ import net.kyori.adventure.key.Key; import net.minestom.server.registry.ProtocolObject; +import net.minestom.server.registry.StaticProtocolObject; import net.minestom.server.utils.NamespaceID; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -9,7 +10,7 @@ import java.util.Collection; // Microtus - Banner and Shield Meta -public sealed interface BannerPattern extends ProtocolObject, BannerPatterns permits BannerPatternImpl { +public sealed interface BannerPattern extends StaticProtocolObject, BannerPatterns permits BannerPatternImpl { static @NotNull Collection<@NotNull BannerPattern> values() { return BannerPatternImpl.values(); } @@ -32,7 +33,7 @@ public sealed interface BannerPattern extends ProtocolObject, BannerPatterns per @Override default @NotNull Key key() { - return ProtocolObject.super.key(); + return StaticProtocolObject.super.key(); } @NotNull String identifier(); diff --git a/src/main/java/net/minestom/server/item/banner/BannerPatternImpl.java b/src/main/java/net/minestom/server/item/banner/BannerPatternImpl.java index 063b5565ba8..2f1dd27b1c5 100644 --- a/src/main/java/net/minestom/server/item/banner/BannerPatternImpl.java +++ b/src/main/java/net/minestom/server/item/banner/BannerPatternImpl.java @@ -12,7 +12,7 @@ public record BannerPatternImpl(NamespaceID namespace, int id, String identifier) implements BannerPattern { private static Map IDENTIFIERS = new HashMap<>(); - private static final Registry.Container CONTAINER = Registry.createContainer(Registry.Resource.BANNER_PATTERNS, + private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.BANNER_PATTERNS, (namespace, properties) -> { int id = properties.getInt("id"); String identifier = properties.getString("identifier"); From 599c117794098b9c4540fde4255259667c84e006 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Wed, 22 May 2024 20:42:46 +0200 Subject: [PATCH 08/93] Fix compile mistake after apply patches --- .../net/minestom/server/entity/Player.java | 2 +- .../server/network/NetworkBufferTypes.java | 639 ------------------ 2 files changed, 1 insertion(+), 640 deletions(-) delete mode 100644 src/main/java/net/minestom/server/network/NetworkBufferTypes.java diff --git a/src/main/java/net/minestom/server/entity/Player.java b/src/main/java/net/minestom/server/entity/Player.java index 4967615440e..cc19d22a6ea 100644 --- a/src/main/java/net/minestom/server/entity/Player.java +++ b/src/main/java/net/minestom/server/entity/Player.java @@ -2497,7 +2497,7 @@ public void refresh(String locale, byte viewDistance, ChatMessageType chatMessag } boolean isInPlayState = getPlayerConnection().getConnectionState() == ConnectionState.PLAY; - PlayerMeta playerMeta = getPlayerMeta(); + PlayerMeta playerMeta = getUnsafeEntityMeta(); if (isInPlayState) playerMeta.setNotifyAboutChanges(false); playerMeta.setDisplayedSkinParts(displayedSkinParts); playerMeta.setRightMainHand(this.mainHand == MainHand.RIGHT); diff --git a/src/main/java/net/minestom/server/network/NetworkBufferTypes.java b/src/main/java/net/minestom/server/network/NetworkBufferTypes.java deleted file mode 100644 index 13cc9079a34..00000000000 --- a/src/main/java/net/minestom/server/network/NetworkBufferTypes.java +++ /dev/null @@ -1,639 +0,0 @@ -package net.minestom.server.network; - -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.minestom.server.adventure.serializer.nbt.NbtComponentSerializer; -import net.minestom.server.coordinate.Point; -import net.minestom.server.coordinate.Vec; -import net.minestom.server.entity.Entity; -import net.minestom.server.entity.metadata.animal.FrogMeta; -import net.minestom.server.entity.metadata.animal.SnifferMeta; -import net.minestom.server.entity.metadata.animal.tameable.CatMeta; -import net.minestom.server.item.ItemStack; -import net.minestom.server.item.Material; -import net.minestom.server.network.packet.server.play.data.DeathLocation; -import net.minestom.server.utils.Direction; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.UnknownNullability; -import org.jglrxavpok.hephaistos.nbt.*; - -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.nio.charset.StandardCharsets; -import java.util.UUID; - -final class NetworkBufferTypes { - private static final int SEGMENT_BITS = 0x7F; - private static final int CONTINUE_BIT = 0x80; - - static final TypeImpl BOOLEAN = new TypeImpl<>(Boolean.class, - (buffer, value) -> { - buffer.ensureSize(1); - buffer.nioBuffer.put(buffer.writeIndex(), value ? (byte) 1 : (byte) 0); - return 1; - }, - buffer -> { - final byte value = buffer.nioBuffer.get(buffer.readIndex()); - buffer.readIndex += 1; - return value == 1; - }); - static final TypeImpl BYTE = new TypeImpl<>(Byte.class, - (buffer, value) -> { - buffer.ensureSize(1); - buffer.nioBuffer.put(buffer.writeIndex(), value); - return 1; - }, - buffer -> { - final byte value = buffer.nioBuffer.get(buffer.readIndex()); - buffer.readIndex += 1; - return value; - }); - static final TypeImpl SHORT = new TypeImpl<>(Short.class, - (buffer, value) -> { - buffer.ensureSize(2); - buffer.nioBuffer.putShort(buffer.writeIndex(), value); - return 2; - }, - buffer -> { - final short value = buffer.nioBuffer.getShort(buffer.readIndex()); - buffer.readIndex += 2; - return value; - }); - static final TypeImpl UNSIGNED_SHORT = new TypeImpl<>(Integer.class, - (buffer, value) -> { - buffer.ensureSize(2); - buffer.nioBuffer.putShort(buffer.writeIndex(), (short) (value & 0xFFFF)); - return 2; - }, - buffer -> { - final short value = buffer.nioBuffer.getShort(buffer.readIndex()); - buffer.readIndex += 2; - return value & 0xFFFF; - }); - static final TypeImpl INT = new TypeImpl<>(Integer.class, - (buffer, value) -> { - buffer.ensureSize(4); - buffer.nioBuffer.putInt(buffer.writeIndex(), value); - return 4; - }, - buffer -> { - final int value = buffer.nioBuffer.getInt(buffer.readIndex()); - buffer.readIndex += 4; - return value; - }); - static final TypeImpl LONG = new TypeImpl<>(Long.class, - (buffer, value) -> { - buffer.ensureSize(8); - buffer.nioBuffer.putLong(buffer.writeIndex(), value); - return 8; - }, - buffer -> { - final long value = buffer.nioBuffer.getLong(buffer.readIndex()); - buffer.readIndex += 8; - return value; - }); - static final TypeImpl FLOAT = new TypeImpl<>(Float.class, - (buffer, value) -> { - buffer.ensureSize(4); - buffer.nioBuffer.putFloat(buffer.writeIndex(), value); - return 4; - }, - buffer -> { - final float value = buffer.nioBuffer.getFloat(buffer.readIndex()); - buffer.readIndex += 4; - return value; - }); - static final TypeImpl DOUBLE = new TypeImpl<>(Double.class, - (buffer, value) -> { - buffer.ensureSize(8); - buffer.nioBuffer.putDouble(buffer.writeIndex(), value); - return 8; - }, - buffer -> { - final double value = buffer.nioBuffer.getDouble(buffer.readIndex()); - buffer.readIndex += 8; - return value; - }); - static final TypeImpl VAR_INT = new TypeImpl<>(Integer.class, - (buffer, boxed) -> { - final int value = boxed; - final int index = buffer.writeIndex(); - if ((value & (0xFFFFFFFF << 7)) == 0) { - buffer.ensureSize(1); - buffer.nioBuffer.put(index, (byte) value); - return 1; - } else if ((value & (0xFFFFFFFF << 14)) == 0) { - buffer.ensureSize(2); - buffer.nioBuffer.putShort(index, (short) ((value & 0x7F | 0x80) << 8 | (value >>> 7))); - return 2; - } else if ((value & (0xFFFFFFFF << 21)) == 0) { - buffer.ensureSize(3); - var nio = buffer.nioBuffer; - nio.put(index, (byte) (value & 0x7F | 0x80)); - nio.put(index + 1, (byte) ((value >>> 7) & 0x7F | 0x80)); - nio.put(index + 2, (byte) (value >>> 14)); - return 3; - } else if ((value & (0xFFFFFFFF << 28)) == 0) { - buffer.ensureSize(4); - var nio = buffer.nioBuffer; - nio.putInt(index, (value & 0x7F | 0x80) << 24 | (((value >>> 7) & 0x7F | 0x80) << 16) - | ((value >>> 14) & 0x7F | 0x80) << 8 | (value >>> 21)); - return 4; - } else { - buffer.ensureSize(5); - var nio = buffer.nioBuffer; - nio.putInt(index, (value & 0x7F | 0x80) << 24 | ((value >>> 7) & 0x7F | 0x80) << 16 - | ((value >>> 14) & 0x7F | 0x80) << 8 | ((value >>> 21) & 0x7F | 0x80)); - nio.put(index + 4, (byte) (value >>> 28)); - return 5; - } - }, - buffer -> { - int index = buffer.readIndex(); - // https://github.com/jvm-profiling-tools/async-profiler/blob/a38a375dc62b31a8109f3af97366a307abb0fe6f/src/converter/one/jfr/JfrReader.java#L393 - int result = 0; - for (int shift = 0; ; shift += 7) { - byte b = buffer.nioBuffer.get(index++); - result |= (b & 0x7f) << shift; - if (b >= 0) { - buffer.readIndex += index - buffer.readIndex(); - return result; - } - } - }); - static final TypeImpl VAR_LONG = new TypeImpl<>(Long.class, - (buffer, value) -> { - buffer.ensureSize(10); - int size = 0; - while (true) { - if ((value & ~((long) SEGMENT_BITS)) == 0) { - buffer.nioBuffer.put(buffer.writeIndex() + size, (byte) value.intValue()); - return size + 1; - } - buffer.nioBuffer.put(buffer.writeIndex() + size, (byte) (value & SEGMENT_BITS | CONTINUE_BIT)); - size++; - // Note: >>> means that the sign bit is shifted with the rest of the number rather than being left alone - value >>>= 7; - } - }, - buffer -> { - int length = 0; - - long value = 0; - int position = 0; - byte currentByte; - - while (true) { - currentByte = buffer.nioBuffer.get(buffer.readIndex() + length); - length++; - value |= (long) (currentByte & SEGMENT_BITS) << position; - if ((currentByte & CONTINUE_BIT) == 0) break; - position += 7; - if (position >= 64) throw new RuntimeException("VarLong is too big"); - } - buffer.readIndex += length; - return value; - }); - static final TypeImpl RAW_BYTES = new TypeImpl<>(byte[].class, - (buffer, value) -> { - buffer.ensureSize(value.length); - buffer.nioBuffer.put(buffer.writeIndex(), value); - return value.length; - }, - buffer -> { - final int limit = buffer.nioBuffer.limit(); - final int length = limit - buffer.readIndex(); - assert length > 0 : "Invalid remaining: " + length; - final byte[] bytes = new byte[length]; - buffer.nioBuffer.get(buffer.readIndex(), bytes); - buffer.readIndex += length; - return bytes; - }); - static final TypeImpl STRING = new TypeImpl<>(String.class, - (buffer, value) -> { - final byte[] bytes = value.getBytes(StandardCharsets.UTF_8); - buffer.write(VAR_INT, bytes.length); - buffer.write(RAW_BYTES, bytes); - return -1; - }, - buffer -> { - final int length = buffer.read(VAR_INT); - byte[] bytes = new byte[length]; - buffer.nioBuffer.get(buffer.readIndex(), bytes); - buffer.readIndex += length; - return new String(bytes, StandardCharsets.UTF_8); - }); - static final TypeImpl NBT = new TypeImpl<>(NBT.class, - (buffer, value) -> { - NBTWriter nbtWriter = buffer.nbtWriter; - if (nbtWriter == null) { - nbtWriter = new NBTWriter(new OutputStream() { - @Override - public void write(int b) { - buffer.write(BYTE, (byte) b); - } - }, CompressedProcesser.NONE); - buffer.nbtWriter = nbtWriter; - } - try { - if (value == NBTEnd.INSTANCE) { - // Kotlin - https://discord.com/channels/706185253441634317/706186227493109860/1163703658341478462 - buffer.write(BYTE, (byte) NBTType.TAG_End.getOrdinal()); - } else { - buffer.write(BYTE, (byte) value.getID().getOrdinal()); - nbtWriter.writeRaw(value); - } - } catch (IOException e) { - throw new RuntimeException(e); - } - return -1; - }, - buffer -> { - NBTReader nbtReader = buffer.nbtReader; - if (nbtReader == null) { - nbtReader = new NBTReader(new InputStream() { - @Override - public int read() { - return buffer.read(BYTE) & 0xFF; - } - - @Override - public int available() { - return buffer.readableBytes(); - } - }, CompressedProcesser.NONE); - buffer.nbtReader = nbtReader; - } - try { - byte tagId = buffer.read(BYTE); - if (tagId == NBTType.TAG_End.getOrdinal()) - return NBTEnd.INSTANCE; - return nbtReader.readRaw(tagId); - } catch (IOException | NBTException e) { - throw new RuntimeException(e); - } - }); - static final TypeImpl BLOCK_POSITION = new TypeImpl<>(Point.class, - (buffer, value) -> { - final int blockX = value.blockX(); - final int blockY = value.blockY(); - final int blockZ = value.blockZ(); - final long longPos = (((long) blockX & 0x3FFFFFF) << 38) | - (((long) blockZ & 0x3FFFFFF) << 12) | - ((long) blockY & 0xFFF); - buffer.write(LONG, longPos); - return -1; - }, - buffer -> { - final long value = buffer.read(LONG); - final int x = (int) (value >> 38); - final int y = (int) (value << 52 >> 52); - final int z = (int) (value << 26 >> 38); - return new Vec(x, y, z); - }); - static final TypeImpl COMPONENT = new TypeImpl<>(Component.class, - (buffer, value) -> { - final NBT nbt = NbtComponentSerializer.nbt().serialize(value); - buffer.write(NBT, nbt); - return -1; - }, - buffer -> { - final NBT nbt = buffer.read(NBT); - return NbtComponentSerializer.nbt().deserialize(nbt); - }); - static final TypeImpl JSON_COMPONENT = new TypeImpl<>(Component.class, - (buffer, value) -> { - final String json = GsonComponentSerializer.gson().serialize(value); - buffer.write(STRING, json); - return -1; - }, - buffer -> { - final String json = buffer.read(STRING); - return GsonComponentSerializer.gson().deserialize(json); - }); - static final TypeImpl UUID = new TypeImpl<>(UUID.class, - (buffer, value) -> { - buffer.write(LONG, value.getMostSignificantBits()); - buffer.write(LONG, value.getLeastSignificantBits()); - return -1; - }, - buffer -> { - final long mostSignificantBits = buffer.read(LONG); - final long leastSignificantBits = buffer.read(LONG); - return new UUID(mostSignificantBits, leastSignificantBits); - }); - static final TypeImpl ITEM = new TypeImpl<>(ItemStack.class, - (buffer, value) -> { - if (value.isAir()) { - buffer.write(BOOLEAN, false); - return -1; - } - buffer.write(BOOLEAN, true); - buffer.write(VAR_INT, value.material().id()); - buffer.write(BYTE, (byte) value.amount()); - - // Vanilla does not write an empty object, just an end tag. - NBTCompound nbt = value.meta().toNBT(); - buffer.write(NBT, nbt.isEmpty() ? NBTEnd.INSTANCE : nbt); - return -1; - }, - buffer -> { - final boolean present = buffer.read(BOOLEAN); - if (!present) return ItemStack.AIR; - - final int id = buffer.read(VAR_INT); - final Material material = Material.fromId(id); - if (material == null) throw new RuntimeException("Unknown material id: " + id); - - final int amount = buffer.read(BYTE); - final NBT nbt = buffer.read(NBT); - if (!(nbt instanceof NBTCompound compound)) { - return ItemStack.of(material, amount); - } - - return ItemStack.fromNBT(material, compound, amount); - }); - static final TypeImpl BYTE_ARRAY = new TypeImpl<>(byte[].class, - (buffer, value) -> { - buffer.write(VAR_INT, value.length); - buffer.write(RAW_BYTES, value); - return -1; - }, - buffer -> { - final int length = buffer.read(VAR_INT); - final byte[] bytes = new byte[length]; - buffer.nioBuffer.get(buffer.readIndex(), bytes); - buffer.readIndex += length; - return bytes; - }); - static final TypeImpl LONG_ARRAY = new TypeImpl<>(long[].class, - (buffer, value) -> { - buffer.write(VAR_INT, value.length); - for (long l : value) { - buffer.write(LONG, l); - } - return -1; - }, - buffer -> { - final int length = buffer.read(VAR_INT); - final long[] longs = new long[length]; - for (int i = 0; i < length; i++) { - longs[i] = buffer.read(LONG); - } - return longs; - }); - static final TypeImpl VAR_INT_ARRAY = new TypeImpl<>(int[].class, - (buffer, value) -> { - buffer.write(VAR_INT, value.length); - for (int i : value) { - buffer.write(VAR_INT, i); - } - return -1; - }, - buffer -> { - final int length = buffer.read(VAR_INT); - final int[] ints = new int[length]; - for (int i = 0; i < length; i++) { - ints[i] = buffer.read(VAR_INT); - } - return ints; - }); - static final TypeImpl VAR_LONG_ARRAY = new TypeImpl<>(long[].class, - (buffer, value) -> { - buffer.write(VAR_INT, value.length); - for (long l : value) { - buffer.write(VAR_LONG, l); - } - return -1; - }, - buffer -> { - final int length = buffer.read(VAR_INT); - final long[] longs = new long[length]; - for (int i = 0; i < length; i++) { - longs[i] = buffer.read(VAR_LONG); - } - return longs; - }); - // METADATA - static final TypeImpl OPT_CHAT = new TypeImpl<>(Component.class, - (buffer, value) -> { - if (value == null) { - buffer.write(BOOLEAN, false); - return -1; - } - buffer.write(BOOLEAN, true); - buffer.write(COMPONENT, value); - return -1; - }, - buffer -> { - final boolean present = buffer.read(BOOLEAN); - if (!present) return null; - return buffer.read(COMPONENT); - }); - static final TypeImpl ROTATION = new TypeImpl<>(Point.class, - (buffer, value) -> { - buffer.write(FLOAT, (float) value.x()); - buffer.write(FLOAT, (float) value.y()); - buffer.write(FLOAT, (float) value.z()); - return -1; - }, - buffer -> { - final float x = buffer.read(FLOAT); - final float y = buffer.read(FLOAT); - final float z = buffer.read(FLOAT); - return new Vec(x, y, z); - }); - static final TypeImpl OPT_BLOCK_POSITION = new TypeImpl<>(Point.class, - (buffer, value) -> { - if (value == null) { - buffer.write(BOOLEAN, false); - return -1; - } - buffer.write(BOOLEAN, true); - buffer.write(BLOCK_POSITION, value); - return -1; - }, - buffer -> { - final boolean present = buffer.read(BOOLEAN); - if (!present) return null; - return buffer.read(BLOCK_POSITION); - }); - static final TypeImpl DIRECTION = new TypeImpl<>(Direction.class, - (buffer, value) -> { - buffer.write(VAR_INT, value.ordinal()); - return -1; - }, - buffer -> { - final int ordinal = buffer.read(VAR_INT); - return Direction.values()[ordinal]; - }); - static final TypeImpl OPT_UUID = new TypeImpl<>(UUID.class, - (buffer, value) -> { - if (value == null) { - buffer.write(BOOLEAN, false); - return -1; - } - buffer.write(BOOLEAN, true); - buffer.write(UUID, value); - return -1; - }, - buffer -> { - final boolean present = buffer.read(BOOLEAN); - if (!present) return null; - return buffer.read(UUID); - }); - static final TypeImpl BLOCK_STATE = new TypeImpl<>(Integer.class, - (buffer, value) -> { - buffer.write(NetworkBuffer.VAR_INT, value); - return -1; - }, - buffer -> buffer.read(VAR_INT)); - static final TypeImpl OPT_BLOCK_STATE = new TypeImpl<>(Integer.class, - (buffer, value) -> { - if (value == null) { - buffer.write(NetworkBuffer.VAR_INT, 0); - return -1; - } - buffer.write(VAR_INT, value); - return -1; - }, - buffer -> { - final int value = buffer.read(VAR_INT); - return value == 0 ? null : value; - }); - static final TypeImpl VILLAGER_DATA = new TypeImpl<>(int[].class, - (buffer, value) -> { - buffer.write(VAR_INT, value[0]); - buffer.write(VAR_INT, value[1]); - buffer.write(VAR_INT, value[2]); - return -1; - }, - buffer -> { - final int[] value = new int[3]; - value[0] = buffer.read(VAR_INT); - value[1] = buffer.read(VAR_INT); - value[2] = buffer.read(VAR_INT); - return value; - }); - static final TypeImpl OPT_VAR_INT = new TypeImpl<>(int.class, - (buffer, value) -> { - if (value == null) { - buffer.write(VAR_INT, 0); - return -1; - } - buffer.write(VAR_INT, value + 1); - return -1; - }, - buffer -> { - final int value = buffer.read(VAR_INT); - return value == 0 ? null : value - 1; - }); - static final TypeImpl POSE = new TypeImpl<>(Entity.Pose.class, - (buffer, value) -> { - buffer.write(VAR_INT, value.ordinal()); - return -1; - }, - buffer -> { - final int ordinal = buffer.read(VAR_INT); - return Entity.Pose.values()[ordinal]; - }); - static final TypeImpl DEATH_LOCATION = new TypeImpl<>(DeathLocation.class, - (buffer, value) -> { - if (value == null) { - buffer.write(BOOLEAN, false); - } else { - buffer.write(BOOLEAN, true); - buffer.write(STRING, value.dimension()); - buffer.write(BLOCK_POSITION, value.position()); - } - return -1; - }, - buffer -> { - if (buffer.read(BOOLEAN)) { - return new DeathLocation(buffer.read(STRING), buffer.read(BLOCK_POSITION)); - } - return null; - }); - static final TypeImpl CAT_VARIANT = new TypeImpl<>(CatMeta.Variant.class, - (buffer, value) -> { - buffer.write(VAR_INT, value.ordinal()); - return -1; - }, - buffer -> { - final int ordinal = buffer.read(VAR_INT); - return CatMeta.Variant.values()[ordinal]; - }); - static final TypeImpl FROG_VARIANT = new TypeImpl<>(FrogMeta.Variant.class, - (buffer, value) -> { - buffer.write(VAR_INT, value.ordinal()); - return -1; - }, - buffer -> { - final int ordinal = buffer.read(VAR_INT); - return FrogMeta.Variant.getVariant(ordinal); // Microtus - meta update - }); - static final TypeImpl SNIFFER_STATE = new TypeImpl<>(SnifferMeta.State.class, - (buffer, value) -> { - buffer.write(VAR_INT, value.ordinal()); - return -1; - }, - buffer -> { - final int ordinal = buffer.read(VAR_INT); - return SnifferMeta.State.values()[ordinal]; - }); - static final TypeImpl VECTOR3 = new TypeImpl<>(Point.class, - (buffer, value) -> { - buffer.write(FLOAT, (float) value.x()); - buffer.write(FLOAT, (float) value.y()); - buffer.write(FLOAT, (float) value.z()); - return -1; - }, - buffer -> { - final float x = buffer.read(FLOAT); - final float y = buffer.read(FLOAT); - final float z = buffer.read(FLOAT); - return new Vec(x, y, z); - }); - static final TypeImpl VECTOR3D = new TypeImpl<>(Point.class, - (buffer, value) -> { - buffer.write(DOUBLE, value.x()); - buffer.write(DOUBLE, value.y()); - buffer.write(DOUBLE, value.z()); - return -1; - }, - buffer -> { - final double x = buffer.read(DOUBLE); - final double y = buffer.read(DOUBLE); - final double z = buffer.read(DOUBLE); - return new Vec(x, y, z); - }); - static final TypeImpl QUATERNION = new TypeImpl<>(float[].class, - (buffer, value) -> { - buffer.write(FLOAT, value[0]); - buffer.write(FLOAT, value[1]); - buffer.write(FLOAT, value[2]); - buffer.write(FLOAT, value[3]); - return -1; - }, - buffer -> { - final float x = buffer.read(FLOAT); - final float y = buffer.read(FLOAT); - final float z = buffer.read(FLOAT); - final float w = buffer.read(FLOAT); - return new float[]{x, y, z, w}; - }); - - record TypeImpl(@NotNull Class type, - @NotNull TypeWriter writer, - @NotNull TypeReader reader) implements NetworkBuffer.Type { - } - - interface TypeWriter { - long write(@NotNull NetworkBuffer buffer, @UnknownNullability T value); - } - - interface TypeReader { - @UnknownNullability T read(@NotNull NetworkBuffer buffer); - } -} From cae0c7a4465edf15860b100a76e9db46438d9422 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Thu, 23 May 2024 07:10:21 +0200 Subject: [PATCH 09/93] Move miss landed classes after patching source --- .../minestom.common-conventions.gradle.kts | 28 ------- .../minestom.native-conventions.gradle.kts | 14 ---- ...minestom.publishing-conventions.gradle.kts | 40 ---------- .../microtus/ExtensionPlugin.kt | 76 ------------------ .../microtus/GenerateExtension.kt | 79 ------------------- .../microtus/models/Extension.kt | 76 ------------------ 6 files changed, 313 deletions(-) delete mode 100644 src/main/kotlin/minestom.common-conventions.gradle.kts delete mode 100644 src/main/kotlin/minestom.native-conventions.gradle.kts delete mode 100644 src/main/kotlin/minestom.publishing-conventions.gradle.kts delete mode 100644 src/main/kotlin/net/onelitefeather/microtus/ExtensionPlugin.kt delete mode 100644 src/main/kotlin/net/onelitefeather/microtus/GenerateExtension.kt delete mode 100644 src/main/kotlin/net/onelitefeather/microtus/models/Extension.kt diff --git a/src/main/kotlin/minestom.common-conventions.gradle.kts b/src/main/kotlin/minestom.common-conventions.gradle.kts deleted file mode 100644 index 6c56062ffab..00000000000 --- a/src/main/kotlin/minestom.common-conventions.gradle.kts +++ /dev/null @@ -1,28 +0,0 @@ -plugins { - java -} - -// Always exclude checker-qual. This is the single most annoying thing that always reappears. -configurations.all { - // We only use Jetbrains Annotations - exclude("org.checkerframework", "checker-qual") -} - -java { - toolchain { - languageVersion.set(JavaLanguageVersion.of(21)) - } -} - -tasks { - withType { - // We are fully aware, that we should be suppressing these instead of ignoring them here, but man keep my terminal clean. - options.compilerArgs.addAll(listOf("-Xlint:none", "-Xlint:-deprecation", "-Xlint:-unchecked")) - } - withType { - useJUnitPlatform() - // Viewable packets make tracking harder. Could be re-enabled later. - jvmArgs("-Dminestom.viewable-packet=false") - jvmArgs("-Dminestom.inside-test=true") - } -} \ No newline at end of file diff --git a/src/main/kotlin/minestom.native-conventions.gradle.kts b/src/main/kotlin/minestom.native-conventions.gradle.kts deleted file mode 100644 index 4a873e818bb..00000000000 --- a/src/main/kotlin/minestom.native-conventions.gradle.kts +++ /dev/null @@ -1,14 +0,0 @@ -plugins { - id("minestom.common-conventions") - id("org.graalvm.buildtools.native") -} - -graalvmNative { - binaries { - named("main") { - buildArgs.add("--allow-incomplete-classpath") - // One day toolchains will support getting this automagically, but that day is not today. - toolchainDetection.set(false) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/minestom.publishing-conventions.gradle.kts b/src/main/kotlin/minestom.publishing-conventions.gradle.kts deleted file mode 100644 index 305dd158be3..00000000000 --- a/src/main/kotlin/minestom.publishing-conventions.gradle.kts +++ /dev/null @@ -1,40 +0,0 @@ -plugins { - id("net.kyori.indra") - id("net.kyori.indra.publishing") - id("net.kyori.indra.publishing.sonatype") - id("io.github.gradle-nexus.publish-plugin") -} - -indra { - javaVersions { - target(21) - testWith(21) - } - - github("OneLiteFeatherNET", "Microtus") { - ci(true) - publishing(false) - } - mitLicense() - signWithKeyFromPrefixedProperties("onelitefeather") - configurePublications { - pom { - developers { - developer { - id.set("themeinerlp") - name.set("Phillipp Glanz") - email.set("p.glanz@madfix.me") - } - developer { - id.set("theEvilReaper") - name.set("Steffen Wonning") - email.set("steffenwx@gmail.com") - } - } - } - } -} - -indraSonatype { - useAlternateSonatypeOSSHost("s01") -} \ No newline at end of file diff --git a/src/main/kotlin/net/onelitefeather/microtus/ExtensionPlugin.kt b/src/main/kotlin/net/onelitefeather/microtus/ExtensionPlugin.kt deleted file mode 100644 index e02e9d94396..00000000000 --- a/src/main/kotlin/net/onelitefeather/microtus/ExtensionPlugin.kt +++ /dev/null @@ -1,76 +0,0 @@ -package net.onelitefeather.microtus - -import net.onelitefeather.microtus.models.Extension -import org.gradle.api.Plugin -import org.gradle.api.Project -import org.gradle.api.plugins.JavaPlugin -import org.gradle.api.tasks.SourceSet -import org.gradle.api.tasks.SourceSetContainer -import org.gradle.kotlin.dsl.getByType -import org.gradle.kotlin.dsl.register -import org.gradle.kotlin.dsl.withType - -/** - * Represents the gradle plugin extension which can be integrated into a `build.gradle.kts` file to define the properties of the extension. - * The usage of this plugin is as follows: - * - * ```kotlin - * plugins { - * id("net.onelitefeather.microtus.extension") version "" - * // ... - * } - * - * extension { - * //... use the properties of the extension here - * } - * ``` - * - * @since 1.2.0 - * @author TheMeinerLP - */ -class ExtensionPlugin : Plugin { - - private val fileName = "extension.json" - - /** - * Applies the plugin to the project. - * @param target the project to apply the plugin to - */ - override fun apply(target: Project) { - target.run { - val generatedResourcesDirectory = layout.buildDirectory.dir("generated/extension") - val extension = Extension() - extensions.add("extension", extension) - - val library = project.configurations.maybeCreate("library") - val libraries = project.configurations.create("extensionLibrary").extendsFrom(library) - - val generateTask = tasks.register("generateExtension") { - group = "minestom" - - fileName.set(this@ExtensionPlugin.fileName) - librariesRootComponent.set(libraries.incoming.resolutionResult.root) - outputDirectory.set(generatedResourcesDirectory) - this.extension.set(provider { - setDefaults(project, extension) - extension - }) - } - plugins.withType { - extensions.getByType().named(SourceSet.MAIN_SOURCE_SET_NAME) { - resources.srcDir(generateTask) - } - } - } - } - - /** - * Sets some default variables to a [Extension] object. - * @param project the project to get the name and version from - * @param extension the extension to set the variables to - */ - private fun setDefaults(project: Project, extension: Extension) { - extension.name = extension.name ?: project.name - extension.version = extension.version ?: project.version.toString() - } -} \ No newline at end of file diff --git a/src/main/kotlin/net/onelitefeather/microtus/GenerateExtension.kt b/src/main/kotlin/net/onelitefeather/microtus/GenerateExtension.kt deleted file mode 100644 index 0df18c5afb0..00000000000 --- a/src/main/kotlin/net/onelitefeather/microtus/GenerateExtension.kt +++ /dev/null @@ -1,79 +0,0 @@ -package net.onelitefeather.microtus - -import com.fasterxml.jackson.annotation.JsonInclude -import com.fasterxml.jackson.databind.ObjectMapper -import com.fasterxml.jackson.databind.module.SimpleModule -import com.fasterxml.jackson.module.kotlin.registerKotlinModule -import net.onelitefeather.microtus.models.Extension -import org.gradle.api.DefaultTask -import org.gradle.api.artifacts.repositories.MavenArtifactRepository -import org.gradle.api.artifacts.result.ResolvedComponentResult -import org.gradle.api.artifacts.result.ResolvedDependencyResult -import org.gradle.api.file.DirectoryProperty -import org.gradle.api.provider.Property -import org.gradle.api.tasks.* -import kotlin.jvm.Throws - -/** - * Defines the task which generates the required extension.json file for Minestom. - * @since 1.2.0 - * @author TheMeinerLP - */ -abstract class GenerateExtension : DefaultTask() { - @get:Input - abstract val fileName: Property - - @get:Nested - abstract val extension: Property - - @get:OutputDirectory - abstract val outputDirectory: DirectoryProperty - - @get:Input - @get:Optional - abstract val librariesRootComponent: Property - - /** - * Generates an extension.json file based on the given properties. - */ - @TaskAction - fun generate() { - val module = SimpleModule() - val mapper = ObjectMapper() - .registerKotlinModule() - .registerModule(module) - .setSerializationInclusion(JsonInclude.Include.NON_EMPTY) - val extension = extension.get() - val dependencies = librariesRootComponent.orNull.collectLibraries() - val repos = this.project.repositories.withType(MavenArtifactRepository::class.java) - val externalDependencies = Extension.ExternalDependencies() - externalDependencies.artifacts = dependencies.toList() - val mavenCentral = Extension.Repository() - mavenCentral.url = "https://repo.maven.apache.org/maven2/" - mavenCentral.name = "mavenCentral" - val mappedRepos = repos.map { - val repo = Extension.Repository() - repo.url = it.url.toString() - repo.name = it.name - repo - }.toList() - externalDependencies.repositories = if (mappedRepos.isNotEmpty() || dependencies.isNotEmpty()) { - mappedRepos + listOf(mavenCentral) - } else { - listOf() - } - extension.externalDependencies = externalDependencies - mapper.writeValue(outputDirectory.file(fileName).get().asFile, extension) - } - - /** - * Collects all libraries from the root component and the additional libraries. - * @param additional the additional libraries to add - */ - private fun ResolvedComponentResult?.collectLibraries(additional: List? = null): List { - val resolved = this?.dependencies?.map { dependencyResult -> - (dependencyResult as? ResolvedDependencyResult)?.selected?.moduleVersion?.toString() ?: error("No moduleVersion for $dependencyResult") - } - return ((additional ?: listOf()) + (resolved ?: listOf())).distinct() - } -} \ No newline at end of file diff --git a/src/main/kotlin/net/onelitefeather/microtus/models/Extension.kt b/src/main/kotlin/net/onelitefeather/microtus/models/Extension.kt deleted file mode 100644 index 3e8976c5970..00000000000 --- a/src/main/kotlin/net/onelitefeather/microtus/models/Extension.kt +++ /dev/null @@ -1,76 +0,0 @@ -package net.onelitefeather.microtus.models - -import org.gradle.api.tasks.Input -import org.gradle.api.tasks.Optional -import org.gradle.internal.impldep.com.fasterxml.jackson.annotation.JsonProperty - -/** - * Represents the allowed data fields for an extension.json file which is required from Minestom to load an extension. - * The following fields are allowed (fields with a * are required): - * - * - name: The name of the extension (*) - * - version: The version of the extension (*) - * - entrypoint: The entrypoint of the extension (*) - * - authors: The authors of the extension - * - dependencies: The dependencies of the extension - * - externalDependencies: The external dependencies of the extension - * @since 1.2.0 - * @author TheMeinerLP - */ -class Extension() { - @Input - var name: String? = null - - @Input - var version: String? = null - - @Input - var entrypoint: String? = null - - @Input - @Optional - @JsonProperty("authors") - var authors: List? = null - - @Input - @Optional - @JsonProperty("dependencies") - var dependencies: List? = null - - @Input - @Optional - @JsonProperty("externalDependencies") - var externalDependencies: ExternalDependencies? = null - - /** - * Represents the external dependencies which is required for the extension to work. - * @since 1.2.0 - * @author TheMeinerLP - */ - class ExternalDependencies { - @JsonProperty("repositories") - var repositories: List? = null - - @Input - @Optional - @JsonProperty("artifacts") - var artifacts: List? = null - - } - - /** - * Represents a repository which is used by an extension to load external dependencies. - * @since 1.2.0 - * @author TheMeinerLP - * @see ExternalDependencies - */ - class Repository { - @Input - @JsonProperty("name") - var name: String? = null - - @Input - @JsonProperty("url") - var url: String? = null - } -} From 6588a8183906499bb7242e81df6f79019c042705 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Fri, 24 May 2024 10:04:25 +0200 Subject: [PATCH 10/93] [Docs] Fix docs generation --- .../java/net/minestom/codegen/feature/FeatureFlagGenerator.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/code-generators/src/main/java/net/minestom/codegen/feature/FeatureFlagGenerator.java b/code-generators/src/main/java/net/minestom/codegen/feature/FeatureFlagGenerator.java index b8dd93b040f..8545161b910 100644 --- a/code-generators/src/main/java/net/minestom/codegen/feature/FeatureFlagGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/feature/FeatureFlagGenerator.java @@ -27,8 +27,6 @@ public class FeatureFlagGenerator extends MinestomCodeGenerator { /** * Creates a new code generator. - * - * @param packageName the package name of the generated class */ public FeatureFlagGenerator(InputStream featureFlagFile, File outputFolder) { super(FEATURE_FLAG_FILE_PACKAGE); From bb18905dd6865ac93599bfae45290c3d69328726 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Fri, 24 May 2024 10:14:56 +0200 Subject: [PATCH 11/93] [Chore] Change adventure javadocs link --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 6c6dce9622e..b2183217b57 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -58,7 +58,7 @@ tasks { addStringOption("-release", "21") // Links to external javadocs links("https://docs.oracle.com/en/java/javase/21/docs/api/") - links("https://jd.adventure.kyori.net/api/${libs.versions.adventure.get()}/") + links("https://jd.advntr.dev/api/${libs.versions.adventure.get()}/") } } withType { From 3fb328eabae19d24057d00163cb73e1aba88caf6 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Fri, 24 May 2024 10:13:07 +0200 Subject: [PATCH 12/93] [Chore] Update gradle to 8.7 --- gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew.bat | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 1af9e0930b8..e7646dead06 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-all.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew.bat b/gradlew.bat index 25da30dbdee..93e3f59f135 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -43,11 +43,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. 1>&2 -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. goto fail @@ -57,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. 1>&2 -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. goto fail From 5a0b0df09cb73e978c11eaeae7199a8413e6966e Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Fri, 24 May 2024 11:12:41 +0200 Subject: [PATCH 13/93] [Chore] Improve internal registry handling for implementation creation. --- .../command/builder/arguments/Argument.java | 7 +- .../server/instance/block/BlockImpl.java | 121 +++++++++--------- .../minestom/server/item/MaterialImpl.java | 7 +- .../server/item/banner/BannerPatternImpl.java | 17 +-- .../server/potion/PotionEffectImpl.java | 7 +- .../server/potion/PotionTypeImpl.java | 7 +- .../server/statistic/StatisticTypeImpl.java | 7 +- 7 files changed, 95 insertions(+), 78 deletions(-) diff --git a/src/main/java/net/minestom/server/command/builder/arguments/Argument.java b/src/main/java/net/minestom/server/command/builder/arguments/Argument.java index 497924a2e4a..f6d705585aa 100644 --- a/src/main/java/net/minestom/server/command/builder/arguments/Argument.java +++ b/src/main/java/net/minestom/server/command/builder/arguments/Argument.java @@ -30,8 +30,11 @@ */ public abstract class Argument { @ApiStatus.Internal - public static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.COMMAND_ARGUMENTS, - (namespace, properties) -> new ArgumentImpl(NamespaceID.from(namespace), properties.getInt("id"))); + public static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.COMMAND_ARGUMENTS, Argument::createImpl); + + private static ArgumentImpl createImpl(String namespace, Registry.Properties properties) { + return new ArgumentImpl(NamespaceID.from(namespace), properties.getInt("id")); + } record ArgumentImpl(NamespaceID namespace, int id) implements StaticProtocolObject { @Override diff --git a/src/main/java/net/minestom/server/instance/block/BlockImpl.java b/src/main/java/net/minestom/server/instance/block/BlockImpl.java index b4667de1744..f2e5568bbfa 100644 --- a/src/main/java/net/minestom/server/instance/block/BlockImpl.java +++ b/src/main/java/net/minestom/server/instance/block/BlockImpl.java @@ -37,67 +37,9 @@ record BlockImpl(@NotNull Registry.BlockEntry registry, private static final ObjectArray BLOCK_STATE_MAP = ObjectArray.singleThread(); // Block id -> valid property keys (order is important for lookup) private static final ObjectArray PROPERTIES_TYPE = ObjectArray.singleThread(); - // Block id -> Map + // Block id -> Map private static final ObjectArray> POSSIBLE_STATES = ObjectArray.singleThread(); - private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.BLOCKS, - (namespace, properties) -> { - final int blockId = properties.getInt("id"); - final Registry.Properties stateObject = properties.section("states"); - - // Retrieve properties - PropertyType[] propertyTypes; - { - Registry.Properties stateProperties = properties.section("properties"); - if (stateProperties != null) { - final int stateCount = stateProperties.size(); - if (stateCount > MAX_STATES) { - throw new IllegalStateException("Too many properties for block " + namespace); - } - propertyTypes = new PropertyType[stateCount]; - int i = 0; - for (var entry : stateProperties) { - final var k = entry.getKey(); - final var v = (List) entry.getValue(); - assert v.size() < MAX_VALUES; - propertyTypes[i++] = new PropertyType(k, v); - } - } else { - propertyTypes = new PropertyType[0]; - } - } - PROPERTIES_TYPE.set(blockId, propertyTypes); - - // Retrieve block states - { - final int propertiesCount = stateObject.size(); - long[] propertiesKeys = new long[propertiesCount]; - BlockImpl[] blocksValues = new BlockImpl[propertiesCount]; - int propertiesOffset = 0; - for (var stateEntry : stateObject) { - final String query = stateEntry.getKey(); - final var stateOverride = (Map) stateEntry.getValue(); - final var propertyMap = BlockUtils.parseProperties(query); - assert propertyTypes.length == propertyMap.size(); - long propertiesValue = 0; - for (Map.Entry entry : propertyMap.entrySet()) { - final byte keyIndex = findKeyIndex(propertyTypes, entry.getKey(), null); - final byte valueIndex = findValueIndex(propertyTypes[keyIndex], entry.getValue(), null); - propertiesValue = updateIndex(propertiesValue, keyIndex, valueIndex); - } - - var mainProperties = Registry.Properties.fromMap(new MergedMap<>(stateOverride, properties.asMap())); - final BlockImpl block = new BlockImpl(Registry.block(namespace, mainProperties), - propertiesValue, null, null); - BLOCK_STATE_MAP.set(block.stateId(), block); - propertiesKeys[propertiesOffset] = propertiesValue; - blocksValues[propertiesOffset++] = block; - } - POSSIBLE_STATES.set(blockId, new Long2ObjectArrayMap<>(propertiesKeys, blocksValues, propertiesOffset)); - } - // Register default state - final int defaultState = properties.getInt("defaultStateId"); - return getState(defaultState); - }); + private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.BLOCKS, BlockImpl::createImpl); static { PROPERTIES_TYPE.trim(); @@ -232,6 +174,65 @@ private Block compute(long updatedProperties) { return new BlockImpl(block.registry(), block.propertiesArray, nbt, handler); } + private static Block createImpl(String namespace, Registry.Properties properties) { + final int blockId = properties.getInt("id"); + final Registry.Properties stateObject = properties.section("states"); + + // Retrieve properties + PropertyType[] propertyTypes; + { + Registry.Properties stateProperties = properties.section("properties"); + if (stateProperties != null) { + final int stateCount = stateProperties.size(); + if (stateCount > MAX_STATES) { + throw new IllegalStateException("Too many properties for block " + namespace); + } + propertyTypes = new PropertyType[stateCount]; + int i = 0; + for (var entry : stateProperties) { + final var k = entry.getKey(); + final var v = (List) entry.getValue(); + assert v.size() < MAX_VALUES; + propertyTypes[i++] = new PropertyType(k, v); + } + } else { + propertyTypes = new PropertyType[0]; + } + } + PROPERTIES_TYPE.set(blockId, propertyTypes); + + // Retrieve block states + { + final int propertiesCount = stateObject.size(); + long[] propertiesKeys = new long[propertiesCount]; + BlockImpl[] blocksValues = new BlockImpl[propertiesCount]; + int propertiesOffset = 0; + for (var stateEntry : stateObject) { + final String query = stateEntry.getKey(); + final var stateOverride = (Map) stateEntry.getValue(); + final var propertyMap = BlockUtils.parseProperties(query); + assert propertyTypes.length == propertyMap.size(); + long propertiesValue = 0; + for (Map.Entry entry : propertyMap.entrySet()) { + final byte keyIndex = findKeyIndex(propertyTypes, entry.getKey(), null); + final byte valueIndex = findValueIndex(propertyTypes[keyIndex], entry.getValue(), null); + propertiesValue = updateIndex(propertiesValue, keyIndex, valueIndex); + } + + var mainProperties = Registry.Properties.fromMap(new MergedMap<>(stateOverride, properties.asMap())); + final BlockImpl block = new BlockImpl(Registry.block(namespace, mainProperties), + propertiesValue, null, null); + BLOCK_STATE_MAP.set(block.stateId(), block); + propertiesKeys[propertiesOffset] = propertiesValue; + blocksValues[propertiesOffset++] = block; + } + POSSIBLE_STATES.set(blockId, new Long2ObjectArrayMap<>(propertiesKeys, blocksValues, propertiesOffset)); + } + // Register default state + final int defaultState = properties.getInt("defaultStateId"); + return getState(defaultState); + } + private static byte findKeyIndex(PropertyType[] properties, String key, BlockImpl block) { for (byte i = 0; i < properties.length; i++) { if (properties[i].key().equals(key)) return i; diff --git a/src/main/java/net/minestom/server/item/MaterialImpl.java b/src/main/java/net/minestom/server/item/MaterialImpl.java index 38c1c823684..2808b424c8e 100644 --- a/src/main/java/net/minestom/server/item/MaterialImpl.java +++ b/src/main/java/net/minestom/server/item/MaterialImpl.java @@ -6,8 +6,11 @@ import java.util.Collection; record MaterialImpl(Registry.MaterialEntry registry) implements Material { - private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.ITEMS, - (namespace, properties) -> new MaterialImpl(Registry.material(namespace, properties))); + private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.ITEMS, MaterialImpl::createImpl); + + private static Material createImpl(String namespace, Registry.Properties properties) { + return new MaterialImpl(Registry.material(namespace, properties)); + } static Material get(@NotNull String namespace) { return CONTAINER.get(namespace); diff --git a/src/main/java/net/minestom/server/item/banner/BannerPatternImpl.java b/src/main/java/net/minestom/server/item/banner/BannerPatternImpl.java index 2f1dd27b1c5..028e219a01e 100644 --- a/src/main/java/net/minestom/server/item/banner/BannerPatternImpl.java +++ b/src/main/java/net/minestom/server/item/banner/BannerPatternImpl.java @@ -12,14 +12,15 @@ public record BannerPatternImpl(NamespaceID namespace, int id, String identifier) implements BannerPattern { private static Map IDENTIFIERS = new HashMap<>(); - private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.BANNER_PATTERNS, - (namespace, properties) -> { - int id = properties.getInt("id"); - String identifier = properties.getString("identifier"); - BannerPatternImpl bannerPattern = new BannerPatternImpl(NamespaceID.from(namespace), id, identifier); - IDENTIFIERS.put(identifier, bannerPattern); - return bannerPattern; - }); + private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.BANNER_PATTERNS, BannerPatternImpl::createImpl); + + private static BannerPattern createImpl(String namespace, Registry.Properties properties) { + int id = properties.getInt("id"); + String identifier = properties.getString("identifier"); + BannerPatternImpl bannerPattern = new BannerPatternImpl(NamespaceID.from(namespace), id, identifier); + IDENTIFIERS.put(identifier, bannerPattern); + return bannerPattern; + } static BannerPattern get(@NotNull String namespace) { return CONTAINER.get(namespace); diff --git a/src/main/java/net/minestom/server/potion/PotionEffectImpl.java b/src/main/java/net/minestom/server/potion/PotionEffectImpl.java index 0e90e62d111..0e214afe3e3 100644 --- a/src/main/java/net/minestom/server/potion/PotionEffectImpl.java +++ b/src/main/java/net/minestom/server/potion/PotionEffectImpl.java @@ -6,8 +6,11 @@ import java.util.Collection; record PotionEffectImpl(Registry.PotionEffectEntry registry) implements PotionEffect { - private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.POTION_EFFECTS, - (namespace, properties) -> new PotionEffectImpl(Registry.potionEffect(namespace, properties))); + private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.POTION_EFFECTS, PotionEffectImpl::createImpl); + + private static PotionEffect createImpl(String namespace, Registry.Properties properties) { + return new PotionEffectImpl(Registry.potionEffect(namespace, properties)); + } static PotionEffect get(@NotNull String namespace) { return CONTAINER.get(namespace); diff --git a/src/main/java/net/minestom/server/potion/PotionTypeImpl.java b/src/main/java/net/minestom/server/potion/PotionTypeImpl.java index 1cb427ef9b8..719a7cc6ce7 100644 --- a/src/main/java/net/minestom/server/potion/PotionTypeImpl.java +++ b/src/main/java/net/minestom/server/potion/PotionTypeImpl.java @@ -7,8 +7,11 @@ import java.util.Collection; record PotionTypeImpl(NamespaceID namespace, int id) implements PotionType { - private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.POTION_TYPES, - (namespace, properties) -> new PotionTypeImpl(NamespaceID.from(namespace), properties.getInt("id"))); + private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.POTION_TYPES, PotionTypeImpl::createImpl); + + private static PotionType createImpl(String namespace, Registry.Properties properties) { + return new PotionTypeImpl(NamespaceID.from(namespace), properties.getInt("id")); + } static PotionType get(@NotNull String namespace) { return CONTAINER.get(namespace); diff --git a/src/main/java/net/minestom/server/statistic/StatisticTypeImpl.java b/src/main/java/net/minestom/server/statistic/StatisticTypeImpl.java index 40606e211dd..0d19b60d457 100644 --- a/src/main/java/net/minestom/server/statistic/StatisticTypeImpl.java +++ b/src/main/java/net/minestom/server/statistic/StatisticTypeImpl.java @@ -7,8 +7,11 @@ import java.util.Collection; record StatisticTypeImpl(NamespaceID namespace, int id) implements StatisticType { - private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.STATISTICS, - (namespace, properties) -> new StatisticTypeImpl(NamespaceID.from(namespace), properties.getInt("id"))); + private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.STATISTICS, StatisticTypeImpl::createImpl); + + private static StatisticType createImpl(String namespace, Registry.Properties properties) { + return new StatisticTypeImpl(NamespaceID.from(namespace), properties.getInt("id")); + } static StatisticType get(@NotNull String namespace) { return CONTAINER.get(namespace); From ae80f024c2624f7230d36bbbb1d488daebf98331 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Fri, 24 May 2024 22:26:59 +0200 Subject: [PATCH 14/93] Remove not longer needed biome generator (#21) --- .../codegen/biome/BiomeGenerator.java | 146 ------------------ 1 file changed, 146 deletions(-) delete mode 100644 code-generators/src/main/java/net/minestom/codegen/biome/BiomeGenerator.java diff --git a/code-generators/src/main/java/net/minestom/codegen/biome/BiomeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/biome/BiomeGenerator.java deleted file mode 100644 index f82f817012c..00000000000 --- a/code-generators/src/main/java/net/minestom/codegen/biome/BiomeGenerator.java +++ /dev/null @@ -1,146 +0,0 @@ -package net.minestom.codegen.biome; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.squareup.javapoet.AnnotationSpec; -import com.squareup.javapoet.ArrayTypeName; -import com.squareup.javapoet.ClassName; -import com.squareup.javapoet.CodeBlock; -import com.squareup.javapoet.FieldSpec; -import com.squareup.javapoet.JavaFile; -import com.squareup.javapoet.MethodSpec; -import com.squareup.javapoet.ParameterSpec; -import com.squareup.javapoet.TypeName; -import com.squareup.javapoet.TypeSpec; -import java.awt.Color; -import java.io.File; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.List; -import javax.lang.model.element.Modifier; -import net.minestom.codegen.MinestomCodeGenerator; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -@ApiStatus.Internal -@ApiStatus.NonExtendable -public final class BiomeGenerator extends MinestomCodeGenerator { - - private static final String BIOME_KEY = "biome"; - private static final String BIOME_FILE_PACKAGE = "net.minestom.server.world.biomes"; // Microtus - Biomes - private static final String CLASS_NAME = "Biomes"; // Microtus - Biomes - private static final Logger LOGGER = LoggerFactory.getLogger(BiomeGenerator.class); - private final InputStream biomeFile; - private final File outputFolder; - - public BiomeGenerator(@Nullable InputStream biomeFile, @NotNull File outputFolder) { - super(BIOME_FILE_PACKAGE); - this.biomeFile = biomeFile; - this.outputFolder = outputFolder; - } - - @Override - public void generate() { - if (biomeFile == null) { - LOGGER.error("Failed to find biome.json."); - LOGGER.error("Stopped code generation for biomes."); - return; - } - if (!outputFolder.exists() && !outputFolder.mkdirs()) { - LOGGER.error("Output folder for code generation does not exist and could not be created."); - return; - } - - JsonElement biomes = GSON.fromJson(new InputStreamReader(biomeFile), JsonElement.class); - ClassName biomeCN = ClassName.get(BIOME_FILE_PACKAGE, CLASS_NAME); - ClassName biomeCn = ClassName.get(BIOME_FILE_PACKAGE, "Biome"); - ClassName categoryCn = biomeCn.nestedClass("Category"); - ClassName minecraftServerCn = ClassName.get("net.minestom.server", "MinecraftServer"); - ClassName namespaceIDCn = ClassName.get("net.minestom.server.utils", "NamespaceID"); - ClassName biomeEffectsCn = ClassName.get(BIOME_FILE_PACKAGE, "BiomeEffects"); - // Dye Color Enum - TypeSpec.Builder biomesEnum = TypeSpec.enumBuilder(biomeCN) - .addModifiers(Modifier.PUBLIC).addJavadoc("AUTOGENERATED by " + getClass().getSimpleName()); - - // Fields - biomesEnum.addFields( - List.of( - FieldSpec.builder(biomeCn, BIOME_KEY, Modifier.PRIVATE, Modifier.FINAL).build(), - FieldSpec.builder(ArrayTypeName.of(biomeCN), "VALUES", Modifier.PRIVATE, Modifier.STATIC, Modifier.FINAL).initializer(CLASS_NAME + ".values()").build() // Microtus - Banner and shield meta - ) - ); - - // Methods - biomesEnum.addMethods( - List.of( - // Constructor - MethodSpec.constructorBuilder() - .addParameter( - ParameterSpec.builder(biomeCn, BIOME_KEY).addAnnotation(NotNull.class).build() - ) - .addStatement("this.$1L = $1L", BIOME_KEY) - .build(), - MethodSpec.methodBuilder(BIOME_KEY) - .addModifiers(Modifier.PUBLIC) - .returns(biomeCn.annotated(AnnotationSpec.builder(NotNull.class).build())) - .addStatement("return this.$L", BIOME_KEY) - .build(), - MethodSpec.methodBuilder("getValue") - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .addParameter(ParameterSpec.builder(TypeName.INT, "id").build()) - .addAnnotation(Nullable.class) - .returns(ClassName.get(BIOME_FILE_PACKAGE, CLASS_NAME)) - .addCode("return VALUES[$L];", "id") - .build(), - MethodSpec.methodBuilder("registerBiomes") - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .beginControlFlow("for (var $L : VALUES)", BIOME_KEY) - .addStatement("$1T.getBiomeManager().addBiome($2L.$2L())", minecraftServerCn, BIOME_KEY) - .endControlFlow() - .build() - ) - ); - final JsonObject biomesAsJsonObject = biomes.getAsJsonObject(); - biomesAsJsonObject.keySet().forEach(biome -> { - var biomeObject = biomesAsJsonObject.get(biome).getAsJsonObject(); - var temperature = biomeObject.get("temperature").getAsFloat(); - var downfall = biomeObject.get("downfall").getAsFloat(); - var hasPrecipitation = biomeObject.get("has_precipitation").getAsBoolean(); - var fogColor = Integer.toHexString(new Color(biomeObject.get("fogColor").getAsInt()).getRGB()).substring(2); - var waterColor = Integer.toHexString(new Color(biomeObject.get("waterColor").getAsInt()).getRGB()).substring(2); - var waterFogColor = Integer.toHexString(new Color(biomeObject.get("waterFogColor").getAsInt()).getRGB()).substring(2); - var skyColor = Integer.toHexString(new Color(biomeObject.get("skyColor").getAsInt()).getRGB()).substring(2); - var effectCodeBlock = CodeBlock.builder(); - effectCodeBlock = effectCodeBlock.add("$T.builder().fogColor(0x$L).waterColor(0x$L).waterFogColor(0x$L).skyColor(0x$L)", biomeEffectsCn, fogColor, waterColor, waterFogColor, skyColor); - if (biomeObject.has("grassColor")) { - var grassColor = Integer.toHexString(new Color(biomeObject.get("grassColor").getAsInt()).getRGB()).substring(2); - effectCodeBlock = effectCodeBlock.add(".grassColor(0x$L)", grassColor); - } - if (biomeObject.has("foliageColor")) { - var foliageColor = Integer.toHexString(new Color(biomeObject.get("foliageColor").getAsInt()).getRGB()).substring(2); - effectCodeBlock = effectCodeBlock.add(".foliageColor(0x$L)", foliageColor); - } - effectCodeBlock = effectCodeBlock.add(".build()"); - var namespacedCode = CodeBlock.of("$T.from($S)", namespaceIDCn, biome.replaceFirst("minecraft:", "")); - biomesEnum.addEnumConstant(extractNamespace(biome), TypeSpec.anonymousClassBuilder( - "$T.builder().name($L).category($T.NONE).depth(0.125F).scale(0.05F).temperature($Lf).downfall($Lf).showPrecipitation($L).effects($L).build()", - biomeCn, namespacedCode, categoryCn, temperature, downfall, hasPrecipitation, effectCodeBlock.build() - ).build() - ); - }); - - // Write files to outputFolder - writeFiles( - List.of( - JavaFile.builder(BIOME_FILE_PACKAGE, biomesEnum.build()) - .indent(DEFAULT_INDENT) - .skipJavaLangImports(true) - .build() - ), - outputFolder - ); - } -} From 337e356ae91364c376f58c7815f39977b0d20ab5 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Fri, 24 May 2024 23:01:39 +0200 Subject: [PATCH 15/93] [Chore] Rework attribute system to generice generator (#23) * Rework attribute system for microtus and use generic generator * Remove old code * Remove already implemented methods because records * Use constant --- .../minestom/server/attribute/Attributes.java | 60 ++++++------------- .../net/minestom/server/utils/ArrayUtils.java | 2 +- 2 files changed, 18 insertions(+), 44 deletions(-) diff --git a/src/autogenerated/java/net/minestom/server/attribute/Attributes.java b/src/autogenerated/java/net/minestom/server/attribute/Attributes.java index a5edd76b551..b0e0b870ac7 100644 --- a/src/autogenerated/java/net/minestom/server/attribute/Attributes.java +++ b/src/autogenerated/java/net/minestom/server/attribute/Attributes.java @@ -1,61 +1,35 @@ package net.minestom.server.attribute; -import net.minestom.server.MinecraftServer; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - /** - * AUTOGENERATED by AttributeGenerator + * Code autogenerated, do not edit! */ -public enum Attributes { - GENERIC_ARMOR(new Attribute("minecraft:generic.armor", 0.0f, 30.0f)), - - GENERIC_ARMOR_TOUGHNESS(new Attribute("minecraft:generic.armor_toughness", 0.0f, 20.0f)), - - GENERIC_ATTACK_DAMAGE(new Attribute("minecraft:generic.attack_damage", 2.0f, 2048.0f)), - - GENERIC_ATTACK_KNOCKBACK(new Attribute("minecraft:generic.attack_knockback", 0.0f, 5.0f)), - - GENERIC_ATTACK_SPEED(new Attribute("minecraft:generic.attack_speed", 4.0f, 1024.0f)), - - GENERIC_FLYING_SPEED(new Attribute("minecraft:generic.flying_speed", 0.4f, 1024.0f)), - - GENERIC_FOLLOW_RANGE(new Attribute("minecraft:generic.follow_range", 32.0f, 2048.0f)), +@SuppressWarnings("unused") +interface Attributes { + Attribute GENERIC_ARMOR = AttributeImpl.get("minecraft:generic.armor"); - HORSE_JUMP_STRENGTH(new Attribute("minecraft:horse.jump_strength", 0.7f, 2.0f)), + Attribute GENERIC_ARMOR_TOUGHNESS = AttributeImpl.get("minecraft:generic.armor_toughness"); - GENERIC_KNOCKBACK_RESISTANCE(new Attribute("minecraft:generic.knockback_resistance", 0.0f, 1.0f)), + Attribute GENERIC_ATTACK_DAMAGE = AttributeImpl.get("minecraft:generic.attack_damage"); - GENERIC_LUCK(new Attribute("minecraft:generic.luck", 0.0f, 1024.0f)), + Attribute GENERIC_ATTACK_KNOCKBACK = AttributeImpl.get("minecraft:generic.attack_knockback"); - GENERIC_MAX_ABSORPTION(new Attribute("minecraft:generic.max_absorption", 0.0f, 2048.0f)), + Attribute GENERIC_ATTACK_SPEED = AttributeImpl.get("minecraft:generic.attack_speed"); - GENERIC_MAX_HEALTH(new Attribute("minecraft:generic.max_health", 20.0f, 1024.0f)), + Attribute GENERIC_FLYING_SPEED = AttributeImpl.get("minecraft:generic.flying_speed"); - GENERIC_MOVEMENT_SPEED(new Attribute("minecraft:generic.movement_speed", 0.7f, 1024.0f)), + Attribute GENERIC_FOLLOW_RANGE = AttributeImpl.get("minecraft:generic.follow_range"); - ZOMBIE_SPAWN_REINFORCEMENTS(new Attribute("minecraft:zombie.spawn_reinforcements", 0.0f, 1.0f)); + Attribute HORSE_JUMP_STRENGTH = AttributeImpl.get("minecraft:horse.jump_strength"); - private static final Attributes[] VALUES = values(); + Attribute GENERIC_KNOCKBACK_RESISTANCE = AttributeImpl.get("minecraft:generic.knockback_resistance"); - private final Attribute attribute; + Attribute GENERIC_LUCK = AttributeImpl.get("minecraft:generic.luck"); - Attributes(@NotNull Attribute attribute) { - this.attribute = attribute; - } + Attribute GENERIC_MAX_ABSORPTION = AttributeImpl.get("minecraft:generic.max_absorption"); - public @NotNull Attribute attribute() { - return this.attribute; - } + Attribute GENERIC_MAX_HEALTH = AttributeImpl.get("minecraft:generic.max_health"); - @Nullable - public static Attribute getValue(int id) { - return VALUES[id].attribute; - } + Attribute GENERIC_MOVEMENT_SPEED = AttributeImpl.get("minecraft:generic.movement_speed"); - public static void registerAttributes() { - for (var v : VALUES) { - MinecraftServer.getAttributeManager().register(v.attribute()); - } - } + Attribute ZOMBIE_SPAWN_REINFORCEMENTS = AttributeImpl.get("minecraft:zombie.spawn_reinforcements"); } diff --git a/src/main/java/net/minestom/server/utils/ArrayUtils.java b/src/main/java/net/minestom/server/utils/ArrayUtils.java index de23b16d13d..ca21c1a23c1 100644 --- a/src/main/java/net/minestom/server/utils/ArrayUtils.java +++ b/src/main/java/net/minestom/server/utils/ArrayUtils.java @@ -15,7 +15,7 @@ public final class ArrayUtils { private ArrayUtils() { } - public static boolean isEmpty(@Nullable Object @NotNull [] array) { + public static boolean isEmpty(@Nullable Object[] array) { for (Object object : array) { if (object != null) return false; } From d6c269966c3974ff3a6a5cf49bb1f90a1e6c7bd7 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Fri, 24 May 2024 23:19:14 +0200 Subject: [PATCH 16/93] [Chore] Replace static enum with generated villager types and professions (#26) --- .../java/net/minestom/codegen/Generators.java | 12 +- .../entity/VillagerProfessionGenerator.java | 195 ------------------ .../codegen/entity/VillagerTypeGenerator.java | 152 -------------- .../entity/villager/VillagerProfessions.java | 37 ++++ .../server/entity/villager/VillagerTypes.java | 21 ++ .../monster/zombie/ZombieVillagerMeta.java | 10 +- .../entity/villager/VillagerProfession.java | 42 ++++ .../villager/VillagerProfessionImpl.java | 39 ++++ .../server/entity/villager/VillagerType.java | 43 ++++ .../entity/villager/VillagerTypeImpl.java | 39 ++++ .../minestom/server/registry/Registry.java | 23 ++- 11 files changed, 251 insertions(+), 362 deletions(-) delete mode 100644 code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java delete mode 100644 code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java create mode 100644 src/autogenerated/java/net/minestom/server/entity/villager/VillagerProfessions.java create mode 100644 src/autogenerated/java/net/minestom/server/entity/villager/VillagerTypes.java create mode 100644 src/main/java/net/minestom/server/entity/villager/VillagerProfession.java create mode 100644 src/main/java/net/minestom/server/entity/villager/VillagerProfessionImpl.java create mode 100644 src/main/java/net/minestom/server/entity/villager/VillagerType.java create mode 100644 src/main/java/net/minestom/server/entity/villager/VillagerTypeImpl.java diff --git a/code-generators/src/main/java/net/minestom/codegen/Generators.java b/code-generators/src/main/java/net/minestom/codegen/Generators.java index deddd0e9094..6e5b922dd49 100644 --- a/code-generators/src/main/java/net/minestom/codegen/Generators.java +++ b/code-generators/src/main/java/net/minestom/codegen/Generators.java @@ -38,6 +38,8 @@ public static void main(String[] args) { generator.generate(resource("custom_statistics.json"), "net.minestom.server.statistic", "StatisticType", "StatisticTypeImpl", "StatisticTypes"); generator.generate(resource("attributes.json"), "net.minestom.server.entity.attribute", "Attribute", "AttributeImpl", "Attributes"); generator.generate(resource("feature_flags.json"), "net.minestom.server", "FeatureFlag", "FeatureFlagImpl", "FeatureFlags"); + generator.generate(resource("villager_professions.json"), "net.minestom.server.entity.villager", "VillagerProfession", "VillagerProfessionImpl", "VillagerProfessions"); + generator.generate(resource("villager_types.json"), "net.minestom.server.entity.villager", "VillagerType", "VillagerTypeImpl", "VillagerTypes"); // Dynamic registries generator.generateKeys(resource("chat_types.json"), "net.minestom.server.message", "ChatType", "ChatTypes"); @@ -55,16 +57,6 @@ public static void main(String[] args) { // Generate fluids new FluidGenerator(resource("fluids.json"), outputFolder).generate(); - // TODO: Generate villager professions -// new VillagerProfessionGenerator( -// new File(inputFolder, targetVersion + "_villager_professions.json"), -// outputFolder -// ).generate(); - // TODO: Generate villager types -// new VillagerTypeGenerator( -// new File(inputFolder, targetVersion + "_villager_types.json"), -// outputFolder -// ).generate(); LOGGER.info("Finished generating code"); } diff --git a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java deleted file mode 100644 index d25441a83db..00000000000 --- a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java +++ /dev/null @@ -1,195 +0,0 @@ -package net.minestom.codegen.entity; - -import com.google.gson.JsonArray; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.squareup.javapoet.*; -import net.minestom.codegen.MinestomCodeGenerator; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import net.minestom.codegen.util.GenerationHelper; - -import javax.lang.model.element.Modifier; -import java.io.File; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.List; - -import static net.minestom.codegen.util.GenerationHelper.*; - -@ApiStatus.NonExtendable -@ApiStatus.Internal -public final class VillagerProfessionGenerator extends MinestomCodeGenerator { - - private static final String VILLAGER_PROFESSION_DATE = "villagerProfessionData"; - private static final Logger LOGGER = LoggerFactory.getLogger(VillagerProfessionGenerator.class); - private final InputStream villagerProfessionsFile; - private final File outputFolder; - - - public VillagerProfessionGenerator(@Nullable InputStream villagerProfessionsFile, @NotNull File outputFolder) { - super(""); - this.villagerProfessionsFile = villagerProfessionsFile; - this.outputFolder = outputFolder; - } - - @Override - public void generate() { - if (villagerProfessionsFile == null) { - LOGGER.error("Failed to find villager_professions.json."); - LOGGER.error("Stopped code generation for villager professions."); - return; - } - if (!outputFolder.exists() && !outputFolder.mkdirs()) { - LOGGER.error("Output folder for code generation does not exist and could not be created."); - return; - } - // Important classes we use alot - ClassName rawVillagerProfessionDataClassName = ClassName.get("net.minestom.server.raw_data", "RawVillagerProfessionData"); - - JsonArray villagerProfessions = GSON.fromJson(new InputStreamReader(villagerProfessionsFile), JsonArray.class); - ClassName villagerProfessionClassName = ClassName.get("net.minestom.server.entity.metadata.villager", "VillagerProfession"); - - // Particle - TypeSpec.Builder villagerProfessionClass = TypeSpec.classBuilder(villagerProfessionClassName) - .addSuperinterface(KEYORI_ADVENTURE_KEY) - .addModifiers(Modifier.PUBLIC).addJavadoc("AUTOGENERATED by " + getClass().getSimpleName()); - villagerProfessionClass.addField( - FieldSpec.builder(NAMESPACE_ID_CLASS, "id") - .addModifiers(Modifier.PRIVATE, Modifier.FINAL).addAnnotation(NotNull.class).build() - ); - villagerProfessionClass.addField( - FieldSpec.builder(rawVillagerProfessionDataClassName, VILLAGER_PROFESSION_DATE) - .addModifiers(Modifier.PRIVATE, Modifier.VOLATILE) - .addAnnotation(NotNull.class) - .build() - ); - villagerProfessionClass.addMethod( - MethodSpec.constructorBuilder() - .addParameter(ParameterSpec.builder(NAMESPACE_ID_CLASS, "id").addAnnotation(NotNull.class).build()) - .addParameter(ParameterSpec.builder(rawVillagerProfessionDataClassName, VILLAGER_PROFESSION_DATE).addAnnotation(NotNull.class).build()) - .addStatement(VARIABLE_SETTER, "id") - .addStatement(VARIABLE_SETTER, VILLAGER_PROFESSION_DATE) - .addModifiers(Modifier.PROTECTED) - .build() - ); - // Override key method (adventure) - villagerProfessionClass.addMethod(GenerationHelper.ADVENTURE_KEY_METHOD); - // getId method - villagerProfessionClass.addMethod(GenerationHelper.ID_GETTER); - // getVillagerProfessionData method - villagerProfessionClass.addMethod( - MethodSpec.methodBuilder("getVillagerProfessionData") - .returns(rawVillagerProfessionDataClassName) - .addAnnotation(NotNull.class) - .addStatement("return this.villagerProfessionData") - .addModifiers(Modifier.PUBLIC, Modifier.FINAL) - .build() - ); - // setVillagerProfessionData method - villagerProfessionClass.addMethod( - MethodSpec.methodBuilder("setVillagerProfessionData") - .addParameter(ParameterSpec.builder(rawVillagerProfessionDataClassName, VILLAGER_PROFESSION_DATE).addAnnotation(NotNull.class).build()) - .addStatement("this.$L1 = $L1", VILLAGER_PROFESSION_DATE) - .addModifiers(Modifier.PUBLIC, Modifier.FINAL) - .build() - ); - // getNumericalId - villagerProfessionClass.addMethod( - MethodSpec.methodBuilder("getNumericalId") - .returns(TypeName.INT) - .addStatement("return $T.VILLAGER_PROFESSION_REGISTRY.getId(this)", REGISTRY_CLASS) - .addModifiers(Modifier.PUBLIC) - .build() - ); - // fromId Method - villagerProfessionClass.addMethod( - MethodSpec.methodBuilder("fromId") - .returns(villagerProfessionClassName) - .addAnnotation(Nullable.class) - .addParameter(TypeName.INT, "id") - .addStatement("return $T.VILLAGER_PROFESSION_REGISTRY.get((short) id)", REGISTRY_CLASS) - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .build() - ); - // fromId Method - villagerProfessionClass.addMethod( - MethodSpec.methodBuilder("fromId") - .returns(villagerProfessionClassName) - .addAnnotation(NotNull.class) - .addParameter(ADVENTURE_KEY, "id") - .addStatement("return $T.VILLAGER_PROFESSION_REGISTRY.get(id)", REGISTRY_CLASS) - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .build() - ); - // toString method - villagerProfessionClass.addMethod(GenerationHelper.TO_STRING); - // values method - villagerProfessionClass.addMethod( - MethodSpec.methodBuilder("values") - .addAnnotation(NotNull.class) - .returns(ParameterizedTypeName.get(ClassName.get(List.class), villagerProfessionClassName)) - .addStatement("return $T.VILLAGER_PROFESSION_REGISTRY.values()", REGISTRY_CLASS) - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .build() - ); - CodeBlock.Builder staticBlock = CodeBlock.builder(); - // Use data - for (JsonElement vp : villagerProfessions) { - JsonObject villagerProfession = vp.getAsJsonObject(); - - String villagerProfessionName = villagerProfession.get("name").getAsString(); - JsonElement workSound = villagerProfession.get("workSound"); - if (workSound == null) { - villagerProfessionClass.addField( - FieldSpec.builder( - villagerProfessionClassName, - villagerProfessionName - ).initializer( - "new $T($T.from($S), new $T(() -> null))", - villagerProfessionClassName, - NAMESPACE_ID_CLASS, - villagerProfession.get("id").getAsString(), - - rawVillagerProfessionDataClassName - ).addModifiers(Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).build() - ); - } else { - villagerProfessionClass.addField( - FieldSpec.builder( - villagerProfessionClassName, - villagerProfessionName - ).initializer( - "new $T($T.from($S), new $T(() -> $T.SOUND_EVENT_REGISTRY.get($S)))", - villagerProfessionClassName, - NAMESPACE_ID_CLASS, - villagerProfession.get("id").getAsString(), - - rawVillagerProfessionDataClassName, - REGISTRY_CLASS, - workSound.getAsString() - ).addModifiers(Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).build() - ); - } - - // Add to static init. - staticBlock.addStatement("$T.VILLAGER_PROFESSION_REGISTRY.register($N)", REGISTRY_CLASS, villagerProfessionName); - } - - villagerProfessionClass.addStaticBlock(staticBlock.build()); - - // Write files to outputFolder - writeFiles( - List.of( - JavaFile.builder("net.minestom.server.entity.metadata.villager", villagerProfessionClass.build()) - .indent(DEFAULT_INDENT) - .skipJavaLangImports(true) - .build() - ), - outputFolder - ); - } -} diff --git a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java deleted file mode 100644 index bc26041d017..00000000000 --- a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java +++ /dev/null @@ -1,152 +0,0 @@ -package net.minestom.codegen.entity; - -import com.google.gson.JsonArray; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.squareup.javapoet.*; -import net.minestom.codegen.MinestomCodeGenerator; -import net.minestom.codegen.util.GenerationHelper; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.lang.model.element.Modifier; -import java.io.File; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.List; - -import static net.minestom.codegen.util.GenerationHelper.ADVENTURE_KEY; -import static net.minestom.codegen.util.GenerationHelper.TO_STRING; - -@ApiStatus.NonExtendable -@ApiStatus.Internal -public final class VillagerTypeGenerator extends MinestomCodeGenerator { - private static final Logger LOGGER = LoggerFactory.getLogger(VillagerTypeGenerator.class); - private final InputStream villagerTypesFile; - private final File outputFolder; - - public VillagerTypeGenerator(@Nullable InputStream villagerTypesFile, @NotNull File outputFolder) { - super(""); - this.villagerTypesFile = villagerTypesFile; - this.outputFolder = outputFolder; - } - - @Override - public void generate() { - if (villagerTypesFile == null) { - LOGGER.error("Failed to find villager_types.json."); - LOGGER.error("Stopped code generation for villager types."); - return; - } - if (!outputFolder.exists() && !outputFolder.mkdirs()) { - LOGGER.error("Output folder for code generation does not exist and could not be created."); - return; - } - // Important classes we use alot - JsonArray villagerTypes = GSON.fromJson(new InputStreamReader(villagerTypesFile), JsonArray.class); - ClassName villagerTypeClassName = ClassName.get("net.minestom.server.entity.metadata.villager", "VillagerType"); - - // Particle - TypeSpec.Builder villagerTypeClass = TypeSpec.classBuilder(villagerTypeClassName) - .addSuperinterface(KEYORI_ADVENTURE_KEY) - .addModifiers(Modifier.PUBLIC).addJavadoc("AUTOGENERATED by " + getClass().getSimpleName()); - villagerTypeClass.addField( - FieldSpec.builder(NAMESPACE_ID_CLASS, "id") - .addModifiers(Modifier.PRIVATE, Modifier.FINAL).addAnnotation(NotNull.class).build() - ); - villagerTypeClass.addMethod( - MethodSpec.constructorBuilder() - .addParameter(ParameterSpec.builder(NAMESPACE_ID_CLASS, "id").addAnnotation(NotNull.class).build()) - .addStatement("this.id = id") - .addModifiers(Modifier.PROTECTED) - .build() - ); - // Override key method (adventure) - villagerTypeClass.addMethod(GenerationHelper.ID_GETTER); - // getId method - villagerTypeClass.addMethod( - MethodSpec.methodBuilder("getId") - .returns(NAMESPACE_ID_CLASS) - .addAnnotation(NotNull.class) - .addStatement("return this.id") - .addModifiers(Modifier.PUBLIC) - .build() - ); - // getNumericalId - villagerTypeClass.addMethod( - MethodSpec.methodBuilder("getNumericalId") - .returns(TypeName.INT) - .addStatement("return $T.VILLAGER_TYPE_REGISTRY.getId(this)", REGISTRY_CLASS) - .addModifiers(Modifier.PUBLIC) - .build() - ); - // fromId Method - villagerTypeClass.addMethod( - MethodSpec.methodBuilder("fromId") - .returns(villagerTypeClassName) - .addAnnotation(Nullable.class) - .addParameter(TypeName.INT, "id") - .addStatement("return $T.VILLAGER_TYPE_REGISTRY.get((short) id)", REGISTRY_CLASS) - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .build() - ); - // fromId Method - villagerTypeClass.addMethod( - MethodSpec.methodBuilder("fromId") - .returns(villagerTypeClassName) - .addAnnotation(NotNull.class) - .addParameter(ADVENTURE_KEY, "id") - .addStatement("return $T.VILLAGER_TYPE_REGISTRY.get(id)", REGISTRY_CLASS) - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .build() - ); - // toString method - villagerTypeClass.addMethod(TO_STRING); - // values method - villagerTypeClass.addMethod( - MethodSpec.methodBuilder("values") - .addAnnotation(NotNull.class) - .returns(ParameterizedTypeName.get(ClassName.get(List.class), villagerTypeClassName)) - .addStatement("return $T.VILLAGER_TYPE_REGISTRY.values()", REGISTRY_CLASS) - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .build() - ); - CodeBlock.Builder staticBlock = CodeBlock.builder(); - // Use data - for (JsonElement vp : villagerTypes) { - JsonObject villagerProfession = vp.getAsJsonObject(); - - String villagerProfessionName = villagerProfession.get("name").getAsString(); - - villagerTypeClass.addField( - FieldSpec.builder( - villagerTypeClassName, - villagerProfessionName - ).initializer( - "new $T($T.from($S))", - villagerTypeClassName, - NAMESPACE_ID_CLASS, - villagerProfession.get("id").getAsString() - ).addModifiers(Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).build() - ); - // Add to static init. - staticBlock.addStatement("$T.VILLAGER_TYPE_REGISTRY.register($N)", REGISTRY_CLASS, villagerProfessionName); - } - - villagerTypeClass.addStaticBlock(staticBlock.build()); - - // Write files to outputFolder - writeFiles( - List.of( - JavaFile.builder("net.minestom.server.entity.metadata.villager", villagerTypeClass.build()) - .indent(DEFAULT_INDENT) - .skipJavaLangImports(true) - .build() - ), - outputFolder - ); - } -} diff --git a/src/autogenerated/java/net/minestom/server/entity/villager/VillagerProfessions.java b/src/autogenerated/java/net/minestom/server/entity/villager/VillagerProfessions.java new file mode 100644 index 00000000000..0f47b8b5050 --- /dev/null +++ b/src/autogenerated/java/net/minestom/server/entity/villager/VillagerProfessions.java @@ -0,0 +1,37 @@ +package net.minestom.server.entity.villager; + +/** + * Code autogenerated, do not edit! + */ +@SuppressWarnings("unused") +interface VillagerProfessions { + VillagerProfession NONE = VillagerProfessionImpl.get("minecraft:none"); + + VillagerProfession ARMORER = VillagerProfessionImpl.get("minecraft:armorer"); + + VillagerProfession BUTCHER = VillagerProfessionImpl.get("minecraft:butcher"); + + VillagerProfession CARTOGRAPHER = VillagerProfessionImpl.get("minecraft:cartographer"); + + VillagerProfession CLERIC = VillagerProfessionImpl.get("minecraft:cleric"); + + VillagerProfession FARMER = VillagerProfessionImpl.get("minecraft:farmer"); + + VillagerProfession FISHERMAN = VillagerProfessionImpl.get("minecraft:fisherman"); + + VillagerProfession FLETCHER = VillagerProfessionImpl.get("minecraft:fletcher"); + + VillagerProfession LEATHERWORKER = VillagerProfessionImpl.get("minecraft:leatherworker"); + + VillagerProfession LIBRARIAN = VillagerProfessionImpl.get("minecraft:librarian"); + + VillagerProfession MASON = VillagerProfessionImpl.get("minecraft:mason"); + + VillagerProfession NITWIT = VillagerProfessionImpl.get("minecraft:nitwit"); + + VillagerProfession SHEPHERD = VillagerProfessionImpl.get("minecraft:shepherd"); + + VillagerProfession TOOLSMITH = VillagerProfessionImpl.get("minecraft:toolsmith"); + + VillagerProfession WEAPONSMITH = VillagerProfessionImpl.get("minecraft:weaponsmith"); +} diff --git a/src/autogenerated/java/net/minestom/server/entity/villager/VillagerTypes.java b/src/autogenerated/java/net/minestom/server/entity/villager/VillagerTypes.java new file mode 100644 index 00000000000..681ce44c1d3 --- /dev/null +++ b/src/autogenerated/java/net/minestom/server/entity/villager/VillagerTypes.java @@ -0,0 +1,21 @@ +package net.minestom.server.entity.villager; + +/** + * Code autogenerated, do not edit! + */ +@SuppressWarnings("unused") +interface VillagerTypes { + VillagerType DESERT = VillagerTypeImpl.get("minecraft:desert"); + + VillagerType JUNGLE = VillagerTypeImpl.get("minecraft:jungle"); + + VillagerType PLAINS = VillagerTypeImpl.get("minecraft:plains"); + + VillagerType SAVANNA = VillagerTypeImpl.get("minecraft:savanna"); + + VillagerType SNOW = VillagerTypeImpl.get("minecraft:snow"); + + VillagerType SWAMP = VillagerTypeImpl.get("minecraft:swamp"); + + VillagerType TAIGA = VillagerTypeImpl.get("minecraft:taiga"); +} diff --git a/src/main/java/net/minestom/server/entity/metadata/monster/zombie/ZombieVillagerMeta.java b/src/main/java/net/minestom/server/entity/metadata/monster/zombie/ZombieVillagerMeta.java index 66023cc1212..ea04af22fb9 100644 --- a/src/main/java/net/minestom/server/entity/metadata/monster/zombie/ZombieVillagerMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/monster/zombie/ZombieVillagerMeta.java @@ -4,6 +4,8 @@ import net.minestom.server.entity.Metadata; import net.minestom.server.entity.MetadataHolder; import net.minestom.server.entity.metadata.villager.VillagerMeta; +import net.minestom.server.entity.villager.VillagerProfession; +import net.minestom.server.entity.villager.VillagerType; import org.jetbrains.annotations.NotNull; public class ZombieVillagerMeta extends ZombieMeta { @@ -25,15 +27,15 @@ public void setConverting(boolean value) { public VillagerMeta.VillagerData getVillagerData() { int[] data = super.metadata.getIndex(OFFSET + 1, null); if (data == null) { - return new VillagerMeta.VillagerData(VillagerMeta.Type.PLAINS, VillagerMeta.Profession.NONE, VillagerMeta.Level.NOVICE); + return new VillagerMeta.VillagerData(VillagerType.PLAINS, VillagerProfession.NONE, VillagerMeta.Level.NOVICE); } - return new VillagerMeta.VillagerData(VillagerMeta.Type.VALUES[data[0]], VillagerMeta.Profession.VALUES[data[1]], VillagerMeta.Level.VALUES[data[2] - 1]); + return new VillagerMeta.VillagerData(VillagerType.fromId(data[0]), VillagerProfession.fromId(data[1]), VillagerMeta.Level.VALUES[data[2] - 1]); } public void setVillagerData(VillagerMeta.VillagerData data) { super.metadata.setIndex(OFFSET + 1, Metadata.VillagerData( - data.getType().ordinal(), - data.getProfession().ordinal(), + data.getType().id(), + data.getProfession().id(), data.getLevel().ordinal() + 1 )); } diff --git a/src/main/java/net/minestom/server/entity/villager/VillagerProfession.java b/src/main/java/net/minestom/server/entity/villager/VillagerProfession.java new file mode 100644 index 00000000000..faf65662f88 --- /dev/null +++ b/src/main/java/net/minestom/server/entity/villager/VillagerProfession.java @@ -0,0 +1,42 @@ +package net.minestom.server.entity.villager; + +import net.kyori.adventure.key.Key; +import net.minestom.server.registry.Registry; +import net.minestom.server.registry.StaticProtocolObject; +import net.minestom.server.utils.NamespaceID; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Collection; + +public interface VillagerProfession extends StaticProtocolObject, VillagerProfessions { + static @NotNull Collection<@NotNull VillagerProfession> values() { + return VillagerProfessionImpl.values(); + } + + static @Nullable VillagerProfession fromNamespaceId(@NotNull String namespaceID) { + return VillagerProfessionImpl.getSafe(namespaceID); + } + + static @Nullable VillagerProfession fromNamespaceId(@NotNull NamespaceID namespaceID) { + return fromNamespaceId(namespaceID.asString()); + } + + static @Nullable VillagerProfession fromId(int id) { + return VillagerProfessionImpl.getId(id); + } + + @Override + default @NotNull Key key() { + return StaticProtocolObject.super.key(); + } + + @Contract(pure = true) + Registry.VillagerProfession registry(); + + @Override + default @NotNull NamespaceID namespace() { + return registry().namespace(); + } +} diff --git a/src/main/java/net/minestom/server/entity/villager/VillagerProfessionImpl.java b/src/main/java/net/minestom/server/entity/villager/VillagerProfessionImpl.java new file mode 100644 index 00000000000..338cbb39e3f --- /dev/null +++ b/src/main/java/net/minestom/server/entity/villager/VillagerProfessionImpl.java @@ -0,0 +1,39 @@ +package net.minestom.server.entity.villager; + +import net.minestom.server.registry.Registry; +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; + +public record VillagerProfessionImpl(Registry.VillagerProfession registry, int id) implements VillagerProfession { + private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.VILLAGER_PROFESSION, VillagerProfessionImpl::createImpl); + + public VillagerProfessionImpl(Registry.VillagerProfession registry) { + this(registry, registry.id()); + } + + private static VillagerProfession createImpl(String namespace, Registry.Properties properties) { + return new VillagerProfessionImpl(Registry.villagerProfession(namespace, properties)); + } + + static VillagerProfession get(@NotNull String namespace) { + return CONTAINER.get(namespace); + } + + static VillagerProfession getSafe(@NotNull String namespace) { + return CONTAINER.getSafe(namespace); + } + + static VillagerProfession getId(int id) { + return CONTAINER.getId(id); + } + + static Collection values() { + return CONTAINER.values(); + } + + @Override + public String toString() { + return name(); + } +} diff --git a/src/main/java/net/minestom/server/entity/villager/VillagerType.java b/src/main/java/net/minestom/server/entity/villager/VillagerType.java new file mode 100644 index 00000000000..ac8fcfd4f21 --- /dev/null +++ b/src/main/java/net/minestom/server/entity/villager/VillagerType.java @@ -0,0 +1,43 @@ +package net.minestom.server.entity.villager; + +import net.kyori.adventure.key.Key; +import net.minestom.server.registry.Registry; +import net.minestom.server.registry.StaticProtocolObject; +import net.minestom.server.utils.NamespaceID; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Collection; + +public sealed interface VillagerType extends StaticProtocolObject, VillagerTypes permits VillagerTypeImpl { + + static @NotNull Collection<@NotNull VillagerType> values() { + return VillagerTypeImpl.values(); + } + + static @Nullable VillagerType fromNamespaceId(@NotNull String namespaceID) { + return VillagerTypeImpl.getSafe(namespaceID); + } + + static @Nullable VillagerType fromNamespaceId(@NotNull NamespaceID namespaceID) { + return fromNamespaceId(namespaceID.asString()); + } + + static @Nullable VillagerType fromId(int id) { + return VillagerTypeImpl.getId(id); + } + + @Override + default @NotNull Key key() { + return StaticProtocolObject.super.key(); + } + + @Contract(pure = true) + Registry.VillagerType registry(); + + @Override + default @NotNull NamespaceID namespace() { + return registry().namespace(); + } +} diff --git a/src/main/java/net/minestom/server/entity/villager/VillagerTypeImpl.java b/src/main/java/net/minestom/server/entity/villager/VillagerTypeImpl.java new file mode 100644 index 00000000000..ec8af984f09 --- /dev/null +++ b/src/main/java/net/minestom/server/entity/villager/VillagerTypeImpl.java @@ -0,0 +1,39 @@ +package net.minestom.server.entity.villager; + +import net.minestom.server.registry.Registry; +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; + +public record VillagerTypeImpl(Registry.VillagerType registry, int id) implements VillagerType { + private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.VILLAGER_TYPES, VillagerTypeImpl::createImpl); + + public VillagerTypeImpl(Registry.VillagerType registry) { + this(registry, registry.id()); + } + + private static VillagerType createImpl(String namespace, Registry.Properties properties) { + return new VillagerTypeImpl(Registry.villagerType(namespace, properties)); + } + + static VillagerType get(@NotNull String namespace) { + return CONTAINER.get(namespace); + } + + static VillagerType getSafe(@NotNull String namespace) { + return CONTAINER.getSafe(namespace); + } + + static VillagerType getId(int id) { + return CONTAINER.getId(id); + } + + static Collection values() { + return CONTAINER.values(); + } + + @Override + public String toString() { + return name(); + } +} diff --git a/src/main/java/net/minestom/server/registry/Registry.java b/src/main/java/net/minestom/server/registry/Registry.java index 8093e7a87ee..be5497cd118 100644 --- a/src/main/java/net/minestom/server/registry/Registry.java +++ b/src/main/java/net/minestom/server/registry/Registry.java @@ -236,7 +236,9 @@ public enum Resource { CHAT_TYPES("chat_types.json"), ENCHANTMENTS("enchantments.snbt"), PAINTING_VARIANTS("painting_variants.json"), - JUKEBOX_SONGS("jukebox_songs.json"); + JUKEBOX_SONGS("jukebox_songs.json"), + VILLAGER_PROFESSION("villager_professions.json"), + VILLAGER_TYPES("villager_types.json"); private final String name; @@ -779,6 +781,25 @@ public TrimPatternEntry(@NotNull String namespace, @NotNull Properties main, Pro } } + public record VillagerProfession(NamespaceID namespace, int id, SoundEvent soundEvent, Properties custom) implements Entry { + public VillagerProfession(String namespace, + Properties main, + Properties custom) { + this(NamespaceID.from(namespace), + main.getInt("id"), + SoundEvent.fromNamespaceId(main.getString("workSound")), + custom); + } + } + + public record VillagerType(NamespaceID namespace, int id, Properties custom) implements Entry { + public VillagerType(String namespace, Properties main, Properties custom) { + this(NamespaceID.from(namespace), + main.getInt("id"), + custom); + } + } + public record PotionEffectEntry(NamespaceID namespace, int id, String translationKey, int color, From 1f6369a77b8fc4211c1f905a976804fabb526fdd Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Sun, 26 May 2024 15:32:17 +0200 Subject: [PATCH 17/93] [Chore] Replace enum with code generator for fluids (#27) * Move Fluids to CodeGenerator * [Chore] Replace enum with registry * Refactor: Move 'Fluids' interface from FluidImpl implements to Fluid extends --------- Co-authored-by: OneLiteFeather --- .../java/net/minestom/codegen/Generators.java | 5 +- .../codegen/fluid/FluidGenerator.java | 128 ------------------ .../java/net/minestom/server/fluid/Fluid.java | 62 --------- .../net/minestom/server/fluid/Fluids.java | 17 +++ .../server/registry/FluidRegistries.java | 45 ------ .../java/net/minestom/server/fluid/Fluid.java | 37 +++++ .../net/minestom/server/fluid/FluidImpl.java | 34 +++++ .../minestom/server/gamedata/tags/Tag.java | 5 +- .../minestom/server/registry/Registry.java | 23 +++- 9 files changed, 114 insertions(+), 242 deletions(-) delete mode 100644 code-generators/src/main/java/net/minestom/codegen/fluid/FluidGenerator.java delete mode 100644 src/autogenerated/java/net/minestom/server/fluid/Fluid.java create mode 100644 src/autogenerated/java/net/minestom/server/fluid/Fluids.java delete mode 100644 src/autogenerated/java/net/minestom/server/registry/FluidRegistries.java create mode 100644 src/main/java/net/minestom/server/fluid/Fluid.java create mode 100644 src/main/java/net/minestom/server/fluid/FluidImpl.java diff --git a/code-generators/src/main/java/net/minestom/codegen/Generators.java b/code-generators/src/main/java/net/minestom/codegen/Generators.java index 6e5b922dd49..148c4bf0763 100644 --- a/code-generators/src/main/java/net/minestom/codegen/Generators.java +++ b/code-generators/src/main/java/net/minestom/codegen/Generators.java @@ -1,7 +1,6 @@ package net.minestom.codegen; import net.minestom.codegen.color.DyeColorGenerator; -import net.minestom.codegen.fluid.FluidGenerator; import net.minestom.codegen.particle.ParticleGenerator; import net.minestom.codegen.recipe.RecipeTypeGenerator; import org.slf4j.Logger; @@ -40,6 +39,7 @@ public static void main(String[] args) { generator.generate(resource("feature_flags.json"), "net.minestom.server", "FeatureFlag", "FeatureFlagImpl", "FeatureFlags"); generator.generate(resource("villager_professions.json"), "net.minestom.server.entity.villager", "VillagerProfession", "VillagerProfessionImpl", "VillagerProfessions"); generator.generate(resource("villager_types.json"), "net.minestom.server.entity.villager", "VillagerType", "VillagerTypeImpl", "VillagerTypes"); + generator.generate(resource("fluids.json"), "net.minestom.server.fluid", "Fluid", "FluidImpl", "Fluids"); // Dynamic registries generator.generateKeys(resource("chat_types.json"), "net.minestom.server.message", "ChatType", "ChatTypes"); @@ -54,9 +54,6 @@ public static void main(String[] args) { generator.generateKeys(resource("painting_variants.json"), "net.minestom.server.entity.metadata.other", "PaintingMeta.Variant", "PaintingVariants"); generator.generateKeys(resource("jukebox_songs.json"), "net.minestom.server.instance.block.jukebox", "JukeboxSong", "JukeboxSongs"); - // Generate fluids - new FluidGenerator(resource("fluids.json"), outputFolder).generate(); - LOGGER.info("Finished generating code"); } diff --git a/code-generators/src/main/java/net/minestom/codegen/fluid/FluidGenerator.java b/code-generators/src/main/java/net/minestom/codegen/fluid/FluidGenerator.java deleted file mode 100644 index 3968e9ec6eb..00000000000 --- a/code-generators/src/main/java/net/minestom/codegen/fluid/FluidGenerator.java +++ /dev/null @@ -1,128 +0,0 @@ -package net.minestom.codegen.fluid; - -import com.google.gson.JsonObject; -import com.squareup.javapoet.*; -import net.minestom.codegen.MinestomCodeGenerator; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import net.minestom.codegen.util.GenerationHelper; - -import javax.lang.model.element.Modifier; -import java.io.File; -import java.io.InputStream; -import java.io.InputStreamReader; - -@ApiStatus.NonExtendable -@ApiStatus.Internal -public final class FluidGenerator extends MinestomCodeGenerator { - private static final Logger LOGGER = LoggerFactory.getLogger(FluidGenerator.class); - private final InputStream fluidsFile; - private final File outputFolder; - - public FluidGenerator(@Nullable InputStream fluidsFile, @NotNull File outputFolder) { - super("net.minestom.server.fluid"); - this.fluidsFile = fluidsFile; - this.outputFolder = outputFolder; - } - - @Override - public void generate() { - if (fluidsFile == null) { - LOGGER.error("Failed to find fluids.json."); - LOGGER.error("Stopped code generation for fluids."); - return; - } - if (!outputFolder.exists() && !outputFolder.mkdirs()) { - LOGGER.error("Output folder for code generation does not exist and could not be created."); - return; - } - - JsonObject fluids = GSON.fromJson(new InputStreamReader(fluidsFile), JsonObject.class); - ClassName fluidClassName = ClassName.get(packageName, "Fluid"); - - // Particle - TypeSpec.Builder fluidClass = TypeSpec.enumBuilder(fluidClassName) - .addSuperinterface(KEYORI_ADVENTURE_KEY) - .addModifiers(Modifier.PUBLIC).addJavadoc("AUTOGENERATED by " + getClass().getSimpleName()); - - fluidClass.addField( - FieldSpec.builder(NAMESPACE_ID_CLASS, "id") - .addModifiers(PRIVATE_FINAL_MODIFIERS).addAnnotation(NotNull.class).build() - ); - // static field - fluidClass.addField( - FieldSpec.builder(ArrayTypeName.of(fluidClassName), "VALUES") - .addModifiers(CONSTANT_MODIFIERS) - .initializer("values()") - .build() - ); - - fluidClass.addMethod( - MethodSpec.constructorBuilder() - .addParameter(ParameterSpec.builder(NAMESPACE_ID_CLASS, "id").addAnnotation(NotNull.class).build()) - .addStatement("this.id = id") - .addStatement("$T.fluids.put(id, this)", REGISTRY_CLASS) - .build() - ); - // Override key method (adventure) - fluidClass.addMethod(GenerationHelper.ADVENTURE_KEY_METHOD); - // getId method - fluidClass.addMethod( - MethodSpec.methodBuilder("getId") - .returns(TypeName.SHORT) - .addStatement("return (short) ordinal()") - .addModifiers(Modifier.PUBLIC) - .build() - ); - // getNamespaceID method - fluidClass.addMethod( - MethodSpec.methodBuilder("getNamespaceID") - .returns(NAMESPACE_ID_CLASS) - .addAnnotation(NotNull.class) - .addStatement("return this.id") - .addModifiers(Modifier.PUBLIC) - .build() - ); - // toString method - fluidClass.addMethod(GenerationHelper.TO_STRING); - - // fromId Method - fluidClass.addMethod( - MethodSpec.methodBuilder("fromId") - .returns(fluidClassName) - .addAnnotation(Nullable.class) - .addParameter(TypeName.SHORT, "id") - .beginControlFlow("if(id >= 0 && id < VALUES.length)") - .addStatement("return VALUES[id]") - .endControlFlow() - .addStatement("return null") - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .build() - ); - - // Use data - fluids.entrySet().forEach(entry -> { - final String fluidName = entry.getKey(); - fluidClass.addEnumConstant( - extractNamespace(fluidName), - TypeSpec.anonymousClassBuilder( - "$T.from($S)", - NAMESPACE_ID_CLASS, - fluidName - ).build() - ); - }); - - // Write files to outputFolder - writeFile( - JavaFile.builder(packageName, fluidClass.build()) - .indent(DEFAULT_INDENT) - .skipJavaLangImports(true) - .build(), - outputFolder - ); - } -} diff --git a/src/autogenerated/java/net/minestom/server/fluid/Fluid.java b/src/autogenerated/java/net/minestom/server/fluid/Fluid.java deleted file mode 100644 index e00575f9bbc..00000000000 --- a/src/autogenerated/java/net/minestom/server/fluid/Fluid.java +++ /dev/null @@ -1,62 +0,0 @@ -package net.minestom.server.fluid; - -import net.kyori.adventure.key.Key; -import net.kyori.adventure.key.Keyed; -import net.minestom.server.registry.FluidRegistries; -import net.minestom.server.utils.NamespaceID; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * AUTOGENERATED by FluidGenerator - */ -public enum Fluid implements Keyed { - EMPTY(NamespaceID.from("minecraft:empty")), - - FLOWING_WATER(NamespaceID.from("minecraft:flowing_water")), - - WATER(NamespaceID.from("minecraft:water")), - - FLOWING_LAVA(NamespaceID.from("minecraft:flowing_lava")), - - LAVA(NamespaceID.from("minecraft:lava")); - - private static final Fluid[] VALUES = values(); - - @NotNull - private final NamespaceID id; - - Fluid(@NotNull NamespaceID id) { - this.id = id; - FluidRegistries.fluids.put(id, this); - } - - @Override - @NotNull - public Key key() { - return this.id; - } - - public short getId() { - return (short) ordinal(); - } - - @NotNull - public NamespaceID getNamespaceID() { - return this.id; - } - - @NotNull - @Override - public String toString() { - return "[" + this.id + "]"; - } - - @Nullable - public static Fluid fromId(short id) { - if(id >= 0 && id < VALUES.length) { - return VALUES[id]; - } - return null; - } -} diff --git a/src/autogenerated/java/net/minestom/server/fluid/Fluids.java b/src/autogenerated/java/net/minestom/server/fluid/Fluids.java new file mode 100644 index 00000000000..27157009e9e --- /dev/null +++ b/src/autogenerated/java/net/minestom/server/fluid/Fluids.java @@ -0,0 +1,17 @@ +package net.minestom.server.fluid; + +/** + * Code autogenerated, do not edit! + */ +@SuppressWarnings("unused") +interface Fluids { + Fluid EMPTY = FluidImpl.get("minecraft:empty"); + + Fluid FLOWING_WATER = FluidImpl.get("minecraft:flowing_water"); + + Fluid WATER = FluidImpl.get("minecraft:water"); + + Fluid FLOWING_LAVA = FluidImpl.get("minecraft:flowing_lava"); + + Fluid LAVA = FluidImpl.get("minecraft:lava"); +} diff --git a/src/autogenerated/java/net/minestom/server/registry/FluidRegistries.java b/src/autogenerated/java/net/minestom/server/registry/FluidRegistries.java deleted file mode 100644 index f6e23118b11..00000000000 --- a/src/autogenerated/java/net/minestom/server/registry/FluidRegistries.java +++ /dev/null @@ -1,45 +0,0 @@ -// AUTOGENERATED by net.minestom.codegen.RegistriesGenerator -package net.minestom.server.registry; - -import net.kyori.adventure.key.Key; -import net.minestom.server.fluid.Fluid; -import net.minestom.server.utils.NamespaceID; -import org.jetbrains.annotations.NotNull; - -import java.util.HashMap; - -/** - * AUTOGENERATED - */ -public final class FluidRegistries { - - /** - * Should only be used for internal code, please use the get* methods. - */ - @Deprecated - public static final HashMap fluids = new HashMap<>(); - - /** - * Returns the corresponding Fluid matching the given id. Returns 'EMPTY' if none match. - */ - @NotNull - public static Fluid getFluid(String id) { - return getFluid(NamespaceID.from(id)); - } - - /** - * Returns the corresponding Fluid matching the given id. Returns 'EMPTY' if none match. - */ - @NotNull - public static Fluid getFluid(NamespaceID id) { - return fluids.getOrDefault(id, Fluid.EMPTY); - } - - /** - * Returns the corresponding Fluid matching the given key. Returns 'EMPTY' if none match. - */ - @NotNull - public static Fluid getFluid(Key key) { - return getFluid(NamespaceID.from(key)); - } -} diff --git a/src/main/java/net/minestom/server/fluid/Fluid.java b/src/main/java/net/minestom/server/fluid/Fluid.java new file mode 100644 index 00000000000..c9e6bedf370 --- /dev/null +++ b/src/main/java/net/minestom/server/fluid/Fluid.java @@ -0,0 +1,37 @@ +package net.minestom.server.fluid; + +import net.minestom.server.registry.Registry; +import net.minestom.server.registry.StaticProtocolObject; +import net.minestom.server.utils.NamespaceID; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Collection; + +public sealed interface Fluid extends StaticProtocolObject, Fluids permits FluidImpl { + /** + * Returns the entity registry. + * + * @return the entity registry or null if it was created with a builder + */ + @Contract(pure = true) + @Nullable + Registry.FluidEntry registry(); + + @Override + @NotNull + NamespaceID namespace(); + + static @NotNull Collection<@NotNull Fluid> values() { + return FluidImpl.values(); + } + + static @Nullable Fluid fromNamespaceId(@NotNull String namespaceID) { + return FluidImpl.getSafe(namespaceID); + } + + static @Nullable Fluid fromNamespaceId(@NotNull NamespaceID namespaceID) { + return fromNamespaceId(namespaceID.asString()); + } +} diff --git a/src/main/java/net/minestom/server/fluid/FluidImpl.java b/src/main/java/net/minestom/server/fluid/FluidImpl.java new file mode 100644 index 00000000000..d5c0cc3b741 --- /dev/null +++ b/src/main/java/net/minestom/server/fluid/FluidImpl.java @@ -0,0 +1,34 @@ +package net.minestom.server.fluid; + +import net.minestom.server.registry.Registry; +import net.minestom.server.utils.NamespaceID; +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; +import java.util.concurrent.atomic.AtomicInteger; + +public record FluidImpl(Registry.FluidEntry registry, NamespaceID namespace, int id) implements Fluid { + + private static final Registry.DynamicContainer CONTAINER = Registry.createDynamicContainer(Registry.Resource.FLUIDS, FluidImpl::createImpl); + private static final AtomicInteger INDEX = new AtomicInteger(); + + private static FluidImpl createImpl(String namespace, Registry.Properties properties) { + return new FluidImpl(Registry.fluidEntry(namespace, properties)); + } + + private FluidImpl(Registry.FluidEntry registry) { + this(registry, registry.namespace(), INDEX.getAndIncrement()); + } + + static Collection values() { + return CONTAINER.values(); + } + + public static Fluid get(@NotNull String namespace) { + return CONTAINER.get(namespace); + } + + static Fluid getSafe(@NotNull String namespace) { + return CONTAINER.getSafe(namespace); + } +} diff --git a/src/main/java/net/minestom/server/gamedata/tags/Tag.java b/src/main/java/net/minestom/server/gamedata/tags/Tag.java index 663f9a1299d..4befbb2091c 100644 --- a/src/main/java/net/minestom/server/gamedata/tags/Tag.java +++ b/src/main/java/net/minestom/server/gamedata/tags/Tag.java @@ -4,6 +4,7 @@ import net.kyori.adventure.key.Keyed; import net.minestom.server.MinecraftServer; import net.minestom.server.entity.EntityType; +import net.minestom.server.fluid.Fluid; import net.minestom.server.instance.block.Block; import net.minestom.server.item.Material; import net.minestom.server.registry.DynamicRegistry; @@ -93,11 +94,11 @@ public enum BasicType { ITEMS("minecraft:item", Registry.Resource.ITEM_TAGS, name -> Objects.requireNonNull(Material.fromNamespaceId(name)).id()), FLUIDS("minecraft:fluid", Registry.Resource.FLUID_TAGS, - name -> FluidRegistries.getFluid(name).ordinal()), + name -> Fluid.fromNamespaceId(name).id()), ENTITY_TYPES("minecraft:entity_type", Registry.Resource.ENTITY_TYPE_TAGS, name -> Objects.requireNonNull(EntityType.fromNamespaceId(name)).id()), GAME_EVENTS("minecraft:game_event", Registry.Resource.GAMEPLAY_TAGS, - name -> FluidRegistries.getFluid(name).ordinal()), + name -> Fluid.fromNamespaceId(name).id()), SOUND_EVENTS("minecraft:sound_event", null, null), // Seems not to be included in server data POTION_EFFECTS("minecraft:sound_event", null, null), // Seems not to be included in server data diff --git a/src/main/java/net/minestom/server/registry/Registry.java b/src/main/java/net/minestom/server/registry/Registry.java index be5497cd118..3b332561031 100644 --- a/src/main/java/net/minestom/server/registry/Registry.java +++ b/src/main/java/net/minestom/server/registry/Registry.java @@ -130,6 +130,11 @@ public static JukeboxSongEntry jukeboxSong(String namespace, @NotNull Properties return new JukeboxSongEntry(namespace, main, null); } + @ApiStatus.Internal + public static FluidEntry fluidEntry(String namespace, @NotNull Properties main) { + return new FluidEntry(namespace, main, null); + } + @ApiStatus.Internal public static Map> load(Resource resource) { Map> map = new HashMap<>(); @@ -238,7 +243,9 @@ public enum Resource { PAINTING_VARIANTS("painting_variants.json"), JUKEBOX_SONGS("jukebox_songs.json"), VILLAGER_PROFESSION("villager_professions.json"), - VILLAGER_TYPES("villager_types.json"); + VILLAGER_TYPES("villager_types.json"), + FLUIDS("fluids.json"), + ; private final String name; @@ -251,6 +258,20 @@ public enum Resource { } } + public record FluidEntry( + @NotNull NamespaceID namespace, + @NotNull NamespaceID bucketId, + @Nullable Properties custom + ) implements Entry { + + public FluidEntry(String namespace, Properties main, Properties custom) { + this(NamespaceID.from(namespace), + NamespaceID.from(main.getString("bucketId")), + custom + ); + } + } + public static final class BlockEntry implements Entry { private final NamespaceID namespace; private final int id; From e7b85a0ce062f3edb872f12ed726177abe3ae35f Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Sun, 26 May 2024 19:24:25 +0200 Subject: [PATCH 18/93] Comment out gameevent tags and fix order of AtomicInteger for fluid registry --- src/main/java/net/minestom/server/fluid/FluidImpl.java | 2 +- src/main/java/net/minestom/server/gamedata/tags/Tag.java | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/minestom/server/fluid/FluidImpl.java b/src/main/java/net/minestom/server/fluid/FluidImpl.java index d5c0cc3b741..8066c423375 100644 --- a/src/main/java/net/minestom/server/fluid/FluidImpl.java +++ b/src/main/java/net/minestom/server/fluid/FluidImpl.java @@ -9,8 +9,8 @@ public record FluidImpl(Registry.FluidEntry registry, NamespaceID namespace, int id) implements Fluid { - private static final Registry.DynamicContainer CONTAINER = Registry.createDynamicContainer(Registry.Resource.FLUIDS, FluidImpl::createImpl); private static final AtomicInteger INDEX = new AtomicInteger(); + private static final Registry.DynamicContainer CONTAINER = Registry.createDynamicContainer(Registry.Resource.FLUIDS, FluidImpl::createImpl); private static FluidImpl createImpl(String namespace, Registry.Properties properties) { return new FluidImpl(Registry.fluidEntry(namespace, properties)); diff --git a/src/main/java/net/minestom/server/gamedata/tags/Tag.java b/src/main/java/net/minestom/server/gamedata/tags/Tag.java index 4befbb2091c..32c73a947db 100644 --- a/src/main/java/net/minestom/server/gamedata/tags/Tag.java +++ b/src/main/java/net/minestom/server/gamedata/tags/Tag.java @@ -8,7 +8,6 @@ import net.minestom.server.instance.block.Block; import net.minestom.server.item.Material; import net.minestom.server.registry.DynamicRegistry; -import net.minestom.server.registry.FluidRegistries; import net.minestom.server.registry.ProtocolObject; import net.minestom.server.registry.Registry; import net.minestom.server.utils.NamespaceID; @@ -94,11 +93,11 @@ public enum BasicType { ITEMS("minecraft:item", Registry.Resource.ITEM_TAGS, name -> Objects.requireNonNull(Material.fromNamespaceId(name)).id()), FLUIDS("minecraft:fluid", Registry.Resource.FLUID_TAGS, - name -> Fluid.fromNamespaceId(name).id()), + name -> Objects.requireNonNull(Fluid.fromNamespaceId(name)).id()), ENTITY_TYPES("minecraft:entity_type", Registry.Resource.ENTITY_TYPE_TAGS, name -> Objects.requireNonNull(EntityType.fromNamespaceId(name)).id()), - GAME_EVENTS("minecraft:game_event", Registry.Resource.GAMEPLAY_TAGS, - name -> Fluid.fromNamespaceId(name).id()), + /*GAME_EVENTS("minecraft:game_event", Registry.Resource.GAMEPLAY_TAGS, + name -> Objects.requireNonNull(Fluid.fromNamespaceId(name)).id());*/ SOUND_EVENTS("minecraft:sound_event", null, null), // Seems not to be included in server data POTION_EFFECTS("minecraft:sound_event", null, null), // Seems not to be included in server data From 99238c264d3a203b46b1c024973e83bec0b98806 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Mon, 27 May 2024 17:41:37 +0200 Subject: [PATCH 19/93] [#34] Better Notification System (#35) * [#34] Implement new notification system with tests * [#34] Update demo to use new notification system * [#34] Add deprecation text to old notification system * [#34] Improve javadocs and rename builder implementation * [#34] Improve javadocs and fix tests * [#34] Remove empty lines * [#34] Add package description --- .../java/net/minestom/demo/PlayerInit.java | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/demo/src/main/java/net/minestom/demo/PlayerInit.java b/demo/src/main/java/net/minestom/demo/PlayerInit.java index 0369ae9da70..31751af14c9 100644 --- a/demo/src/main/java/net/minestom/demo/PlayerInit.java +++ b/demo/src/main/java/net/minestom/demo/PlayerInit.java @@ -5,8 +5,6 @@ import net.minestom.server.FeatureFlag; import net.minestom.server.MinecraftServer; import net.minestom.server.advancements.FrameType; -import net.minestom.server.advancements.notifications.Notification; -import net.minestom.server.advancements.notifications.NotificationCenter; import net.minestom.server.adventure.MinestomAdventure; import net.minestom.server.adventure.audience.Audiences; import net.minestom.server.coordinate.Pos; @@ -24,7 +22,15 @@ import net.minestom.server.event.entity.EntityAttackEvent; import net.minestom.server.event.item.ItemDropEvent; import net.minestom.server.event.item.PickupItemEvent; -import net.minestom.server.event.player.*; +import net.minestom.server.event.player.AsyncPlayerConfigurationEvent; +import net.minestom.server.event.player.PlayerBlockInteractEvent; +import net.minestom.server.event.player.PlayerBlockPlaceEvent; +import net.minestom.server.event.player.PlayerDeathEvent; +import net.minestom.server.event.player.PlayerDisconnectEvent; +import net.minestom.server.event.player.PlayerPacketEvent; +import net.minestom.server.event.player.PlayerPacketOutEvent; +import net.minestom.server.event.player.PlayerSpawnEvent; +import net.minestom.server.event.player.PlayerUseItemOnBlockEvent; import net.minestom.server.event.server.ServerTickMonitorEvent; import net.minestom.server.instance.Instance; import net.minestom.server.instance.InstanceContainer; @@ -50,6 +56,7 @@ import net.minestom.server.potion.CustomPotionEffect; import net.minestom.server.potion.PotionEffect; import net.minestom.server.sound.SoundEvent; +import net.minestom.server.notifications.Notification; import net.minestom.server.utils.MathUtils; import net.minestom.server.utils.NamespaceID; import net.minestom.server.utils.time.TimeUnit; @@ -183,13 +190,11 @@ class A { if (event.isFirstSpawn()) { - Notification notification = new Notification( - Component.text("Welcome!"), - FrameType.TASK, - Material.IRON_SWORD - ); - NotificationCenter.send(notification, event.getPlayer()); - + Notification notification = Notification.builder() + .frameType(FrameType.TASK) + .title(Component.text("Welcome!")) + .icon(Material.IRON_SWORD).build(); + notification.send(player); player.playSound(Sound.sound(SoundEvent.ENTITY_EXPERIENCE_ORB_PICKUP, Sound.Source.PLAYER, 0.5f, 1f)); } }) From ad6ce862fd8b48a28a8138a11c07cde419f0508b Mon Sep 17 00:00:00 2001 From: Steffen Wonning Date: Sat, 1 Jun 2024 16:19:57 +0200 Subject: [PATCH 20/93] [Chore] Update gradle to version 8.8 (#58) --- gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew.bat | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index e7646dead06..6f7a6eb33e8 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-all.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew.bat b/gradlew.bat index 93e3f59f135..25da30dbdee 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -43,11 +43,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -57,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail From 7d26fe4110b2cd8d308e6ff77cd4d5dfef3592f9 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Mon, 5 Aug 2024 17:02:27 +0200 Subject: [PATCH 21/93] Remove no longer needed classes --- .../minestom/server/attribute/Attributes.java | 35 ---- .../entity/villager/VillagerProfessions.java | 37 ---- .../server/entity/villager/VillagerTypes.java | 21 --- .../net/minestom/server/fluid/Fluids.java | 17 -- .../java/net/minestom/server/ServerFlag.java | 17 -- .../monster/zombie/ZombieVillagerMeta.java | 10 +- .../entity/villager/VillagerProfession.java | 42 ----- .../villager/VillagerProfessionImpl.java | 39 ----- .../server/entity/villager/VillagerType.java | 43 ----- .../entity/villager/VillagerTypeImpl.java | 39 ----- .../java/net/minestom/server/fluid/Fluid.java | 37 ---- .../net/minestom/server/fluid/FluidImpl.java | 34 ---- .../server/item/metadata/BannerMeta.java | 165 ------------------ .../server/item/metadata/ShieldMeta.java | 131 -------------- .../world/biomes/particle/BiomeOption.java | 16 -- .../world/biomes/particle/BlockOption.java | 32 ---- .../world/biomes/particle/DefaultOption.java | 20 --- .../world/biomes/particle/DustOption.java | 34 ---- .../world/biomes/particle/ItemOption.java | 27 --- 19 files changed, 4 insertions(+), 792 deletions(-) delete mode 100644 src/autogenerated/java/net/minestom/server/attribute/Attributes.java delete mode 100644 src/autogenerated/java/net/minestom/server/entity/villager/VillagerProfessions.java delete mode 100644 src/autogenerated/java/net/minestom/server/entity/villager/VillagerTypes.java delete mode 100644 src/autogenerated/java/net/minestom/server/fluid/Fluids.java delete mode 100644 src/main/java/net/minestom/server/entity/villager/VillagerProfession.java delete mode 100644 src/main/java/net/minestom/server/entity/villager/VillagerProfessionImpl.java delete mode 100644 src/main/java/net/minestom/server/entity/villager/VillagerType.java delete mode 100644 src/main/java/net/minestom/server/entity/villager/VillagerTypeImpl.java delete mode 100644 src/main/java/net/minestom/server/fluid/Fluid.java delete mode 100644 src/main/java/net/minestom/server/fluid/FluidImpl.java delete mode 100644 src/main/java/net/minestom/server/item/metadata/BannerMeta.java delete mode 100644 src/main/java/net/minestom/server/item/metadata/ShieldMeta.java delete mode 100644 src/main/java/net/minestom/server/world/biomes/particle/BiomeOption.java delete mode 100644 src/main/java/net/minestom/server/world/biomes/particle/BlockOption.java delete mode 100644 src/main/java/net/minestom/server/world/biomes/particle/DefaultOption.java delete mode 100644 src/main/java/net/minestom/server/world/biomes/particle/DustOption.java delete mode 100644 src/main/java/net/minestom/server/world/biomes/particle/ItemOption.java diff --git a/src/autogenerated/java/net/minestom/server/attribute/Attributes.java b/src/autogenerated/java/net/minestom/server/attribute/Attributes.java deleted file mode 100644 index b0e0b870ac7..00000000000 --- a/src/autogenerated/java/net/minestom/server/attribute/Attributes.java +++ /dev/null @@ -1,35 +0,0 @@ -package net.minestom.server.attribute; - -/** - * Code autogenerated, do not edit! - */ -@SuppressWarnings("unused") -interface Attributes { - Attribute GENERIC_ARMOR = AttributeImpl.get("minecraft:generic.armor"); - - Attribute GENERIC_ARMOR_TOUGHNESS = AttributeImpl.get("minecraft:generic.armor_toughness"); - - Attribute GENERIC_ATTACK_DAMAGE = AttributeImpl.get("minecraft:generic.attack_damage"); - - Attribute GENERIC_ATTACK_KNOCKBACK = AttributeImpl.get("minecraft:generic.attack_knockback"); - - Attribute GENERIC_ATTACK_SPEED = AttributeImpl.get("minecraft:generic.attack_speed"); - - Attribute GENERIC_FLYING_SPEED = AttributeImpl.get("minecraft:generic.flying_speed"); - - Attribute GENERIC_FOLLOW_RANGE = AttributeImpl.get("minecraft:generic.follow_range"); - - Attribute HORSE_JUMP_STRENGTH = AttributeImpl.get("minecraft:horse.jump_strength"); - - Attribute GENERIC_KNOCKBACK_RESISTANCE = AttributeImpl.get("minecraft:generic.knockback_resistance"); - - Attribute GENERIC_LUCK = AttributeImpl.get("minecraft:generic.luck"); - - Attribute GENERIC_MAX_ABSORPTION = AttributeImpl.get("minecraft:generic.max_absorption"); - - Attribute GENERIC_MAX_HEALTH = AttributeImpl.get("minecraft:generic.max_health"); - - Attribute GENERIC_MOVEMENT_SPEED = AttributeImpl.get("minecraft:generic.movement_speed"); - - Attribute ZOMBIE_SPAWN_REINFORCEMENTS = AttributeImpl.get("minecraft:zombie.spawn_reinforcements"); -} diff --git a/src/autogenerated/java/net/minestom/server/entity/villager/VillagerProfessions.java b/src/autogenerated/java/net/minestom/server/entity/villager/VillagerProfessions.java deleted file mode 100644 index 0f47b8b5050..00000000000 --- a/src/autogenerated/java/net/minestom/server/entity/villager/VillagerProfessions.java +++ /dev/null @@ -1,37 +0,0 @@ -package net.minestom.server.entity.villager; - -/** - * Code autogenerated, do not edit! - */ -@SuppressWarnings("unused") -interface VillagerProfessions { - VillagerProfession NONE = VillagerProfessionImpl.get("minecraft:none"); - - VillagerProfession ARMORER = VillagerProfessionImpl.get("minecraft:armorer"); - - VillagerProfession BUTCHER = VillagerProfessionImpl.get("minecraft:butcher"); - - VillagerProfession CARTOGRAPHER = VillagerProfessionImpl.get("minecraft:cartographer"); - - VillagerProfession CLERIC = VillagerProfessionImpl.get("minecraft:cleric"); - - VillagerProfession FARMER = VillagerProfessionImpl.get("minecraft:farmer"); - - VillagerProfession FISHERMAN = VillagerProfessionImpl.get("minecraft:fisherman"); - - VillagerProfession FLETCHER = VillagerProfessionImpl.get("minecraft:fletcher"); - - VillagerProfession LEATHERWORKER = VillagerProfessionImpl.get("minecraft:leatherworker"); - - VillagerProfession LIBRARIAN = VillagerProfessionImpl.get("minecraft:librarian"); - - VillagerProfession MASON = VillagerProfessionImpl.get("minecraft:mason"); - - VillagerProfession NITWIT = VillagerProfessionImpl.get("minecraft:nitwit"); - - VillagerProfession SHEPHERD = VillagerProfessionImpl.get("minecraft:shepherd"); - - VillagerProfession TOOLSMITH = VillagerProfessionImpl.get("minecraft:toolsmith"); - - VillagerProfession WEAPONSMITH = VillagerProfessionImpl.get("minecraft:weaponsmith"); -} diff --git a/src/autogenerated/java/net/minestom/server/entity/villager/VillagerTypes.java b/src/autogenerated/java/net/minestom/server/entity/villager/VillagerTypes.java deleted file mode 100644 index 681ce44c1d3..00000000000 --- a/src/autogenerated/java/net/minestom/server/entity/villager/VillagerTypes.java +++ /dev/null @@ -1,21 +0,0 @@ -package net.minestom.server.entity.villager; - -/** - * Code autogenerated, do not edit! - */ -@SuppressWarnings("unused") -interface VillagerTypes { - VillagerType DESERT = VillagerTypeImpl.get("minecraft:desert"); - - VillagerType JUNGLE = VillagerTypeImpl.get("minecraft:jungle"); - - VillagerType PLAINS = VillagerTypeImpl.get("minecraft:plains"); - - VillagerType SAVANNA = VillagerTypeImpl.get("minecraft:savanna"); - - VillagerType SNOW = VillagerTypeImpl.get("minecraft:snow"); - - VillagerType SWAMP = VillagerTypeImpl.get("minecraft:swamp"); - - VillagerType TAIGA = VillagerTypeImpl.get("minecraft:taiga"); -} diff --git a/src/autogenerated/java/net/minestom/server/fluid/Fluids.java b/src/autogenerated/java/net/minestom/server/fluid/Fluids.java deleted file mode 100644 index 27157009e9e..00000000000 --- a/src/autogenerated/java/net/minestom/server/fluid/Fluids.java +++ /dev/null @@ -1,17 +0,0 @@ -package net.minestom.server.fluid; - -/** - * Code autogenerated, do not edit! - */ -@SuppressWarnings("unused") -interface Fluids { - Fluid EMPTY = FluidImpl.get("minecraft:empty"); - - Fluid FLOWING_WATER = FluidImpl.get("minecraft:flowing_water"); - - Fluid WATER = FluidImpl.get("minecraft:water"); - - Fluid FLOWING_LAVA = FluidImpl.get("minecraft:flowing_lava"); - - Fluid LAVA = FluidImpl.get("minecraft:lava"); -} diff --git a/src/main/java/net/minestom/server/ServerFlag.java b/src/main/java/net/minestom/server/ServerFlag.java index 1a2c443247c..d28705e1392 100644 --- a/src/main/java/net/minestom/server/ServerFlag.java +++ b/src/main/java/net/minestom/server/ServerFlag.java @@ -54,9 +54,6 @@ public final class ServerFlag { // World public static final int WORLD_BORDER_SIZE = intProperty("minestom.world-border-size", 29999984); - // Biomes - public static final boolean BIOMES_ENABLED = System.getProperty("minestom.attributes.disabled") == null; - // Terminal public static final boolean TERMINAL_ENABLED = System.getProperty("minestom.terminal.disabled") == null; public static final boolean TERMINAL_SUPPORT_HEX_COLOR = Boolean.getBoolean("minestom.terminal.support-hex-color"); @@ -67,22 +64,8 @@ public final class ServerFlag { public static final @Nullable String EXTENSIONS_DEV_CLASSES = System.getProperty("minestom.extension.indevfolder.classes"); public static final @Nullable String EXTENSIONS_DEV_RESOURCES = System.getProperty("minestom.extension.indevfolder.resources"); - // Biomes - public static final boolean BIOMES_ENABLED = System.getProperty("minestom.attributes.disabled") == null; - // Attributes public static final boolean ATTRIBUTES_ENABLED = System.getProperty("minestom.attributes.disabled") == null; - - // Terminal - public static final boolean TERMINAL_ENABLED = System.getProperty("minestom.terminal.disabled") == null; - public static final boolean TERMINAL_SUPPORT_HEX_COLOR = PropertyUtils.getBoolean("minestom.terminal.support-hex-color", true); - public static final boolean TERMINAL_SUPPORT_COLOR = PropertyUtils.getBoolean("minestom.terminal.support-color", true); - // Extensions todo use enabled flag - public static final boolean EXTENSIONS_ENABLED = PropertyUtils.getBoolean("minestom.extension.enabled", false); - public static final @NotNull String EXTENSIONS_FOLDER = System.getProperty("minestom.extension.folder", "extensions"); - public static final @Nullable String EXTENSIONS_DEV_CLASSES = System.getProperty("minestom.extension.indevfolder.classes"); - public static final @Nullable String EXTENSIONS_DEV_RESOURCES = System.getProperty("minestom.extension.indevfolder.resources"); - // Maps public static final @NotNull String MAP_RGB_MAPPING = stringProperty("minestom.map.rgbmapping", "lazy"); public static final @Nullable String MAP_RGB_REDUCTION = stringProperty("minestom.map.rgbreduction"); // Only used if rgb mapping is "approximate" diff --git a/src/main/java/net/minestom/server/entity/metadata/monster/zombie/ZombieVillagerMeta.java b/src/main/java/net/minestom/server/entity/metadata/monster/zombie/ZombieVillagerMeta.java index ea04af22fb9..66023cc1212 100644 --- a/src/main/java/net/minestom/server/entity/metadata/monster/zombie/ZombieVillagerMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/monster/zombie/ZombieVillagerMeta.java @@ -4,8 +4,6 @@ import net.minestom.server.entity.Metadata; import net.minestom.server.entity.MetadataHolder; import net.minestom.server.entity.metadata.villager.VillagerMeta; -import net.minestom.server.entity.villager.VillagerProfession; -import net.minestom.server.entity.villager.VillagerType; import org.jetbrains.annotations.NotNull; public class ZombieVillagerMeta extends ZombieMeta { @@ -27,15 +25,15 @@ public void setConverting(boolean value) { public VillagerMeta.VillagerData getVillagerData() { int[] data = super.metadata.getIndex(OFFSET + 1, null); if (data == null) { - return new VillagerMeta.VillagerData(VillagerType.PLAINS, VillagerProfession.NONE, VillagerMeta.Level.NOVICE); + return new VillagerMeta.VillagerData(VillagerMeta.Type.PLAINS, VillagerMeta.Profession.NONE, VillagerMeta.Level.NOVICE); } - return new VillagerMeta.VillagerData(VillagerType.fromId(data[0]), VillagerProfession.fromId(data[1]), VillagerMeta.Level.VALUES[data[2] - 1]); + return new VillagerMeta.VillagerData(VillagerMeta.Type.VALUES[data[0]], VillagerMeta.Profession.VALUES[data[1]], VillagerMeta.Level.VALUES[data[2] - 1]); } public void setVillagerData(VillagerMeta.VillagerData data) { super.metadata.setIndex(OFFSET + 1, Metadata.VillagerData( - data.getType().id(), - data.getProfession().id(), + data.getType().ordinal(), + data.getProfession().ordinal(), data.getLevel().ordinal() + 1 )); } diff --git a/src/main/java/net/minestom/server/entity/villager/VillagerProfession.java b/src/main/java/net/minestom/server/entity/villager/VillagerProfession.java deleted file mode 100644 index faf65662f88..00000000000 --- a/src/main/java/net/minestom/server/entity/villager/VillagerProfession.java +++ /dev/null @@ -1,42 +0,0 @@ -package net.minestom.server.entity.villager; - -import net.kyori.adventure.key.Key; -import net.minestom.server.registry.Registry; -import net.minestom.server.registry.StaticProtocolObject; -import net.minestom.server.utils.NamespaceID; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Collection; - -public interface VillagerProfession extends StaticProtocolObject, VillagerProfessions { - static @NotNull Collection<@NotNull VillagerProfession> values() { - return VillagerProfessionImpl.values(); - } - - static @Nullable VillagerProfession fromNamespaceId(@NotNull String namespaceID) { - return VillagerProfessionImpl.getSafe(namespaceID); - } - - static @Nullable VillagerProfession fromNamespaceId(@NotNull NamespaceID namespaceID) { - return fromNamespaceId(namespaceID.asString()); - } - - static @Nullable VillagerProfession fromId(int id) { - return VillagerProfessionImpl.getId(id); - } - - @Override - default @NotNull Key key() { - return StaticProtocolObject.super.key(); - } - - @Contract(pure = true) - Registry.VillagerProfession registry(); - - @Override - default @NotNull NamespaceID namespace() { - return registry().namespace(); - } -} diff --git a/src/main/java/net/minestom/server/entity/villager/VillagerProfessionImpl.java b/src/main/java/net/minestom/server/entity/villager/VillagerProfessionImpl.java deleted file mode 100644 index 338cbb39e3f..00000000000 --- a/src/main/java/net/minestom/server/entity/villager/VillagerProfessionImpl.java +++ /dev/null @@ -1,39 +0,0 @@ -package net.minestom.server.entity.villager; - -import net.minestom.server.registry.Registry; -import org.jetbrains.annotations.NotNull; - -import java.util.Collection; - -public record VillagerProfessionImpl(Registry.VillagerProfession registry, int id) implements VillagerProfession { - private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.VILLAGER_PROFESSION, VillagerProfessionImpl::createImpl); - - public VillagerProfessionImpl(Registry.VillagerProfession registry) { - this(registry, registry.id()); - } - - private static VillagerProfession createImpl(String namespace, Registry.Properties properties) { - return new VillagerProfessionImpl(Registry.villagerProfession(namespace, properties)); - } - - static VillagerProfession get(@NotNull String namespace) { - return CONTAINER.get(namespace); - } - - static VillagerProfession getSafe(@NotNull String namespace) { - return CONTAINER.getSafe(namespace); - } - - static VillagerProfession getId(int id) { - return CONTAINER.getId(id); - } - - static Collection values() { - return CONTAINER.values(); - } - - @Override - public String toString() { - return name(); - } -} diff --git a/src/main/java/net/minestom/server/entity/villager/VillagerType.java b/src/main/java/net/minestom/server/entity/villager/VillagerType.java deleted file mode 100644 index ac8fcfd4f21..00000000000 --- a/src/main/java/net/minestom/server/entity/villager/VillagerType.java +++ /dev/null @@ -1,43 +0,0 @@ -package net.minestom.server.entity.villager; - -import net.kyori.adventure.key.Key; -import net.minestom.server.registry.Registry; -import net.minestom.server.registry.StaticProtocolObject; -import net.minestom.server.utils.NamespaceID; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Collection; - -public sealed interface VillagerType extends StaticProtocolObject, VillagerTypes permits VillagerTypeImpl { - - static @NotNull Collection<@NotNull VillagerType> values() { - return VillagerTypeImpl.values(); - } - - static @Nullable VillagerType fromNamespaceId(@NotNull String namespaceID) { - return VillagerTypeImpl.getSafe(namespaceID); - } - - static @Nullable VillagerType fromNamespaceId(@NotNull NamespaceID namespaceID) { - return fromNamespaceId(namespaceID.asString()); - } - - static @Nullable VillagerType fromId(int id) { - return VillagerTypeImpl.getId(id); - } - - @Override - default @NotNull Key key() { - return StaticProtocolObject.super.key(); - } - - @Contract(pure = true) - Registry.VillagerType registry(); - - @Override - default @NotNull NamespaceID namespace() { - return registry().namespace(); - } -} diff --git a/src/main/java/net/minestom/server/entity/villager/VillagerTypeImpl.java b/src/main/java/net/minestom/server/entity/villager/VillagerTypeImpl.java deleted file mode 100644 index ec8af984f09..00000000000 --- a/src/main/java/net/minestom/server/entity/villager/VillagerTypeImpl.java +++ /dev/null @@ -1,39 +0,0 @@ -package net.minestom.server.entity.villager; - -import net.minestom.server.registry.Registry; -import org.jetbrains.annotations.NotNull; - -import java.util.Collection; - -public record VillagerTypeImpl(Registry.VillagerType registry, int id) implements VillagerType { - private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.VILLAGER_TYPES, VillagerTypeImpl::createImpl); - - public VillagerTypeImpl(Registry.VillagerType registry) { - this(registry, registry.id()); - } - - private static VillagerType createImpl(String namespace, Registry.Properties properties) { - return new VillagerTypeImpl(Registry.villagerType(namespace, properties)); - } - - static VillagerType get(@NotNull String namespace) { - return CONTAINER.get(namespace); - } - - static VillagerType getSafe(@NotNull String namespace) { - return CONTAINER.getSafe(namespace); - } - - static VillagerType getId(int id) { - return CONTAINER.getId(id); - } - - static Collection values() { - return CONTAINER.values(); - } - - @Override - public String toString() { - return name(); - } -} diff --git a/src/main/java/net/minestom/server/fluid/Fluid.java b/src/main/java/net/minestom/server/fluid/Fluid.java deleted file mode 100644 index c9e6bedf370..00000000000 --- a/src/main/java/net/minestom/server/fluid/Fluid.java +++ /dev/null @@ -1,37 +0,0 @@ -package net.minestom.server.fluid; - -import net.minestom.server.registry.Registry; -import net.minestom.server.registry.StaticProtocolObject; -import net.minestom.server.utils.NamespaceID; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Collection; - -public sealed interface Fluid extends StaticProtocolObject, Fluids permits FluidImpl { - /** - * Returns the entity registry. - * - * @return the entity registry or null if it was created with a builder - */ - @Contract(pure = true) - @Nullable - Registry.FluidEntry registry(); - - @Override - @NotNull - NamespaceID namespace(); - - static @NotNull Collection<@NotNull Fluid> values() { - return FluidImpl.values(); - } - - static @Nullable Fluid fromNamespaceId(@NotNull String namespaceID) { - return FluidImpl.getSafe(namespaceID); - } - - static @Nullable Fluid fromNamespaceId(@NotNull NamespaceID namespaceID) { - return fromNamespaceId(namespaceID.asString()); - } -} diff --git a/src/main/java/net/minestom/server/fluid/FluidImpl.java b/src/main/java/net/minestom/server/fluid/FluidImpl.java deleted file mode 100644 index 8066c423375..00000000000 --- a/src/main/java/net/minestom/server/fluid/FluidImpl.java +++ /dev/null @@ -1,34 +0,0 @@ -package net.minestom.server.fluid; - -import net.minestom.server.registry.Registry; -import net.minestom.server.utils.NamespaceID; -import org.jetbrains.annotations.NotNull; - -import java.util.Collection; -import java.util.concurrent.atomic.AtomicInteger; - -public record FluidImpl(Registry.FluidEntry registry, NamespaceID namespace, int id) implements Fluid { - - private static final AtomicInteger INDEX = new AtomicInteger(); - private static final Registry.DynamicContainer CONTAINER = Registry.createDynamicContainer(Registry.Resource.FLUIDS, FluidImpl::createImpl); - - private static FluidImpl createImpl(String namespace, Registry.Properties properties) { - return new FluidImpl(Registry.fluidEntry(namespace, properties)); - } - - private FluidImpl(Registry.FluidEntry registry) { - this(registry, registry.namespace(), INDEX.getAndIncrement()); - } - - static Collection values() { - return CONTAINER.values(); - } - - public static Fluid get(@NotNull String namespace) { - return CONTAINER.get(namespace); - } - - static Fluid getSafe(@NotNull String namespace) { - return CONTAINER.getSafe(namespace); - } -} diff --git a/src/main/java/net/minestom/server/item/metadata/BannerMeta.java b/src/main/java/net/minestom/server/item/metadata/BannerMeta.java deleted file mode 100644 index 9d0a70d06e1..00000000000 --- a/src/main/java/net/minestom/server/item/metadata/BannerMeta.java +++ /dev/null @@ -1,165 +0,0 @@ -package net.minestom.server.item.metadata; - -/** - * @author theEvilReaper - * @version 1.0.0 - * @since - **/ - -import net.kyori.adventure.text.Component; -import net.minestom.server.color.DyeColor; -import net.minestom.server.item.ItemMetaView; -import net.minestom.server.item.banner.BannerPattern; -import net.minestom.server.tag.Tag; -import net.minestom.server.tag.TagHandler; -import net.minestom.server.tag.TagReadable; -import net.minestom.server.tag.TagSerializer; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.Nullable; -import org.jetbrains.annotations.UnknownNullability; -import org.jglrxavpok.hephaistos.nbt.NBT; -import org.jglrxavpok.hephaistos.nbt.NBTCompound; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -/** - * Meta for all {@link net.minestom.server.item.Material#WHITE_BANNER} and {@link net.minestom.server.item.Material#SHIELD} items - * - * @param readable data - */ -// Microtus - Banner and Shield Meta -@ApiStatus.Experimental -public record BannerMeta(TagReadable readable) implements ItemMetaView { - - private static final String PATTERN_KEY = "Pattern"; - private static final String COLOR_KEY = "Color"; - - private static final Tag CUSTOM_NAME = Tag.Component("CustomName").path("BlockEntityTag"); - private static final Tag> PATTERNS = Tag.Structure("Patterns", - TagSerializer.fromCompound(Pattern::fromCompound, Pattern::asCompound)) - .path("BlockEntityTag").list().defaultValue(List.of()); - - - @Contract(value = "_, _ -> new", pure = true) - public static @NotNull Pattern from(@NotNull DyeColor color, @NotNull BannerPattern pattern) { - return new Pattern(color, pattern); - } - - /** - * Get name of the marker, unused by Minestom - * - * @return name of the marker - */ - public @Nullable Component getCustomName() { - return getTag(CUSTOM_NAME); - } - - /** - * Get patterns of the banner - * - * @return patterns of the banner - */ - public @NotNull List getPatterns() { - return getTag(PATTERNS); - } - - @Override - public @UnknownNullability T getTag(@NotNull Tag tag) { - return readable.getTag(tag); - } - - public record Builder(TagHandler tagHandler) implements ItemMetaView.Builder { - public Builder() { - this(TagHandler.newHandler()); - } - - /** - * Set name of the marker, unused by Minestom - * - * @param customName name of the marker - * @return this - */ - public @NotNull Builder customName(Component customName) { - setTag(CUSTOM_NAME, customName); - return this; - } - - /** - * Set the patterns of the banner - * - * @param patterns patterns of the banner - * @return this - */ - public @NotNull Builder patterns(@NotNull List patterns) { - setTag(PATTERNS, patterns); - return this; - } - - /** - * Add a pattern to the banner - * - * @param pattern pattern to add - * @return this - */ - public @NotNull Builder addPattern(Pattern pattern) { - var newList = new ArrayList<>(getTag(PATTERNS)); - newList.add(pattern); - return patterns(newList); - } - - /** - * Remove a pattern from the banner - * - * @param pattern pattern to remove - * @return this - */ - public @NotNull Builder removePattern(Pattern pattern) { - var newList = new ArrayList<>(getTag(PATTERNS)); - newList.remove(pattern); - return patterns(newList); - } - - /** - * Clears the underlying list which contains the pattern values. - * @return this - */ - public @NotNull Builder clearPatterns() { - return patterns(List.of()); - } - } - - public record Pattern(@NotNull DyeColor color, @NotNull BannerPattern pattern) { - - /** - * Retrieves a banner pattern from the given {@code compound}. - * - * @param compound The NBT connection, which should be a banner pattern. - * @return A new created banner pattern. - */ - public static @NotNull Pattern fromCompound(@NotNull NBTCompound compound) { - DyeColor color = compound.containsKey(COLOR_KEY) ? DyeColor.getValue(compound.getByte(COLOR_KEY)) : DyeColor.WHITE; - BannerPattern type; - if (compound.containsKey(PATTERN_KEY)) { - BannerPattern pattern = BannerPattern.fromIdentifier(compound.getString(PATTERN_KEY)); - type = pattern != null ? pattern : BannerPattern.BASE; - } else type = BannerPattern.BASE; - return new Pattern(color, type); - } - - /** - * Retrieves the {@link Pattern} as an {@link NBTCompound}. - * - * @return The banner pattern as a nbt compound. - */ - public @NotNull NBTCompound asCompound() { - return NBT.Compound(Map.of( - COLOR_KEY, NBT.Byte(color.ordinal()), - PATTERN_KEY, NBT.String(pattern.identifier()) - )); - } - } -} diff --git a/src/main/java/net/minestom/server/item/metadata/ShieldMeta.java b/src/main/java/net/minestom/server/item/metadata/ShieldMeta.java deleted file mode 100644 index 56a864253f2..00000000000 --- a/src/main/java/net/minestom/server/item/metadata/ShieldMeta.java +++ /dev/null @@ -1,131 +0,0 @@ -package net.minestom.server.item.metadata; - -import net.kyori.adventure.text.Component; -import net.minestom.server.color.DyeColor; -import net.minestom.server.item.ItemMetaView; -import net.minestom.server.tag.Tag; -import net.minestom.server.tag.TagHandler; -import net.minestom.server.tag.TagReadable; -import net.minestom.server.tag.TagSerializer; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.jetbrains.annotations.UnknownNullability; - -import java.util.ArrayList; -import java.util.List; - -// Microtus - Banner and Shield Meta -@ApiStatus.Experimental -public record ShieldMeta(@NotNull TagReadable readable) implements ItemMetaView { - - private static final String BASE_KEY = "Base"; - private static final String ENTITY_TAG = "BlockEntityTag"; - private static final Tag CUSTOM_NAME = Tag.Component("CustomName").path(ENTITY_TAG); - private static final Tag BASE_TAG = Tag.Integer(BASE_KEY).path(ENTITY_TAG); - private static final Tag> PATTERNS = Tag.Structure("Patterns", - TagSerializer.fromCompound(BannerMeta.Pattern::fromCompound, BannerMeta.Pattern::asCompound)) - .path(ENTITY_TAG).list().defaultValue(List.of()); - - /** - * Get base color of the shield - * - * @return the base color - */ - public @NotNull DyeColor getBaseColor() { - return DyeColor.getValue(getTag(BASE_TAG)); - } - - /** - * Get name of the marker, unused by Minestom - * - * @return name of the marker - */ - public @Nullable Component getCustomName() { - return getTag(CUSTOM_NAME); - } - - /** - * Get patterns of the shield - * - * @return patterns of the shield - */ - public @NotNull List getPatterns() { - return getTag(PATTERNS); - } - - @Override - public @UnknownNullability T getTag(@NotNull Tag tag) { - return readable.getTag(tag); - } - - public record Builder(@NotNull TagHandler tagHandler) implements ItemMetaView.Builder { - public Builder() { - this(TagHandler.newHandler()); - } - - /** - * Set the color which is used as base color for a shield. - * @param dyeColor the color to set - * @return the builder instance - */ - public @NotNull ShieldMeta.Builder baseColor(@NotNull DyeColor dyeColor) { - setTag(BASE_TAG, dyeColor.ordinal()); - return this; - } - - /** - * Set name of the marker, unused by Minestom - * - * @param customName name of the marker - * @return this - */ - public @NotNull ShieldMeta.Builder customName(@NotNull Component customName) { - setTag(CUSTOM_NAME, customName); - return this; - } - - /** - * Set the patterns of the shield - * - * @param patterns patterns of the shield - * @return this - */ - public @NotNull ShieldMeta.Builder patterns(@NotNull List patterns) { - setTag(PATTERNS, patterns); - return this; - } - - /** - * Add a pattern to the shield - * - * @param pattern pattern to add - * @return this - */ - public @NotNull ShieldMeta.Builder addPattern(BannerMeta.Pattern pattern) { - var newList = new ArrayList<>(getTag(PATTERNS)); - newList.add(pattern); - return patterns(newList); - } - - /** - * Remove a pattern from the shield - * - * @param pattern pattern to remove - * @return this - */ - public @NotNull ShieldMeta.Builder removePattern(BannerMeta.Pattern pattern) { - var newList = new ArrayList<>(getTag(PATTERNS)); - newList.remove(pattern); - return patterns(newList); - } - - /** - * Clears the underlying list which contains the pattern values. - * @return this - */ - public @NotNull ShieldMeta.Builder clearPatterns() { - return patterns(List.of()); - } - } -} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/BiomeOption.java b/src/main/java/net/minestom/server/world/biomes/particle/BiomeOption.java deleted file mode 100644 index 07ffda2ba5d..00000000000 --- a/src/main/java/net/minestom/server/world/biomes/particle/BiomeOption.java +++ /dev/null @@ -1,16 +0,0 @@ -package net.minestom.server.world.biomes.particle; - -import net.minestom.server.particle.Particle; -import org.jetbrains.annotations.NotNull; -import org.jglrxavpok.hephaistos.nbt.NBTCompound; - -/** - * Just a generic interface to hold data about biome particles - * @author TheMeinerLP - */ -public interface BiomeOption { - @NotNull - NBTCompound toNbt(); - @NotNull - Particle getType(); -} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/BlockOption.java b/src/main/java/net/minestom/server/world/biomes/particle/BlockOption.java deleted file mode 100644 index 117d9a1ec79..00000000000 --- a/src/main/java/net/minestom/server/world/biomes/particle/BlockOption.java +++ /dev/null @@ -1,32 +0,0 @@ -package net.minestom.server.world.biomes.particle; - -import net.minestom.server.instance.block.Block; -import net.minestom.server.particle.Particle; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; -import org.jglrxavpok.hephaistos.nbt.NBT; -import org.jglrxavpok.hephaistos.nbt.NBTCompound; - -import java.util.Map; - -@ApiStatus.Experimental -public record BlockOption(@NotNull Block block) implements BiomeOption { - - @Override - public @NotNull NBTCompound toNbt() { - return NBT.Compound(nbtCompound -> { - nbtCompound.setString("type", getType().namespace().toString()); - nbtCompound.setString("Name", block.name()); - Map propertiesMap = block.properties(); - if (!propertiesMap.isEmpty()) { - nbtCompound.set("Properties", NBT.Compound(p -> propertiesMap.forEach(p::setString))); - } - }); - } - - @Override - public @NotNull Particle getType() { - return Particle.BLOCK; - } - -} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/DefaultOption.java b/src/main/java/net/minestom/server/world/biomes/particle/DefaultOption.java deleted file mode 100644 index 1ddad4d7ea4..00000000000 --- a/src/main/java/net/minestom/server/world/biomes/particle/DefaultOption.java +++ /dev/null @@ -1,20 +0,0 @@ -package net.minestom.server.world.biomes.particle; - -import net.minestom.server.particle.Particle; -import org.jetbrains.annotations.NotNull; -import org.jglrxavpok.hephaistos.nbt.NBT; -import org.jglrxavpok.hephaistos.nbt.NBTCompound; - -import java.util.Map; - -public record DefaultOption(@NotNull Particle particle) implements BiomeOption { - @Override - public @NotNull NBTCompound toNbt() { - return NBT.Compound(Map.of("type", NBT.String(getType().namespace().toString()))); - } - - @Override - public @NotNull Particle getType() { - return particle; - } -} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/DustOption.java b/src/main/java/net/minestom/server/world/biomes/particle/DustOption.java deleted file mode 100644 index 0a84f495820..00000000000 --- a/src/main/java/net/minestom/server/world/biomes/particle/DustOption.java +++ /dev/null @@ -1,34 +0,0 @@ -package net.minestom.server.world.biomes.particle; - -import net.minestom.server.particle.Particle; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; -import org.jglrxavpok.hephaistos.nbt.NBT; -import org.jglrxavpok.hephaistos.nbt.NBTCompound; - -import java.util.Map; - -/** - * Particle effect which used based on the color values. - * @param red can between 0 and 1 and is divided by 255 - * @param green can between 0 and 1 and is divided by 255 - * @param blue can between 0 and 1 and is divided by 255 - * @param scale can between 0.01 to 4 - */ -@ApiStatus.Experimental -public record DustOption(float red, float green, float blue, float scale) implements BiomeOption { - @Override - public @NotNull NBTCompound toNbt() { - return NBT.Compound(Map.of( - "type", NBT.String(getType().namespace().toString()), - "Red", NBT.Float(red), - "Green", NBT.Float(green), - "Blue", NBT.Float(blue), - "Scale", NBT.Float(scale))); - } - - @Override - public @NotNull Particle getType() { - return Particle.DUST; - } -} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/ItemOption.java b/src/main/java/net/minestom/server/world/biomes/particle/ItemOption.java deleted file mode 100644 index a977cd052c1..00000000000 --- a/src/main/java/net/minestom/server/world/biomes/particle/ItemOption.java +++ /dev/null @@ -1,27 +0,0 @@ -package net.minestom.server.world.biomes.particle; - -import net.minestom.server.item.ItemStack; -import net.minestom.server.particle.Particle; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; -import org.jglrxavpok.hephaistos.nbt.NBTCompound; - -/** - * Particle effect which used based on an item inside the biome. - * @param item to bes used - */ -@ApiStatus.Experimental -public record ItemOption(@NotNull ItemStack item) implements BiomeOption { - - @Override - public @NotNull NBTCompound toNbt() { - NBTCompound nbtCompound = item.meta().toNBT(); - return nbtCompound.modify(n -> n.setString("type", getType().namespace().toString())); - } - - @Override - public @NotNull Particle getType() { - return Particle.ITEM; - } - -} From 413ceb4b9b1475101c302badd71ed1fd63907c9a Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Mon, 5 Aug 2024 17:07:19 +0200 Subject: [PATCH 22/93] Fix forward compile issues --- demo/src/main/java/net/minestom/demo/PlayerInit.java | 1 + 1 file changed, 1 insertion(+) diff --git a/demo/src/main/java/net/minestom/demo/PlayerInit.java b/demo/src/main/java/net/minestom/demo/PlayerInit.java index 31751af14c9..e2a713f288e 100644 --- a/demo/src/main/java/net/minestom/demo/PlayerInit.java +++ b/demo/src/main/java/net/minestom/demo/PlayerInit.java @@ -53,6 +53,7 @@ import net.minestom.server.monitoring.TickMonitor; import net.minestom.server.network.packet.server.common.CustomReportDetailsPacket; import net.minestom.server.network.packet.server.common.ServerLinksPacket; +import net.minestom.server.notifications.Notification; import net.minestom.server.potion.CustomPotionEffect; import net.minestom.server.potion.PotionEffect; import net.minestom.server.sound.SoundEvent; From 2d2d0c8907cc7d98ca241c2d82d6256ca2001ebb Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Sun, 18 Aug 2024 14:19:04 +0200 Subject: [PATCH 23/93] Update from Upstream (#68) * Offer more control over LightingChunk invalidations (#2156) * Offer more control over LightingChunk invalidations * Respect freezeInvalidation on this other invalidate method * Rename to invalidateNeighborsSection and remove redundant null check * fix light invalidation issue * Fix Entity::getEffectLevel having two meanings when returning 0 (#2163) * add more command conditions * Add signum operator to Vec * Refactor lighting code, fix loaded chunks (#2164) * Switch to the new adventure domain (#2165) * fix: do not test block collision on entities without collision * Make PlayerProjectile extend Entity instead of LivingEntity * feat: initial conversion to adventure nbt. no tests, no anvil * chore: basic nbt reader/writer for protocol while waiting for adventure * feat: joinable server * fix: oops, health is before potion still * chore: rebase on adventure-nbt * feat: first version of a bunch of components * chore: delete all old metadata classes for now, may return compatibility later * chore: more components * chore: more components * chore: trying to fix nightmare loop * feat: functional components, but at what cost * chore: cleanup itemcomponenttype, update to datagen changes * feat: more components * feat: even more components (only 2 missing ones) * feat: first draft of cookies * feat: simplify sound events, fix update explosion packet * feat: generate RecipeType (for ids) * fix: do not send close inventory packet when opening a new inventory while one is open * feat: anvil reading, other minor fixes * feat: partial anvil writing, update tests (still many broken) * chore: 1.20.5, disable some failing tests to get a functional build * chore: cicd trigger * chore: update datagenerator * fix: anvil not loading locations properly * fix: particle packet reorder * fix: do not allow writing air in declare recipes packet (added ItemStack.STRICT_NETWORK_TYPE to represent this) * feat: initial ArgumentItemStack reader, other minor fixes * fix: light test and update eye height in view direction test * chore: cleanup anvil test * fix: dont oom reading item component, stub banner pattern component * fix: circular init :| * fix: correctly handle eating potions, time eating using ticks, default to correct drink/eat time from component, send damage event on living entity damage * fix: do not convert optchat metadata to chat * chore: rebase, add stack size 99 test case * chore: another stack size test * feat: block predicate impl & some more tests * feat: initial anvilloader writer implementation * fix: correctly read declared recipes * chore: generalize ItemComponent to DataComponent (item component defs are still in ItemComponent) * fix: update from lighting fix 35 rebase * chore: add PlayerAnvilInputEvent, other minor tweaks from self review * fix: sync position after sending first chunk * chore: start testing components, fix valueless components * chore: allow chunk subclasses to override heightmap generation * feat: first pass of standardizing dynamic registries * feat: add DynamicRegistry.Key and reference it instead of the underlying type. add wolf variant meta field * chore: cleanup & some component impl utility methods * chore: depend on published version of data, not local * chore: minor tweaks * chore: cleanup networkbuffer additions * chore: missing entity metas & extract shooter to abstractwindchargemeta * fix: correct handling of known packs exchange * chore: merge datacomponentmap and datacomponentpatch to simplify api. Preemptively diff with material prototype when constructing itemstack * chore: more tests for components * chore: one more * fix: setTimeUpdate transition from duration to ticks, renamed to avoid ambiguation with setTimeRate (#2067) * feat: LivingEntity fire overhaul (#2122) * feat: LivingEntity fire overhaul * chore: missed method change * feat: world border overhaul, turned into a record and handled by the instance (#2062) * feat: world border overhaul, turned into a record and handled by instance * chore: replace WorldBorder#defaultBorder() with a DEFAULT_BORDER constant * Pathfinding 1.20.5 (#2153) * pathfinding * mutablepoint fix in player * feat: cya later jitpack * chore: remove some weird internal/experimental annotations * Item usage duration (#2128) Fix build error Move item usage completed to a different event Add a way to check if the item usage has completed, or is aborted by the player Only process animation when the item use time is not instant Update javadoc Re-add Player#isEating Remove deprecated Player#callItemUpdateStateEvent Allow specifying item usage duration inside PlayerUseItemEvent * fix: fixes from merging #2128 * feat: improve particle api * feat: generate particle data names automatically * chore: make all impls records + inner classes of Particle * chore: minor cleanup, block display meta to use Block directly * fix: default zero use item time * Move static Entity lookup maps to EntityTracker (#2167) * Move static Entity lookup maps to EntityTracker * Specific method for changeUuid to keep thread-safety * Fix bug from not recording position on register * Exception on duplicate IDs in the EntityTracker * Oops, expected stateCondition to behave like assert * Didn't mean to make Entity::remove(boolean) public * More descriptive EntityView::register error * Warn when attempting to move untracked entity * chore: delete `Entity#setUuid` and `AsyncPlayerPreLoginEvent#setUuid` * chore: delete a deprecated Audience#sendMessage variant * chore: javadocs and remove experimental pose update flag * fix: fixes from rug pull * fix: tag escape * fix: inventory rebase fixes * Fix Attribute Read/Write due to initialization shenanagins (#2174) * Only consider online players for unregisterInstance (#2171) * Add new navigator generator & follower * Include ourself as a viewer when sending SWING_MAIN_ARM animation (#2173) * Include ourself as a viewer when sending SWING_MAIN_ARM animation * Added API annotations * fix: re-add deprecated Audience#sendMessage variant which was actually required * Fix ITEM_NAME component translation in SetSlotPacket (#2176) * Fix ITEM_NAME component translation in SetSlotPacket * Add test for item stack translation when automatic component translation is enabled * Fix the NBT representation of Unit (#2177) * Call UuidProvider in async (#2181) Co-authored-by: Spliterash * [RE] Update PlayerChangeHeldSlotEvent.java (#2179) * Update PlayerChangeHeldSlotEvent.java Slight changes in the docs since they were mis-leading.. Took me a while to realise what was wrong in my algorithm * Update src/main/java/net/minestom/server/event/player/PlayerChangeHeldSlotEvent.java Co-authored-by: Matz Hilven <48355802+MatzHilven@users.noreply.github.com> --------- Co-authored-by: Matz Hilven <48355802+MatzHilven@users.noreply.github.com> * fix: correctly account for global biome palette * fix: incorrect region metatable offset when writing * Add Instance::getPlayerByUuid because for convenience (#2190) * feat: hello, 1.21 * feat: new packets, new registries except stubbed out enchantments, other minor changes * chore: 1.21-pre2 * chore: start on enchantments * chore: start on enchant effect components * chore: protocol set * chore: start on effect types * feat: mostly functional enchants, needs cleanup * feat: add some ItemStack convenience methods * feat: minor improvements, 1.21 release * fix inventory packet for global translator * fix full light data is not sent (#2191) * fix full light data is not sent * remove fullLightCache * Add feature flags to AsyncPlayerConfigurationEvent * fix player health update animation (#2183) * fix projectile remove * Update Player.java (#2195) * Update Player.java * Update PlayerConnection.java * fix: deserialize `extra` correctly in component serializer * Fix add transaction * Fix events not triggering for bows, crossbows, etc. (#2199) * Fix item update for bow, crossbow, shield, trident, spyglass, goat horn, brush * fix: inverted vanilla exclusion * fix: nbt byte for `sections[].Y` in anvil chunk data (fixes #2207) * Drop eventnode listener ref on invalidate (#2212) * Fixed bug in LargeFramebuffer#preparePacket(int,int,int) (#2213) * Fix LivingEntity Damage Event Packet (#2209) * fix: correctly disconnect player if resource pack is not applied successfully (for required resource pack) * Ability to teleport player without teleport confirm (#2222) * optional teleport confirm * rename flag to shouldConfirm * oops, this change is no longer needed * fix last line formatting * fix: preserve handler in block placement rule neighbor updates * fix: do not overwrite default movement speed attribute * Revert "fix: do not overwrite default movement speed attribute" This reverts commit 66dc936cd6bb0acd62b810ce1e3cf048fbce8756. * fix: update sprinting movement speed modifier serverside to keep synced with client state * fix: concurrent region file creation * fix: adding an existing viewer to a scoreboard kicks them (#2231) * fix: DustColorTransition packet reading/writing (#2236) * fix: DustColorTransition packet reading/writing * chore: fix tests * Add Player#getCurrentItemUseTime (#2235) * Add Player#getCurrentItemUseTime * Use player ticks as reference instead of world age * Fix infinite recursion. (#2230) * chore: int flags potion constructor (#2238) * chore: send keepalive packets immediately, simplify PacketProcessor#process (#2218) * chore: send keepalive packets immediately, simplify PacketProcessor#process * chore: make latency volatile * Autogenerate Feature Flags (#2201) * Autogenerate Feature Flags (Won't work until MinestomDataGen 1.21-rev2 is released with datagen changes.) * Rewrite feature flag auto-generation, add example in demo. * Update data gen * Remove dead code and fix access modifier on FeatureFlagImpl * feat: Improvements to AttributeInstance API (#2221) * feat: method to compute the value of an AttributeInstance with a given base instead of its stored one, add return values to AttributeInstance#removeModifier and AttributeInstance#addModifier * chore: getValueWithBase -> applyModifiers * feat: Acquirable, ThreadDispatcher usage improvements (#2237) * feat: fewer casts needed when working with Acquirable, ThreadDispatcher now usable with non-Entity tickables, AcquirableSource for synchronizing items added to dispatcher * chore: rename AcquirableSource#getAcquirable -> AcquirableSource#acquirable, re-add getAcquirable to Entity with old signature, deprecate it * fix: incorrect camel case in item component nbt (fixes #2233) * Add material setter in builder * feat: ShapeImpl#collisionBoundingBoxes, ShapeImpl#occlusionBoundingBoxes + documentation (#2248) * Automatically update an entity's attributes when changing equipment (#2228) * Automatically update an entity's attributes when changing equipment * fix merge conflict * Update attributes for players when their items change * Add attribute tests * chore: add AlphaColor, convert Color to class, fix entity_effect particle (#2240) * chore: add AlphaColor, convert Color to class, fix entity_effect particle * chore: add `Particle.EntityEffect#withColor(RGBLike)`, `Color#withAlpha` --------- Co-authored-by: mworzala * fix: AttributeInstance#addModifier not refreshing cachedValue for new modifier values (#2234) * fix blunder * fix: use equals check for modifier difference when adding --------- Co-authored-by: mworzala * chore: add doc about kicking player during config * chore: enforce and document notnull chunk loader, add noop impl * Fix chunk lighting optimization (#2244) * Fix chunk lighting optimization * Apply requested changes * Add a few useful methods to Direction (#2254) * Add Block::original so it's easier to compare by block type (#2255) * Add Block::original so it's easier to compare by block type * Requested changes * fix: geyser keepalive incompatibility * Fix NullPointer when changing equipment before checking attributes * get back jmh/jcstress * Add getAndSetTag to TagWritable * Remove Instance/PlayerUtils * Move all flags to ServerFlag * MetadataHolder (#2263) * Move entity meta map to MetadataHolder * Fix biome sounds + particles (#2265) * fix biome sounds + particles * Fix tests * Call ItemUpdateStateEvent before clearing item use (#2258) * feat: allow changing the number of threads used by the server process ThreadDispatcher (#2268) * fix: optional world pos in lodestone tracker item component (fixes #2270) * chore: add cursor position to `PlayerBlockPlaceEvent` * fix: node followers using the speed attribute base value instead of value + modifiers * feat: thread safety for AttributeInstance (#2297) * feat: thread safety for AttributeInstance * fix: refreshCachedValue now takes the new baseValue rather than reading from the field internally * Remove cursor items from individual inventories (#2294) * Remove cursor items from individual inventories * Remove unused method and re-add but deprecate old cursor methods * Fix links and remove unused import * feat: add ability to clear modifiers from an AttributeInstance (#2296) * feat: add ability to clear modifiers from an AttributeInstance, as well as get all AttributeInstances from LivingEntity * chore: getAttributeInstances -> getAttributes, protect certain modifiers from being cleared by AttributeInstance#clearModifiers * fix: call refreshCachedValue properly * Make loyalty level a byte (#2300) * Remove static biome registry, simplify unit generation * fix attribute packet (#2305) * chore: bump data gen to fix light[level=0] emission value * chore: Remove a bunch of Experimental annotations * Direct writer for Adventure components (#2306) * feat: direct writer for adventure components * chore: tests and fixes to score & translatable * chore: explicitly use nbt serializer for reading so the dependency is obvious * fix: lower case click/hover action types * fix: Round up total sectors in region file * fix: send attribute base value not computed. * Apply microtus patches 1-20 (cherry picked from commit ab0874cf0515963d1f4037d3e606db241f03fadb) * Fix build grade * Add missing adventure nbt lib * Add missing dependencies * Remove old biome, banner, shield, particle, attribute system * Fix forward data generator * Disable stress tester for compile reasons * Remove old network stack * Remove no longer exists api form player * Fix forward bstats * Fix forward server flags * Fix forward terminal color converter * Fix forward inventory tests * Fix forward frog meta test * Update files like in microtus main (cherry picked from commit d3ad5aff721abd014bf338de544a64f8a653d0cd) * Apply better workflow (cherry picked from commit ccf63cb7de796596807e45ebb458184d4fbed4ae) * Move miss landed classes after patching source (cherry picked from commit 2f2dec233f123c1433fb2b8e28b84eefe34381b6) * Fix workflows for java 21 (cherry picked from commit b501f93097161841515695f11bf9ac29e3896c2d) * Fix workflows for java 21 (cherry picked from commit f35341a08bd4c0354cf9f40cc3243ebf74a0b76f) * [Chore] Update gradle to 8.7 (cherry picked from commit cf0f73caff61bb7843548b3e77a5bab4bfe905aa) * [Chore] Remove preview feature (cherry picked from commit ab6a351f9360b5458c7e0bf5b0c8c9b9fb9452cf) * [Bugfix] Improve version string for bstats (cherry picked from commit d63c883f64d02c133a3ea873b5a099526c0cfdc6) * Update README.md (cherry picked from commit 9fd02fd9de3fac3ae4902c2e01fcfac12aa9d563) * Update snapshot and release version (cherry picked from commit 18cfbade4d98b94596ead39f696ba34b0fe4fe5a) * [Chore] Replace e.printstacktrace with exception manager call or logger (cherry picked from commit c61f7c57ada380372c1c02ffc74c2928675fe8a9) * Create CNAME (cherry picked from commit 0a8f6dd081530583ffde47b411429351663440ae) * Bump snapshot version (#31) (cherry picked from commit 0c32b88086895d41e0cdc053bb1b5ab9d47f84a4) * Update build.gradle.kts (cherry picked from commit 4023e8ae4cd36057b6fb08dbb3d58616e730fed2) * Improve license usage (cherry picked from commit e7298d4157ce88eaa0b2adf041694573e24f6f5e) * Improve license usage (cherry picked from commit 9574b21d38f5e81cd2b875201f3d8a682371c68a) * [#30] Release 1.4.0 (cherry picked from commit fee81f4c740ad2efd3510a7aa672558c4d8fe37b) * [#30] Re-Release 1.4.1 (cherry picked from commit 994ecce8dcf0b8cac8f0bf3ed91980469ac489cb) * Go back to snapshot (cherry picked from commit 57b6303f9c93c275720060bed9928eb960c30956) * Ignore bstats file (cherry picked from commit e3271929b2d51804fb4c04d4733e3c1df9cebb40) * [#34] Better Notification System (#35) * [#34] Implement new notification system with tests * [#34] Update demo to use new notification system * [#34] Add deprecation text to old notification system * [#34] Improve javadocs and rename builder implementation * [#34] Improve javadocs and fix tests * [#34] Remove empty lines * [#34] Add package description (cherry picked from commit 29ec3fe2d5cbf86d38a3cf9434b8d40df7f92915) * Add bom (cherry picked from commit 7c692385f13c08ec67934a1ec46402b5e6750075) * Improve bom (cherry picked from commit f9b237435e03ad773229fd2fc209dac7da522ada) * Remove java version from bom (cherry picked from commit 772203bb6fa9baf9b02a989a40b2a467b89dfa51) * Change bom deployment (cherry picked from commit f41860257d043b992ec1849b3ad6d5eec8b206ad) * Change bom deployment (cherry picked from commit 37576d20b98b96d427fc26299ee453e4fddf8cc2) * [Feature] Improved Testing Lib (#42) * Deprecate env test * Improve environment * Create new environment annotation * Use new environment annotation (cherry picked from commit 3d93b94670b0577d92065dd6cc394845b7867634) * Add missing dependencies (cherry picked from commit e295f999dcaff67509180ddd5ee917dd95a5b8ea) * Add missing dependencies (cherry picked from commit 7765729a42047189ecdc67b78f5c4d4a2848cf94) * Improve release workflow (cherry picked from commit c2986743f111851134b7caa49bd253ebeaca32cf) * Improve release workflow (cherry picked from commit da01e8a1651c8a39ac337a2b4f30929359d74dfe) * Bump version (cherry picked from commit e715ad98da45fed83b79f7fb2a105a1d72b14001) * Update dependency com.google.code.gson:gson to v2.11.0 (cherry picked from commit c7095d62477365ccdcba0542f4944bf220d9831b) * Update dependency org.mockito:mockito-core to v5.12.0 (cherry picked from commit 77ccf9fdbe7aed8d77666c799dae5f4e5f05e487) * Update actions/cache action to v4 (cherry picked from commit 38ad8aafc87bfe8dbf12c765340ea010a7f32ee2) * Update gradle/wrapper-validation-action action to v3 (cherry picked from commit ad8489127b0882a32360eebbc55f524dfd6b8d39) * Update kotlin monorepo to v2 (cherry picked from commit af9be490b59a60b68bba12e042339b544bc9c08b) * [Chore] Update gradle to version 8.8 (#58) (cherry picked from commit 9373005a6b71905a33eff7a12f5267374c9b1e50) * Update CODEOWNERS (cherry picked from commit 026aa2780532ae8bcf275a914996f7e2513ce317) * Update CODEOWNERS (cherry picked from commit 5be4573758d3117233d8de8fc0ac06ee577581ef) * Update README.md (cherry picked from commit c90b7d583f564770f5358b931d3ae917fe0e5ce7) * Bump version to 1.5.0 * Add missing import * Add support for older as 1.21 minecraft worlds * Update BOM dependencies * Remove no longer needed classes * Fix forward compile issues --------- Co-authored-by: Samuel Co-authored-by: iam4722202468 Co-authored-by: mudkipdev Co-authored-by: iam Co-authored-by: felix <60808107+ItsFelix5@users.noreply.github.com> Co-authored-by: mworzala Co-authored-by: FluxCapacitor2 <31071265+FluxCapacitor2@users.noreply.github.com> Co-authored-by: DeidaraMC <117625071+DeidaraMC@users.noreply.github.com> Co-authored-by: TogAr2 <59421074+togar2@users.noreply.github.com> Co-authored-by: DeidaraMC Co-authored-by: GreatWyrm Co-authored-by: kubbi Co-authored-by: MelonHell <53826469+MelonHell@users.noreply.github.com> Co-authored-by: Spliterash Co-authored-by: unjoinable <135444615+unjoinable@users.noreply.github.com> Co-authored-by: Matz Hilven <48355802+MatzHilven@users.noreply.github.com> Co-authored-by: bea4dev Co-authored-by: bea4dev <34712108+bea4dev@users.noreply.github.com> Co-authored-by: Not Flamgop <76978462+flopgop@users.noreply.github.com> Co-authored-by: ItsAnnie Co-authored-by: ItsAnnie Co-authored-by: Steank Co-authored-by: themode Co-authored-by: Am Gone <67794767+Am-Gone@users.noreply.github.com> Co-authored-by: AmGone_ Co-authored-by: GoldenStack Co-authored-by: Matt Worzala <35708499+mworzala@users.noreply.github.com> Co-authored-by: Aeltumn Co-authored-by: OneLiteFeather Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Steffen Wonning --- build.gradle.kts | 2 +- .../net/minestom/codegen/CodeGenerator.java | 105 +++++++--- .../codegen/MinestomCodeGenerator.java | 28 --- .../entity/VillagerProfessionGenerator.java | 194 ++++++++++++++++++ .../codegen/entity/VillagerTypeGenerator.java | 151 ++++++++++++++ .../codegen/fluid/FluidGenerator.java | 144 +++++++++++++ .../java/net/minestom/server/fluid/Fluid.java | 62 ++++++ .../server/registry/FluidRegistries.java | 45 ++++ .../net/minestom/server/coordinate/Vec.java | 6 + .../net/minestom/server/entity/Entity.java | 20 ++ .../minestom/server/instance/AnvilLoader.java | 0 .../entity/metadata/animal/FrogMetaTest.java | 5 +- .../minestom/server/instance/BlockTest.java | 12 +- .../server/network/NetworkBufferTest.java | 28 +-- 14 files changed, 725 insertions(+), 77 deletions(-) create mode 100644 code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java create mode 100644 code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java create mode 100644 code-generators/src/main/java/net/minestom/codegen/fluid/FluidGenerator.java create mode 100644 src/autogenerated/java/net/minestom/server/fluid/Fluid.java create mode 100644 src/autogenerated/java/net/minestom/server/registry/FluidRegistries.java delete mode 100644 src/main/java/net/minestom/server/instance/AnvilLoader.java diff --git a/build.gradle.kts b/build.gradle.kts index b2183217b57..6c6dce9622e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -58,7 +58,7 @@ tasks { addStringOption("-release", "21") // Links to external javadocs links("https://docs.oracle.com/en/java/javase/21/docs/api/") - links("https://jd.advntr.dev/api/${libs.versions.adventure.get()}/") + links("https://jd.adventure.kyori.net/api/${libs.versions.adventure.get()}/") } } withType { diff --git a/code-generators/src/main/java/net/minestom/codegen/CodeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/CodeGenerator.java index e1d2d6277a7..8aa876ec201 100644 --- a/code-generators/src/main/java/net/minestom/codegen/CodeGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/CodeGenerator.java @@ -3,45 +3,40 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonObject; -import com.squareup.javapoet.AnnotationSpec; -import com.squareup.javapoet.ClassName; -import com.squareup.javapoet.FieldSpec; -import com.squareup.javapoet.JavaFile; -import com.squareup.javapoet.TypeSpec; -import org.jetbrains.annotations.ApiStatus; +import com.squareup.javapoet.*; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import javax.lang.model.SourceVersion; import javax.lang.model.element.Modifier; import java.io.File; +import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import java.util.HashMap; -import java.util.Map; +import java.util.List; +import java.util.Locale; -import static net.minestom.codegen.MinestomCodeGenerator.DEFAULT_INDENT; -import static net.minestom.codegen.MinestomCodeGenerator.extractNamespaces; - -@ApiStatus.Internal -public class CodeGenerator implements CodeExporter { +public class CodeGenerator { protected static final Gson GSON = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create(); private static final Logger LOGGER = LoggerFactory.getLogger(CodeGenerator.class); + private final File outputFolder; - public CodeGenerator(@NotNull File outputFolder) { + public CodeGenerator(File outputFolder) { this.outputFolder = outputFolder; } public void generate(InputStream resourceFile, String packageName, String typeName, String loaderName, String generatedName) { if (resourceFile == null) { - LOGGER.error("Failed to find resource file for {}", typeName); + LOGGER.error("Failed to find resource file for " + typeName); return; } ClassName typeClass = ClassName.get(packageName, typeName); ClassName loaderClass = ClassName.get(packageName, loaderName); - JsonObject json = GSON.fromJson(new InputStreamReader(resourceFile), JsonObject.class); + JsonObject json; + json = GSON.fromJson(new InputStreamReader(resourceFile), JsonObject.class); ClassName materialsCN = ClassName.get(packageName, generatedName); // BlockConstants class TypeSpec.Builder blockConstantsClass = TypeSpec.interfaceBuilder(materialsCN) @@ -49,16 +44,17 @@ public void generate(InputStream resourceFile, String packageName, String typeNa .addAnnotation(AnnotationSpec.builder(SuppressWarnings.class).addMember("value", "$S", "unused").build()) .addJavadoc("Code autogenerated, do not edit!"); - Map replacementOptions = new HashMap<>(); - replacementOptions.put("minecraft:", ""); - replacementOptions.put(".", "_"); // Use data json.keySet().forEach(namespace -> { - final String constantName = extractNamespaces(namespace, replacementOptions); + final String constantName = namespace + .replace("minecraft:", "") + .replace(".", "_") + .toUpperCase(Locale.ROOT); blockConstantsClass.addField( FieldSpec.builder(typeClass, constantName) .addModifiers(Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL) .initializer( + // TypeClass.STONE = MaterialLoader.fromNamespaceId("minecraft:stone") "$T.get($S)", loaderClass, namespace @@ -66,12 +62,69 @@ public void generate(InputStream resourceFile, String packageName, String typeNa .build() ); }); - writeFile( - JavaFile.builder(packageName, blockConstantsClass.build()) - .indent(DEFAULT_INDENT) + writeFiles( + List.of(JavaFile.builder(packageName, blockConstantsClass.build()) + .indent(" ") + .skipJavaLangImports(true) + .build()), + outputFolder); + } + + public void generateKeys(InputStream resourceFile, String packageName, String typeName, String generatedName) { + if (resourceFile == null) { + LOGGER.error("Failed to find resource file for " + typeName); + return; + } + + ClassName typeClass = ClassName.bestGuess(packageName + "." + typeName); // Use bestGuess to handle nested class + ClassName registryKeyClass = ClassName.get("net.minestom.server.registry", "DynamicRegistry", "Key"); + ParameterizedTypeName typedRegistryKeyClass = ParameterizedTypeName.get(registryKeyClass, typeClass); + + JsonObject json; + json = GSON.fromJson(new InputStreamReader(resourceFile), JsonObject.class); + ClassName materialsCN = ClassName.get(packageName, generatedName); + // BlockConstants class + TypeSpec.Builder blockConstantsClass = TypeSpec.interfaceBuilder(materialsCN) + // Add @SuppressWarnings("unused") + .addAnnotation(AnnotationSpec.builder(SuppressWarnings.class).addMember("value", "$S", "unused").build()) + .addJavadoc("Code autogenerated, do not edit!"); + + // Use data + json.keySet().forEach(namespace -> { + String constantName = namespace + .replace("minecraft:", "") + .replace(".", "_") + .toUpperCase(Locale.ROOT); + if (!SourceVersion.isName(constantName)) { + constantName = "_" + constantName; + } + blockConstantsClass.addField( + FieldSpec.builder(typedRegistryKeyClass, constantName) + .addModifiers(Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL) + .initializer( + // TypeClass.STONE = NamespaceID.from("minecraft:stone") + "$T.of($S)", + registryKeyClass, + namespace + ) + .build() + ); + }); + writeFiles( + List.of(JavaFile.builder(packageName, blockConstantsClass.build()) + .indent(" ") .skipJavaLangImports(true) - .build(), - outputFolder - ); + .build()), + outputFolder); + } + + private void writeFiles(@NotNull List fileList, File outputFolder) { + for (JavaFile javaFile : fileList) { + try { + javaFile.writeTo(outputFolder); + } catch (IOException e) { + LOGGER.error("An error occured while writing source code to the file system.", e); + } + } } } diff --git a/code-generators/src/main/java/net/minestom/codegen/MinestomCodeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/MinestomCodeGenerator.java index 94773d6fbfd..4ac471ae2d7 100644 --- a/code-generators/src/main/java/net/minestom/codegen/MinestomCodeGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/MinestomCodeGenerator.java @@ -22,13 +22,6 @@ public abstract class MinestomCodeGenerator implements CodeExporter { protected static final Modifier[] CONSTANT_MODIFIERS = {Modifier.PRIVATE, Modifier.STATIC, Modifier.FINAL}; protected static final Modifier[] PRIVATE_FINAL_MODIFIERS = {Modifier.PRIVATE, Modifier.FINAL}; protected static final String DEFAULT_INDENT = " "; -<<<<<<< HEAD - - /** - * Creates a new code generator. - */ - protected MinestomCodeGenerator() { -======= protected String packageName; /** @@ -40,37 +33,16 @@ protected MinestomCodeGenerator(@NotNull String packageName) { throw new IllegalArgumentException("Package name cannot be empty"); } this.packageName = packageName; ->>>>>>> ab0874cf0 (Apply microtus patches 1-20) } public abstract void generate(); protected static @NotNull String extractNamespace(@NotNull String namespace) { -<<<<<<< HEAD return namespace.replace("minecraft:", "").toUpperCase(Locale.ROOT); } - protected static @NotNull String extractNamespaces(@NotNull String namespace, @NotNull Map arguments) { - if (arguments.isEmpty()) return extractNamespace(namespace); - - for (Map.Entry entry : arguments.entrySet()) { - namespace = namespace.replace(entry.getKey(), entry.getValue()); - } - return namespace.toUpperCase(Locale.ROOT); - } protected static String toConstant(String namespace) { -======= ->>>>>>> ab0874cf0 (Apply microtus patches 1-20) return namespace.replace("minecraft:", "").toUpperCase(Locale.ROOT); } - - protected static @NotNull String extractNamespaces(@NotNull String namespace, @NotNull Map arguments) { - if (arguments.isEmpty()) return extractNamespace(namespace); - - for (Map.Entry entry : arguments.entrySet()) { - namespace = namespace.replace(entry.getKey(), entry.getValue()); - } - return namespace.toUpperCase(Locale.ROOT); - } } diff --git a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java new file mode 100644 index 00000000000..9309c8ec68d --- /dev/null +++ b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java @@ -0,0 +1,194 @@ +package net.minestom.codegen.entity; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.squareup.javapoet.*; +import net.minestom.codegen.MinestomCodeGenerator; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import net.minestom.codegen.util.GenerationHelper; + +import javax.lang.model.element.Modifier; +import java.io.File; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.List; + +import static net.minestom.codegen.util.GenerationHelper.*; + +@ApiStatus.NonExtendable +@ApiStatus.Internal +public final class VillagerProfessionGenerator extends MinestomCodeGenerator { + + private static final String VILLAGER_PROFESSION_DATE = "villagerProfessionData"; + private static final Logger LOGGER = LoggerFactory.getLogger(VillagerProfessionGenerator.class); + private final InputStream villagerProfessionsFile; + private final File outputFolder; + + + public VillagerProfessionGenerator(@Nullable InputStream villagerProfessionsFile, @NotNull File outputFolder) { + this.villagerProfessionsFile = villagerProfessionsFile; + this.outputFolder = outputFolder; + } + + @Override + public void generate() { + if (villagerProfessionsFile == null) { + LOGGER.error("Failed to find villager_professions.json."); + LOGGER.error("Stopped code generation for villager professions."); + return; + } + if (!outputFolder.exists() && !outputFolder.mkdirs()) { + LOGGER.error("Output folder for code generation does not exist and could not be created."); + return; + } + // Important classes we use alot + ClassName rawVillagerProfessionDataClassName = ClassName.get("net.minestom.server.raw_data", "RawVillagerProfessionData"); + + JsonArray villagerProfessions = GSON.fromJson(new InputStreamReader(villagerProfessionsFile), JsonArray.class); + ClassName villagerProfessionClassName = ClassName.get("net.minestom.server.entity.metadata.villager", "VillagerProfession"); + + // Particle + TypeSpec.Builder villagerProfessionClass = TypeSpec.classBuilder(villagerProfessionClassName) + .addSuperinterface(KEYORI_ADVENTURE_KEY) + .addModifiers(Modifier.PUBLIC).addJavadoc("AUTOGENERATED by " + getClass().getSimpleName()); + villagerProfessionClass.addField( + FieldSpec.builder(NAMESPACE_ID_CLASS, "id") + .addModifiers(Modifier.PRIVATE, Modifier.FINAL).addAnnotation(NotNull.class).build() + ); + villagerProfessionClass.addField( + FieldSpec.builder(rawVillagerProfessionDataClassName, VILLAGER_PROFESSION_DATE) + .addModifiers(Modifier.PRIVATE, Modifier.VOLATILE) + .addAnnotation(NotNull.class) + .build() + ); + villagerProfessionClass.addMethod( + MethodSpec.constructorBuilder() + .addParameter(ParameterSpec.builder(NAMESPACE_ID_CLASS, "id").addAnnotation(NotNull.class).build()) + .addParameter(ParameterSpec.builder(rawVillagerProfessionDataClassName, VILLAGER_PROFESSION_DATE).addAnnotation(NotNull.class).build()) + .addStatement(VARIABLE_SETTER, "id") + .addStatement(VARIABLE_SETTER, VILLAGER_PROFESSION_DATE) + .addModifiers(Modifier.PROTECTED) + .build() + ); + // Override key method (adventure) + villagerProfessionClass.addMethod(GenerationHelper.ADVENTURE_KEY_METHOD); + // getId method + villagerProfessionClass.addMethod(GenerationHelper.ID_GETTER); + // getVillagerProfessionData method + villagerProfessionClass.addMethod( + MethodSpec.methodBuilder("getVillagerProfessionData") + .returns(rawVillagerProfessionDataClassName) + .addAnnotation(NotNull.class) + .addStatement("return this.villagerProfessionData") + .addModifiers(Modifier.PUBLIC, Modifier.FINAL) + .build() + ); + // setVillagerProfessionData method + villagerProfessionClass.addMethod( + MethodSpec.methodBuilder("setVillagerProfessionData") + .addParameter(ParameterSpec.builder(rawVillagerProfessionDataClassName, VILLAGER_PROFESSION_DATE).addAnnotation(NotNull.class).build()) + .addStatement("this.$L1 = $L1", VILLAGER_PROFESSION_DATE) + .addModifiers(Modifier.PUBLIC, Modifier.FINAL) + .build() + ); + // getNumericalId + villagerProfessionClass.addMethod( + MethodSpec.methodBuilder("getNumericalId") + .returns(TypeName.INT) + .addStatement("return $T.VILLAGER_PROFESSION_REGISTRY.getId(this)", REGISTRY_CLASS) + .addModifiers(Modifier.PUBLIC) + .build() + ); + // fromId Method + villagerProfessionClass.addMethod( + MethodSpec.methodBuilder("fromId") + .returns(villagerProfessionClassName) + .addAnnotation(Nullable.class) + .addParameter(TypeName.INT, "id") + .addStatement("return $T.VILLAGER_PROFESSION_REGISTRY.get((short) id)", REGISTRY_CLASS) + .addModifiers(Modifier.PUBLIC, Modifier.STATIC) + .build() + ); + // fromId Method + villagerProfessionClass.addMethod( + MethodSpec.methodBuilder("fromId") + .returns(villagerProfessionClassName) + .addAnnotation(NotNull.class) + .addParameter(ADVENTURE_KEY, "id") + .addStatement("return $T.VILLAGER_PROFESSION_REGISTRY.get(id)", REGISTRY_CLASS) + .addModifiers(Modifier.PUBLIC, Modifier.STATIC) + .build() + ); + // toString method + villagerProfessionClass.addMethod(GenerationHelper.TO_STRING); + // values method + villagerProfessionClass.addMethod( + MethodSpec.methodBuilder("values") + .addAnnotation(NotNull.class) + .returns(ParameterizedTypeName.get(ClassName.get(List.class), villagerProfessionClassName)) + .addStatement("return $T.VILLAGER_PROFESSION_REGISTRY.values()", REGISTRY_CLASS) + .addModifiers(Modifier.PUBLIC, Modifier.STATIC) + .build() + ); + CodeBlock.Builder staticBlock = CodeBlock.builder(); + // Use data + for (JsonElement vp : villagerProfessions) { + JsonObject villagerProfession = vp.getAsJsonObject(); + + String villagerProfessionName = villagerProfession.get("name").getAsString(); + JsonElement workSound = villagerProfession.get("workSound"); + if (workSound == null) { + villagerProfessionClass.addField( + FieldSpec.builder( + villagerProfessionClassName, + villagerProfessionName + ).initializer( + "new $T($T.from($S), new $T(() -> null))", + villagerProfessionClassName, + NAMESPACE_ID_CLASS, + villagerProfession.get("id").getAsString(), + + rawVillagerProfessionDataClassName + ).addModifiers(Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).build() + ); + } else { + villagerProfessionClass.addField( + FieldSpec.builder( + villagerProfessionClassName, + villagerProfessionName + ).initializer( + "new $T($T.from($S), new $T(() -> $T.SOUND_EVENT_REGISTRY.get($S)))", + villagerProfessionClassName, + NAMESPACE_ID_CLASS, + villagerProfession.get("id").getAsString(), + + rawVillagerProfessionDataClassName, + REGISTRY_CLASS, + workSound.getAsString() + ).addModifiers(Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).build() + ); + } + + // Add to static init. + staticBlock.addStatement("$T.VILLAGER_PROFESSION_REGISTRY.register($N)", REGISTRY_CLASS, villagerProfessionName); + } + + villagerProfessionClass.addStaticBlock(staticBlock.build()); + + // Write files to outputFolder + writeFiles( + List.of( + JavaFile.builder("net.minestom.server.entity.metadata.villager", villagerProfessionClass.build()) + .indent(DEFAULT_INDENT) + .skipJavaLangImports(true) + .build() + ), + outputFolder + ); + } +} diff --git a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java new file mode 100644 index 00000000000..0f59af765a7 --- /dev/null +++ b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java @@ -0,0 +1,151 @@ +package net.minestom.codegen.entity; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.squareup.javapoet.*; +import net.minestom.codegen.MinestomCodeGenerator; +import net.minestom.codegen.util.GenerationHelper; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.lang.model.element.Modifier; +import java.io.File; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.List; + +import static net.minestom.codegen.util.GenerationHelper.ADVENTURE_KEY; +import static net.minestom.codegen.util.GenerationHelper.TO_STRING; + +@ApiStatus.NonExtendable +@ApiStatus.Internal +public final class VillagerTypeGenerator extends MinestomCodeGenerator { + private static final Logger LOGGER = LoggerFactory.getLogger(VillagerTypeGenerator.class); + private final InputStream villagerTypesFile; + private final File outputFolder; + + public VillagerTypeGenerator(@Nullable InputStream villagerTypesFile, @NotNull File outputFolder) { + this.villagerTypesFile = villagerTypesFile; + this.outputFolder = outputFolder; + } + + @Override + public void generate() { + if (villagerTypesFile == null) { + LOGGER.error("Failed to find villager_types.json."); + LOGGER.error("Stopped code generation for villager types."); + return; + } + if (!outputFolder.exists() && !outputFolder.mkdirs()) { + LOGGER.error("Output folder for code generation does not exist and could not be created."); + return; + } + // Important classes we use alot + JsonArray villagerTypes = GSON.fromJson(new InputStreamReader(villagerTypesFile), JsonArray.class); + ClassName villagerTypeClassName = ClassName.get("net.minestom.server.entity.metadata.villager", "VillagerType"); + + // Particle + TypeSpec.Builder villagerTypeClass = TypeSpec.classBuilder(villagerTypeClassName) + .addSuperinterface(KEYORI_ADVENTURE_KEY) + .addModifiers(Modifier.PUBLIC).addJavadoc("AUTOGENERATED by " + getClass().getSimpleName()); + villagerTypeClass.addField( + FieldSpec.builder(NAMESPACE_ID_CLASS, "id") + .addModifiers(Modifier.PRIVATE, Modifier.FINAL).addAnnotation(NotNull.class).build() + ); + villagerTypeClass.addMethod( + MethodSpec.constructorBuilder() + .addParameter(ParameterSpec.builder(NAMESPACE_ID_CLASS, "id").addAnnotation(NotNull.class).build()) + .addStatement("this.id = id") + .addModifiers(Modifier.PROTECTED) + .build() + ); + // Override key method (adventure) + villagerTypeClass.addMethod(GenerationHelper.ID_GETTER); + // getId method + villagerTypeClass.addMethod( + MethodSpec.methodBuilder("getId") + .returns(NAMESPACE_ID_CLASS) + .addAnnotation(NotNull.class) + .addStatement("return this.id") + .addModifiers(Modifier.PUBLIC) + .build() + ); + // getNumericalId + villagerTypeClass.addMethod( + MethodSpec.methodBuilder("getNumericalId") + .returns(TypeName.INT) + .addStatement("return $T.VILLAGER_TYPE_REGISTRY.getId(this)", REGISTRY_CLASS) + .addModifiers(Modifier.PUBLIC) + .build() + ); + // fromId Method + villagerTypeClass.addMethod( + MethodSpec.methodBuilder("fromId") + .returns(villagerTypeClassName) + .addAnnotation(Nullable.class) + .addParameter(TypeName.INT, "id") + .addStatement("return $T.VILLAGER_TYPE_REGISTRY.get((short) id)", REGISTRY_CLASS) + .addModifiers(Modifier.PUBLIC, Modifier.STATIC) + .build() + ); + // fromId Method + villagerTypeClass.addMethod( + MethodSpec.methodBuilder("fromId") + .returns(villagerTypeClassName) + .addAnnotation(NotNull.class) + .addParameter(ADVENTURE_KEY, "id") + .addStatement("return $T.VILLAGER_TYPE_REGISTRY.get(id)", REGISTRY_CLASS) + .addModifiers(Modifier.PUBLIC, Modifier.STATIC) + .build() + ); + // toString method + villagerTypeClass.addMethod(TO_STRING); + // values method + villagerTypeClass.addMethod( + MethodSpec.methodBuilder("values") + .addAnnotation(NotNull.class) + .returns(ParameterizedTypeName.get(ClassName.get(List.class), villagerTypeClassName)) + .addStatement("return $T.VILLAGER_TYPE_REGISTRY.values()", REGISTRY_CLASS) + .addModifiers(Modifier.PUBLIC, Modifier.STATIC) + .build() + ); + CodeBlock.Builder staticBlock = CodeBlock.builder(); + // Use data + for (JsonElement vp : villagerTypes) { + JsonObject villagerProfession = vp.getAsJsonObject(); + + String villagerProfessionName = villagerProfession.get("name").getAsString(); + + villagerTypeClass.addField( + FieldSpec.builder( + villagerTypeClassName, + villagerProfessionName + ).initializer( + "new $T($T.from($S))", + villagerTypeClassName, + NAMESPACE_ID_CLASS, + villagerProfession.get("id").getAsString() + ).addModifiers(Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).build() + ); + // Add to static init. + staticBlock.addStatement("$T.VILLAGER_TYPE_REGISTRY.register($N)", REGISTRY_CLASS, villagerProfessionName); + } + + villagerTypeClass.addStaticBlock(staticBlock.build()); + + // Write files to outputFolder + writeFiles( + List.of( + JavaFile.builder("net.minestom.server.entity.metadata.villager", villagerTypeClass.build()) + .indent(DEFAULT_INDENT) + .skipJavaLangImports(true) + .build() + ), + outputFolder + ); + } +} diff --git a/code-generators/src/main/java/net/minestom/codegen/fluid/FluidGenerator.java b/code-generators/src/main/java/net/minestom/codegen/fluid/FluidGenerator.java new file mode 100644 index 00000000000..642489970cf --- /dev/null +++ b/code-generators/src/main/java/net/minestom/codegen/fluid/FluidGenerator.java @@ -0,0 +1,144 @@ +package net.minestom.codegen.fluid; + +import com.google.gson.JsonObject; +import com.squareup.javapoet.*; +import net.minestom.codegen.MinestomCodeGenerator; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.lang.model.element.Modifier; +import java.io.File; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.List; + +public final class FluidGenerator extends MinestomCodeGenerator { + private static final Logger LOGGER = LoggerFactory.getLogger(FluidGenerator.class); + private final InputStream fluidsFile; + private final File outputFolder; + + public FluidGenerator(@Nullable InputStream fluidsFile, @NotNull File outputFolder) { + this.fluidsFile = fluidsFile; + this.outputFolder = outputFolder; + } + + @Override + public void generate() { + if (fluidsFile == null) { + LOGGER.error("Failed to find fluids.json."); + LOGGER.error("Stopped code generation for fluids."); + return; + } + if (!outputFolder.exists() && !outputFolder.mkdirs()) { + LOGGER.error("Output folder for code generation does not exist and could not be created."); + return; + } + // Important classes we use alot + ClassName namespaceIDClassName = ClassName.get("net.minestom.server.utils", "NamespaceID"); + ClassName registriesClassName = ClassName.get("net.minestom.server.registry", "FluidRegistries"); + + JsonObject fluids = GSON.fromJson(new InputStreamReader(fluidsFile), JsonObject.class); + ClassName fluidClassName = ClassName.get("net.minestom.server.fluid", "Fluid"); + + // Particle + TypeSpec.Builder fluidClass = TypeSpec.enumBuilder(fluidClassName) + .addSuperinterface(ClassName.get("net.kyori.adventure.key", "Keyed")) + .addModifiers(Modifier.PUBLIC).addJavadoc("AUTOGENERATED by " + getClass().getSimpleName()); + + fluidClass.addField( + FieldSpec.builder(namespaceIDClassName, "id") + .addModifiers(Modifier.PRIVATE, Modifier.FINAL).addAnnotation(NotNull.class).build() + ); + // static field + fluidClass.addField( + FieldSpec.builder(ArrayTypeName.of(fluidClassName), "VALUES") + .addModifiers(Modifier.PRIVATE, Modifier.STATIC, Modifier.FINAL) + .initializer("values()") + .build() + ); + + fluidClass.addMethod( + MethodSpec.constructorBuilder() + .addParameter(ParameterSpec.builder(namespaceIDClassName, "id").addAnnotation(NotNull.class).build()) + .addStatement("this.id = id") + .addStatement("$T.fluids.put(id, this)", registriesClassName) + .build() + ); + // Override key method (adventure) + fluidClass.addMethod( + MethodSpec.methodBuilder("key") + .returns(ClassName.get("net.kyori.adventure.key", "Key")) + .addAnnotation(Override.class) + .addAnnotation(NotNull.class) + .addStatement("return this.id") + .addModifiers(Modifier.PUBLIC) + .build() + ); + // getId method + fluidClass.addMethod( + MethodSpec.methodBuilder("getId") + .returns(TypeName.SHORT) + .addStatement("return (short) ordinal()") + .addModifiers(Modifier.PUBLIC) + .build() + ); + // getNamespaceID method + fluidClass.addMethod( + MethodSpec.methodBuilder("getNamespaceID") + .returns(namespaceIDClassName) + .addAnnotation(NotNull.class) + .addStatement("return this.id") + .addModifiers(Modifier.PUBLIC) + .build() + ); + // toString method + fluidClass.addMethod( + MethodSpec.methodBuilder("toString") + .addAnnotation(NotNull.class) + .addAnnotation(Override.class) + .returns(String.class) + // this resolves to [Namespace] + .addStatement("return \"[\" + this.id + \"]\"") + .addModifiers(Modifier.PUBLIC) + .build() + ); + + // fromId Method + fluidClass.addMethod( + MethodSpec.methodBuilder("fromId") + .returns(fluidClassName) + .addAnnotation(Nullable.class) + .addParameter(TypeName.SHORT, "id") + .beginControlFlow("if(id >= 0 && id < VALUES.length)") + .addStatement("return VALUES[id]") + .endControlFlow() + .addStatement("return null") + .addModifiers(Modifier.PUBLIC, Modifier.STATIC) + .build() + ); + + // Use data + fluids.entrySet().forEach(entry -> { + final String fluidName = entry.getKey(); + fluidClass.addEnumConstant(toConstant(fluidName), TypeSpec.anonymousClassBuilder( + "$T.from($S)", + namespaceIDClassName, + fluidName + ).build() + ); + }); + + // Write files to outputFolder + writeFiles( + List.of( + JavaFile.builder("net.minestom.server.fluid", fluidClass.build()) + .indent(" ") + .skipJavaLangImports(true) + .build() + ), + outputFolder + ); + } +} diff --git a/src/autogenerated/java/net/minestom/server/fluid/Fluid.java b/src/autogenerated/java/net/minestom/server/fluid/Fluid.java new file mode 100644 index 00000000000..e00575f9bbc --- /dev/null +++ b/src/autogenerated/java/net/minestom/server/fluid/Fluid.java @@ -0,0 +1,62 @@ +package net.minestom.server.fluid; + +import net.kyori.adventure.key.Key; +import net.kyori.adventure.key.Keyed; +import net.minestom.server.registry.FluidRegistries; +import net.minestom.server.utils.NamespaceID; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * AUTOGENERATED by FluidGenerator + */ +public enum Fluid implements Keyed { + EMPTY(NamespaceID.from("minecraft:empty")), + + FLOWING_WATER(NamespaceID.from("minecraft:flowing_water")), + + WATER(NamespaceID.from("minecraft:water")), + + FLOWING_LAVA(NamespaceID.from("minecraft:flowing_lava")), + + LAVA(NamespaceID.from("minecraft:lava")); + + private static final Fluid[] VALUES = values(); + + @NotNull + private final NamespaceID id; + + Fluid(@NotNull NamespaceID id) { + this.id = id; + FluidRegistries.fluids.put(id, this); + } + + @Override + @NotNull + public Key key() { + return this.id; + } + + public short getId() { + return (short) ordinal(); + } + + @NotNull + public NamespaceID getNamespaceID() { + return this.id; + } + + @NotNull + @Override + public String toString() { + return "[" + this.id + "]"; + } + + @Nullable + public static Fluid fromId(short id) { + if(id >= 0 && id < VALUES.length) { + return VALUES[id]; + } + return null; + } +} diff --git a/src/autogenerated/java/net/minestom/server/registry/FluidRegistries.java b/src/autogenerated/java/net/minestom/server/registry/FluidRegistries.java new file mode 100644 index 00000000000..f6e23118b11 --- /dev/null +++ b/src/autogenerated/java/net/minestom/server/registry/FluidRegistries.java @@ -0,0 +1,45 @@ +// AUTOGENERATED by net.minestom.codegen.RegistriesGenerator +package net.minestom.server.registry; + +import net.kyori.adventure.key.Key; +import net.minestom.server.fluid.Fluid; +import net.minestom.server.utils.NamespaceID; +import org.jetbrains.annotations.NotNull; + +import java.util.HashMap; + +/** + * AUTOGENERATED + */ +public final class FluidRegistries { + + /** + * Should only be used for internal code, please use the get* methods. + */ + @Deprecated + public static final HashMap fluids = new HashMap<>(); + + /** + * Returns the corresponding Fluid matching the given id. Returns 'EMPTY' if none match. + */ + @NotNull + public static Fluid getFluid(String id) { + return getFluid(NamespaceID.from(id)); + } + + /** + * Returns the corresponding Fluid matching the given id. Returns 'EMPTY' if none match. + */ + @NotNull + public static Fluid getFluid(NamespaceID id) { + return fluids.getOrDefault(id, Fluid.EMPTY); + } + + /** + * Returns the corresponding Fluid matching the given key. Returns 'EMPTY' if none match. + */ + @NotNull + public static Fluid getFluid(Key key) { + return getFluid(NamespaceID.from(key)); + } +} diff --git a/src/main/java/net/minestom/server/coordinate/Vec.java b/src/main/java/net/minestom/server/coordinate/Vec.java index 5d92c2e34ca..71dde7352f3 100644 --- a/src/main/java/net/minestom/server/coordinate/Vec.java +++ b/src/main/java/net/minestom/server/coordinate/Vec.java @@ -494,6 +494,12 @@ static Operator operator(@NotNull DoubleUnaryOperator operator) { return (x, y, z) -> new Vec(operator.applyAsDouble(x), operator.applyAsDouble(y), operator.applyAsDouble(z)); } + Operator SIGNUM = (x, y, z) -> new Vec( + Math.signum(x), + Math.signum(y), + Math.signum(z) + ); + @NotNull Vec apply(double x, double y, double z); } diff --git a/src/main/java/net/minestom/server/entity/Entity.java b/src/main/java/net/minestom/server/entity/Entity.java index e31e65f7534..cfc5358b92d 100644 --- a/src/main/java/net/minestom/server/entity/Entity.java +++ b/src/main/java/net/minestom/server/entity/Entity.java @@ -1767,6 +1767,26 @@ protected void updateCollisions() { return acquirable; } + /** + * Acquires this entity. + * + * @param the type of object to be acquired + * @return the acquirable for this entity + * @deprecated It's preferred to use {@link AcquirableSource#acquirable()} instead, as it is overridden by + * subclasses + */ + @Deprecated + @ApiStatus.Experimental + public @NotNull Acquirable getAcquirable() { + return (Acquirable) acquirable; + } + + @ApiStatus.Experimental + @Override + public @NotNull Acquirable acquirable() { + return acquirable; + } + public enum Pose { STANDING, FALL_FLYING, diff --git a/src/main/java/net/minestom/server/instance/AnvilLoader.java b/src/main/java/net/minestom/server/instance/AnvilLoader.java deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/test/java/net/minestom/server/entity/metadata/animal/FrogMetaTest.java b/src/test/java/net/minestom/server/entity/metadata/animal/FrogMetaTest.java index dff4f20dac5..1ba1805b527 100644 --- a/src/test/java/net/minestom/server/entity/metadata/animal/FrogMetaTest.java +++ b/src/test/java/net/minestom/server/entity/metadata/animal/FrogMetaTest.java @@ -1,6 +1,7 @@ package net.minestom.server.entity.metadata.animal; import net.minestom.server.entity.metadata.animal.FrogMeta.Variant; +import net.minestom.server.network.NetworkBuffer; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; @@ -10,9 +11,9 @@ class FrogMetaTest { @Test void testFrogVariantRead() { - assertEquals(Variant.WARM, Variant.getVariant(Variant.WARM.ordinal())); + /*assertEquals(Variant.WARM, Variant.getVariant(Variant.WARM.ordinal())); assertEquals(Variant.TEMPERATE, Variant.getVariant(0)); assertNull(Variant.getVariant(-1)); - assertNull(Variant.getVariant(100)); + assertNull(Variant.getVariant(100));*/ } } \ No newline at end of file diff --git a/src/test/java/net/minestom/server/instance/BlockTest.java b/src/test/java/net/minestom/server/instance/BlockTest.java index d762b4df59d..085ca6db8c9 100644 --- a/src/test/java/net/minestom/server/instance/BlockTest.java +++ b/src/test/java/net/minestom/server/instance/BlockTest.java @@ -14,10 +14,10 @@ import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.assertEquals; -class BlockTest { +public class BlockTest { @Test - void testNBT() { + public void testNBT() { Block block = Block.CHEST; assertFalse(block.hasNbt()); assertNull(block.nbt()); @@ -36,7 +36,7 @@ void testNBT() { } @Test - void validProperties() { + public void validProperties() { Block block = Block.CHEST; assertEquals(block.properties(), Objects.requireNonNull(Block.fromBlockId(block.id())).properties()); @@ -54,7 +54,7 @@ void validProperties() { } @Test - void invalidProperties() { + public void invalidProperties() { Block block = Block.CHEST; assertThrows(Exception.class, () -> block.withProperty("random", "randomKey")); assertThrows(Exception.class, () -> block.withProperties(Map.of("random", "randomKey"))); @@ -72,14 +72,14 @@ public void testEquality() { } @Test - void testMutability() { + public void testMutability() { Block block = Block.CHEST; assertThrows(Exception.class, () -> block.properties().put("facing", "north")); assertThrows(Exception.class, () -> block.withProperty("facing", "north").properties().put("facing", "south")); } @Test - void testShape() { + public void testShape() { Point start = Block.LANTERN.registry().collisionShape().relativeStart(); Point end = Block.LANTERN.registry().collisionShape().relativeEnd(); diff --git a/src/test/java/net/minestom/server/network/NetworkBufferTest.java b/src/test/java/net/minestom/server/network/NetworkBufferTest.java index 16cdeb4cb11..ea02bdedd47 100644 --- a/src/test/java/net/minestom/server/network/NetworkBufferTest.java +++ b/src/test/java/net/minestom/server/network/NetworkBufferTest.java @@ -18,10 +18,10 @@ import static net.minestom.server.network.NetworkBuffer.*; import static org.junit.jupiter.api.Assertions.*; -class NetworkBufferTest { +public class NetworkBufferTest { @Test - void resize() { + public void resize() { var buffer = new NetworkBuffer(6); buffer.write(INT, 6); assertEquals(4, buffer.writeIndex()); @@ -45,7 +45,7 @@ void resize() { } @Test - void readableBytes() { + public void readableBytes() { var buffer = new NetworkBuffer(); assertEquals(0, buffer.readableBytes()); @@ -63,7 +63,7 @@ void readableBytes() { } @Test - void extractBytes() { + public void extractBytes() { var buffer = new NetworkBuffer(); buffer.write(BYTE, (byte) 25); @@ -90,7 +90,7 @@ void extractBytes() { } @Test - void makeArray() { + public void makeArray() { assertArrayEquals(new byte[0], NetworkBuffer.makeArray(buffer -> { })); @@ -103,7 +103,7 @@ void makeArray() { } @Test - void numbers() { + public void numbers() { assertBufferType(BOOLEAN, false, new byte[]{0x00}); assertBufferType(BOOLEAN, true, new byte[]{0x01}); @@ -196,7 +196,7 @@ void numbers() { } @Test - void varInt() { + public void varInt() { assertBufferType(VAR_INT, 0, new byte[]{0}); assertBufferType(VAR_INT, 1, new byte[]{0x01}); assertBufferType(VAR_INT, 2, new byte[]{0x02}); @@ -212,7 +212,7 @@ void varInt() { } @Test - void varLong() { + public void varLong() { assertBufferType(VAR_LONG, 0L, new byte[]{0}); assertBufferType(VAR_LONG, 1L, new byte[]{0x01}); assertBufferType(VAR_LONG, 2L, new byte[]{0x02}); @@ -227,14 +227,14 @@ void varLong() { } @Test - void rawBytes() { + public void rawBytes() { // FIXME: currently break because the array is identity compared //assertBufferType(NetworkBuffer.RAW_BYTES, new byte[]{0x0B, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64}, // new byte[]{0x0B, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64}); } @Test - void string() { + public void string() { assertBufferType(STRING, "Hello World", new byte[]{0x0B, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64}); } @@ -245,12 +245,12 @@ public void nbt() { } @Test - void component() { + public void component() { assertBufferType(COMPONENT, Component.text("Hello world")); } @Test - void uuid() { + public void uuid() { assertBufferType(UUID, new UUID(0, 0), new byte[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}); assertBufferType(UUID, new UUID(1, 1), new byte[]{0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}); } @@ -263,13 +263,13 @@ public void item() { } @Test - void optional() { + public void optional() { assertBufferTypeOptional(BOOLEAN, null, new byte[]{0}); assertBufferTypeOptional(BOOLEAN, true, new byte[]{1, 1}); } @Test - void collection() { + public void collection() { assertBufferTypeCollection(BOOLEAN, List.of(), new byte[]{0}); assertBufferTypeCollection(BOOLEAN, List.of(true), new byte[]{0x01, 0x01}); } From 1a0480571fd7b94ffb847f0776b5a9531b298a94 Mon Sep 17 00:00:00 2001 From: theEvilReaper Date: Mon, 19 Aug 2024 10:02:36 +0200 Subject: [PATCH 24/93] Remove jitpack section --- .github/README.md | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/.github/README.md b/.github/README.md index ffa2c73c88c..84df4e0a105 100644 --- a/.github/README.md +++ b/.github/README.md @@ -21,16 +21,6 @@ Discord for discussion: [OneLiteFeather.net](https://discord.onelitefeather.net) For details how you can contribute to the project please read our [Contributing](CONTRIBUTING.md). -## Usage of Jitpack: - -Some of the project's dependencies are only available in the Jitpack repository. -To ensure a seamless experience, kindly include this repository in your project configuration to prevent any potential issues. - -```kt -maven("https://jitpack.io") -``` - - ## Usage of microtus Since 23.07.2023 we are now official on the maven central for releases and snapshots. To use Microtus in your projects you need: From 246b8acf27b59ee9cdffd96d6cc3411bf8cd772a Mon Sep 17 00:00:00 2001 From: TheMeinerLP Date: Sun, 16 Jun 2024 16:45:51 +0200 Subject: [PATCH 25/93] Deprecated old testing and introduce into new method --- .../java/net/minestom/testing/EnvTest.java | 8 ++- .../testing/annotations/EnvironmentTest.java | 11 ++-- .../environment/TestEnvironmentCleaner.java | 3 ++ .../TestEnvironmentParameterResolver.java | 3 ++ .../testing/extension/MicrotusExtension.java | 50 +++++++++++++++++++ .../testing/extension/package-info.java | 21 ++++++++ 6 files changed, 90 insertions(+), 6 deletions(-) create mode 100644 testing/src/main/java/net/minestom/testing/extension/MicrotusExtension.java create mode 100644 testing/src/main/java/net/minestom/testing/extension/package-info.java diff --git a/testing/src/main/java/net/minestom/testing/EnvTest.java b/testing/src/main/java/net/minestom/testing/EnvTest.java index 794953ca905..556d7b43200 100644 --- a/testing/src/main/java/net/minestom/testing/EnvTest.java +++ b/testing/src/main/java/net/minestom/testing/EnvTest.java @@ -1,6 +1,7 @@ package net.minestom.testing; import net.minestom.server.MinecraftServer; +import org.jetbrains.annotations.ApiStatus; import org.junit.jupiter.api.extension.*; import org.junit.jupiter.api.extension.support.TypeBasedParameterResolver; @@ -11,14 +12,17 @@ import java.lang.reflect.Method; /** - * @deprecated As of Microtus 1.4.2, because this version don't support Non Env tests and env tests at the same time use {@link net.minestom.testing.annotations.EnvironmentTest} instead. + * @deprecated As of Microtus 1.4.2, because this version doesn't support Non Env tests and env tests at the same time. + * Use {@link net.minestom.testing.extension.MicrotusExtension MicrotusExtension} instead of the {@code @EnvTest} annotation: + * {@code @ExtendWith(MicrotusExtension.class)} */ @ExtendWith(EnvTest.EnvParameterResolver.class) @ExtendWith(EnvTest.EnvBefore.class) @ExtendWith(EnvTest.EnvCleaner.class) @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) -@Deprecated(since = "1.4.2", forRemoval = true) +@Deprecated(forRemoval = true, since = "1.4.2") +@ApiStatus.ScheduledForRemoval(inVersion = "1.6.0") public @interface EnvTest { final class EnvBefore implements BeforeEachCallback { diff --git a/testing/src/main/java/net/minestom/testing/annotations/EnvironmentTest.java b/testing/src/main/java/net/minestom/testing/annotations/EnvironmentTest.java index 954d2aa2719..5f6f83db3c6 100644 --- a/testing/src/main/java/net/minestom/testing/annotations/EnvironmentTest.java +++ b/testing/src/main/java/net/minestom/testing/annotations/EnvironmentTest.java @@ -1,7 +1,7 @@ package net.minestom.testing.annotations; -import net.minestom.testing.environment.TestEnvironmentCleaner; -import net.minestom.testing.environment.TestEnvironmentParameterResolver; +import net.minestom.testing.extension.MicrotusExtension; +import org.jetbrains.annotations.ApiStatus; import org.junit.jupiter.api.extension.ExtendWith; import java.lang.annotation.ElementType; @@ -12,10 +12,13 @@ /** * Creates a fake environment for Microtus * @since 1.4.2 + * @deprecated As of Microtus 1.5.0, because better and deeper integration of JUnit5 testing use + * {@link net.minestom.testing.extension.MicrotusExtension} instead. */ -@ExtendWith(TestEnvironmentCleaner.class) -@ExtendWith(TestEnvironmentParameterResolver.class) +@ExtendWith(MicrotusExtension.class) @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) +@Deprecated(forRemoval = true, since = "1.5.0") +@ApiStatus.ScheduledForRemoval(inVersion = "1.6.0") public @interface EnvironmentTest { } diff --git a/testing/src/main/java/net/minestom/testing/environment/TestEnvironmentCleaner.java b/testing/src/main/java/net/minestom/testing/environment/TestEnvironmentCleaner.java index 6b354229791..94f404ebcd4 100644 --- a/testing/src/main/java/net/minestom/testing/environment/TestEnvironmentCleaner.java +++ b/testing/src/main/java/net/minestom/testing/environment/TestEnvironmentCleaner.java @@ -1,6 +1,7 @@ package net.minestom.testing.environment; import net.minestom.testing.Env; +import org.jetbrains.annotations.ApiStatus; import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.api.extension.InvocationInterceptor; import org.junit.jupiter.api.extension.ReflectiveInvocationContext; @@ -12,6 +13,8 @@ * Handles {@link Env} to clean the Test Environment after usage * @since 1.4.2 */ +@Deprecated(forRemoval = true, since = "1.5.0") +@ApiStatus.ScheduledForRemoval(inVersion = "1.6.0") public final class TestEnvironmentCleaner implements InvocationInterceptor { @Override public void interceptTestMethod(Invocation invocation, ReflectiveInvocationContext invocationContext, ExtensionContext extensionContext) throws Throwable { diff --git a/testing/src/main/java/net/minestom/testing/environment/TestEnvironmentParameterResolver.java b/testing/src/main/java/net/minestom/testing/environment/TestEnvironmentParameterResolver.java index 77f023b7268..6980f22bc0d 100644 --- a/testing/src/main/java/net/minestom/testing/environment/TestEnvironmentParameterResolver.java +++ b/testing/src/main/java/net/minestom/testing/environment/TestEnvironmentParameterResolver.java @@ -2,6 +2,7 @@ import net.minestom.server.MinecraftServer; import net.minestom.testing.Env; +import org.jetbrains.annotations.ApiStatus; import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.api.extension.ParameterContext; import org.junit.jupiter.api.extension.ParameterResolutionException; @@ -11,6 +12,8 @@ * Handles {@link Env} parameter for JUnit Tests to inject the TestEnvironment * @since 1.4.1 */ +@Deprecated(forRemoval = true, since = "1.5.0") +@ApiStatus.ScheduledForRemoval(inVersion = "1.6.0") public final class TestEnvironmentParameterResolver extends TypeBasedParameterResolver { @Override public Env resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) diff --git a/testing/src/main/java/net/minestom/testing/extension/MicrotusExtension.java b/testing/src/main/java/net/minestom/testing/extension/MicrotusExtension.java new file mode 100644 index 00000000000..e19513fd34b --- /dev/null +++ b/testing/src/main/java/net/minestom/testing/extension/MicrotusExtension.java @@ -0,0 +1,50 @@ +package net.minestom.testing.extension; + +import net.minestom.server.MinecraftServer; +import net.minestom.testing.Env; +import org.junit.jupiter.api.extension.*; +import org.junit.jupiter.api.extension.support.TypeBasedParameterResolver; + +import java.lang.reflect.Method; +import java.util.List; + +/** + * The {@code MicrotusExtension} class extends {@link TypeBasedParameterResolver} and implements {@link InvocationInterceptor}. + * This extension is used to resolve parameters of type {@link Env} and to intercept test method invocations. + * + * @since 1.5.0 + */ +public class MicrotusExtension extends TypeBasedParameterResolver implements InvocationInterceptor { + + /** + * Resolves the parameter of type {@link Env}. + * + * @param parameterContext the context for the parameter for which an argument should be resolved; never {@code null} + * @param extensionContext the extension context for the {@code Executable} about to be invoked; never {@code null} + * @return an instance of {@link Env} + * @throws ParameterResolutionException if an error occurs during parameter resolution + */ + @Override + public Env resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) + throws ParameterResolutionException { + return Env.createInstance(MinecraftServer.updateProcess()); + } + + /** + * Intercepts the test method invocation to perform additional actions before or after the test method execution. + * + * @param invocation the invocation to be intercepted; never {@code null} + * @param invocationContext the context for the reflective invocation of the test method; never {@code null} + * @param extensionContext the context for the extension; never {@code null} + * @throws Throwable if an error occurs during the interception + */ + @Override + public void interceptTestMethod(Invocation invocation, ReflectiveInvocationContext invocationContext, ExtensionContext extensionContext) throws Throwable { + invocation.proceed(); + List arguments = invocationContext.getArguments(); + arguments.stream().filter(Env.class::isInstance).findFirst().ifPresent(o -> { + Env env = (Env) o; + env.cleanup(); + }); + } +} diff --git a/testing/src/main/java/net/minestom/testing/extension/package-info.java b/testing/src/main/java/net/minestom/testing/extension/package-info.java new file mode 100644 index 00000000000..8a40149180b --- /dev/null +++ b/testing/src/main/java/net/minestom/testing/extension/package-info.java @@ -0,0 +1,21 @@ +/** + * This package contains extensions for parameter resolution and invocation interception in tests. + *

    + * The main class in this package is {@link net.minestom.testing.extension.MicrotusExtension}, which provides + * parameter resolution for {@link net.minestom.testing.Env} type parameters and intercepts test method invocations. + *

    + * + *

    Usage Example:

    + *
    + * @ExtendWith(MicrotusExtension.class)
    + * public class MyTest {
    + *     @Test
    + *     public void testWithEnv(Env env) {
    + *         // test code using env
    + *     }
    + * }
    + * 
    + * + * @since 1.5.0 + */ +package net.minestom.testing.extension; \ No newline at end of file From d33d98620c9821fe30a01f77a10c28ac647aa1e2 Mon Sep 17 00:00:00 2001 From: TheMeinerLP Date: Sun, 16 Jun 2024 16:47:27 +0200 Subject: [PATCH 26/93] Update code to new testing framework --- .../AdvancementIntegrationTest.java | 5 +++-- .../EntityBlockPhysicsIntegrationTest.java | 5 +++-- .../EntityBlockTouchTickIntegrationTest.java | 5 +++-- ...ityProjectileCollisionIntegrationTest.java | 5 +++-- .../PlacementCollisionIntegrationTest.java | 5 +++-- .../CommandSuggestionIntegrationTest.java | 9 ++++---- .../EntityBoundingBoxIntegrationTest.java | 5 +++-- .../entity/EntityInstanceIntegrationTest.java | 5 +++-- .../EntityLineOfSightIntegrationTest.java | 5 +++-- .../entity/EntityMetaIntegrationTest.java | 7 ++++--- .../entity/EntityPhysicsIntegrationTest.java | 11 +++++----- .../EntityProjectileIntegrationTest.java | 5 +++-- .../entity/EntityRemovalIntegrationTest.java | 5 +++-- .../entity/EntityTeleportIntegrationTest.java | 7 ++++--- .../entity/EntityVelocityIntegrationTest.java | 21 ++++++++++--------- .../EntityViewDirectionIntegrationTest.java | 5 +++-- .../entity/EntityViewIntegrationTest.java | 5 +++-- .../EntityViewerRuleIntegrationTest.java | 5 +++-- .../entity/PassengerIntegrationTest.java | 7 ++++--- .../entity/PlayerHeldIntegrationTest.java | 5 +++-- .../entity/ai/ClosestEntityTargetTest.java | 5 +++-- .../PlayerBlockPlacementIntegrationTest.java | 5 +++-- .../entity/player/PlayerIntegrationTest.java | 9 ++++---- .../player/PlayerMovementIntegrationTest.java | 8 +++---- .../PlayerRespawnChunkIntegrationTest.java | 6 +++--- .../BlockLightMergeIntegrationTest.java | 11 +++++----- .../instance/BlockPlaceIntegrationTest.java | 5 +++-- .../ChunkHeightmapIntegrationTest.java | 13 ++++++------ .../instance/ChunkViewerIntegrationTest.java | 5 +++-- .../EntityTrackerIntegrationTest.java | 10 +++------ .../GeneratorForkIntegrationTest.java | 5 +++-- .../instance/GeneratorIntegrationTest.java | 5 +++-- .../InstanceBlockIntegrationTest.java | 7 ++++--- .../InstanceBlockPacketIntegrationTest.java | 7 ++++--- .../InstanceEventsIntegrationTest.java | 5 +++-- .../InstanceUnregisterIntegrationTest.java | 5 +++-- .../InstanceWorldPositionIntegrationTest.java | 5 +++-- .../minestom/server/instance/WeatherTest.java | 9 ++++---- .../instance/WorldBorderIntegrationTest.java | 7 ++++--- .../anvil/AnvilLoaderIntegrationTest.java | 7 ++++--- .../GeneratorForkConsumerIntegrationTest.java | 7 ++++--- .../light/LightParityIntegrationTest.java | 7 ++++--- .../light/WorldRelightIntegrationTest.java | 5 +++-- .../inventory/InventoryCloseStateTest.java | 5 +++-- .../inventory/InventoryIntegrationTest.java | 7 ++++--- .../inventory/PlayerCreativeSlotTest.java | 11 +++++----- .../PlayerInventoryIntegrationTest.java | 5 +++-- .../integration/HeldClickIntegrationTest.java | 5 +++-- .../integration/LeftClickIntegrationTest.java | 5 +++-- .../RightClickIntegrationTest.java | 5 +++-- .../NotificationIntegrationTest.java | 5 ++++- .../ChunkSnapshotIntegrationTest.java | 5 +++-- .../EntitySnapshotIntegrationTest.java | 5 +++-- .../InstanceSnapshotIntegrationTest.java | 5 +++-- .../utils/TranslationIntegrationTest.java | 5 +++-- 55 files changed, 204 insertions(+), 154 deletions(-) diff --git a/src/test/java/net/minestom/server/advancements/AdvancementIntegrationTest.java b/src/test/java/net/minestom/server/advancements/AdvancementIntegrationTest.java index 2d317516f9e..59b5877031a 100644 --- a/src/test/java/net/minestom/server/advancements/AdvancementIntegrationTest.java +++ b/src/test/java/net/minestom/server/advancements/AdvancementIntegrationTest.java @@ -2,14 +2,15 @@ import net.kyori.adventure.text.Component; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; import net.minestom.server.coordinate.Pos; import net.minestom.server.item.Material; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import static org.junit.jupiter.api.Assertions.*; -@EnvTest +@ExtendWith(MicrotusExtension.class) class AdvancementIntegrationTest { @Test diff --git a/src/test/java/net/minestom/server/collision/EntityBlockPhysicsIntegrationTest.java b/src/test/java/net/minestom/server/collision/EntityBlockPhysicsIntegrationTest.java index 343d03289d9..13f9f76be86 100644 --- a/src/test/java/net/minestom/server/collision/EntityBlockPhysicsIntegrationTest.java +++ b/src/test/java/net/minestom/server/collision/EntityBlockPhysicsIntegrationTest.java @@ -2,7 +2,6 @@ import net.minestom.server.utils.block.BlockIterator; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; import net.minestom.server.coordinate.Point; import net.minestom.server.coordinate.Pos; import net.minestom.server.coordinate.Vec; @@ -10,7 +9,9 @@ import net.minestom.server.entity.EntityType; import net.minestom.server.entity.metadata.other.SlimeMeta; import net.minestom.server.instance.block.Block; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.util.Arrays; import java.util.Iterator; @@ -19,7 +20,7 @@ import static org.junit.jupiter.api.Assertions.*; -@EnvTest +@ExtendWith(MicrotusExtension.class) class EntityBlockPhysicsIntegrationTest { private static final Point PRECISION = new Pos(0.01, 0.01, 0.01); diff --git a/src/test/java/net/minestom/server/collision/EntityBlockTouchTickIntegrationTest.java b/src/test/java/net/minestom/server/collision/EntityBlockTouchTickIntegrationTest.java index 2160a817501..e3236ac4641 100644 --- a/src/test/java/net/minestom/server/collision/EntityBlockTouchTickIntegrationTest.java +++ b/src/test/java/net/minestom/server/collision/EntityBlockTouchTickIntegrationTest.java @@ -1,7 +1,6 @@ package net.minestom.server.collision; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; import net.minestom.server.coordinate.Point; import net.minestom.server.coordinate.Pos; import net.minestom.server.coordinate.Vec; @@ -10,8 +9,10 @@ import net.minestom.server.instance.block.Block; import net.minestom.server.instance.block.BlockHandler; import net.minestom.server.utils.NamespaceID; +import net.minestom.testing.extension.MicrotusExtension; import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.util.HashSet; import java.util.Set; @@ -19,7 +20,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -@EnvTest +@ExtendWith(MicrotusExtension.class) class EntityBlockTouchTickIntegrationTest { @Test void entityPhysicsCheckTouchTick(Env env) { diff --git a/src/test/java/net/minestom/server/collision/EntityProjectileCollisionIntegrationTest.java b/src/test/java/net/minestom/server/collision/EntityProjectileCollisionIntegrationTest.java index 025461ff5cb..a045ae71e75 100644 --- a/src/test/java/net/minestom/server/collision/EntityProjectileCollisionIntegrationTest.java +++ b/src/test/java/net/minestom/server/collision/EntityProjectileCollisionIntegrationTest.java @@ -4,7 +4,6 @@ import net.minestom.server.instance.WorldBorder; import net.minestom.server.ServerFlag; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; import net.minestom.server.coordinate.Point; import net.minestom.server.coordinate.Pos; import net.minestom.server.coordinate.Vec; @@ -19,13 +18,15 @@ import net.minestom.server.instance.Instance; import net.minestom.server.instance.block.Block; import net.minestom.server.utils.time.TimeUnit; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.util.concurrent.atomic.AtomicReference; import static org.junit.jupiter.api.Assertions.*; -@EnvTest +@ExtendWith(MicrotusExtension.class) class EntityProjectileCollisionIntegrationTest { @Test diff --git a/src/test/java/net/minestom/server/collision/PlacementCollisionIntegrationTest.java b/src/test/java/net/minestom/server/collision/PlacementCollisionIntegrationTest.java index f3e90e530f4..5aab794e32f 100644 --- a/src/test/java/net/minestom/server/collision/PlacementCollisionIntegrationTest.java +++ b/src/test/java/net/minestom/server/collision/PlacementCollisionIntegrationTest.java @@ -1,17 +1,18 @@ package net.minestom.server.collision; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; import net.minestom.server.coordinate.Pos; import net.minestom.server.coordinate.Vec; import net.minestom.server.entity.Entity; import net.minestom.server.entity.EntityType; import net.minestom.server.instance.block.Block; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import static org.junit.jupiter.api.Assertions.*; -@EnvTest +@ExtendWith(MicrotusExtension.class) class PlacementCollisionIntegrationTest { @Test diff --git a/src/test/java/net/minestom/server/command/CommandSuggestionIntegrationTest.java b/src/test/java/net/minestom/server/command/CommandSuggestionIntegrationTest.java index fb4ad0c0b47..bca6cd0861c 100644 --- a/src/test/java/net/minestom/server/command/CommandSuggestionIntegrationTest.java +++ b/src/test/java/net/minestom/server/command/CommandSuggestionIntegrationTest.java @@ -6,8 +6,9 @@ import net.minestom.server.network.packet.client.play.ClientTabCompletePacket; import net.minestom.server.network.packet.server.play.TabCompletePacket; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.util.List; @@ -15,7 +16,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; -@EnvTest +@ExtendWith(MicrotusExtension.class) class CommandSuggestionIntegrationTest { @Test @@ -75,7 +76,7 @@ void suggestionWithDefaults(Env env) { } @Test - public void suggestionWithSubcommand(Env env) { + void suggestionWithSubcommand(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var player = connection.connect(instance, new Pos(0, 42, 0)).join(); @@ -109,7 +110,7 @@ public void suggestionWithSubcommand(Env env) { } @Test - public void suggestionWithTwoLiterals(Env env) { + void suggestionWithTwoLiterals(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var player = connection.connect(instance, new Pos(0, 42, 0)).join(); diff --git a/src/test/java/net/minestom/server/entity/EntityBoundingBoxIntegrationTest.java b/src/test/java/net/minestom/server/entity/EntityBoundingBoxIntegrationTest.java index 01bbdd9065a..734365b3c38 100644 --- a/src/test/java/net/minestom/server/entity/EntityBoundingBoxIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/EntityBoundingBoxIntegrationTest.java @@ -1,18 +1,19 @@ package net.minestom.server.entity; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; import net.minestom.server.collision.BoundingBox; import net.minestom.server.coordinate.Pos; import net.minestom.server.event.item.PickupItemEvent; import net.minestom.server.instance.Instance; import net.minestom.server.item.ItemStack; import net.minestom.server.item.Material; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import static org.junit.jupiter.api.Assertions.assertEquals; -@EnvTest +@ExtendWith(MicrotusExtension.class) class EntityBoundingBoxIntegrationTest { @Test void pose(Env env) { diff --git a/src/test/java/net/minestom/server/entity/EntityInstanceIntegrationTest.java b/src/test/java/net/minestom/server/entity/EntityInstanceIntegrationTest.java index ba578f774f6..0c6b5cede1d 100644 --- a/src/test/java/net/minestom/server/entity/EntityInstanceIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/EntityInstanceIntegrationTest.java @@ -1,16 +1,17 @@ package net.minestom.server.entity; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; import net.minestom.server.coordinate.Pos; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.time.Duration; import static org.junit.jupiter.api.Assertions.assertEquals; -@EnvTest +@ExtendWith(MicrotusExtension.class) class EntityInstanceIntegrationTest { @Test diff --git a/src/test/java/net/minestom/server/entity/EntityLineOfSightIntegrationTest.java b/src/test/java/net/minestom/server/entity/EntityLineOfSightIntegrationTest.java index eb4c8083d25..4d8d4b2f352 100644 --- a/src/test/java/net/minestom/server/entity/EntityLineOfSightIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/EntityLineOfSightIntegrationTest.java @@ -1,14 +1,15 @@ package net.minestom.server.entity; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; import net.minestom.server.coordinate.Pos; import net.minestom.server.instance.block.Block; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import static org.junit.jupiter.api.Assertions.*; -@EnvTest +@ExtendWith(MicrotusExtension.class) class EntityLineOfSightIntegrationTest { @Test void entityPhysicsCheckLineOfSight(Env env) { diff --git a/src/test/java/net/minestom/server/entity/EntityMetaIntegrationTest.java b/src/test/java/net/minestom/server/entity/EntityMetaIntegrationTest.java index 6dee22a179a..ed4e7c01d73 100644 --- a/src/test/java/net/minestom/server/entity/EntityMetaIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/EntityMetaIntegrationTest.java @@ -1,19 +1,20 @@ package net.minestom.server.entity; import net.kyori.adventure.text.Component; +import net.minestom.testing.Env; import net.minestom.server.coordinate.Pos; import net.minestom.server.network.packet.server.play.EntityMetaDataPacket; -import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.util.List; import java.util.function.Consumer; import static org.junit.jupiter.api.Assertions.*; -@EnvTest +@ExtendWith(MicrotusExtension.class) class EntityMetaIntegrationTest { @Test diff --git a/src/test/java/net/minestom/server/entity/EntityPhysicsIntegrationTest.java b/src/test/java/net/minestom/server/entity/EntityPhysicsIntegrationTest.java index c5b04f65c92..46c373872f0 100644 --- a/src/test/java/net/minestom/server/entity/EntityPhysicsIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/EntityPhysicsIntegrationTest.java @@ -3,16 +3,17 @@ import net.minestom.server.coordinate.Pos; import net.minestom.server.instance.block.Block; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import static org.junit.jupiter.api.Assertions.*; -@EnvTest -public class EntityPhysicsIntegrationTest -{ + +@ExtendWith(MicrotusExtension.class) +class EntityPhysicsIntegrationTest { @Test - public void onGround(Env env) { + void onGround(Env env) { var instance = env.createFlatInstance(); instance.setBlock(1, 40, 1, Block.STONE); diff --git a/src/test/java/net/minestom/server/entity/EntityProjectileIntegrationTest.java b/src/test/java/net/minestom/server/entity/EntityProjectileIntegrationTest.java index d5f4bf0c9e5..e87668e8420 100644 --- a/src/test/java/net/minestom/server/entity/EntityProjectileIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/EntityProjectileIntegrationTest.java @@ -1,13 +1,14 @@ package net.minestom.server.entity; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; import net.minestom.server.coordinate.Pos; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import static org.junit.jupiter.api.Assertions.assertEquals; -@EnvTest +@ExtendWith(MicrotusExtension.class) class EntityProjectileIntegrationTest { @Test void gravityVelocity(Env env) { diff --git a/src/test/java/net/minestom/server/entity/EntityRemovalIntegrationTest.java b/src/test/java/net/minestom/server/entity/EntityRemovalIntegrationTest.java index 35387a6cdcd..5810255f742 100644 --- a/src/test/java/net/minestom/server/entity/EntityRemovalIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/EntityRemovalIntegrationTest.java @@ -1,12 +1,13 @@ package net.minestom.server.entity; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; import net.minestom.server.coordinate.Pos; import net.minestom.server.event.entity.EntityTickEvent; import net.minestom.server.network.packet.server.play.DestroyEntitiesPacket; import net.minestom.server.utils.time.TimeUnit; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.lang.ref.WeakReference; import java.time.temporal.TemporalUnit; @@ -15,7 +16,7 @@ import static net.minestom.testing.TestUtils.waitUntilCleared; import static org.junit.jupiter.api.Assertions.*; -@EnvTest +@ExtendWith(MicrotusExtension.class) class EntityRemovalIntegrationTest { @Test diff --git a/src/test/java/net/minestom/server/entity/EntityTeleportIntegrationTest.java b/src/test/java/net/minestom/server/entity/EntityTeleportIntegrationTest.java index fb851f9f122..86fb0c6b6bd 100644 --- a/src/test/java/net/minestom/server/entity/EntityTeleportIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/EntityTeleportIntegrationTest.java @@ -2,18 +2,19 @@ import net.minestom.server.network.packet.server.play.EntityHeadLookPacket; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; import net.minestom.server.coordinate.Pos; import net.minestom.server.network.packet.server.ServerPacket; import net.minestom.server.network.packet.server.play.EntityTeleportPacket; import net.minestom.server.network.packet.server.play.PlayerPositionAndLookPacket; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.util.List; import static org.junit.jupiter.api.Assertions.assertEquals; -@EnvTest +@ExtendWith(MicrotusExtension.class) class EntityTeleportIntegrationTest { @Test @@ -90,7 +91,7 @@ void playerTeleport(Env env) { } @Test - public void playerTeleportWithFlagsTest(Env env) { + void playerTeleportWithFlagsTest(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var player = connection.connect(instance, new Pos(0, 0, 0)).join(); diff --git a/src/test/java/net/minestom/server/entity/EntityVelocityIntegrationTest.java b/src/test/java/net/minestom/server/entity/EntityVelocityIntegrationTest.java index b9605b60d05..a4d508a6418 100644 --- a/src/test/java/net/minestom/server/entity/EntityVelocityIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/EntityVelocityIntegrationTest.java @@ -2,23 +2,24 @@ import net.minestom.server.instance.block.Block; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; import net.minestom.server.coordinate.Pos; import net.minestom.server.coordinate.Vec; import net.minestom.server.instance.Instance; import net.minestom.server.network.packet.server.play.EntityVelocityPacket; import net.minestom.server.utils.chunk.ChunkUtils; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.BooleanSupplier; import static org.junit.jupiter.api.Assertions.*; -@EnvTest -public class EntityVelocityIntegrationTest { +@ExtendWith(MicrotusExtension.class) +class EntityVelocityIntegrationTest { @Test - public void gravity(Env env) { + void gravity(Env env) { var instance = env.createFlatInstance(); loadChunks(instance); @@ -37,7 +38,7 @@ public void gravity(Env env) { } @Test - public void singleKnockback(Env env) { + void singleKnockback(Env env) { var instance = env.createFlatInstance(); loadChunks(instance); @@ -68,7 +69,7 @@ public void singleKnockback(Env env) { } @Test - public void doubleKnockback(Env env) { + void doubleKnockback(Env env) { var instance = env.createFlatInstance(); loadChunks(instance); @@ -103,7 +104,7 @@ public void doubleKnockback(Env env) { } @Test - public void flyingVelocity(Env env) { + void flyingVelocity(Env env) { var instance = env.createFlatInstance(); loadChunks(instance); @@ -128,7 +129,7 @@ public void flyingVelocity(Env env) { } @Test - public void flyingPlayerMovement(Env env) { + void flyingPlayerMovement(Env env) { // Player movement should not send velocity packets as already client predicted var instance = env.createFlatInstance(); var player = env.createPlayer(instance, new Pos(0, 42, 0)); @@ -142,7 +143,7 @@ public void flyingPlayerMovement(Env env) { } @Test - public void testHasVelocity(Env env) { + void testHasVelocity(Env env) { var instance = env.createFlatInstance(); loadChunks(instance); @@ -169,7 +170,7 @@ public void testHasVelocity(Env env) { } @Test - public void countVelocityPackets(Env env) { + void countVelocityPackets(Env env) { var instance = env.createFlatInstance(); var viewerConnection = env.createConnection(); viewerConnection.connect(instance, new Pos(1, 40, 1)).join(); diff --git a/src/test/java/net/minestom/server/entity/EntityViewDirectionIntegrationTest.java b/src/test/java/net/minestom/server/entity/EntityViewDirectionIntegrationTest.java index 906384ebee0..a1d211d200e 100644 --- a/src/test/java/net/minestom/server/entity/EntityViewDirectionIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/EntityViewDirectionIntegrationTest.java @@ -2,13 +2,14 @@ import net.minestom.server.coordinate.Pos; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -@EnvTest +@ExtendWith(MicrotusExtension.class) class EntityViewDirectionIntegrationTest { private static final float EPSILON = 0.01f; diff --git a/src/test/java/net/minestom/server/entity/EntityViewIntegrationTest.java b/src/test/java/net/minestom/server/entity/EntityViewIntegrationTest.java index b87d2081c41..34129fff6d5 100644 --- a/src/test/java/net/minestom/server/entity/EntityViewIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/EntityViewIntegrationTest.java @@ -1,14 +1,15 @@ package net.minestom.server.entity; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; import net.minestom.server.coordinate.Pos; import net.minestom.server.network.packet.server.play.SpawnEntityPacket; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import static org.junit.jupiter.api.Assertions.*; -@EnvTest +@ExtendWith(MicrotusExtension.class) class EntityViewIntegrationTest { @Test diff --git a/src/test/java/net/minestom/server/entity/EntityViewerRuleIntegrationTest.java b/src/test/java/net/minestom/server/entity/EntityViewerRuleIntegrationTest.java index 6074de4b7fc..71bbbe2091b 100644 --- a/src/test/java/net/minestom/server/entity/EntityViewerRuleIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/EntityViewerRuleIntegrationTest.java @@ -1,15 +1,16 @@ package net.minestom.server.entity; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; import net.minestom.server.coordinate.Pos; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.util.concurrent.atomic.AtomicBoolean; import static org.junit.jupiter.api.Assertions.assertEquals; -@EnvTest +@ExtendWith(MicrotusExtension.class) class EntityViewerRuleIntegrationTest { @Test diff --git a/src/test/java/net/minestom/server/entity/PassengerIntegrationTest.java b/src/test/java/net/minestom/server/entity/PassengerIntegrationTest.java index 2fc942d25e5..7ad4a2b630b 100644 --- a/src/test/java/net/minestom/server/entity/PassengerIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/PassengerIntegrationTest.java @@ -3,13 +3,14 @@ import net.minestom.server.network.packet.server.play.SetPassengersPacket; import net.minestom.server.network.packet.server.play.SpawnEntityPacket; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; import net.minestom.server.coordinate.Pos; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import static org.junit.jupiter.api.Assertions.*; -@EnvTest +@ExtendWith(MicrotusExtension.class) class PassengerIntegrationTest { @Test @@ -49,7 +50,7 @@ void passengerTeleport(Env env) { } @Test - public void passengerPacketOrder(Env env) { + void passengerPacketOrder(Env env) { var instance = env.createFlatInstance(); var vehicle = new Entity(EntityType.ZOMBIE); vehicle.setInstance(instance, new Pos(0, 40, 0)).join(); diff --git a/src/test/java/net/minestom/server/entity/PlayerHeldIntegrationTest.java b/src/test/java/net/minestom/server/entity/PlayerHeldIntegrationTest.java index e6456108baf..626e37504ed 100644 --- a/src/test/java/net/minestom/server/entity/PlayerHeldIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/PlayerHeldIntegrationTest.java @@ -6,12 +6,13 @@ import net.minestom.server.item.Material; import net.minestom.server.network.packet.client.play.ClientHeldItemChangePacket; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import static org.junit.jupiter.api.Assertions.assertEquals; -@EnvTest +@ExtendWith(MicrotusExtension.class) class PlayerHeldIntegrationTest { @Test diff --git a/src/test/java/net/minestom/server/entity/ai/ClosestEntityTargetTest.java b/src/test/java/net/minestom/server/entity/ai/ClosestEntityTargetTest.java index 25d78311447..97e1f353d8e 100644 --- a/src/test/java/net/minestom/server/entity/ai/ClosestEntityTargetTest.java +++ b/src/test/java/net/minestom/server/entity/ai/ClosestEntityTargetTest.java @@ -1,17 +1,18 @@ package net.minestom.server.entity.ai; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; import net.minestom.server.coordinate.Pos; import net.minestom.server.entity.EntityCreature; import net.minestom.server.entity.EntityType; import net.minestom.server.entity.ai.target.ClosestEntityTarget; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; -@EnvTest +@ExtendWith(MicrotusExtension.class) class ClosestEntityTargetTest { @Test diff --git a/src/test/java/net/minestom/server/entity/player/PlayerBlockPlacementIntegrationTest.java b/src/test/java/net/minestom/server/entity/player/PlayerBlockPlacementIntegrationTest.java index 80dfa566688..90ef13af8f7 100644 --- a/src/test/java/net/minestom/server/entity/player/PlayerBlockPlacementIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/player/PlayerBlockPlacementIntegrationTest.java @@ -14,7 +14,8 @@ import net.minestom.server.item.component.BlockPredicates; import net.minestom.server.network.packet.client.play.ClientPlayerBlockPlacementPacket; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; +import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; @@ -23,7 +24,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -@EnvTest +@ExtendWith(MicrotusExtension.class) class PlayerBlockPlacementIntegrationTest { @ParameterizedTest diff --git a/src/test/java/net/minestom/server/entity/player/PlayerIntegrationTest.java b/src/test/java/net/minestom/server/entity/player/PlayerIntegrationTest.java index 52e95cdfbb9..8841716c548 100644 --- a/src/test/java/net/minestom/server/entity/player/PlayerIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/player/PlayerIntegrationTest.java @@ -15,9 +15,10 @@ import net.minestom.server.world.DimensionType; import net.minestom.testing.Collector; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.time.Duration; import java.util.ArrayList; @@ -25,7 +26,7 @@ import static org.junit.jupiter.api.Assertions.*; -@EnvTest +@ExtendWith(MicrotusExtension.class) class PlayerIntegrationTest { /** @@ -228,7 +229,7 @@ void displayNameTest(Env env) { } @Test - public void setView(Env env) { + void setView(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); Pos startingPlayerPos = new Pos(0, 42, 0); @@ -245,7 +246,7 @@ public void setView(Env env) { } @Test - public void lookAt(Env env) { + void lookAt(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var tracker = connection.trackIncoming(FacePlayerPacket.class); diff --git a/src/test/java/net/minestom/server/entity/player/PlayerMovementIntegrationTest.java b/src/test/java/net/minestom/server/entity/player/PlayerMovementIntegrationTest.java index cfec07eb39f..8aeea4f6d9d 100644 --- a/src/test/java/net/minestom/server/entity/player/PlayerMovementIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/player/PlayerMovementIntegrationTest.java @@ -1,6 +1,5 @@ package net.minestom.server.entity.player; -import net.minestom.server.MinecraftServer; import net.minestom.server.ServerFlag; import net.minestom.server.coordinate.Pos; import net.minestom.server.coordinate.Vec; @@ -18,10 +17,11 @@ import net.minestom.server.utils.chunk.ChunkUtils; import net.minestom.testing.Collector; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; import net.minestom.testing.TestConnection; +import net.minestom.testing.extension.MicrotusExtension; import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.time.Duration; import java.time.temporal.ChronoUnit; @@ -31,7 +31,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -@EnvTest +@ExtendWith(MicrotusExtension.class) class PlayerMovementIntegrationTest { @Test @@ -122,7 +122,7 @@ void chunkUpdateDebounceTest(Env env) { } @Test - public void testClientViewDistanceSettings(Env env) { + void testClientViewDistanceSettings(Env env) { int viewDistance = 4; final Instance flatInstance = env.createFlatInstance(); var connection = env.createConnection(); diff --git a/src/test/java/net/minestom/server/entity/player/PlayerRespawnChunkIntegrationTest.java b/src/test/java/net/minestom/server/entity/player/PlayerRespawnChunkIntegrationTest.java index 3e1b9c6237d..b9dd7e44f72 100644 --- a/src/test/java/net/minestom/server/entity/player/PlayerRespawnChunkIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/player/PlayerRespawnChunkIntegrationTest.java @@ -1,6 +1,5 @@ package net.minestom.server.entity.player; -import net.minestom.server.MinecraftServer; import net.minestom.server.ServerFlag; import net.minestom.server.coordinate.Pos; import net.minestom.server.entity.Player; @@ -9,8 +8,9 @@ import net.minestom.server.network.packet.server.play.UnloadChunkPacket; import net.minestom.server.utils.chunk.ChunkUtils; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.util.HashSet; import java.util.List; @@ -19,7 +19,7 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -@EnvTest +@ExtendWith(MicrotusExtension.class) class PlayerRespawnChunkIntegrationTest { @Test diff --git a/src/test/java/net/minestom/server/instance/BlockLightMergeIntegrationTest.java b/src/test/java/net/minestom/server/instance/BlockLightMergeIntegrationTest.java index 43dd77ecbe1..1f14a5f22f9 100644 --- a/src/test/java/net/minestom/server/instance/BlockLightMergeIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/BlockLightMergeIntegrationTest.java @@ -3,8 +3,9 @@ import net.minestom.server.coordinate.Vec; import net.minestom.server.instance.block.Block; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.util.ArrayList; import java.util.HashMap; @@ -15,7 +16,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.fail; -@EnvTest +@ExtendWith(MicrotusExtension.class) public class BlockLightMergeIntegrationTest { @Test void testPropagationAir(Env env) { @@ -353,7 +354,7 @@ void chunkIntersection(Env env) { } @Test - public void lightLookupTest(Env env) { + void lightLookupTest(Env env) { Instance instance = env.createFlatInstance(); instance.setChunkSupplier(LightingChunk::new); for (int x = 4; x <= 7; x++) { @@ -378,7 +379,7 @@ public void lightLookupTest(Env env) { } @Test - public void lightLookupTestCrossBorder(Env env) { + void lightLookupTestCrossBorder(Env env) { Instance instance = env.createFlatInstance(); instance.setChunkSupplier(LightingChunk::new); for (int x = 4; x <= 7; x++) { @@ -416,7 +417,7 @@ void skylight(Env env) { @Test - public void skylightShortGrass(Env env) { + void skylightShortGrass(Env env) { Instance instance = env.createFlatInstance(); instance.setChunkSupplier(LightingChunk::new); for (int x = 4; x <= 7; x++) { diff --git a/src/test/java/net/minestom/server/instance/BlockPlaceIntegrationTest.java b/src/test/java/net/minestom/server/instance/BlockPlaceIntegrationTest.java index b97dd5441f9..447709ac0be 100644 --- a/src/test/java/net/minestom/server/instance/BlockPlaceIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/BlockPlaceIntegrationTest.java @@ -9,13 +9,14 @@ import net.minestom.server.listener.BlockPlacementListener; import net.minestom.server.network.packet.client.play.ClientPlayerBlockPlacementPacket; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.assertEquals; -@EnvTest +@ExtendWith(MicrotusExtension.class) class BlockPlaceIntegrationTest { @Test diff --git a/src/test/java/net/minestom/server/instance/ChunkHeightmapIntegrationTest.java b/src/test/java/net/minestom/server/instance/ChunkHeightmapIntegrationTest.java index 269492302ff..53ee8c771f5 100644 --- a/src/test/java/net/minestom/server/instance/ChunkHeightmapIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/ChunkHeightmapIntegrationTest.java @@ -2,15 +2,16 @@ import net.minestom.server.instance.block.Block; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import static org.junit.jupiter.api.Assertions.assertEquals; -@EnvTest -public class ChunkHeightmapIntegrationTest { +@ExtendWith(MicrotusExtension.class) +class ChunkHeightmapIntegrationTest { @Test - public void testChunkHeightmap(Env env) { + void testChunkHeightmap(Env env) { var instance = env.createFlatInstance(); instance.loadChunk(0, 0).join(); var chunk = instance.getChunk(0, 0); @@ -20,7 +21,7 @@ public void testChunkHeightmap(Env env) { } @Test - public void heightMapPlaceTest(Env env) { + void heightMapPlaceTest(Env env) { var instance = env.createFlatInstance(); instance.loadChunk(0, 0).join(); var chunk = instance.getChunk(0, 0); @@ -39,7 +40,7 @@ public void heightMapPlaceTest(Env env) { } @Test - public void heightMapRemoveTest(Env env) { + void heightMapRemoveTest(Env env) { var instance = env.createFlatInstance(); instance.loadChunk(0, 0).join(); var chunk = instance.getChunk(0, 0); diff --git a/src/test/java/net/minestom/server/instance/ChunkViewerIntegrationTest.java b/src/test/java/net/minestom/server/instance/ChunkViewerIntegrationTest.java index 5e9b92c3c5c..a121d30b523 100644 --- a/src/test/java/net/minestom/server/instance/ChunkViewerIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/ChunkViewerIntegrationTest.java @@ -5,14 +5,15 @@ import net.minestom.server.network.packet.server.play.ChunkDataPacket; import net.minestom.server.utils.chunk.ChunkUtils; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; import static org.junit.jupiter.api.Assertions.assertEquals; -@EnvTest +@ExtendWith(MicrotusExtension.class) class ChunkViewerIntegrationTest { @ParameterizedTest diff --git a/src/test/java/net/minestom/server/instance/EntityTrackerIntegrationTest.java b/src/test/java/net/minestom/server/instance/EntityTrackerIntegrationTest.java index 8d1a5339c51..c2b9c8658fc 100644 --- a/src/test/java/net/minestom/server/instance/EntityTrackerIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/EntityTrackerIntegrationTest.java @@ -1,26 +1,22 @@ package net.minestom.server.instance; -import net.minestom.server.MinecraftServer; import net.minestom.server.ServerFlag; import net.minestom.server.coordinate.Pos; import net.minestom.server.entity.Entity; import net.minestom.server.entity.EntityType; import net.minestom.server.entity.Player; -import net.minestom.server.network.packet.server.SendablePacket; -import net.minestom.server.network.player.PlayerConnection; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; -import java.net.SocketAddress; -import java.util.UUID; import java.util.concurrent.atomic.AtomicInteger; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertSame; -@EnvTest +@ExtendWith(MicrotusExtension.class) class EntityTrackerIntegrationTest { @Test diff --git a/src/test/java/net/minestom/server/instance/GeneratorForkIntegrationTest.java b/src/test/java/net/minestom/server/instance/GeneratorForkIntegrationTest.java index 336fe4a7520..27632fe47d7 100644 --- a/src/test/java/net/minestom/server/instance/GeneratorForkIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/GeneratorForkIntegrationTest.java @@ -5,12 +5,13 @@ import net.minestom.server.instance.generator.GenerationUnit; import net.minestom.server.world.biome.Biome; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import static org.junit.jupiter.api.Assertions.*; -@EnvTest +@ExtendWith(MicrotusExtension.class) class GeneratorForkIntegrationTest { @Test diff --git a/src/test/java/net/minestom/server/instance/GeneratorIntegrationTest.java b/src/test/java/net/minestom/server/instance/GeneratorIntegrationTest.java index b256f63041b..48cd288faa7 100644 --- a/src/test/java/net/minestom/server/instance/GeneratorIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/GeneratorIntegrationTest.java @@ -3,8 +3,9 @@ import net.kyori.adventure.nbt.CompoundBinaryTag; import net.minestom.server.instance.block.Block; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; @@ -13,7 +14,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertSame; -@EnvTest +@ExtendWith(MicrotusExtension.class) class GeneratorIntegrationTest { @ParameterizedTest diff --git a/src/test/java/net/minestom/server/instance/InstanceBlockIntegrationTest.java b/src/test/java/net/minestom/server/instance/InstanceBlockIntegrationTest.java index b972671d340..ce35c6f0829 100644 --- a/src/test/java/net/minestom/server/instance/InstanceBlockIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/InstanceBlockIntegrationTest.java @@ -1,22 +1,23 @@ package net.minestom.server.instance; +import net.minestom.testing.Env; import net.minestom.server.coordinate.Vec; import net.minestom.server.instance.block.Block; import net.minestom.server.instance.block.SuspiciousGravelBlockHandler; import net.minestom.server.instance.block.rule.BlockPlacementRule; import net.minestom.server.tag.Tag; -import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.util.concurrent.atomic.AtomicReference; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; -@EnvTest +@ExtendWith(MicrotusExtension.class) class InstanceBlockIntegrationTest { @Test diff --git a/src/test/java/net/minestom/server/instance/InstanceBlockPacketIntegrationTest.java b/src/test/java/net/minestom/server/instance/InstanceBlockPacketIntegrationTest.java index b557b9e4cf6..c82c6e0353e 100644 --- a/src/test/java/net/minestom/server/instance/InstanceBlockPacketIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/InstanceBlockPacketIntegrationTest.java @@ -2,6 +2,7 @@ import net.kyori.adventure.nbt.CompoundBinaryTag; import net.kyori.adventure.nbt.TagStringIOExt; +import net.minestom.testing.Env; import net.minestom.server.coordinate.Pos; import net.minestom.server.coordinate.Vec; import net.minestom.server.instance.block.Block; @@ -10,17 +11,17 @@ import net.minestom.server.network.packet.server.play.BlockEntityDataPacket; import net.minestom.server.tag.Tag; import net.minestom.server.utils.NamespaceID; -import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.util.Collection; import java.util.List; import static org.junit.jupiter.api.Assertions.assertEquals; -@EnvTest +@ExtendWith(MicrotusExtension.class) class InstanceBlockPacketIntegrationTest { @Test diff --git a/src/test/java/net/minestom/server/instance/InstanceEventsIntegrationTest.java b/src/test/java/net/minestom/server/instance/InstanceEventsIntegrationTest.java index 7fd9f89ee54..44e35fde6d2 100644 --- a/src/test/java/net/minestom/server/instance/InstanceEventsIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/InstanceEventsIntegrationTest.java @@ -3,10 +3,11 @@ import net.minestom.server.event.instance.InstanceRegisterEvent; import net.minestom.server.event.instance.InstanceUnregisterEvent; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; -@EnvTest +@ExtendWith(MicrotusExtension.class) class InstanceEventsIntegrationTest { @Test void registerAndUnregisterInstance(Env env) { diff --git a/src/test/java/net/minestom/server/instance/InstanceUnregisterIntegrationTest.java b/src/test/java/net/minestom/server/instance/InstanceUnregisterIntegrationTest.java index c830e87e18e..7d086e6e3a5 100644 --- a/src/test/java/net/minestom/server/instance/InstanceUnregisterIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/InstanceUnregisterIntegrationTest.java @@ -6,15 +6,16 @@ import net.minestom.server.event.player.PlayerTickEvent; import net.minestom.server.world.DimensionType; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.lang.ref.WeakReference; import java.util.UUID; import static net.minestom.testing.TestUtils.waitUntilCleared; -@EnvTest +@ExtendWith(MicrotusExtension.class) class InstanceUnregisterIntegrationTest { @Test diff --git a/src/test/java/net/minestom/server/instance/InstanceWorldPositionIntegrationTest.java b/src/test/java/net/minestom/server/instance/InstanceWorldPositionIntegrationTest.java index ec35f8af049..0db1fab2c60 100644 --- a/src/test/java/net/minestom/server/instance/InstanceWorldPositionIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/InstanceWorldPositionIntegrationTest.java @@ -3,14 +3,15 @@ import net.minestom.server.coordinate.Pos; import net.minestom.server.event.instance.InstanceWorldPositionChangeEvent; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import static org.junit.jupiter.api.Assertions.*; //Microtus start - integrate world spawn position -@EnvTest +@ExtendWith(MicrotusExtension.class) class InstanceWorldPositionIntegrationTest { @Test diff --git a/src/test/java/net/minestom/server/instance/WeatherTest.java b/src/test/java/net/minestom/server/instance/WeatherTest.java index 42e4a037133..e1d7bd95427 100644 --- a/src/test/java/net/minestom/server/instance/WeatherTest.java +++ b/src/test/java/net/minestom/server/instance/WeatherTest.java @@ -3,18 +3,19 @@ import net.minestom.server.coordinate.Pos; import net.minestom.server.network.packet.server.play.ChangeGameStatePacket; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.util.List; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; -@EnvTest -public class WeatherTest { +@ExtendWith(MicrotusExtension.class) +class WeatherTest { @Test - public void weatherTest(Env env) { + void weatherTest(Env env) { var instance = env.createFlatInstance(); // Defaults diff --git a/src/test/java/net/minestom/server/instance/WorldBorderIntegrationTest.java b/src/test/java/net/minestom/server/instance/WorldBorderIntegrationTest.java index 81b34071d20..78c33cc903d 100644 --- a/src/test/java/net/minestom/server/instance/WorldBorderIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/WorldBorderIntegrationTest.java @@ -1,14 +1,15 @@ package net.minestom.server.instance; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; -@EnvTest -public class WorldBorderIntegrationTest { +@ExtendWith(MicrotusExtension.class) +class WorldBorderIntegrationTest { @Test public void setWorldborderSize(Env env) { diff --git a/src/test/java/net/minestom/server/instance/anvil/AnvilLoaderIntegrationTest.java b/src/test/java/net/minestom/server/instance/anvil/AnvilLoaderIntegrationTest.java index 04a5e03bb06..953106b9878 100644 --- a/src/test/java/net/minestom/server/instance/anvil/AnvilLoaderIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/anvil/AnvilLoaderIntegrationTest.java @@ -8,10 +8,11 @@ import net.minestom.server.registry.DynamicRegistry; import net.minestom.server.world.biome.Biome; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.io.IOException; import java.nio.file.*; @@ -22,8 +23,8 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; -@EnvTest -public class AnvilLoaderIntegrationTest { +@ExtendWith(MicrotusExtension.class) +class AnvilLoaderIntegrationTest { private static final Path testRoot = Path.of("src", "test", "resources", "net", "minestom", "server", "instance"); diff --git a/src/test/java/net/minestom/server/instance/generator/GeneratorForkConsumerIntegrationTest.java b/src/test/java/net/minestom/server/instance/generator/GeneratorForkConsumerIntegrationTest.java index 182893258e5..f706fc0ab65 100644 --- a/src/test/java/net/minestom/server/instance/generator/GeneratorForkConsumerIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/generator/GeneratorForkConsumerIntegrationTest.java @@ -1,10 +1,11 @@ package net.minestom.server.instance.generator; +import net.minestom.testing.Env; import net.minestom.server.coordinate.Point; import net.minestom.server.instance.block.Block; -import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; @@ -13,7 +14,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; -@EnvTest +@ExtendWith(MicrotusExtension.class) class GeneratorForkConsumerIntegrationTest { @Test diff --git a/src/test/java/net/minestom/server/instance/light/LightParityIntegrationTest.java b/src/test/java/net/minestom/server/instance/light/LightParityIntegrationTest.java index 10d6c8598b6..51cf8b9d5f4 100644 --- a/src/test/java/net/minestom/server/instance/light/LightParityIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/light/LightParityIntegrationTest.java @@ -9,8 +9,9 @@ import net.minestom.server.instance.palette.Palette; import net.minestom.server.world.DimensionType; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.io.IOException; import java.net.URISyntaxException; @@ -21,8 +22,8 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -@EnvTest -public class LightParityIntegrationTest { +@ExtendWith(MicrotusExtension.class) +class LightParityIntegrationTest { private static final int REGION_SIZE = 3; @Test diff --git a/src/test/java/net/minestom/server/instance/light/WorldRelightIntegrationTest.java b/src/test/java/net/minestom/server/instance/light/WorldRelightIntegrationTest.java index 10b5a53014e..e62795e0a79 100644 --- a/src/test/java/net/minestom/server/instance/light/WorldRelightIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/light/WorldRelightIntegrationTest.java @@ -6,16 +6,17 @@ import net.minestom.server.instance.LightingChunk; import net.minestom.server.instance.block.Block; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.util.Map; import static java.util.Map.entry; import static net.minestom.server.instance.BlockLightMergeIntegrationTest.assertLightInstance; -@EnvTest +@ExtendWith(MicrotusExtension.class) class WorldRelightIntegrationTest { private @NotNull Instance createLightingInstance(@NotNull ServerProcess process) { var instance = process.instance().createInstanceContainer(); diff --git a/src/test/java/net/minestom/server/inventory/InventoryCloseStateTest.java b/src/test/java/net/minestom/server/inventory/InventoryCloseStateTest.java index cdae802c5b0..1997fd7eabf 100644 --- a/src/test/java/net/minestom/server/inventory/InventoryCloseStateTest.java +++ b/src/test/java/net/minestom/server/inventory/InventoryCloseStateTest.java @@ -5,12 +5,13 @@ import net.minestom.server.network.packet.client.play.ClientCloseWindowPacket; import net.minestom.server.network.packet.server.play.CloseWindowPacket; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import static org.junit.jupiter.api.Assertions.assertEquals; -@EnvTest +@ExtendWith(MicrotusExtension.class) class InventoryCloseStateTest { diff --git a/src/test/java/net/minestom/server/inventory/InventoryIntegrationTest.java b/src/test/java/net/minestom/server/inventory/InventoryIntegrationTest.java index 193d74d6a06..8d2290e3286 100644 --- a/src/test/java/net/minestom/server/inventory/InventoryIntegrationTest.java +++ b/src/test/java/net/minestom/server/inventory/InventoryIntegrationTest.java @@ -3,7 +3,6 @@ import net.kyori.adventure.text.Component; import net.minestom.server.utils.inventory.PlayerInventoryUtils; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; import net.minestom.server.coordinate.Pos; import net.minestom.server.event.item.ItemDropEvent; import net.minestom.server.item.ItemStack; @@ -11,11 +10,13 @@ import net.minestom.server.network.packet.server.play.EntityEquipmentPacket; import net.minestom.server.network.packet.server.play.SetSlotPacket; import net.minestom.server.network.packet.server.play.WindowItemsPacket; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import static org.junit.jupiter.api.Assertions.*; -@EnvTest +@ExtendWith(MicrotusExtension.class) class InventoryIntegrationTest { private static final Component TITLE = Component.text("title"); @@ -181,7 +182,7 @@ void openInventoryOnItemDropFromInventoryClosingTest(Env env) { } @Test - public void testInnerInventorySlotSending(Env env) { + void testInnerInventorySlotSending(Env env) { // Inner inventory changes are sent along with the open inventory // Otherwise, they are sent separately diff --git a/src/test/java/net/minestom/server/inventory/PlayerCreativeSlotTest.java b/src/test/java/net/minestom/server/inventory/PlayerCreativeSlotTest.java index a18215debc1..7e841fe6c7a 100644 --- a/src/test/java/net/minestom/server/inventory/PlayerCreativeSlotTest.java +++ b/src/test/java/net/minestom/server/inventory/PlayerCreativeSlotTest.java @@ -8,17 +8,18 @@ import net.minestom.server.network.packet.client.play.ClientCreativeInventoryActionPacket; import net.minestom.server.utils.inventory.PlayerInventoryUtils; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.assertEquals; -@EnvTest -public class PlayerCreativeSlotTest { +@ExtendWith(MicrotusExtension.class) +class PlayerCreativeSlotTest { @Test - public void testCreativeSlots(Env env) { + void testCreativeSlots(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var player = connection.connect(instance, new Pos(0, 42, 0)).join(); @@ -31,7 +32,7 @@ public void testCreativeSlots(Env env) { } @Test - public void testBoundsCheck(Env env) { + void testBoundsCheck(Env env) { var instance = env.createFlatInstance(); var connection = env.createConnection(); var player = connection.connect(instance, new Pos(0, 42, 0)).join(); diff --git a/src/test/java/net/minestom/server/inventory/PlayerInventoryIntegrationTest.java b/src/test/java/net/minestom/server/inventory/PlayerInventoryIntegrationTest.java index 98fd77b083f..870ccbd86ec 100644 --- a/src/test/java/net/minestom/server/inventory/PlayerInventoryIntegrationTest.java +++ b/src/test/java/net/minestom/server/inventory/PlayerInventoryIntegrationTest.java @@ -1,7 +1,6 @@ package net.minestom.server.inventory; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; import net.minestom.server.coordinate.Pos; import net.minestom.server.entity.EquipmentSlot; import net.minestom.server.item.ItemStack; @@ -9,13 +8,15 @@ import net.minestom.server.network.packet.server.play.EntityEquipmentPacket; import net.minestom.server.network.packet.server.play.SetSlotPacket; import net.minestom.server.network.packet.server.play.WindowItemsPacket; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.util.Map; import static org.junit.jupiter.api.Assertions.*; -@EnvTest +@ExtendWith(MicrotusExtension.class) class PlayerInventoryIntegrationTest { private static final ItemStack MAGIC_STACK = ItemStack.of(Material.DIAMOND, 3); diff --git a/src/test/java/net/minestom/server/inventory/click/integration/HeldClickIntegrationTest.java b/src/test/java/net/minestom/server/inventory/click/integration/HeldClickIntegrationTest.java index bae0fad9898..4e55c3f8713 100644 --- a/src/test/java/net/minestom/server/inventory/click/integration/HeldClickIntegrationTest.java +++ b/src/test/java/net/minestom/server/inventory/click/integration/HeldClickIntegrationTest.java @@ -2,7 +2,6 @@ import net.kyori.adventure.text.Component; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; import net.minestom.server.coordinate.Pos; import net.minestom.server.entity.Player; import net.minestom.server.event.inventory.InventoryPreClickEvent; @@ -13,13 +12,15 @@ import net.minestom.server.item.Material; import net.minestom.server.network.packet.client.play.ClientClickWindowPacket; import net.minestom.server.utils.inventory.PlayerInventoryUtils; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.util.List; import static org.junit.jupiter.api.Assertions.*; -@EnvTest +@ExtendWith(MicrotusExtension.class) class HeldClickIntegrationTest { @Test diff --git a/src/test/java/net/minestom/server/inventory/click/integration/LeftClickIntegrationTest.java b/src/test/java/net/minestom/server/inventory/click/integration/LeftClickIntegrationTest.java index c69276744a0..9ded178842e 100644 --- a/src/test/java/net/minestom/server/inventory/click/integration/LeftClickIntegrationTest.java +++ b/src/test/java/net/minestom/server/inventory/click/integration/LeftClickIntegrationTest.java @@ -3,7 +3,6 @@ import net.kyori.adventure.text.Component; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; import net.minestom.server.coordinate.Pos; import net.minestom.server.entity.Player; import net.minestom.server.event.inventory.InventoryPreClickEvent; @@ -14,14 +13,16 @@ import net.minestom.server.item.Material; import net.minestom.server.network.packet.client.play.ClientClickWindowPacket; import net.minestom.server.utils.inventory.PlayerInventoryUtils; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.util.List; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; -@EnvTest +@ExtendWith(MicrotusExtension.class) class LeftClickIntegrationTest { @Test diff --git a/src/test/java/net/minestom/server/inventory/click/integration/RightClickIntegrationTest.java b/src/test/java/net/minestom/server/inventory/click/integration/RightClickIntegrationTest.java index 781cfe4b864..e99f92c37e9 100644 --- a/src/test/java/net/minestom/server/inventory/click/integration/RightClickIntegrationTest.java +++ b/src/test/java/net/minestom/server/inventory/click/integration/RightClickIntegrationTest.java @@ -2,7 +2,6 @@ import net.kyori.adventure.text.Component; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; import net.minestom.server.coordinate.Pos; import net.minestom.server.entity.Player; import net.minestom.server.event.inventory.InventoryPreClickEvent; @@ -13,14 +12,16 @@ import net.minestom.server.item.Material; import net.minestom.server.network.packet.client.play.ClientClickWindowPacket; import net.minestom.server.utils.inventory.PlayerInventoryUtils; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.util.List; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; -@EnvTest +@ExtendWith(MicrotusExtension.class) class RightClickIntegrationTest { @Test diff --git a/src/test/java/net/minestom/server/notifications/NotificationIntegrationTest.java b/src/test/java/net/minestom/server/notifications/NotificationIntegrationTest.java index c1f5ac3136a..73094451492 100644 --- a/src/test/java/net/minestom/server/notifications/NotificationIntegrationTest.java +++ b/src/test/java/net/minestom/server/notifications/NotificationIntegrationTest.java @@ -9,13 +9,16 @@ import net.minestom.testing.Collector; import net.minestom.testing.Env; import net.minestom.testing.annotations.EnvironmentTest; +import net.minestom.testing.environment.TestEnvironmentParameterResolver; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.util.Optional; import static org.junit.jupiter.api.Assertions.*; -@EnvironmentTest +@ExtendWith(MicrotusExtension.class) class NotificationIntegrationTest { @Test diff --git a/src/test/java/net/minestom/server/snapshot/ChunkSnapshotIntegrationTest.java b/src/test/java/net/minestom/server/snapshot/ChunkSnapshotIntegrationTest.java index 35ffcf8aa11..ddf7ba0ec57 100644 --- a/src/test/java/net/minestom/server/snapshot/ChunkSnapshotIntegrationTest.java +++ b/src/test/java/net/minestom/server/snapshot/ChunkSnapshotIntegrationTest.java @@ -1,13 +1,14 @@ package net.minestom.server.snapshot; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; import net.minestom.server.instance.block.Block; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import static org.junit.jupiter.api.Assertions.assertEquals; -@EnvTest +@ExtendWith(MicrotusExtension.class) class ChunkSnapshotIntegrationTest { @Test diff --git a/src/test/java/net/minestom/server/snapshot/EntitySnapshotIntegrationTest.java b/src/test/java/net/minestom/server/snapshot/EntitySnapshotIntegrationTest.java index c471c487315..a0e0d67920c 100644 --- a/src/test/java/net/minestom/server/snapshot/EntitySnapshotIntegrationTest.java +++ b/src/test/java/net/minestom/server/snapshot/EntitySnapshotIntegrationTest.java @@ -1,15 +1,16 @@ package net.minestom.server.snapshot; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; import net.minestom.server.entity.Entity; import net.minestom.server.entity.EntityType; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; -@EnvTest +@ExtendWith(MicrotusExtension.class) class EntitySnapshotIntegrationTest { @Test diff --git a/src/test/java/net/minestom/server/snapshot/InstanceSnapshotIntegrationTest.java b/src/test/java/net/minestom/server/snapshot/InstanceSnapshotIntegrationTest.java index 973a3401ae0..3939ec7a9a6 100644 --- a/src/test/java/net/minestom/server/snapshot/InstanceSnapshotIntegrationTest.java +++ b/src/test/java/net/minestom/server/snapshot/InstanceSnapshotIntegrationTest.java @@ -1,12 +1,13 @@ package net.minestom.server.snapshot; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import static org.junit.jupiter.api.Assertions.assertEquals; -@EnvTest +@ExtendWith(MicrotusExtension.class) class InstanceSnapshotIntegrationTest { @Test diff --git a/src/test/java/net/minestom/server/utils/TranslationIntegrationTest.java b/src/test/java/net/minestom/server/utils/TranslationIntegrationTest.java index 4ec77373024..45c6689e03c 100644 --- a/src/test/java/net/minestom/server/utils/TranslationIntegrationTest.java +++ b/src/test/java/net/minestom/server/utils/TranslationIntegrationTest.java @@ -10,11 +10,12 @@ import net.minestom.server.item.Material; import net.minestom.server.network.packet.server.play.SetSlotPacket; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; import net.minestom.server.coordinate.Pos; import net.minestom.server.network.packet.server.play.SystemChatPacket; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.text.MessageFormat; import java.util.List; @@ -22,7 +23,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; -@EnvTest +@ExtendWith(MicrotusExtension.class) class TranslationIntegrationTest { @BeforeAll From 68e7ac7aaa3ea429698b5a6e4cf807f9204d26ea Mon Sep 17 00:00:00 2001 From: TheMeinerLP Date: Sun, 16 Jun 2024 17:08:16 +0200 Subject: [PATCH 27/93] Add jacoco --- .github/workflows/build-pr.yml | 2 +- build.gradle.kts | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-pr.yml b/.github/workflows/build-pr.yml index 4c4917f8df3..d4562991c86 100644 --- a/.github/workflows/build-pr.yml +++ b/.github/workflows/build-pr.yml @@ -21,4 +21,4 @@ jobs: run: | git config --global user.email "no-reply@github.com" git config --global user.name "Github Actions" - ./gradlew classes \ No newline at end of file + ./gradlew test jacocoTestReport \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 6c6dce9622e..24e99429658 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,11 +6,12 @@ plugins { id("minestom.native-conventions") alias(libs.plugins.blossom) signing + jacoco } group = "net.onelitefeather.microtus" -version = System.getenv("TAG_VERSION") ?: "1.4.0-SNAPSHOT" +version = System.getenv("TAG_VERSION") ?: "1.5.0-SNAPSHOT" allprojects { group = "net.onelitefeather.microtus" @@ -73,7 +74,11 @@ tasks { minHeapSize = "512m" maxHeapSize = "1024m" } - + jacocoTestReport { + reports { + xml.required = true + } + } } From c0cd9b651c69cbbe06fd005e199233100da57eee Mon Sep 17 00:00:00 2001 From: TheMeinerLP Date: Sun, 16 Jun 2024 17:17:15 +0200 Subject: [PATCH 28/93] Use sonarqube plugin --- .github/workflows/build-pr.yml | 20 ++++++++++++++++---- .github/workflows/build.yml | 29 +++++++++++++++++------------ build.gradle.kts | 9 ++++++++- 3 files changed, 41 insertions(+), 17 deletions(-) diff --git a/.github/workflows/build-pr.yml b/.github/workflows/build-pr.yml index d4562991c86..b73ddf5fb33 100644 --- a/.github/workflows/build-pr.yml +++ b/.github/workflows/build-pr.yml @@ -17,8 +17,20 @@ jobs: with: distribution: temurin java-version: 21 + - name: Cache SonarCloud packages + uses: actions/cache@v3 + with: + path: ~/.sonar/cache + key: ${{ runner.os }}-sonar + restore-keys: ${{ runner.os }}-sonar + - name: Cache Gradle packages + uses: actions/cache@v3 + with: + path: ~/.gradle/caches + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} + restore-keys: ${{ runner.os }}-gradle - name: Build on ${{ matrix.os }} - run: | - git config --global user.email "no-reply@github.com" - git config --global user.name "Github Actions" - ./gradlew test jacocoTestReport \ No newline at end of file + run: ./gradlew test jacocoTestReport sonar --info + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4e902ffb576..03bf5357e07 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -19,19 +19,23 @@ jobs: distribution: temurin cache: gradle java-version: 21 - - uses: actions/cache@v4 + - name: Cache SonarCloud packages + uses: actions/cache@v3 with: - path: | - ~/.gradle/caches - ~/.gradle/wrapper - key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - restore-keys: | - ${{ runner.os }}-gradle- + path: ~/.sonar/cache + key: ${{ runner.os }}-sonar + restore-keys: ${{ runner.os }}-sonar + - name: Cache Gradle packages + uses: actions/cache@v3 + with: + path: ~/.gradle/caches + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} + restore-keys: ${{ runner.os }}-gradle - name: Clean Build - run: | - git config --global user.email "no-reply@github.com" - git config --global user.name "Github Actions" - ./gradlew jar + run: ./gradlew build sonar --info + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - name: Publish to Central via Build run: | ./gradlew publishToSonatype :testing:publishToSonatype closeAndReleaseSonatypeStagingRepository -PforceSign=true @@ -46,4 +50,5 @@ jobs: ORG_GRADLE_PROJECT_onelitefeatherSigningPassword: "${{ secrets.ONELITEFEATHER_GPG_PASSWORD }}" ORG_GRADLE_PROJECT_signingKey: "${{ secrets.ONELITEFEATHER_GPG_KEY }}" ORG_GRADLE_PROJECT_signingPassword: "${{ secrets.ONELITEFEATHER_GPG_PASSWORD }}" - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 24e99429658..59c2d5c53ad 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -7,6 +7,7 @@ plugins { alias(libs.plugins.blossom) signing jacoco + id("org.sonarqube") version "4.4.1.3373" } group = "net.onelitefeather.microtus" @@ -116,4 +117,10 @@ dependencies { testCompileOnly(libs.mockito.core) } - +sonar { + properties { + property("sonar.projectKey", "OneLiteFeatherNET_Microtus") + property("sonar.organization", "onelitefeathernet") + property("sonar.host.url", "https://sonarcloud.io") + } +} \ No newline at end of file From f27c93c0a77eb22710727bfef9d0a3ed0089f089 Mon Sep 17 00:00:00 2001 From: theEvilReaper Date: Mon, 17 Jun 2024 21:08:31 +0200 Subject: [PATCH 29/93] Cleanup tests --- .../EntityLineOfSightIntegrationTest.java | 18 +++++++++--------- .../entity/player/PlayerIntegrationTest.java | 6 +++--- .../NotificationIntegrationTest.java | 2 -- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/src/test/java/net/minestom/server/entity/EntityLineOfSightIntegrationTest.java b/src/test/java/net/minestom/server/entity/EntityLineOfSightIntegrationTest.java index 4d8d4b2f352..914f68b7186 100644 --- a/src/test/java/net/minestom/server/entity/EntityLineOfSightIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/EntityLineOfSightIntegrationTest.java @@ -22,7 +22,7 @@ void entityPhysicsCheckLineOfSight(Env env) { var entity2 = new Entity(EntityTypes.ZOMBIE); entity2.setInstance(instance, new Pos(10, 42, 0)).join(); - assertEquals(entity2, entity.getLineOfSightEntity(20, (e) -> true)); + assertEquals(entity2, entity.getLineOfSightEntity(20, predicate -> true)); assertTrue(entity.hasLineOfSight(entity2, true)); for (int z = -1; z <= 1; ++z) { @@ -31,7 +31,7 @@ void entityPhysicsCheckLineOfSight(Env env) { } } - assertNull(entity.getLineOfSightEntity(20, (e) -> true)); + assertNull(entity.getLineOfSightEntity(20, predicate -> true)); assertFalse(entity.hasLineOfSight(entity2, true)); } @@ -46,7 +46,7 @@ void entityPhysicsCheckLineOfSightBehind(Env env) { var entity2 = new Entity(EntityTypes.ZOMBIE); entity2.setInstance(instance, new Pos(-10, 42, 0)).join(); - assertNull(entity.getLineOfSightEntity(20, (e) -> true)); + assertNull(entity.getLineOfSightEntity(20, predicate -> true)); assertFalse(entity.hasLineOfSight(entity2, true)); assertTrue(entity.hasLineOfSight(entity2, false)); @@ -70,7 +70,7 @@ void entityPhysicsCheckLineOfSightNearMiss(Env env) { var entity2 = new Entity(EntityTypes.ZOMBIE); entity2.setInstance(instance, new Pos(10, 42, 0.31)).join(); - assertNull(entity.getLineOfSightEntity(20, (e) -> true)); + assertNull(entity.getLineOfSightEntity(20, predicate -> true)); assertFalse(entity.hasLineOfSight(entity2, true)); assertTrue(entity.hasLineOfSight(entity2, false)); @@ -94,7 +94,7 @@ void entityPhysicsCheckLineOfSightNearHit(Env env) { var entity2 = new Entity(EntityTypes.ZOMBIE); entity2.setInstance(instance, new Pos(10, 42, 0.3)).join(); - assertEquals(entity2, entity.getLineOfSightEntity(20, (e) -> true)); + assertEquals(entity2, entity.getLineOfSightEntity(20, predicate -> true)); assertTrue(entity.hasLineOfSight(entity2, true)); assertTrue(entity.hasLineOfSight(entity2, false)); @@ -104,7 +104,7 @@ void entityPhysicsCheckLineOfSightNearHit(Env env) { } } - assertNull(entity.getLineOfSightEntity(20, (e) -> true)); + assertNull(entity.getLineOfSightEntity(20, predicate -> true)); assertFalse(entity.hasLineOfSight(entity2, true)); assertFalse(entity.hasLineOfSight(entity2, false)); } @@ -123,7 +123,7 @@ void entityPhysicsCheckLineOfSightCorrectOrder(Env env) { var entity3 = new Entity(EntityTypes.ZOMBIE); entity3.setInstance(instance, new Pos(5, 42, 0)).join(); - assertEquals(entity3, entity.getLineOfSightEntity(20, (e) -> true)); + assertEquals(entity3, entity.getLineOfSightEntity(20, predicate -> true)); assertTrue(entity.hasLineOfSight(entity2, true)); assertTrue(entity.hasLineOfSight(entity2, false)); assertTrue(entity.hasLineOfSight(entity3, true)); @@ -141,7 +141,7 @@ void entityPhysicsCheckLineOfSightBigMiss(Env env) { var entity2 = new Entity(EntityTypes.ZOMBIE); entity2.setInstance(instance, new Pos(10, 42, 10)).join(); - assertNull(entity.getLineOfSightEntity(20, (e) -> true)); + assertNull(entity.getLineOfSightEntity(20, predicate -> true)); assertFalse(entity.hasLineOfSight(entity2, true)); assertTrue(entity.hasLineOfSight(entity2, false)); } @@ -163,7 +163,7 @@ void entityPhysicsCheckLineOfSightLargeBoundingBox(Env env) { } } - assertEquals(entity2, entity.getLineOfSightEntity(20, (e) -> true)); + assertEquals(entity2, entity.getLineOfSightEntity(20, predicate -> true)); assertTrue(entity.hasLineOfSight(entity2, true)); assertTrue(entity.hasLineOfSight(entity2, false)); } diff --git a/src/test/java/net/minestom/server/entity/player/PlayerIntegrationTest.java b/src/test/java/net/minestom/server/entity/player/PlayerIntegrationTest.java index 8841716c548..7c65b63b783 100644 --- a/src/test/java/net/minestom/server/entity/player/PlayerIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/player/PlayerIntegrationTest.java @@ -208,7 +208,7 @@ void displayNameTest(Env env) { var tracker2 = connection2.trackIncoming(PlayerInfoUpdatePacket.class); connection2.connect(instance, new Pos(0, 42, 0)).join(); - var displayNamePackets = tracker2.collect().stream().filter((packet) -> + var displayNamePackets = tracker2.collect().stream().filter(packet -> packet.actions().stream().anyMatch((act) -> act == PlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME)) .count(); assertEquals(1, displayNamePackets); @@ -217,12 +217,12 @@ void displayNameTest(Env env) { player.setDisplayName(Component.text("Other Name!")); - var displayNamePackets2 = tracker3.collect().stream().filter((packet) -> + var displayNamePackets2 = tracker3.collect().stream().filter(packet -> packet.actions().stream().anyMatch((act) -> act == PlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME)) .count(); assertEquals(1, displayNamePackets2); - var displayNamePackets3 = tracker.collect().stream().filter((packet) -> + var displayNamePackets3 = tracker.collect().stream().filter(packet -> packet.actions().stream().anyMatch((act) -> act == PlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME)) .count(); assertEquals(2, displayNamePackets3); diff --git a/src/test/java/net/minestom/server/notifications/NotificationIntegrationTest.java b/src/test/java/net/minestom/server/notifications/NotificationIntegrationTest.java index 73094451492..4ef269bf024 100644 --- a/src/test/java/net/minestom/server/notifications/NotificationIntegrationTest.java +++ b/src/test/java/net/minestom/server/notifications/NotificationIntegrationTest.java @@ -8,8 +8,6 @@ import net.minestom.server.network.packet.server.play.AdvancementsPacket; import net.minestom.testing.Collector; import net.minestom.testing.Env; -import net.minestom.testing.annotations.EnvironmentTest; -import net.minestom.testing.environment.TestEnvironmentParameterResolver; import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; From 54a1f16767e1325e636ca1e193395d77f2db869f Mon Sep 17 00:00:00 2001 From: theEvilReaper Date: Mon, 17 Jun 2024 21:17:20 +0200 Subject: [PATCH 30/93] Remove some parentheses from an variable --- .../server/entity/player/PlayerIntegrationTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/java/net/minestom/server/entity/player/PlayerIntegrationTest.java b/src/test/java/net/minestom/server/entity/player/PlayerIntegrationTest.java index 7c65b63b783..6fbd2370601 100644 --- a/src/test/java/net/minestom/server/entity/player/PlayerIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/player/PlayerIntegrationTest.java @@ -209,7 +209,7 @@ void displayNameTest(Env env) { connection2.connect(instance, new Pos(0, 42, 0)).join(); var displayNamePackets = tracker2.collect().stream().filter(packet -> - packet.actions().stream().anyMatch((act) -> act == PlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME)) + packet.actions().stream().anyMatch(act -> act == PlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME)) .count(); assertEquals(1, displayNamePackets); @@ -218,12 +218,12 @@ void displayNameTest(Env env) { player.setDisplayName(Component.text("Other Name!")); var displayNamePackets2 = tracker3.collect().stream().filter(packet -> - packet.actions().stream().anyMatch((act) -> act == PlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME)) + packet.actions().stream().anyMatch(act -> act == PlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME)) .count(); assertEquals(1, displayNamePackets2); var displayNamePackets3 = tracker.collect().stream().filter(packet -> - packet.actions().stream().anyMatch((act) -> act == PlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME)) + packet.actions().stream().anyMatch(act -> act == PlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME)) .count(); assertEquals(2, displayNamePackets3); } From bd60518bd0fa43f3eee4f05325bc24e4cec1cd90 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Mon, 19 Aug 2024 10:12:32 +0200 Subject: [PATCH 31/93] Update env tests usage --- .../net/minestom/server/entity/EntityAttributeTest.java | 6 +++--- .../java/net/minestom/server/entity/EntityFireTest.java | 8 ++++---- .../entity/pathfinding/PathfinderIntegrationTest.java | 5 +++-- .../entity/player/PlayerResourcePackIntegrationTest.java | 5 +++-- .../server/instance/generator/BiomeIntegrationTest.java | 5 +++-- src/test/java/net/minestom/server/item/ItemTest.java | 5 +++-- .../java/net/minestom/server/item/MaterialReadTest.java | 5 +++-- .../server/item/component/AbstractItemComponentTest.java | 5 +++-- .../server/listener/TestUseItemListenerIntegration.java | 5 +++-- 9 files changed, 28 insertions(+), 21 deletions(-) diff --git a/src/test/java/net/minestom/server/entity/EntityAttributeTest.java b/src/test/java/net/minestom/server/entity/EntityAttributeTest.java index 521d3712add..4dc63446be8 100644 --- a/src/test/java/net/minestom/server/entity/EntityAttributeTest.java +++ b/src/test/java/net/minestom/server/entity/EntityAttributeTest.java @@ -10,13 +10,13 @@ import net.minestom.server.item.component.AttributeList; import net.minestom.server.utils.NamespaceID; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; -@EnvTest +@ExtendWith(MicrotusExtension.class) public class EntityAttributeTest { @Test diff --git a/src/test/java/net/minestom/server/entity/EntityFireTest.java b/src/test/java/net/minestom/server/entity/EntityFireTest.java index a9c45431e00..b744e4b0f3c 100644 --- a/src/test/java/net/minestom/server/entity/EntityFireTest.java +++ b/src/test/java/net/minestom/server/entity/EntityFireTest.java @@ -4,16 +4,16 @@ import net.minestom.server.event.entity.EntityFireExtinguishEvent; import net.minestom.server.event.entity.EntitySetFireEvent; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.util.concurrent.atomic.AtomicInteger; import static org.junit.jupiter.api.Assertions.*; -@EnvTest -public class EntityFireTest -{ +@ExtendWith(MicrotusExtension.class) +public class EntityFireTest { @Test public void duration(Env env) { var instance = env.createFlatInstance(); diff --git a/src/test/java/net/minestom/server/entity/pathfinding/PathfinderIntegrationTest.java b/src/test/java/net/minestom/server/entity/pathfinding/PathfinderIntegrationTest.java index dd203dae8be..e47c277af3c 100644 --- a/src/test/java/net/minestom/server/entity/pathfinding/PathfinderIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/pathfinding/PathfinderIntegrationTest.java @@ -8,8 +8,9 @@ import net.minestom.server.instance.block.Block; import net.minestom.server.utils.chunk.ChunkUtils; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.util.HashSet; import java.util.List; @@ -18,7 +19,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.fail; -@EnvTest +@ExtendWith(MicrotusExtension.class) public class PathfinderIntegrationTest { /** diff --git a/src/test/java/net/minestom/server/entity/player/PlayerResourcePackIntegrationTest.java b/src/test/java/net/minestom/server/entity/player/PlayerResourcePackIntegrationTest.java index 44c52f509cf..8fa1d717c31 100644 --- a/src/test/java/net/minestom/server/entity/player/PlayerResourcePackIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/player/PlayerResourcePackIntegrationTest.java @@ -6,8 +6,9 @@ import net.minestom.server.coordinate.Pos; import net.minestom.server.network.packet.client.common.ClientResourcePackStatusPacket; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.net.URI; import java.util.UUID; @@ -17,7 +18,7 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -@EnvTest +@ExtendWith(MicrotusExtension.class) class PlayerResourcePackIntegrationTest { private static final ResourcePackInfo INFO = ResourcePackInfo.resourcePackInfo(UUID.randomUUID(), URI.create("http://localhost:8080/missing.zip"), "i am not a hash!"); diff --git a/src/test/java/net/minestom/server/instance/generator/BiomeIntegrationTest.java b/src/test/java/net/minestom/server/instance/generator/BiomeIntegrationTest.java index d53e4063b62..fe34fe0445d 100644 --- a/src/test/java/net/minestom/server/instance/generator/BiomeIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/generator/BiomeIntegrationTest.java @@ -4,15 +4,16 @@ import net.minestom.server.instance.generator.GeneratorImpl.GenSection; import net.minestom.server.world.biome.Biome; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.util.Arrays; import static org.junit.jupiter.api.Assertions.assertEquals; -@EnvTest +@ExtendWith(MicrotusExtension.class) public class BiomeIntegrationTest { private static int PLAINS_ID, BADLANDS_ID; diff --git a/src/test/java/net/minestom/server/item/ItemTest.java b/src/test/java/net/minestom/server/item/ItemTest.java index dea4fb717ab..6a1f1170966 100644 --- a/src/test/java/net/minestom/server/item/ItemTest.java +++ b/src/test/java/net/minestom/server/item/ItemTest.java @@ -8,15 +8,16 @@ import net.minestom.server.item.component.EnchantmentList; import net.minestom.server.item.enchant.Enchantment; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import java.util.List; import java.util.Map; import static org.junit.jupiter.api.Assertions.*; -@EnvTest +@ExtendWith(MicrotusExtension.class) public class ItemTest { static { diff --git a/src/test/java/net/minestom/server/item/MaterialReadTest.java b/src/test/java/net/minestom/server/item/MaterialReadTest.java index af294b965ef..f9e756c31cd 100644 --- a/src/test/java/net/minestom/server/item/MaterialReadTest.java +++ b/src/test/java/net/minestom/server/item/MaterialReadTest.java @@ -1,12 +1,13 @@ package net.minestom.server.item; import net.minestom.server.MinecraftServer; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import static org.junit.jupiter.api.Assertions.assertNotNull; -@EnvTest +@ExtendWith(MicrotusExtension.class) public class MaterialReadTest { static { diff --git a/src/test/java/net/minestom/server/item/component/AbstractItemComponentTest.java b/src/test/java/net/minestom/server/item/component/AbstractItemComponentTest.java index 04d42aa17f9..c9e026a44c4 100644 --- a/src/test/java/net/minestom/server/item/component/AbstractItemComponentTest.java +++ b/src/test/java/net/minestom/server/item/component/AbstractItemComponentTest.java @@ -4,9 +4,10 @@ import net.minestom.server.network.NetworkBuffer; import net.minestom.server.utils.nbt.BinaryTagSerializer; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; @@ -19,7 +20,7 @@ import static org.junit.jupiter.api.Assertions.assertArrayEquals; import static org.junit.jupiter.api.Assertions.assertEquals; -@EnvTest +@ExtendWith(MicrotusExtension.class) @TestInstance(TestInstance.Lifecycle.PER_CLASS) public abstract class AbstractItemComponentTest { diff --git a/src/test/java/net/minestom/server/listener/TestUseItemListenerIntegration.java b/src/test/java/net/minestom/server/listener/TestUseItemListenerIntegration.java index ade807db30c..b0bba4696a0 100644 --- a/src/test/java/net/minestom/server/listener/TestUseItemListenerIntegration.java +++ b/src/test/java/net/minestom/server/listener/TestUseItemListenerIntegration.java @@ -9,12 +9,13 @@ import net.minestom.server.item.Material; import net.minestom.server.network.packet.client.play.ClientUseItemPacket; import net.minestom.testing.Env; -import net.minestom.testing.EnvTest; +import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import static org.junit.jupiter.api.Assertions.assertEquals; -@EnvTest +@ExtendWith(MicrotusExtension.class) public class TestUseItemListenerIntegration { @Test From dab7e3d66cede9ed130ab7e7c11b08baecc0db07 Mon Sep 17 00:00:00 2001 From: Steffen Wonning Date: Tue, 20 Aug 2024 11:34:10 +0200 Subject: [PATCH 32/93] Cleanup generator package (#71) * Add new constant * Update constant modifier definition * Cleanup code * Update string usages to increase readability * Remove unused import --- .../net/minestom/codegen/CodeGenerator.java | 18 +--- .../minestom/codegen/ConstantsGenerator.java | 2 +- .../codegen/MinestomCodeGenerator.java | 2 +- .../codegen/color/DyeColorGenerator.java | 100 ++++++++++-------- .../codegen/fluid/FluidGenerator.java | 21 ++-- .../codegen/particle/ParticleGenerator.java | 29 +++-- .../codegen/recipe/RecipeTypeGenerator.java | 32 +++--- .../codegen/util/GenerationHelper.java | 5 +- 8 files changed, 102 insertions(+), 107 deletions(-) diff --git a/code-generators/src/main/java/net/minestom/codegen/CodeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/CodeGenerator.java index 8aa876ec201..72da0b8e567 100644 --- a/code-generators/src/main/java/net/minestom/codegen/CodeGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/CodeGenerator.java @@ -4,20 +4,18 @@ import com.google.gson.GsonBuilder; import com.google.gson.JsonObject; import com.squareup.javapoet.*; -import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.lang.model.SourceVersion; import javax.lang.model.element.Modifier; import java.io.File; -import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.List; import java.util.Locale; -public class CodeGenerator { +public class CodeGenerator implements CodeExporter { protected static final Gson GSON = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create(); private static final Logger LOGGER = LoggerFactory.getLogger(CodeGenerator.class); @@ -29,7 +27,7 @@ public CodeGenerator(File outputFolder) { public void generate(InputStream resourceFile, String packageName, String typeName, String loaderName, String generatedName) { if (resourceFile == null) { - LOGGER.error("Failed to find resource file for " + typeName); + LOGGER.error("Failed to find resource file for {}", typeName); return; } ClassName typeClass = ClassName.get(packageName, typeName); @@ -72,7 +70,7 @@ public void generate(InputStream resourceFile, String packageName, String typeNa public void generateKeys(InputStream resourceFile, String packageName, String typeName, String generatedName) { if (resourceFile == null) { - LOGGER.error("Failed to find resource file for " + typeName); + LOGGER.error("Failed to find resource file for {}", typeName); return; } @@ -117,14 +115,4 @@ public void generateKeys(InputStream resourceFile, String packageName, String ty .build()), outputFolder); } - - private void writeFiles(@NotNull List fileList, File outputFolder) { - for (JavaFile javaFile : fileList) { - try { - javaFile.writeTo(outputFolder); - } catch (IOException e) { - LOGGER.error("An error occured while writing source code to the file system.", e); - } - } - } } diff --git a/code-generators/src/main/java/net/minestom/codegen/ConstantsGenerator.java b/code-generators/src/main/java/net/minestom/codegen/ConstantsGenerator.java index 0ce81d41a30..1189cd9bc9e 100644 --- a/code-generators/src/main/java/net/minestom/codegen/ConstantsGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/ConstantsGenerator.java @@ -71,7 +71,7 @@ public void generate() { writeFiles( List.of( JavaFile.builder("net.minestom.server", constantsInterface.build()) - .indent(" ") + .indent(DEFAULT_INDENT) .skipJavaLangImports(true) .build() ), diff --git a/code-generators/src/main/java/net/minestom/codegen/MinestomCodeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/MinestomCodeGenerator.java index 4ac471ae2d7..02f47ef71f2 100644 --- a/code-generators/src/main/java/net/minestom/codegen/MinestomCodeGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/MinestomCodeGenerator.java @@ -19,7 +19,7 @@ public abstract class MinestomCodeGenerator implements CodeExporter { ClassName.get("net.minestom.server.registry", "Registries"); protected static final ClassName KEYORI_ADVENTURE_KEY = ClassName.get("net.kyori.adventure.key", "Keyed"); - protected static final Modifier[] CONSTANT_MODIFIERS = {Modifier.PRIVATE, Modifier.STATIC, Modifier.FINAL}; + protected static final Modifier[] CONSTANT_MODIFIERS = {Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL}; protected static final Modifier[] PRIVATE_FINAL_MODIFIERS = {Modifier.PRIVATE, Modifier.FINAL}; protected static final String DEFAULT_INDENT = " "; protected String packageName; diff --git a/code-generators/src/main/java/net/minestom/codegen/color/DyeColorGenerator.java b/code-generators/src/main/java/net/minestom/codegen/color/DyeColorGenerator.java index 6175c5e5f21..ce556888e71 100644 --- a/code-generators/src/main/java/net/minestom/codegen/color/DyeColorGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/color/DyeColorGenerator.java @@ -3,10 +3,17 @@ import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; -import com.squareup.javapoet.*; +import com.squareup.javapoet.AnnotationSpec; +import com.squareup.javapoet.ArrayTypeName; +import com.squareup.javapoet.ClassName; +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.JavaFile; +import com.squareup.javapoet.MethodSpec; +import com.squareup.javapoet.ParameterSpec; +import com.squareup.javapoet.ParameterizedTypeName; +import com.squareup.javapoet.TypeName; +import com.squareup.javapoet.TypeSpec; import net.minestom.codegen.MinestomCodeGenerator; -import net.minestom.codegen.util.GenerationHelper; -import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; @@ -20,21 +27,20 @@ import java.util.List; import java.util.stream.StreamSupport; -@ApiStatus.NonExtendable -@ApiStatus.Internal -public final class DyeColorGenerator extends MinestomCodeGenerator { +import static net.minestom.codegen.util.GenerationHelper.VARIABLE_GETTER; +import static net.minestom.codegen.util.GenerationHelper.VARIABLE_SETTER; - private static final String CLASS_NAME = "DyeColor"; // Microtus - Banner and shield meta +public class DyeColorGenerator extends MinestomCodeGenerator { + private static final Logger LOGGER = LoggerFactory.getLogger(DyeColorGenerator.class); + private static final String COLOR_PACKAGE = "net.minestom.server.color"; private static final String TEXTURE_DIFFUSE_COLOR = "textureDiffuseColor"; private static final String TEXT_COLOR = "textColor"; private static final String FIREWORK_COLOR = "fireworkColor"; private static final String MAP_COLOR_ID = "mapColorId"; - private static final Logger LOGGER = LoggerFactory.getLogger(DyeColorGenerator.class); private final InputStream dyeColorsFile; private final File outputFolder; public DyeColorGenerator(@Nullable InputStream dyeColorsFile, @NotNull File outputFolder) { - super("net.minestom.server.color"); this.dyeColorsFile = dyeColorsFile; this.outputFolder = outputFolder; } @@ -50,11 +56,11 @@ public void generate() { LOGGER.error("Output folder for code generation does not exist and could not be created."); return; } - // Important classes we use a lot - ClassName colorCN = ClassName.get(packageName, "Color"); + // Important classes we use alot + ClassName colorCN = ClassName.get(COLOR_PACKAGE, "Color"); JsonArray dyeColors = GSON.fromJson(new InputStreamReader(dyeColorsFile), JsonArray.class); - ClassName dyeColorCN = ClassName.get(packageName, CLASS_NAME); + ClassName dyeColorCN = ClassName.get(COLOR_PACKAGE, "DyeColor"); // Dye Color Enum TypeSpec.Builder dyeColorEnum = TypeSpec.enumBuilder(dyeColorCN) .addSuperinterface(ClassName.get("net.kyori.adventure.util", "RGBLike")) @@ -68,20 +74,26 @@ public void generate() { // Fields dyeColorEnum.addFields( List.of( - FieldSpec.builder(networkBufferTypeCN, "NETWORK_TYPE", Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL) + FieldSpec.builder(networkBufferTypeCN, "NETWORK_TYPE", CONSTANT_MODIFIERS) .initializer("$T.Enum($T.class)", networkBufferCN, dyeColorCN) .build(), - FieldSpec.builder(binaryTagSerializerTypeCN, "NBT_TYPE", Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL) + FieldSpec.builder(binaryTagSerializerTypeCN, "NBT_TYPE", CONSTANT_MODIFIERS) .initializer("$T.fromEnumStringable($T.class)", binaryTagSerializerCN, dyeColorCN) .build(), FieldSpec.builder(colorCN, TEXTURE_DIFFUSE_COLOR, PRIVATE_FINAL_MODIFIERS).build(), FieldSpec.builder(colorCN, TEXT_COLOR, PRIVATE_FINAL_MODIFIERS).build(), FieldSpec.builder(colorCN, FIREWORK_COLOR, PRIVATE_FINAL_MODIFIERS).build(), - FieldSpec.builder(TypeName.INT, MAP_COLOR_ID, PRIVATE_FINAL_MODIFIERS).build(), - FieldSpec.builder(ArrayTypeName.of(dyeColorCN), "VALUES", CONSTANT_MODIFIERS).initializer(CLASS_NAME + ".values()").build() // Microtus - Banner and shield meta + FieldSpec.builder(TypeName.INT, MAP_COLOR_ID, PRIVATE_FINAL_MODIFIERS).build() ) ); + dyeColorEnum.addField( + FieldSpec.builder(ArrayTypeName.of(dyeColorCN), "VALUES") + .addModifiers(Modifier.PRIVATE, Modifier.STATIC, Modifier.FINAL) + .initializer("values()") + .build() + ); + // Methods dyeColorEnum.addMethods( List.of( @@ -95,63 +107,65 @@ public void generate() { ParameterSpec.builder(TypeName.INT, MAP_COLOR_ID).build() ) ) - .addStatement(GenerationHelper.VARIABLE_SETTER, TEXTURE_DIFFUSE_COLOR) - .addStatement(GenerationHelper.VARIABLE_SETTER, TEXT_COLOR) - .addStatement(GenerationHelper.VARIABLE_SETTER, FIREWORK_COLOR) - .addStatement(GenerationHelper.VARIABLE_SETTER, MAP_COLOR_ID) + .addStatement(VARIABLE_SETTER, TEXTURE_DIFFUSE_COLOR) + .addStatement(VARIABLE_SETTER, TEXT_COLOR) + .addStatement(VARIABLE_SETTER, FIREWORK_COLOR) + .addStatement(VARIABLE_SETTER, MAP_COLOR_ID) .build(), MethodSpec.methodBuilder("color") .addModifiers(Modifier.PUBLIC) .returns(colorCN.annotated(AnnotationSpec.builder(NotNull.class).build())) - .addStatement("return this.textureDiffuseColor") + .addStatement(VARIABLE_GETTER, TEXTURE_DIFFUSE_COLOR) .build(), MethodSpec.methodBuilder(TEXT_COLOR) .addModifiers(Modifier.PUBLIC) .returns(colorCN.annotated(AnnotationSpec.builder(NotNull.class).build())) - .addStatement("return this.textColor") + .addStatement(VARIABLE_GETTER, TEXT_COLOR) .build(), MethodSpec.methodBuilder(FIREWORK_COLOR) .addModifiers(Modifier.PUBLIC) .returns(colorCN.annotated(AnnotationSpec.builder(NotNull.class).build())) - .addStatement("return this.fireworkColor") + .addStatement(VARIABLE_GETTER, FIREWORK_COLOR) .build(), MethodSpec.methodBuilder("red") .addModifiers(Modifier.PUBLIC) .returns(TypeName.INT) .addAnnotation(Override.class) - .addStatement("return this.textureDiffuseColor.red()") + .addStatement("return this.$L.red()", TEXTURE_DIFFUSE_COLOR) .build(), MethodSpec.methodBuilder("green") .returns(TypeName.INT) .addModifiers(Modifier.PUBLIC) .addAnnotation(Override.class) - .addStatement("return this.textureDiffuseColor.green()") + .addStatement("return this.$L.green()", TEXTURE_DIFFUSE_COLOR) .build(), MethodSpec.methodBuilder("blue") .returns(TypeName.INT) .addModifiers(Modifier.PUBLIC) .addAnnotation(Override.class) - .addStatement("return this.textureDiffuseColor.blue()") + .addStatement("return this.$L.blue()", TEXTURE_DIFFUSE_COLOR) .build(), MethodSpec.methodBuilder(MAP_COLOR_ID) .addModifiers(Modifier.PUBLIC) .returns(TypeName.INT) - .addStatement("return this.mapColorId") - .build(), - MethodSpec.methodBuilder("getValue") // Microtus start - Banner and shield meta - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .addParameter(ParameterSpec.builder(TypeName.INT, "id").build()) - .addAnnotation(Nullable.class) - .returns(ClassName.get(packageName, CLASS_NAME)) - .addCode("return VALUES[$L];", "id") - .build() // Microtus end - Banner and shield meta + .addStatement(VARIABLE_GETTER, MAP_COLOR_ID) + .build() ) ); + dyeColorEnum.addMethod( + MethodSpec.methodBuilder("getValue") + .addParameter(ParameterSpec.builder(TypeName.INT, "id").build()) + .returns(dyeColorCN.annotated(AnnotationSpec.builder(Nullable.class).build())) + .addModifiers(Modifier.PUBLIC, Modifier.STATIC) + .addStatement("return $L", "VALUES[id]") + .build() + ); + // Use data for (JsonObject dyeColorObject : StreamSupport.stream(dyeColors.spliterator(), true).map(JsonElement::getAsJsonObject).sorted(Comparator.comparingInt(o -> o.get("id").getAsInt())).toList()) { String dyeColorName = dyeColorObject.get("name").getAsString(); - dyeColorEnum.addEnumConstant(extractNamespace(dyeColorName), TypeSpec.anonymousClassBuilder( + dyeColorEnum.addEnumConstant(toConstant(dyeColorName), TypeSpec.anonymousClassBuilder( "new $T(0x$L), new $T(0x$L), new $T(0x$L), $L", colorCN, Integer.toString(dyeColorObject.get(TEXTURE_DIFFUSE_COLOR).getAsInt(), 16), colorCN, Integer.toString(dyeColorObject.get(TEXT_COLOR).getAsInt(), 16), @@ -162,14 +176,10 @@ public void generate() { } // Write files to outputFolder - writeFiles( - List.of( - JavaFile.builder(packageName, dyeColorEnum.build()) - .indent(DEFAULT_INDENT) - .skipJavaLangImports(true) - .build() - ), - outputFolder - ); + final JavaFile javaFile = JavaFile.builder(COLOR_PACKAGE, dyeColorEnum.build()) + .indent(DEFAULT_INDENT) + .skipJavaLangImports(true) + .build(); + writeFile(javaFile, outputFolder); } } diff --git a/code-generators/src/main/java/net/minestom/codegen/fluid/FluidGenerator.java b/code-generators/src/main/java/net/minestom/codegen/fluid/FluidGenerator.java index 642489970cf..070a89138fb 100644 --- a/code-generators/src/main/java/net/minestom/codegen/fluid/FluidGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/fluid/FluidGenerator.java @@ -12,7 +12,8 @@ import java.io.File; import java.io.InputStream; import java.io.InputStreamReader; -import java.util.List; + +import static net.minestom.codegen.util.GenerationHelper.VARIABLE_SETTER; public final class FluidGenerator extends MinestomCodeGenerator { private static final Logger LOGGER = LoggerFactory.getLogger(FluidGenerator.class); @@ -49,7 +50,7 @@ public void generate() { fluidClass.addField( FieldSpec.builder(namespaceIDClassName, "id") - .addModifiers(Modifier.PRIVATE, Modifier.FINAL).addAnnotation(NotNull.class).build() + .addModifiers(PRIVATE_FINAL_MODIFIERS).addAnnotation(NotNull.class).build() ); // static field fluidClass.addField( @@ -62,7 +63,7 @@ public void generate() { fluidClass.addMethod( MethodSpec.constructorBuilder() .addParameter(ParameterSpec.builder(namespaceIDClassName, "id").addAnnotation(NotNull.class).build()) - .addStatement("this.id = id") + .addStatement(VARIABLE_SETTER, "id") .addStatement("$T.fluids.put(id, this)", registriesClassName) .build() ); @@ -131,14 +132,10 @@ public void generate() { }); // Write files to outputFolder - writeFiles( - List.of( - JavaFile.builder("net.minestom.server.fluid", fluidClass.build()) - .indent(" ") - .skipJavaLangImports(true) - .build() - ), - outputFolder - ); + final JavaFile javaFile = JavaFile.builder("net.minestom.server.fluid", fluidClass.build()) + .indent(DEFAULT_INDENT) + .skipJavaLangImports(true) + .build(); + writeFile(javaFile, outputFolder); } } diff --git a/code-generators/src/main/java/net/minestom/codegen/particle/ParticleGenerator.java b/code-generators/src/main/java/net/minestom/codegen/particle/ParticleGenerator.java index 14b13e3e0a4..d0ca3f1f328 100644 --- a/code-generators/src/main/java/net/minestom/codegen/particle/ParticleGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/particle/ParticleGenerator.java @@ -12,7 +12,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.lang.model.element.Modifier; import java.io.File; import java.io.InputStream; import java.io.InputStreamReader; @@ -23,7 +22,8 @@ public class ParticleGenerator extends MinestomCodeGenerator { private static final Logger LOGGER = LoggerFactory.getLogger(ParticleGenerator.class); - + private static final String PARTICLE_PACKAGE = "net.minestom.server.particle"; + private static final Pattern PASCAL_PATTERN = Pattern.compile("_([a-z])"); private final InputStream particlesFile; private final File outputFolder; @@ -45,8 +45,8 @@ public void generate() { } // Important classes we use alot - ClassName particleCN = ClassName.get("net.minestom.server.particle", "Particle"); - ClassName particleImplCN = ClassName.get("net.minestom.server.particle", "ParticleImpl"); + ClassName particleCN = ClassName.get(PARTICLE_PACKAGE, "Particle"); + ClassName particleImplCN = ClassName.get(PARTICLE_PACKAGE, "ParticleImpl"); JsonObject particleObject = GSON.fromJson(new InputStreamReader(particlesFile), JsonObject.class); List> orderedParticleIdObjectEntries = particleObject.entrySet().stream() @@ -54,7 +54,7 @@ public void generate() { // Start code gen - ClassName particlesCN = ClassName.get("net.minestom.server.particle", "Particles"); + ClassName particlesCN = ClassName.get(PARTICLE_PACKAGE, "Particles"); TypeSpec.Builder particlesInterface = TypeSpec.interfaceBuilder(particlesCN) .addJavadoc("AUTOGENERATED by " + getClass().getSimpleName()); @@ -65,7 +65,7 @@ public void generate() { ClassName fieldCN = particleCN; if (value.get("hasData").getAsBoolean()) { // This particle has data, use the particle implementation class - fieldCN = ClassName.get("net.minestom.server.particle", "Particle", + fieldCN = ClassName.get(PARTICLE_PACKAGE, "Particle", toPascalCase(key.replace("minecraft:", ""))); } @@ -78,20 +78,19 @@ public void generate() { String fieldName = key.replace("minecraft:", "").toUpperCase(); particlesInterface.addField(FieldSpec.builder(fieldCN, fieldName) - .addModifiers(Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL) + .addModifiers(CONSTANT_MODIFIERS) .initializer("$L$T.get($S)", cast, particleImplCN, key).build()); } - writeFiles( - List.of(JavaFile.builder("net.minestom.server.particle", particlesInterface.build()) - .indent(" ") - .skipJavaLangImports(true) - .build()), - outputFolder); + final JavaFile javaFile = JavaFile.builder(PARTICLE_PACKAGE, particlesInterface.build()) + .indent(DEFAULT_INDENT) + .skipJavaLangImports(true) + .build(); + writeFile(javaFile, outputFolder); } - private static String toPascalCase(@NotNull String input) { - String camelCase = Pattern.compile("_([a-z])") + private static @NotNull String toPascalCase(@NotNull String input) { + String camelCase = PASCAL_PATTERN .matcher(input) .replaceAll(m -> m.group(1).toUpperCase()); return camelCase.substring(0, 1).toUpperCase() + camelCase.substring(1); diff --git a/code-generators/src/main/java/net/minestom/codegen/recipe/RecipeTypeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/recipe/RecipeTypeGenerator.java index 749dfc091aa..ca7f3a440f8 100644 --- a/code-generators/src/main/java/net/minestom/codegen/recipe/RecipeTypeGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/recipe/RecipeTypeGenerator.java @@ -5,6 +5,7 @@ import com.google.gson.JsonObject; import com.squareup.javapoet.*; import net.minestom.codegen.MinestomCodeGenerator; +import net.minestom.codegen.util.GenerationHelper; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; @@ -18,8 +19,11 @@ import java.util.List; import java.util.stream.StreamSupport; +import static net.minestom.codegen.util.GenerationHelper.VARIABLE_GETTER; + public class RecipeTypeGenerator extends MinestomCodeGenerator { private static final Logger LOGGER = LoggerFactory.getLogger(RecipeTypeGenerator.class); + private static final String NAMESPACE = "namespace"; private final InputStream recipeTypesFile; private final File outputFolder; @@ -54,10 +58,10 @@ public void generate() { // Fields recipeTypeEnum.addFields( List.of( - FieldSpec.builder(networkBufferTypeCN, "NETWORK_TYPE", Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL) + FieldSpec.builder(networkBufferTypeCN, "NETWORK_TYPE", CONSTANT_MODIFIERS) .initializer("$T.Enum($T.class)", networkBufferCN, recipeTypeCN) .build(), - FieldSpec.builder(namespaceIdCN, "namespace", Modifier.PRIVATE, Modifier.FINAL).build() + FieldSpec.builder(namespaceIdCN, NAMESPACE, PRIVATE_FINAL_MODIFIERS).build() ) ); @@ -66,21 +70,21 @@ public void generate() { List.of( // Constructor MethodSpec.constructorBuilder() - .addParameter(ParameterSpec.builder(namespaceIdCN, "namespace").addAnnotation(NotNull.class).build()) - .addStatement("this.namespace = namespace") + .addParameter(ParameterSpec.builder(namespaceIdCN, NAMESPACE).addAnnotation(NotNull.class).build()) + .addStatement(GenerationHelper.VARIABLE_SETTER, NAMESPACE) .build(), - MethodSpec.methodBuilder("namespace") + MethodSpec.methodBuilder(NAMESPACE) .addModifiers(Modifier.PUBLIC) .addAnnotation(NotNull.class) .addAnnotation(Override.class) .returns(namespaceIdCN) - .addStatement("return this.namespace") + .addStatement(VARIABLE_GETTER, NAMESPACE) .build(), MethodSpec.methodBuilder("id") .addModifiers(Modifier.PUBLIC) .returns(TypeName.INT) .addAnnotation(Override.class) - .addStatement("return this.ordinal()") + .addStatement(VARIABLE_GETTER, "ordinal()") .build() ) ); @@ -96,15 +100,11 @@ public void generate() { } // Write files to outputFolder - writeFiles( - List.of( - JavaFile.builder("net.minestom.server.recipe", recipeTypeEnum.build()) - .indent(" ") - .skipJavaLangImports(true) - .build() - ), - outputFolder - ); + final JavaFile javaFile = JavaFile.builder("net.minestom.server.recipe", recipeTypeEnum.build()) + .indent(DEFAULT_INDENT) + .skipJavaLangImports(true) + .build(); + writeFile(javaFile, outputFolder); } private static @NotNull String recipeTypeConstantName(@NotNull String name) { diff --git a/code-generators/src/main/java/net/minestom/codegen/util/GenerationHelper.java b/code-generators/src/main/java/net/minestom/codegen/util/GenerationHelper.java index f56116180a4..08f8eb7a9da 100644 --- a/code-generators/src/main/java/net/minestom/codegen/util/GenerationHelper.java +++ b/code-generators/src/main/java/net/minestom/codegen/util/GenerationHelper.java @@ -18,19 +18,20 @@ public final class GenerationHelper { public static final MethodSpec ADVENTURE_KEY_METHOD; public static final MethodSpec TO_STRING; public static final String VARIABLE_SETTER = "this.$1L = $1L"; + public static final String VARIABLE_GETTER = "return this.$1L"; static { ID_GETTER = MethodSpec.methodBuilder("getId") .returns(NAMESPACE_ID_CLASS) .addAnnotation(NotNull.class) - .addStatement("return this.id") + .addStatement(VARIABLE_GETTER, "id") .addModifiers(Modifier.PUBLIC) .build(); ADVENTURE_KEY_METHOD = MethodSpec.methodBuilder("key") .returns(ADVENTURE_KEY) .addAnnotation(Override.class) .addAnnotation(NotNull.class) - .addStatement("return this.id") + .addStatement(VARIABLE_GETTER, "id") .addModifiers(Modifier.PUBLIC) .build(); TO_STRING = MethodSpec.methodBuilder("toString") From 8cf490effa90e5c6d7a6ca924eb1e572d70fbc20 Mon Sep 17 00:00:00 2001 From: Steffen Wonning Date: Wed, 4 Sep 2024 21:35:21 +0200 Subject: [PATCH 33/93] Enhance instance and player handling in the test module (#72) * Add documentation and add possibility to remove all players when unregistering an instance * Add tests for the behaviour when unregistering an instance --- .../InstancePlayerIntegrationTest.java | 48 +++++++ .../main/java/net/minestom/testing/Env.java | 126 +++++++++++++++++- 2 files changed, 167 insertions(+), 7 deletions(-) create mode 100644 src/test/java/net/minestom/server/instance/InstancePlayerIntegrationTest.java diff --git a/src/test/java/net/minestom/server/instance/InstancePlayerIntegrationTest.java b/src/test/java/net/minestom/server/instance/InstancePlayerIntegrationTest.java new file mode 100644 index 00000000000..f09da59497a --- /dev/null +++ b/src/test/java/net/minestom/server/instance/InstancePlayerIntegrationTest.java @@ -0,0 +1,48 @@ +package net.minestom.server.instance; + +import net.minestom.server.coordinate.Pos; +import net.minestom.server.entity.Player; +import net.minestom.testing.Env; +import net.minestom.testing.extension.MicrotusExtension; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; + +import static org.junit.jupiter.api.Assertions.*; + +@ExtendWith(MicrotusExtension.class) +public class InstancePlayerIntegrationTest { + + @Test + void testInstanceDestroyWithPlayersInside(Env env) { + Instance instance = env.createFlatInstance(); + for (int i = 0; i < 3; i++) { + // Default position is Pos.ZERO + env.createPlayer(instance); + } + + assertFalse(instance.getPlayers().isEmpty()); + for (Player player : instance.getPlayers()) { + assertEquals(Pos.ZERO, player.getPosition()); + } + assertDoesNotThrow(() -> env.destroyInstance(instance, true)); + assertTrue(instance.getPlayers().isEmpty()); + } + + @Test + void testInstanceDestroyWithExceptionThrow(Env env) { + Instance instance = env.createFlatInstance(); + for (int i = 0; i < 3; i++) { + // Default position is Pos.ZERO + env.createPlayer(instance); + } + assertFalse(instance.getPlayers().isEmpty()); + assertThrows( + IllegalStateException.class, + () -> env.destroyInstance(instance), + "You cannot unregister an instance with players inside." + ); + assertFalse(instance.getPlayers().isEmpty()); + env.destroyInstance(instance, true); + assertTrue(instance.getPlayers().isEmpty()); + } +} diff --git a/testing/src/main/java/net/minestom/testing/Env.java b/testing/src/main/java/net/minestom/testing/Env.java index d89cd42f381..7fee8ded4f2 100644 --- a/testing/src/main/java/net/minestom/testing/Env.java +++ b/testing/src/main/java/net/minestom/testing/Env.java @@ -8,25 +8,93 @@ import net.minestom.server.instance.IChunkLoader; import net.minestom.server.instance.Instance; import net.minestom.server.instance.block.Block; +import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.time.Duration; import java.util.function.BooleanSupplier; +/** + * The {@code Env} class facilitates the creation of tests (e.g., JUnit tests) that interact directly + * with the server. It provides a simple way to set up a test environment where server + * components like players, instances, and other entities can be created and manipulated. + * + *

    This class is particularly useful for testing code that interacts with server components, which would + * otherwise require the use of a mocking framework. By using this class, developers can create more realistic + * tests that involve actual server behavior, without needing to mock every component. + * + *

    The {@code Env} class provides utility methods to: + *

      + *
    • Create new object references for {@link net.minestom.server.entity.Player Player}
    • + *
    • Initialize and manipulate server {@link net.minestom.server.instance.Instance Instances}
    • + *
    • Simulate server events and other interactions
    • + *
    + * + *

    This class is intended for use in unit tests, integration tests, and other testing scenarios where + * interaction with a live server environment is necessary. + * + * @version 1.0.1 + * @since 1.0.0 + */ public interface Env { + + /** + * Creates a new instance of {@link Env} with the given {@link ServerProcess}. + * + * @param process the process to use + * @return a new instance of {@link Env} + */ + @Contract(value = "_ -> new", pure = true) + static @NotNull Env createInstance(@NotNull ServerProcess process) { + return new EnvImpl(process); + } + + /** + * Gets the {@link ServerProcess} used by this environment. + * + * @return the server process + */ @NotNull ServerProcess process(); + /** + * Creates a new {@link TestConnection} which can be used in the test environment. + * + * @return the created connection + */ @NotNull TestConnection createConnection(); + /** + * Tracks a specific event type in the test environment. + * + * @param eventType the event type to track + * @param the event type + * @return the {@link Collector} instance to use + */ @NotNull Collector trackEvent(@NotNull Class eventType, @NotNull EventFilter filter, @NotNull H actor); + /** + * Listen for a specific event type in the test environment. + * + * @param eventType the event type to listen for + * @param the event type + * @return the {@link FlexibleListener} instance to use + */ @NotNull FlexibleListener listen(@NotNull Class eventType); + /** + * Ticks the {@link ServerProcess} which is involved into the env instance. + */ default void tick() { process().ticker().tick(System.nanoTime()); } - default boolean tickWhile(BooleanSupplier condition, Duration timeout) { + /** + * Ticks the {@link ServerProcess} until the given condition is met. + * + * @param condition the condition to check + */ + default boolean tickWhile(@NotNull BooleanSupplier condition, @Nullable Duration timeout) { var ticker = process().ticker(); final long start = System.nanoTime(); while (condition.getAsBoolean()) { @@ -39,31 +107,75 @@ default boolean tickWhile(BooleanSupplier condition, Duration timeout) { return true; } + /** + * Creates a new instance of an {@link Player} which can be used in the test environment. + * + * @param instance the instance to spawn the player in + * @param pos the position to spawn the player at + * @return the created player + */ default @NotNull Player createPlayer(@NotNull Instance instance, @NotNull Pos pos) { return createConnection().connect(instance, pos).join(); } + /** + * Creates a new instance of an {@link Player} which can be used in the test environment. + * + * @param instance the instance to spawn the player in + * @return the created player + */ + default @NotNull Player createPlayer(@NotNull Instance instance) { + return createPlayer(instance, Pos.ZERO); + } + + /** + * Creates a new {@link Instance} which contains only one layer of stone blocks. + * + * @return the created instance + */ default @NotNull Instance createFlatInstance() { return createFlatInstance(null); } - default @NotNull Instance createFlatInstance(IChunkLoader chunkLoader) { + /** + * Creates a new {@link Instance} which contains only one layer of stone blocks. + * + * @param chunkLoader the chunk loader to use for the instance + * @return the created instance + */ + default @NotNull Instance createFlatInstance(@Nullable IChunkLoader chunkLoader) { var instance = process().instance().createInstanceContainer(chunkLoader); instance.setGenerator(unit -> unit.modifier().fillHeight(0, 40, Block.STONE)); return instance; } - default void destroyInstance(Instance instance) { + /** + * Destroys the given {@link Instance} from the test environment. + * Note: This method does not remove players from the instance. + * + * @param instance the instance to destroy + */ + default void destroyInstance(@NotNull Instance instance) { + destroyInstance(instance, false); + } + + /** + * Destroys the given {@link Instance} from the test environment. + * + * @param instance the instance to destroy + * @param cleanUpPlayers whether to remove players from the instance + */ + default void destroyInstance(@NotNull Instance instance, boolean cleanUpPlayers) { + if (cleanUpPlayers && !instance.getPlayers().isEmpty()) { + instance.getPlayers().forEach(Player::remove); + } process().instance().unregisterInstance(instance); } /** * Cleanup the test environment + * * @since 1.4.1 */ void cleanup(); - - static Env createInstance(ServerProcess process) { - return new EnvImpl(process); - } } From 86e1424d4f7dbe62af7aa693d3ed96a0f9be71dc Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Mon, 9 Sep 2024 21:59:51 +0200 Subject: [PATCH 34/93] Pull upstream (#73) * Fix entity position desync when spawned in an 8 block radius from world center (0,0,0) (#2299) * fix: entity spawn pos desync * Fix tests * Update API for swept entity <-> entity collisions (#2343) * Update API for swept entity <-> entity collisions * Move EntityCollisionResult to its own class (#2345) * Move EntityCollisionResult to its own class * Return directional information from entity collision (#2346) * fix entity collisions (#2348) * Ability to get collision shape position from PhysicsResult (#2355) * ability to get collision shape position from PhysicsResult * Coordinate limit to prevent potential overflow * fix some jcstress files * clear remaining hephaistos usage * Make BoundingBox/ShapeImpl records (#2371) * Use a single int for all block states (#2373) * Light cleanup (#2372) * record namespace (#2374) * Add EquipmentSlot.BODY (#2325) * Add EquipmentSlot.BODY * EntityEquipmentPacket should now have 7 entries * Simplify isHand check * Fix tests --------- Co-authored-by: Matt Worzala <35708499+mworzala@users.noreply.github.com> * unused cache * Implement Graph Cache in CommandManager (#2360) * update dependencies * Remove caffeine dependency from EventNode (#2375) * Remove mojang utils cache * fix team visibility (#2186) * Fix chunks not being refreshed when view distance updates (#2197) * Fix chunks not being refreshed when view distance updates * give more control of collisions to the entities colliding (#2350) * give more control of collisions to the entities colliding * Playsound exclude (#2381) * Add Instance::playSoundExcept * Uh... * fix: saturation not working in food item component (#2382) * fix missing inversion in DataComponentMap#diff handling for removed entries (#2359) * More Vec operator, more min/max methods * Remove no longer exists methods * Disable failed test * Improve AtomicReference handling * Fix test execution when loading chunk outside of the main thread * Improve AtomicReference handling in some tests --------- Co-authored-by: Am Gone <67794767+Am-Gone@users.noreply.github.com> Co-authored-by: iam Co-authored-by: Lorenz Wrobel <43410952+DasBabyPixel@users.noreply.github.com> Co-authored-by: themode Co-authored-by: TogAr2 <59421074+TogAr2@users.noreply.github.com> Co-authored-by: Matt Worzala <35708499+mworzala@users.noreply.github.com> Co-authored-by: Kerman <46640204+KermanIsPretty@users.noreply.github.com> Co-authored-by: bea4dev <34712108+bea4dev@users.noreply.github.com> Co-authored-by: GreatWyrm Co-authored-by: Samuel Co-authored-by: SLH <114884726+SLH335@users.noreply.github.com> Co-authored-by: Floweynt <50057682+Floweynt@users.noreply.github.com> Co-authored-by: theEvilReaper --- .../minestom/server/ServerProcessTest.java | 1 + ...ityProjectileCollisionIntegrationTest.java | 4 +- .../server/command/CommandParseTest.java | 1 + .../command/CommandSyntaxSingleTest.java | 3 ++ .../player/PlayerMovementIntegrationTest.java | 37 +++++++++++++++++++ .../instance/GeneratorIntegrationTest.java | 1 + .../InstanceBlockIntegrationTest.java | 2 +- .../anvil/AnvilLoaderIntegrationTest.java | 1 + .../GeneratorForkConsumerIntegrationTest.java | 1 + 9 files changed, 49 insertions(+), 2 deletions(-) diff --git a/src/test/java/net/minestom/server/ServerProcessTest.java b/src/test/java/net/minestom/server/ServerProcessTest.java index 07bf2a6fbac..00259a2531b 100644 --- a/src/test/java/net/minestom/server/ServerProcessTest.java +++ b/src/test/java/net/minestom/server/ServerProcessTest.java @@ -21,6 +21,7 @@ void init() { assertDoesNotThrow(() -> process.get().start(new InetSocketAddress("localhost", 25565))); assertThrows(Exception.class, () -> process.get().start(new InetSocketAddress("localhost", 25566))); assertDoesNotThrow(() -> process.get().stop()); + process.set(null); } @Test diff --git a/src/test/java/net/minestom/server/collision/EntityProjectileCollisionIntegrationTest.java b/src/test/java/net/minestom/server/collision/EntityProjectileCollisionIntegrationTest.java index a045ae71e75..b3f018ab0f5 100644 --- a/src/test/java/net/minestom/server/collision/EntityProjectileCollisionIntegrationTest.java +++ b/src/test/java/net/minestom/server/collision/EntityProjectileCollisionIntegrationTest.java @@ -71,6 +71,8 @@ void blockShootAndBlockRemoval(Env env) { assertNotNull(event); assertNotNull(event2); assertEquals(blockPosition.withY(y -> y - 1), new Vec(event.getCollisionPosition().blockX(), event.getCollisionPosition().blockY(), event.getCollisionPosition().blockZ())); + eventRef.set(null); + eventRef2.set(null); } @Test @@ -151,6 +153,6 @@ void entitySelfShoot(Env env) { assertNotNull(event); assertSame(shooter, event.getTarget()); assertTrue(shooter.getBoundingBox().intersectEntity(shooter.getPosition(), projectile)); + eventRef.set(null); } - } diff --git a/src/test/java/net/minestom/server/command/CommandParseTest.java b/src/test/java/net/minestom/server/command/CommandParseTest.java index 6e9e74f4d86..6f8143715ba 100644 --- a/src/test/java/net/minestom/server/command/CommandParseTest.java +++ b/src/test/java/net/minestom/server/command/CommandParseTest.java @@ -89,6 +89,7 @@ void singleCommandOptionalArgs() { assertValid(foo, "foo T", b); expectedFirstArg.set("A"); assertValid(foo, "foo", b); + expectedFirstArg.set(null); } @Test diff --git a/src/test/java/net/minestom/server/command/CommandSyntaxSingleTest.java b/src/test/java/net/minestom/server/command/CommandSyntaxSingleTest.java index 4380bd5be50..57428a4746b 100644 --- a/src/test/java/net/minestom/server/command/CommandSyntaxSingleTest.java +++ b/src/test/java/net/minestom/server/command/CommandSyntaxSingleTest.java @@ -174,6 +174,9 @@ private static void assertSyntax(List> args, String input, ExpectedE if (expectedValues != null) { assertEquals(expectedValues, values.get()); } + + result.set(null); + values.set(null); } private static void assertSyntax(List> args, String input, ExpectedExecution expectedExecution) { diff --git a/src/test/java/net/minestom/server/entity/player/PlayerMovementIntegrationTest.java b/src/test/java/net/minestom/server/entity/player/PlayerMovementIntegrationTest.java index 8aeea4f6d9d..0cfa87e6464 100644 --- a/src/test/java/net/minestom/server/entity/player/PlayerMovementIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/player/PlayerMovementIntegrationTest.java @@ -47,6 +47,8 @@ void teleportConfirm(Env env) { p1.addPacketToQueue(new ClientPlayerPositionPacket(new Pos(0.2, 40, 0), true)); p1.interpretPacketQueue(); assertEquals(new Pos(0.2, 40, 0), p1.getPosition()); + p1.remove(); + env.destroyInstance(instance); } // FIXME @@ -119,6 +121,8 @@ void chunkUpdateDebounceTest(Env env) { player.addPacketToQueue(new ClientPlayerPositionPacket(new Vec(16.5, 40, -16.5), true)); player.interpretPacketQueue(); chunkDataPacketCollector.assertCount(viewDiameter * 2 - 1); + player.remove(); + env.destroyInstance(flatInstance); } @Test @@ -140,6 +144,39 @@ void testClientViewDistanceSettings(Env env) { player.addPacketToQueue(new ClientPlayerPositionPacket(new Vec(160.5, 40, 160.5), true)); player.interpretPacketQueue(); chunkDataPacketCollector.assertCount(MathUtils.square(viewDistance * 2 + 1)); + player.remove(); + env.destroyInstance(flatInstance); + } + + @Test + public void testSettingsViewDistanceExpansionAndShrink(Env env) { + int startingViewDistance = 8; + byte endViewDistance = 12; + byte finalViewDistance = 10; + var instance = env.createFlatInstance(); + var connection = env.createConnection(); + Pos startingPlayerPos = new Pos(0, 42, 0); + var player = connection.connect(instance, startingPlayerPos).join(); + + int chunkDifference = ChunkUtils.getChunkCount(endViewDistance) - ChunkUtils.getChunkCount(startingViewDistance); + // Preload chunks, otherwise our first tracker.assertCount call will fail randomly due to chunks being loaded off the main thread + Set> chunks = new HashSet<>(); + ChunkUtils.forChunksInRange(0, 0, endViewDistance, (v1, v2) -> chunks.add(instance.loadChunk(v1, v2))); + CompletableFuture.allOf(chunks.toArray(CompletableFuture[]::new)).join(); + + var tracker = connection.trackIncoming(ChunkDataPacket.class); + player.addPacketToQueue(new ClientSettingsPacket("en_US", endViewDistance, ChatMessageType.FULL, false, (byte) 0, Player.MainHand.RIGHT, false, true)); + player.interpretPacketQueue(); + tracker.assertCount(chunkDifference); + + var tracker1 = connection.trackIncoming(UnloadChunkPacket.class); + player.addPacketToQueue(new ClientSettingsPacket("en_US", finalViewDistance, ChatMessageType.FULL, false, (byte) 0, Player.MainHand.RIGHT, false, true)); + player.interpretPacketQueue(); + + int chunkDifference1 = ChunkUtils.getChunkCount(endViewDistance) - ChunkUtils.getChunkCount(finalViewDistance); + tracker1.assertCount(chunkDifference1); + player.remove(); + env.destroyInstance(instance); } @Test diff --git a/src/test/java/net/minestom/server/instance/GeneratorIntegrationTest.java b/src/test/java/net/minestom/server/instance/GeneratorIntegrationTest.java index 48cd288faa7..3aa407ca42b 100644 --- a/src/test/java/net/minestom/server/instance/GeneratorIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/GeneratorIntegrationTest.java @@ -47,6 +47,7 @@ void exceptionCatch(Env env) { instance.loadChunk(0, 0).join(); assertSame(exception, ref.get()); + ref.set(null); } @Test diff --git a/src/test/java/net/minestom/server/instance/InstanceBlockIntegrationTest.java b/src/test/java/net/minestom/server/instance/InstanceBlockIntegrationTest.java index ce35c6f0829..c9306d1f4a4 100644 --- a/src/test/java/net/minestom/server/instance/InstanceBlockIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/InstanceBlockIntegrationTest.java @@ -83,7 +83,6 @@ void blockNbt(Env env) { @Test public void handlerPresentInPlacementRuleUpdate(Env env) { - AtomicReference currentBlock = new AtomicReference<>(); env.process().block().registerHandler(SuspiciousGravelBlockHandler.INSTANCE.getNamespaceId(), () -> SuspiciousGravelBlockHandler.INSTANCE); env.process().block().registerBlockPlacementRule(new BlockPlacementRule(Block.SUSPICIOUS_GRAVEL) { @@ -105,5 +104,6 @@ public void handlerPresentInPlacementRuleUpdate(Env env) { instance.setBlock(1, 50, 0, theBlock); assertEquals(theBlock, currentBlock.get()); + currentBlock.set(null); } } diff --git a/src/test/java/net/minestom/server/instance/anvil/AnvilLoaderIntegrationTest.java b/src/test/java/net/minestom/server/instance/anvil/AnvilLoaderIntegrationTest.java index 953106b9878..dd4f72e0627 100644 --- a/src/test/java/net/minestom/server/instance/anvil/AnvilLoaderIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/anvil/AnvilLoaderIntegrationTest.java @@ -74,6 +74,7 @@ public void parallelSaveNonexistentFiles(Env env) throws Exception { }); instance.saveChunksToStorage().join(); assertNull(exception.get()); + exception.set(null); } @Test diff --git a/src/test/java/net/minestom/server/instance/generator/GeneratorForkConsumerIntegrationTest.java b/src/test/java/net/minestom/server/instance/generator/GeneratorForkConsumerIntegrationTest.java index f706fc0ab65..5bed80e72e9 100644 --- a/src/test/java/net/minestom/server/instance/generator/GeneratorForkConsumerIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/generator/GeneratorForkConsumerIntegrationTest.java @@ -32,6 +32,7 @@ void empty(Env env) { }); instance.loadChunk(0, 0).join(); assertNull(failed.get(), "Failed: " + failed.get()); + failed.set(null); } @Test From 4bbc693ce7232ec28e628761d0ca9257735ccb5d Mon Sep 17 00:00:00 2001 From: theEvilReaper Date: Fri, 13 Sep 2024 11:02:02 +0200 Subject: [PATCH 35/93] Cache the result of the values method --- .../server/instance/block/BlockFace.java | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minestom/server/instance/block/BlockFace.java b/src/main/java/net/minestom/server/instance/block/BlockFace.java index ec69fe23689..cc5bc2ceca8 100644 --- a/src/main/java/net/minestom/server/instance/block/BlockFace.java +++ b/src/main/java/net/minestom/server/instance/block/BlockFace.java @@ -3,7 +3,13 @@ import net.minestom.server.utils.Direction; import org.jetbrains.annotations.NotNull; +/** + * The enumeration contains all faces which a block can have in the game. + * It's possible that specific blocks doesn't have all faces + * @version 1.0.1 + */ public enum BlockFace { + BOTTOM(Direction.DOWN), TOP(Direction.UP), NORTH(Direction.NORTH), @@ -11,13 +17,25 @@ public enum BlockFace { WEST(Direction.WEST), EAST(Direction.EAST); + private static final BlockFace[] VALUES = values(); + private final Direction direction; - BlockFace(Direction direction) { + /** + * Creates a new enum entry + * + * @param direction the direction for the entry + */ + BlockFace(@NotNull Direction direction) { this.direction = direction; } - public Direction toDirection() { + /** + * Returns the {@link Direction} which correspond with the face. + * + * @return the given direction + */ + public @NotNull Direction toDirection() { return direction; } @@ -77,4 +95,12 @@ public static BlockFace fromDirection(Direction direction) { case EAST -> EAST; }; } + + /** + * Returns the static accessor which caches all entries from the values call. + * @return the given array + */ + public static @NotNull BlockFace[] getValues() { + return VALUES; + } } From 4c75edd79be45d8a7c7034a34d14183ccf7a7c1e Mon Sep 17 00:00:00 2001 From: theEvilReaper Date: Fri, 13 Sep 2024 11:02:25 +0200 Subject: [PATCH 36/93] Update BlockFace iteration --- .../java/net/minestom/server/collision/ShapeImpl.java | 4 ++-- .../net/minestom/server/instance/light/BlockLight.java | 4 ++-- .../java/net/minestom/server/instance/light/Light.java | 6 ++++-- .../net/minestom/server/instance/light/SkyLight.java | 4 ++-- .../packet/client/play/ClientPlayerDiggingPacket.java | 2 +- .../server/instance/light/BlockIsOccludedTest.java | 10 +++++----- 6 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/main/java/net/minestom/server/collision/ShapeImpl.java b/src/main/java/net/minestom/server/collision/ShapeImpl.java index 82b1ea497b6..f6c097c40ce 100644 --- a/src/main/java/net/minestom/server/collision/ShapeImpl.java +++ b/src/main/java/net/minestom/server/collision/ShapeImpl.java @@ -208,7 +208,7 @@ private static CollisionData collisionData(List collisionBoundingBo } byte fullCollisionFaces = 0; - for (BlockFace f : BlockFace.values()) { + for (BlockFace f : BlockFace.getValues()) { final byte res = isFaceCovered(computeOcclusionSet(f, collisionBoundingBoxes)); fullCollisionFaces |= ((res == 2) ? 0b1 : 0b0) << (byte) f.ordinal(); } @@ -219,7 +219,7 @@ private static CollisionData collisionData(List collisionBoundingBo private static LightData lightData(List occlusionBoundingBoxes, int lightEmission) { byte fullFaces = 0; byte airFaces = 0; - for (BlockFace f : BlockFace.values()) { + for (BlockFace f : BlockFace.getValues()) { final byte res = isFaceCovered(computeOcclusionSet(f, occlusionBoundingBoxes)); fullFaces |= ((res == 2) ? 0b1 : 0b0) << (byte) f.ordinal(); airFaces |= ((res == 0) ? 0b1 : 0b0) << (byte) f.ordinal(); diff --git a/src/main/java/net/minestom/server/instance/light/BlockLight.java b/src/main/java/net/minestom/server/instance/light/BlockLight.java index 244940fc430..f0b5109ae46 100644 --- a/src/main/java/net/minestom/server/instance/light/BlockLight.java +++ b/src/main/java/net/minestom/server/instance/light/BlockLight.java @@ -52,7 +52,7 @@ private ShortArrayFIFOQueue buildExternalQueue(Palette blockPalette, ShortArrayFIFOQueue lightSources = new ShortArrayFIFOQueue(); for (int i = 0; i < neighbors.length; i++) { - final BlockFace face = BlockFace.values()[i]; + final BlockFace face = BlockFace.getValues()[i]; Point neighborSection = neighbors[i]; if (neighborSection == null) continue; @@ -203,7 +203,7 @@ public Set calculateExternal(Palette blockPalette, for (int i = 0; i < neighbors.length; i++) { final Point neighbor = neighbors[i]; if (neighbor == null) continue; - final BlockFace face = BlockFace.values()[i]; + final BlockFace face = BlockFace.getValues()[i]; if (!LightCompute.compareBorders(content, contentPropagation, contentPropagationTemp, face)) { toUpdate.add(neighbor); } diff --git a/src/main/java/net/minestom/server/instance/light/Light.java b/src/main/java/net/minestom/server/instance/light/Light.java index 45216c834a7..add0d2f1a4c 100644 --- a/src/main/java/net/minestom/server/instance/light/Light.java +++ b/src/main/java/net/minestom/server/instance/light/Light.java @@ -51,8 +51,10 @@ static Point[] getNeighbors(Chunk chunk, int sectionY) { final int chunkX = chunk.getChunkX(); final int chunkZ = chunk.getChunkZ(); - Point[] links = new Vec[BlockFace.values().length]; - for (BlockFace face : BlockFace.values()) { + final BlockFace[] faces = BlockFace.getValues(); + + Point[] links = new Vec[faces.length]; + for (BlockFace face : faces) { final Direction direction = face.toDirection(); final int x = chunkX + direction.normalX(); final int z = chunkZ + direction.normalZ(); diff --git a/src/main/java/net/minestom/server/instance/light/SkyLight.java b/src/main/java/net/minestom/server/instance/light/SkyLight.java index 6a79b672048..e44291d9c85 100644 --- a/src/main/java/net/minestom/server/instance/light/SkyLight.java +++ b/src/main/java/net/minestom/server/instance/light/SkyLight.java @@ -54,7 +54,7 @@ private ShortArrayFIFOQueue buildExternalQueue(Palette blockPalette, ShortArrayFIFOQueue lightSources = new ShortArrayFIFOQueue(); for (int i = 0; i < neighbors.length; i++) { - final BlockFace face = BlockFace.values()[i]; + final BlockFace face = BlockFace.getValues()[i]; Point neighborSection = neighbors[i]; if (neighborSection == null) continue; @@ -225,7 +225,7 @@ public Set calculateExternal(Palette blockPalette, for (int i = 0; i < neighbors.length; i++) { final Point neighbor = neighbors[i]; if (neighbor == null) continue; - final BlockFace face = BlockFace.values()[i]; + final BlockFace face = BlockFace.getValues()[i]; if (!LightCompute.compareBorders(content, contentPropagation, contentPropagationTemp, face)) { toUpdate.add(neighbor); } diff --git a/src/main/java/net/minestom/server/network/packet/client/play/ClientPlayerDiggingPacket.java b/src/main/java/net/minestom/server/network/packet/client/play/ClientPlayerDiggingPacket.java index c6c8c08b18a..a39026f5327 100644 --- a/src/main/java/net/minestom/server/network/packet/client/play/ClientPlayerDiggingPacket.java +++ b/src/main/java/net/minestom/server/network/packet/client/play/ClientPlayerDiggingPacket.java @@ -12,7 +12,7 @@ public record ClientPlayerDiggingPacket(@NotNull Status status, @NotNull Point b @NotNull BlockFace blockFace, int sequence) implements ClientPacket { public ClientPlayerDiggingPacket(@NotNull NetworkBuffer reader) { this(reader.readEnum(Status.class), reader.read(BLOCK_POSITION), - BlockFace.values()[reader.read(BYTE)], reader.read(VAR_INT)); + BlockFace.getValues()[reader.read(BYTE)], reader.read(VAR_INT)); } @Override diff --git a/src/test/java/net/minestom/server/instance/light/BlockIsOccludedTest.java b/src/test/java/net/minestom/server/instance/light/BlockIsOccludedTest.java index 0160c531571..c2457c6b128 100644 --- a/src/test/java/net/minestom/server/instance/light/BlockIsOccludedTest.java +++ b/src/test/java/net/minestom/server/instance/light/BlockIsOccludedTest.java @@ -15,7 +15,7 @@ class BlockIsOccludedTest { void blockAir() { Shape airBlock = Block.AIR.registry().collisionShape(); - for (BlockFace face : BlockFace.values()) { + for (BlockFace face : BlockFace.getValues()) { assertFalse(airBlock.isOccluded(airBlock, face)); } } @@ -25,7 +25,7 @@ void blockLantern() { Shape shape = Block.LANTERN.registry().collisionShape(); Shape airBlock = Block.AIR.registry().collisionShape(); - for (BlockFace face : BlockFace.values()) { + for (BlockFace face : BlockFace.getValues()) { assertFalse(shape.isOccluded(airBlock, face)); } } @@ -35,7 +35,7 @@ void blockSpruceLeaves() { Shape shape = Block.SPRUCE_LEAVES.registry().collisionShape(); Shape airBlock = Block.AIR.registry().collisionShape(); - for (BlockFace face : BlockFace.values()) { + for (BlockFace face : BlockFace.getValues()) { assertFalse(shape.isOccluded(airBlock, face)); } } @@ -45,7 +45,7 @@ void blockCauldron() { Shape shape = Block.CAULDRON.registry().collisionShape(); Shape airBlock = Block.AIR.registry().collisionShape(); - for (BlockFace face : BlockFace.values()) { + for (BlockFace face : BlockFace.getValues()) { assertFalse(shape.isOccluded(airBlock, face)); } } @@ -114,7 +114,7 @@ void blockStone() { Shape shape = Block.STONE.registry().collisionShape(); Shape airBlock = Block.AIR.registry().collisionShape(); - for (BlockFace face : BlockFace.values()) { + for (BlockFace face : BlockFace.getValues()) { assertTrue(shape.isOccluded(airBlock, face)); } } From 6bd23aefb7160ac7678b519d36ae7d413b3def2d Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Sat, 14 Sep 2024 16:23:38 +0200 Subject: [PATCH 37/93] Add test for update feature packet --- .../UpdateEnabledFeaturesPacketTest.java | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 src/test/java/net/minestom/server/network/packet/UpdateEnabledFeaturesPacketTest.java diff --git a/src/test/java/net/minestom/server/network/packet/UpdateEnabledFeaturesPacketTest.java b/src/test/java/net/minestom/server/network/packet/UpdateEnabledFeaturesPacketTest.java new file mode 100644 index 00000000000..b7f8406cb7c --- /dev/null +++ b/src/test/java/net/minestom/server/network/packet/UpdateEnabledFeaturesPacketTest.java @@ -0,0 +1,60 @@ +package net.minestom.server.network.packet; + +import net.minestom.server.network.NetworkBuffer; +import net.minestom.server.network.packet.server.ServerPacketIdentifier; +import net.minestom.server.network.packet.server.configuration.UpdateEnabledFeaturesPacket; +import net.minestom.server.utils.NamespaceID; +import org.junit.jupiter.api.Test; + +import java.util.HashSet; +import java.util.Set; + +import static org.junit.jupiter.api.Assertions.*; + +class UpdateEnabledFeaturesPacketTest { + + @Test + void constructorWithBufferReadsCorrectly() { + NetworkBuffer buffer = new NetworkBuffer(); + UpdateEnabledFeaturesPacket updateEnabledFeaturesPacket = new UpdateEnabledFeaturesPacket(Set.of(NamespaceID.from("namespace:feature1"), NamespaceID.from("namespace:feature2"))); + updateEnabledFeaturesPacket.write(buffer); + UpdateEnabledFeaturesPacket packet = new UpdateEnabledFeaturesPacket(buffer); + + assertEquals(2, packet.features().size()); + assertTrue(packet.features().contains(NamespaceID.from("namespace:feature1"))); + assertTrue(packet.features().contains(NamespaceID.from("namespace:feature2"))); + } + + + @Test + void configurationIdReturnsCorrectId() { + UpdateEnabledFeaturesPacket packet = new UpdateEnabledFeaturesPacket(Set.of()); + assertEquals(ServerPacketIdentifier.CONFIGURATION_UPDATE_ENABLED_FEATURES, packet.configurationId()); + } + + @Test + void constructorWithBufferHandlesEmptySet() { + NetworkBuffer buffer = new NetworkBuffer(); + UpdateEnabledFeaturesPacket updateEnabledFeaturesPacket = new UpdateEnabledFeaturesPacket(Set.of()); + updateEnabledFeaturesPacket.write(buffer); + + UpdateEnabledFeaturesPacket packet = new UpdateEnabledFeaturesPacket(buffer); + + assertTrue(packet.features().isEmpty()); + } + + @Test + void constructorWithBufferHandlesMaxFeatures() { + Set maxFeatures = new HashSet<>(); + for (int i = 0; i < UpdateEnabledFeaturesPacket.MAX_FEATURES; i++) { + maxFeatures.add(NamespaceID.from("namespace:feature" + i)); + } + NetworkBuffer buffer = new NetworkBuffer(); + UpdateEnabledFeaturesPacket updateEnabledFeaturesPacket = new UpdateEnabledFeaturesPacket(maxFeatures); + updateEnabledFeaturesPacket.write(buffer); + + UpdateEnabledFeaturesPacket packet = new UpdateEnabledFeaturesPacket(buffer); + + assertEquals(UpdateEnabledFeaturesPacket.MAX_FEATURES, packet.features().size()); + } +} \ No newline at end of file From a671c4a5b867e95280a88bafbd7d4cebf4e193a4 Mon Sep 17 00:00:00 2001 From: Steffen Wonning Date: Thu, 19 Sep 2024 20:50:58 +0200 Subject: [PATCH 38/93] Remove old notification system (#76) --- .../notifications/Notification.java | 20 ----- .../notifications/NotificationCenter.java | 81 ------------------- 2 files changed, 101 deletions(-) delete mode 100644 src/main/java/net/minestom/server/advancements/notifications/Notification.java delete mode 100644 src/main/java/net/minestom/server/advancements/notifications/NotificationCenter.java diff --git a/src/main/java/net/minestom/server/advancements/notifications/Notification.java b/src/main/java/net/minestom/server/advancements/notifications/Notification.java deleted file mode 100644 index e84bf5339aa..00000000000 --- a/src/main/java/net/minestom/server/advancements/notifications/Notification.java +++ /dev/null @@ -1,20 +0,0 @@ -package net.minestom.server.advancements.notifications; - -import net.kyori.adventure.text.Component; -import net.minestom.server.advancements.FrameType; -import net.minestom.server.item.ItemStack; -import net.minestom.server.item.Material; -import org.jetbrains.annotations.NotNull; - -/** - * Represents a message which can be sent using the {@link NotificationCenter}. - * @since 1.0.0 - * @deprecated As of Minestom 22a8ccabfae38c53df0605000aa7eed49765c1ab, because the Maintainability is very hard and - * can break everytime from Mojang side because bad api design use {@link net.minestom.server.notifications.Notification#builder()} instead. - */ -@Deprecated(since = "1.4.1", forRemoval = true) -public record Notification(@NotNull Component title, @NotNull FrameType frameType, @NotNull ItemStack icon) { - public Notification(@NotNull Component title, @NotNull FrameType frameType, @NotNull Material icon) { - this(title, frameType, ItemStack.of(icon)); - } -} diff --git a/src/main/java/net/minestom/server/advancements/notifications/NotificationCenter.java b/src/main/java/net/minestom/server/advancements/notifications/NotificationCenter.java deleted file mode 100644 index 968c75fbd21..00000000000 --- a/src/main/java/net/minestom/server/advancements/notifications/NotificationCenter.java +++ /dev/null @@ -1,81 +0,0 @@ -package net.minestom.server.advancements.notifications; - -import net.kyori.adventure.text.Component; -import net.minestom.server.entity.Player; -import net.minestom.server.network.packet.server.play.AdvancementsPacket; -import org.jetbrains.annotations.NotNull; - -import java.util.Collection; -import java.util.List; - -/** - * @since 1.0.0 - * Used to send one or multiples {@link Notification}. - *

    - * Works by sending a completed advancement and remove it immediately. - *

    - * You can simply create a {@link Notification} object and call {@link #send(Notification, Player)}. - * @deprecated As of Minestom 22a8ccabfae38c53df0605000aa7eed49765c1ab, because the Maintainability is very hard and - * can break everytime from Mojang side because bad api design use {@link net.minestom.server.notifications.Notification#builder()} instead. - */ -@Deprecated(since = "1.4.1", forRemoval = true) -public final class NotificationCenter { - private static final String IDENTIFIER = "minestom:notification"; - private static final AdvancementsPacket REMOVE_PACKET = new AdvancementsPacket(false, List.of(), List.of(IDENTIFIER), List.of()); - - /** - * Can't create an instance, use the static methods instead. - */ - private NotificationCenter() { - } - - /** - * Send a {@link Notification} to one player. - * - * @param notification the {@link Notification} to send - * @param player the player to send the notification to - */ - public static void send(@NotNull Notification notification, @NotNull Player player) { - player.sendPacket(createPacket(notification)); - player.sendPacket(REMOVE_PACKET); - } - - /** - * Send a {@link Notification} to a collection of players. - * - * @param notification the {@link Notification} to send - * @param players the collection of players to send the notification to - */ - public static void send(@NotNull Notification notification, @NotNull Collection players) { - // Can't use PacketWriterUtils because we need the packets to come in the correct order - players.forEach(player -> send(notification, player)); - } - - /** - * Create the {@link AdvancementsPacket} responsible for showing the Toast to players - * - * @param notification the notification - * @return the packet used to show the Toast - */ - private static AdvancementsPacket createPacket(Notification notification) { - // For An advancement to be shown, it must have all of its criteria achieved (progress 100%) - // Create a Criteria that we can set to 100% achieved. - final var displayData = new AdvancementsPacket.DisplayData( - notification.title(), Component.text("Articdive was here. #Minestom"), - notification.icon(), notification.frameType(), - 0x6, null, 0f, 0f); - - final var criteria = new AdvancementsPacket.Criteria("minestom:some_criteria", - new AdvancementsPacket.CriterionProgress(System.currentTimeMillis())); - - final var advancement = new AdvancementsPacket.Advancement(null, displayData, - List.of(new AdvancementsPacket.Requirement(List.of(criteria.criterionIdentifier()))), - false); - - final var mapping = new AdvancementsPacket.AdvancementMapping(IDENTIFIER, advancement); - final var progressMapping = new AdvancementsPacket.ProgressMapping(IDENTIFIER, - new AdvancementsPacket.AdvancementProgress(List.of(criteria))); - - return new AdvancementsPacket(false, List.of(mapping), List.of(), List.of(progressMapping)); - } -} From dd16741e855c97ef953a89f377138f83bdc86219 Mon Sep 17 00:00:00 2001 From: Steffen Wonning Date: Wed, 2 Oct 2024 09:18:01 +0200 Subject: [PATCH 39/93] Improve pattern usage (#80) --- .../server/utils/mojang/MojangUtils.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/java/net/minestom/server/utils/mojang/MojangUtils.java b/src/main/java/net/minestom/server/utils/mojang/MojangUtils.java index e4aa269faec..dab724b018e 100644 --- a/src/main/java/net/minestom/server/utils/mojang/MojangUtils.java +++ b/src/main/java/net/minestom/server/utils/mojang/MojangUtils.java @@ -9,6 +9,7 @@ import java.io.IOException; import java.util.UUID; +import java.util.regex.Pattern; /** * Utils class using mojang API. @@ -16,6 +17,12 @@ public final class MojangUtils { private static final String FROM_UUID_URL = "https://sessionserver.mojang.com/session/minecraft/profile/%s?unsigned=false"; private static final String FROM_USERNAME_URL = "https://api.mojang.com/users/profiles/minecraft/%s"; + private static final Pattern UUID_PATTERN = + Pattern.compile("(\\p{XDigit}{8})(\\p{XDigit}{4})(\\p{XDigit}{4})(\\p{XDigit}{4})(\\p{XDigit}+)"); + + private MojangUtils() { + // Private constructor to prevent instantiation of the utility class + } /** * Gets a player's UUID from their username @@ -27,14 +34,8 @@ public final class MojangUtils { @Blocking public static @NotNull UUID getUUID(String username) throws IOException { // Thanks stackoverflow: https://stackoverflow.com/a/19399768/13247146 - return UUID.fromString( - retrieve(String.format(FROM_USERNAME_URL, username)).get("id") - .getAsString() - .replaceFirst( - "(\\p{XDigit}{8})(\\p{XDigit}{4})(\\p{XDigit}{4})(\\p{XDigit}{4})(\\p{XDigit}+)", - "$1-$2-$3-$4-$5" - ) - ); + String uuidString = retrieve(String.format(FROM_USERNAME_URL, username)).get("id").getAsString(); + return UUID.fromString(UUID_PATTERN.matcher(uuidString).replaceFirst("$1-$2-$3-$4-$5")); } /** From add0a291e707baf02ebe51cbc526ae7d48176da6 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Tue, 15 Oct 2024 20:33:20 +0200 Subject: [PATCH 40/93] Fix custom player provider usage for junit (#81) * Add possibility for custom player provider * Improve documentation for custom player provider method at test connection --- .../net/minestom/testing/TestConnection.java | 44 +++++++++++++++++++ .../minestom/testing/TestConnectionImpl.java | 12 +++-- 2 files changed, 53 insertions(+), 3 deletions(-) diff --git a/testing/src/main/java/net/minestom/testing/TestConnection.java b/testing/src/main/java/net/minestom/testing/TestConnection.java index c25b74be0e6..a2c37dea7fa 100644 --- a/testing/src/main/java/net/minestom/testing/TestConnection.java +++ b/testing/src/main/java/net/minestom/testing/TestConnection.java @@ -3,16 +3,60 @@ import net.minestom.server.coordinate.Pos; import net.minestom.server.entity.Player; import net.minestom.server.instance.Instance; +import net.minestom.server.network.PlayerProvider; import net.minestom.server.network.packet.server.ServerPacket; import org.jetbrains.annotations.NotNull; import java.util.concurrent.CompletableFuture; +/** + * Represents a connection to a test server. + */ public interface TestConnection { + + /** + * Sets the custom player provider for this test connection. + *
    + * For a successful test you need to override the sendChunk method in the player implementation. + * Example: + *

    {@code
    +     * public class CustomGamePlayerImpl extends Player {
    +     *    public CustomGamePlayerImpl(UUID uuid, String username, PlayerConnection playerConnection) {
    +     *      super(uuid, username, playerConnection);
    +     *    }
    +     *    @Override
    +     *    public void sendChunk(Chunk chunk) {
    +     *      sendPacket(chunk.getFullDataPacket());
    +     *    }
    +     * }
    +     * }
    + * @param provider the custom player provider + */ + void setCustomPlayerProvider(@NotNull PlayerProvider provider); + + /** + * Connects a player to the server. + * + * @param instance the instance to spawn the player in + * @param pos the position to spawn the player at + * @return a future that completes when the player is connected + */ @NotNull CompletableFuture<@NotNull Player> connect(@NotNull Instance instance, @NotNull Pos pos); + /** + * Tracks incoming packets of a specific type. + * + * @param type the packet type to track + * @param the packet type + * @return a collector for the tracked packets + */ @NotNull Collector trackIncoming(@NotNull Class type); + /** + * Tracks all incoming packets. + * + * @return a collector for all incoming packets + */ default @NotNull Collector trackIncoming() { return trackIncoming(ServerPacket.class); } diff --git a/testing/src/main/java/net/minestom/testing/TestConnectionImpl.java b/testing/src/main/java/net/minestom/testing/TestConnectionImpl.java index f6d963728d5..588dc50145d 100644 --- a/testing/src/main/java/net/minestom/testing/TestConnectionImpl.java +++ b/testing/src/main/java/net/minestom/testing/TestConnectionImpl.java @@ -8,6 +8,7 @@ import net.minestom.server.event.player.AsyncPlayerConfigurationEvent; import net.minestom.server.instance.Instance; import net.minestom.server.network.ConnectionState; +import net.minestom.server.network.PlayerProvider; import net.minestom.server.network.packet.server.SendablePacket; import net.minestom.server.network.packet.server.ServerPacket; import net.minestom.server.network.packet.server.configuration.SelectKnownPacksPacket; @@ -18,26 +19,31 @@ import java.net.SocketAddress; import java.util.List; import java.util.Objects; +import java.util.Optional; import java.util.UUID; import java.util.concurrent.CompletableFuture; import java.util.concurrent.CopyOnWriteArrayList; final class TestConnectionImpl implements TestConnection { - private final Env env; private final ServerProcess process; private final PlayerConnectionImpl playerConnection = new PlayerConnectionImpl(); + private volatile Optional playerProvider = Optional.of(TestPlayerImpl::new); private final List> incomingTrackers = new CopyOnWriteArrayList<>(); TestConnectionImpl(Env env) { - this.env = env; this.process = env.process(); } + @Override + public void setCustomPlayerProvider(@NotNull PlayerProvider provider) { + this.playerProvider = Optional.ofNullable(provider); + } + @Override public @NotNull CompletableFuture connect(@NotNull Instance instance, @NotNull Pos pos) { // Use player provider to disable queued chunk sending - process.connection().setPlayerProvider(TestPlayerImpl::new); + process.connection().setPlayerProvider(playerProvider.orElse(TestPlayerImpl::new)); playerConnection.setConnectionState(ConnectionState.LOGIN); var player = process.connection().createPlayer(playerConnection, UUID.randomUUID(), "RandName"); From 4ab788f0c379d64ada1bd42291e788e9a3ce9e1f Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Fri, 18 Oct 2024 11:16:01 +0200 Subject: [PATCH 41/93] Update renovate config --- .github/renovate.json | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/.github/renovate.json b/.github/renovate.json index d6f400829b8..6d4ba5a3a9a 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -1,8 +1,7 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": [ - "config:base", - ":semanticCommitsDisabled" + "config:base" ], "regexManagers": [ { @@ -18,8 +17,33 @@ "datasourceTemplate": "maven" } ], + "packageRules": [ + { + "matchUpdateTypes": [ + "patch" + ], + "automerge": true, + "automergeType": "branch", + "groupName": "patch", + "schedule": [ + "after 10pm and before 6:00am every day" + ] + }, + { + "matchUpdateTypes": [ + "minor" + ], + "automerge": false, + "schedule": [ + "before 6:00am every friday" + ] + } + ], "ignoreDeps": [], "labels": ["Renovate"], "rebaseWhen": "conflicted", - "schedule": ["on the first day of the month"] + "vulnerabilityAlerts": { + "labels": ["Component::security"], + "automerge": true + } } \ No newline at end of file From aa49872d4e5c64cd4116271ec5caa607b6fb5a95 Mon Sep 17 00:00:00 2001 From: Joltras <72395471+Joltras@users.noreply.github.com> Date: Mon, 21 Oct 2024 19:57:43 +0200 Subject: [PATCH 42/93] Add flag to modify the maximum amount of usable ServerLinks (#85) * Add flag for the maximum amount of ServerLinks * Update constant usage --- src/main/java/net/minestom/server/ServerFlag.java | 1 + .../network/packet/server/common/ServerLinksPacket.java | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minestom/server/ServerFlag.java b/src/main/java/net/minestom/server/ServerFlag.java index d28705e1392..f951facb4f3 100644 --- a/src/main/java/net/minestom/server/ServerFlag.java +++ b/src/main/java/net/minestom/server/ServerFlag.java @@ -27,6 +27,7 @@ public final class ServerFlag { public static final int POOLED_BUFFER_SIZE = intProperty("minestom.pooled-buffer-size", 262_143); public static final int SEND_LIGHT_AFTER_BLOCK_PLACEMENT_DELAY = intProperty("minestom.send-light-after-block-placement-delay", 100); public static final long LOGIN_PLUGIN_MESSAGE_TIMEOUT = longProperty("minestom.login-plugin-message-timeout", 5_000); + public static final int SERVER_LINK_AMOUNT = intProperty("minestom.server-link-amount", 100); // Network rate limiting public static final int PLAYER_PACKET_PER_TICK = intProperty("minestom.packet-per-tick", 50); diff --git a/src/main/java/net/minestom/server/network/packet/server/common/ServerLinksPacket.java b/src/main/java/net/minestom/server/network/packet/server/common/ServerLinksPacket.java index 3c98bc06d80..e5c34546d64 100644 --- a/src/main/java/net/minestom/server/network/packet/server/common/ServerLinksPacket.java +++ b/src/main/java/net/minestom/server/network/packet/server/common/ServerLinksPacket.java @@ -1,6 +1,7 @@ package net.minestom.server.network.packet.server.common; import net.kyori.adventure.text.Component; +import net.minestom.server.ServerFlag; import net.minestom.server.network.NetworkBuffer; import net.minestom.server.network.packet.server.ServerPacket; import net.minestom.server.network.packet.server.ServerPacketIdentifier; @@ -11,7 +12,6 @@ import java.util.List; public record ServerLinksPacket(@NotNull List entries) implements ServerPacket.Configuration, ServerPacket.Play { - private static final int MAX_ENTRIES = 100; public ServerLinksPacket { entries = List.copyOf(entries); @@ -64,7 +64,7 @@ public Entry read(@NotNull NetworkBuffer buffer) { } } }; - public static final NetworkBuffer.Type> LIST_NETWORK_TYPE = NETWORK_TYPE.list(MAX_ENTRIES); + public static final NetworkBuffer.Type> LIST_NETWORK_TYPE = NETWORK_TYPE.list(ServerFlag.SERVER_LINK_AMOUNT); public Entry { Check.argCondition(knownType == null && customType == null, "One of knownType and customType must be present"); From 9e277aad2ba3a30ec6d842a7c9ab2518619b54a8 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Mon, 28 Oct 2024 12:39:39 +0100 Subject: [PATCH 43/93] Fix potential protocol mismatch and exploit --- .../java/net/minestom/server/entity/Player.java | 15 +++++++++++++++ .../packet/server/common/PluginMessagePacket.java | 9 +++++---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/main/java/net/minestom/server/entity/Player.java b/src/main/java/net/minestom/server/entity/Player.java index cc19d22a6ea..040c26cefd2 100644 --- a/src/main/java/net/minestom/server/entity/Player.java +++ b/src/main/java/net/minestom/server/entity/Player.java @@ -7,6 +7,7 @@ import net.kyori.adventure.identity.Identified; import net.kyori.adventure.identity.Identity; import net.kyori.adventure.inventory.Book; +import net.kyori.adventure.key.Key; import net.kyori.adventure.pointer.Pointers; import net.kyori.adventure.resource.ResourcePackCallback; import net.kyori.adventure.resource.ResourcePackInfo; @@ -904,8 +905,20 @@ public void sendMessage(final @NotNull Identity source, final @NotNull Component * * @param channel the message channel * @param data the message data + * @deprecated Use {@link #sendPluginMessage(Key, byte[])} instead. */ + @Deprecated(forRemoval = true, since = "1.5.0") public void sendPluginMessage(@NotNull String channel, byte @NotNull [] data) { + sendPluginMessage(Key.key(channel), data); + } + + /** + * Sends a plugin message to the player. + * + * @param channel the message channel + * @param data the message data + */ + public void sendPluginMessage(@NotNull Key channel, byte @NotNull [] data) { sendPacket(new PluginMessagePacket(channel, data)); } @@ -916,7 +929,9 @@ public void sendPluginMessage(@NotNull String channel, byte @NotNull [] data) { * * @param channel the message channel * @param message the message + * @deprecated Use {@link #sendPluginMessage(Key, byte[])} instead. */ + @Deprecated(forRemoval = true, since = "1.5.0") public void sendPluginMessage(@NotNull String channel, @NotNull String message) { sendPluginMessage(channel, message.getBytes(StandardCharsets.UTF_8)); } diff --git a/src/main/java/net/minestom/server/network/packet/server/common/PluginMessagePacket.java b/src/main/java/net/minestom/server/network/packet/server/common/PluginMessagePacket.java index ede91dd39d7..784c50a93ad 100644 --- a/src/main/java/net/minestom/server/network/packet/server/common/PluginMessagePacket.java +++ b/src/main/java/net/minestom/server/network/packet/server/common/PluginMessagePacket.java @@ -1,5 +1,6 @@ package net.minestom.server.network.packet.server.common; +import net.kyori.adventure.key.Key; import net.minestom.server.MinecraftServer; import net.minestom.server.network.NetworkBuffer; import net.minestom.server.network.packet.server.ServerPacket; @@ -9,15 +10,15 @@ import static net.minestom.server.network.NetworkBuffer.RAW_BYTES; import static net.minestom.server.network.NetworkBuffer.STRING; -public record PluginMessagePacket(String channel, +public record PluginMessagePacket(Key channel, byte[] data) implements ServerPacket.Configuration, ServerPacket.Play { public PluginMessagePacket(@NotNull NetworkBuffer reader) { - this(reader.read(STRING), reader.read(RAW_BYTES)); + this(Key.key(reader.read(STRING)), reader.read(RAW_BYTES)); } @Override public void write(@NotNull NetworkBuffer writer) { - writer.write(STRING, channel); + writer.write(STRING, channel.asString()); writer.write(RAW_BYTES, data); } @@ -41,6 +42,6 @@ public int playId() { public static @NotNull PluginMessagePacket getBrandPacket() { final String brandName = MinecraftServer.getBrandName(); final byte[] data = NetworkBuffer.makeArray(networkBuffer -> networkBuffer.write(STRING, brandName)); - return new PluginMessagePacket("minecraft:brand", data); + return new PluginMessagePacket(Key.key("minecraft:brand"), data); } } From c536e4a1fdd9e5d6153b7aad3aa6fb7b2fb75224 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz Date: Wed, 30 Oct 2024 16:53:03 +0100 Subject: [PATCH 44/93] Update readme product life cycle --- .github/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index 84df4e0a105..4175b0ebf2d 100644 --- a/.github/README.md +++ b/.github/README.md @@ -15,7 +15,7 @@ Discord for discussion: [OneLiteFeather.net](https://discord.onelitefeather.net) - Make useful decisions - Include new features - Try to stay updated with original minecraft cycle -- Release cycle of 2 weeks +- Release cycle of we often we can (weekly, monthly, etc.) with a changelog, and it needed for the community ## Project contribution: From 4be5b519e1f8e32fec7e7340a618ec7b826d448d Mon Sep 17 00:00:00 2001 From: joelramilison Date: Wed, 16 Oct 2024 17:07:02 +0200 Subject: [PATCH 45/93] send explosions only to nearby players --- src/main/java/net/minestom/server/ServerFlag.java | 1 + .../java/net/minestom/server/instance/Explosion.java | 10 ++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minestom/server/ServerFlag.java b/src/main/java/net/minestom/server/ServerFlag.java index f951facb4f3..4f5bd6cf47a 100644 --- a/src/main/java/net/minestom/server/ServerFlag.java +++ b/src/main/java/net/minestom/server/ServerFlag.java @@ -27,6 +27,7 @@ public final class ServerFlag { public static final int POOLED_BUFFER_SIZE = intProperty("minestom.pooled-buffer-size", 262_143); public static final int SEND_LIGHT_AFTER_BLOCK_PLACEMENT_DELAY = intProperty("minestom.send-light-after-block-placement-delay", 100); public static final long LOGIN_PLUGIN_MESSAGE_TIMEOUT = longProperty("minestom.login-plugin-message-timeout", 5_000); + public static final int EXPLOSION_SEND_DISTANCE = intProperty("minestom.explosion-send-distance", 100); public static final int SERVER_LINK_AMOUNT = intProperty("minestom.server-link-amount", 100); // Network rate limiting diff --git a/src/main/java/net/minestom/server/instance/Explosion.java b/src/main/java/net/minestom/server/instance/Explosion.java index c96f8c45a0b..1a5467cce1f 100644 --- a/src/main/java/net/minestom/server/instance/Explosion.java +++ b/src/main/java/net/minestom/server/instance/Explosion.java @@ -1,6 +1,9 @@ package net.minestom.server.instance; +import net.minestom.server.ServerFlag; import net.minestom.server.coordinate.Point; +import net.minestom.server.coordinate.Pos; +import net.minestom.server.entity.Player; import net.minestom.server.instance.block.Block; import net.minestom.server.network.packet.server.play.ExplosionPacket; import net.minestom.server.utils.PacketUtils; @@ -69,11 +72,14 @@ public void apply(@NotNull Instance instance) { records[i * 3 + 2] = z; } - // TODO send only to close players ExplosionPacket packet = new ExplosionPacket(centerX, centerY, centerZ, strength, records, 0, 0, 0); postExplosion(instance, blocks, packet); - PacketUtils.sendGroupedPacket(instance.getPlayers(), packet); + List players = instance.getNearbyEntities(new Pos(centerX, centerY, centerZ), ServerFlag.EXPLOSION_SEND_DISTANCE) + .stream() + .filter(Player.class::isInstance) + .map(Player.class::cast).toList(); + PacketUtils.sendGroupedPacket(players, packet); postSend(instance, blocks); } From 17676012529d7e749c5a9354117e386b542fa8c8 Mon Sep 17 00:00:00 2001 From: joelramilison Date: Mon, 21 Oct 2024 00:31:03 +0200 Subject: [PATCH 46/93] Add integration test for Explosion.java --- .../minestom/server/instance/ExplosionIntegrationTest.java | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/test/java/net/minestom/server/instance/ExplosionIntegrationTest.java diff --git a/src/test/java/net/minestom/server/instance/ExplosionIntegrationTest.java b/src/test/java/net/minestom/server/instance/ExplosionIntegrationTest.java new file mode 100644 index 00000000000..4e8922b22da --- /dev/null +++ b/src/test/java/net/minestom/server/instance/ExplosionIntegrationTest.java @@ -0,0 +1,4 @@ +package net.minestom.server.instance; + +public class ExplosionIntegrationTest { +} From 83507bb2ce2b090f67c293127bc263101e083605 Mon Sep 17 00:00:00 2001 From: joelramilison Date: Mon, 21 Oct 2024 00:38:01 +0200 Subject: [PATCH 47/93] Completed ExplosionIntegrationTest.java --- .../instance/ExplosionIntegrationTest.java | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/src/test/java/net/minestom/server/instance/ExplosionIntegrationTest.java b/src/test/java/net/minestom/server/instance/ExplosionIntegrationTest.java index 4e8922b22da..6ad0deb6c14 100644 --- a/src/test/java/net/minestom/server/instance/ExplosionIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/ExplosionIntegrationTest.java @@ -1,4 +1,62 @@ package net.minestom.server.instance; +import net.kyori.adventure.nbt.CompoundBinaryTag; +import net.minestom.server.coordinate.Point; +import net.minestom.server.coordinate.Pos; +import net.minestom.server.network.packet.server.play.ExplosionPacket; +import net.minestom.testing.Env; +import net.minestom.testing.extension.MicrotusExtension; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; + +import java.util.List; + + +@ExtendWith(MicrotusExtension.class) public class ExplosionIntegrationTest { + + // Checks that only nearby players actually receive the packet from the server + @Test + void sendToNearbyPlayers(Env env) { + var instance = env.createFlatInstance(); + instance.setExplosionSupplier(new TestExplosionSupplierImpl()); + + var connection1 = env.createConnection(); + var connection2 = env.createConnection(); + var connection3 = env.createConnection(); + + // Assumes that the default ServerFlag.EXPLOSION_SEND_DISTANCE is set to 100 blocks + var player1 = connection1.connect(instance, new Pos(0, 41, 0)); + var player2 = connection2.connect(instance, new Pos(50, 41, 0)); + var player3 = connection3.connect(instance, new Pos(0, 41, 110)); + + var packetTracker1 = connection1.trackIncoming(ExplosionPacket.class); + var packetTracker2 = connection2.trackIncoming(ExplosionPacket.class); + var packetTracker3 = connection3.trackIncoming(ExplosionPacket.class); + + instance.explode(0, 41, 0, 1); + packetTracker1.assertSingle(); + packetTracker2.assertSingle(); + packetTracker3.assertEmpty(); + } + + + public class TestExplosionSupplierImpl implements ExplosionSupplier { + @Override + public Explosion createExplosion(float centerX, float centerY, float centerZ, float strength, CompoundBinaryTag additionalData) { + return new TestExplosionImpl(centerX, centerY, centerZ, strength); + } + + public class TestExplosionImpl extends Explosion { + + protected TestExplosionImpl(float centerX, float centerY, float centerZ, float strength) { + super(centerX, centerY, centerZ, strength); + } + @Override + protected List prepare(Instance instance) { + return List.of(new Pos(getCenterX(), getCenterY(), getCenterZ())); + } + } + } + } From 3b2a0a460d56ed2bbfe8c44d1319c812c6675ffc Mon Sep 17 00:00:00 2001 From: joelramilison Date: Tue, 22 Oct 2024 20:13:57 +0200 Subject: [PATCH 48/93] formally improve ExplosionIntegrationTest.java --- .../server/instance/ExplosionIntegrationTest.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/test/java/net/minestom/server/instance/ExplosionIntegrationTest.java b/src/test/java/net/minestom/server/instance/ExplosionIntegrationTest.java index 6ad0deb6c14..7e76f0b9abd 100644 --- a/src/test/java/net/minestom/server/instance/ExplosionIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/ExplosionIntegrationTest.java @@ -8,12 +8,11 @@ import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; - import java.util.List; @ExtendWith(MicrotusExtension.class) -public class ExplosionIntegrationTest { +class ExplosionIntegrationTest { // Checks that only nearby players actually receive the packet from the server @Test @@ -38,18 +37,19 @@ void sendToNearbyPlayers(Env env) { packetTracker1.assertSingle(); packetTracker2.assertSingle(); packetTracker3.assertEmpty(); + env.destroyInstance(instance, true); } - public class TestExplosionSupplierImpl implements ExplosionSupplier { + class TestExplosionSupplierImpl implements ExplosionSupplier { @Override public Explosion createExplosion(float centerX, float centerY, float centerZ, float strength, CompoundBinaryTag additionalData) { return new TestExplosionImpl(centerX, centerY, centerZ, strength); } - public class TestExplosionImpl extends Explosion { + class TestExplosionImpl extends Explosion { - protected TestExplosionImpl(float centerX, float centerY, float centerZ, float strength) { + TestExplosionImpl(float centerX, float centerY, float centerZ, float strength) { super(centerX, centerY, centerZ, strength); } @Override From 103f0bf3ddfee33345bfbf51d1c846ca0fd1e85b Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Wed, 22 May 2024 20:26:17 +0200 Subject: [PATCH 49/93] Apply microtus patches 1-20 (cherry picked from commit ab0874cf0515963d1f4037d3e606db241f03fadb) --- .../codegen/biome/BiomeGenerator.java | 146 ++++ .../entity/VillagerProfessionGenerator.java | 1 + .../codegen/entity/VillagerTypeGenerator.java | 1 + gradle/libs.versions.toml | 0 .../minestom/server/attribute/Attributes.java | 61 ++ .../server/item/metadata/BannerMeta.java | 165 +++++ .../server/item/metadata/ShieldMeta.java | 131 ++++ .../server/network/NetworkBufferTypes.java | 639 ++++++++++++++++++ .../world/biomes/particle/BiomeOption.java | 16 + .../world/biomes/particle/BlockOption.java | 32 + .../world/biomes/particle/DefaultOption.java | 20 + .../world/biomes/particle/DustOption.java | 34 + .../world/biomes/particle/ItemOption.java | 27 + .../minestom.common-conventions.gradle.kts | 28 + .../minestom.native-conventions.gradle.kts | 14 + ...minestom.publishing-conventions.gradle.kts | 40 ++ .../microtus/ExtensionPlugin.kt | 76 +++ .../microtus/GenerateExtension.kt | 79 +++ .../microtus/models/Extension.kt | 76 +++ 19 files changed, 1586 insertions(+) create mode 100644 code-generators/src/main/java/net/minestom/codegen/biome/BiomeGenerator.java delete mode 100644 gradle/libs.versions.toml create mode 100644 src/autogenerated/java/net/minestom/server/attribute/Attributes.java create mode 100644 src/main/java/net/minestom/server/item/metadata/BannerMeta.java create mode 100644 src/main/java/net/minestom/server/item/metadata/ShieldMeta.java create mode 100644 src/main/java/net/minestom/server/network/NetworkBufferTypes.java create mode 100644 src/main/java/net/minestom/server/world/biomes/particle/BiomeOption.java create mode 100644 src/main/java/net/minestom/server/world/biomes/particle/BlockOption.java create mode 100644 src/main/java/net/minestom/server/world/biomes/particle/DefaultOption.java create mode 100644 src/main/java/net/minestom/server/world/biomes/particle/DustOption.java create mode 100644 src/main/java/net/minestom/server/world/biomes/particle/ItemOption.java create mode 100644 src/main/kotlin/minestom.common-conventions.gradle.kts create mode 100644 src/main/kotlin/minestom.native-conventions.gradle.kts create mode 100644 src/main/kotlin/minestom.publishing-conventions.gradle.kts create mode 100644 src/main/kotlin/net/onelitefeather/microtus/ExtensionPlugin.kt create mode 100644 src/main/kotlin/net/onelitefeather/microtus/GenerateExtension.kt create mode 100644 src/main/kotlin/net/onelitefeather/microtus/models/Extension.kt diff --git a/code-generators/src/main/java/net/minestom/codegen/biome/BiomeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/biome/BiomeGenerator.java new file mode 100644 index 00000000000..f82f817012c --- /dev/null +++ b/code-generators/src/main/java/net/minestom/codegen/biome/BiomeGenerator.java @@ -0,0 +1,146 @@ +package net.minestom.codegen.biome; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.squareup.javapoet.AnnotationSpec; +import com.squareup.javapoet.ArrayTypeName; +import com.squareup.javapoet.ClassName; +import com.squareup.javapoet.CodeBlock; +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.JavaFile; +import com.squareup.javapoet.MethodSpec; +import com.squareup.javapoet.ParameterSpec; +import com.squareup.javapoet.TypeName; +import com.squareup.javapoet.TypeSpec; +import java.awt.Color; +import java.io.File; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.List; +import javax.lang.model.element.Modifier; +import net.minestom.codegen.MinestomCodeGenerator; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@ApiStatus.Internal +@ApiStatus.NonExtendable +public final class BiomeGenerator extends MinestomCodeGenerator { + + private static final String BIOME_KEY = "biome"; + private static final String BIOME_FILE_PACKAGE = "net.minestom.server.world.biomes"; // Microtus - Biomes + private static final String CLASS_NAME = "Biomes"; // Microtus - Biomes + private static final Logger LOGGER = LoggerFactory.getLogger(BiomeGenerator.class); + private final InputStream biomeFile; + private final File outputFolder; + + public BiomeGenerator(@Nullable InputStream biomeFile, @NotNull File outputFolder) { + super(BIOME_FILE_PACKAGE); + this.biomeFile = biomeFile; + this.outputFolder = outputFolder; + } + + @Override + public void generate() { + if (biomeFile == null) { + LOGGER.error("Failed to find biome.json."); + LOGGER.error("Stopped code generation for biomes."); + return; + } + if (!outputFolder.exists() && !outputFolder.mkdirs()) { + LOGGER.error("Output folder for code generation does not exist and could not be created."); + return; + } + + JsonElement biomes = GSON.fromJson(new InputStreamReader(biomeFile), JsonElement.class); + ClassName biomeCN = ClassName.get(BIOME_FILE_PACKAGE, CLASS_NAME); + ClassName biomeCn = ClassName.get(BIOME_FILE_PACKAGE, "Biome"); + ClassName categoryCn = biomeCn.nestedClass("Category"); + ClassName minecraftServerCn = ClassName.get("net.minestom.server", "MinecraftServer"); + ClassName namespaceIDCn = ClassName.get("net.minestom.server.utils", "NamespaceID"); + ClassName biomeEffectsCn = ClassName.get(BIOME_FILE_PACKAGE, "BiomeEffects"); + // Dye Color Enum + TypeSpec.Builder biomesEnum = TypeSpec.enumBuilder(biomeCN) + .addModifiers(Modifier.PUBLIC).addJavadoc("AUTOGENERATED by " + getClass().getSimpleName()); + + // Fields + biomesEnum.addFields( + List.of( + FieldSpec.builder(biomeCn, BIOME_KEY, Modifier.PRIVATE, Modifier.FINAL).build(), + FieldSpec.builder(ArrayTypeName.of(biomeCN), "VALUES", Modifier.PRIVATE, Modifier.STATIC, Modifier.FINAL).initializer(CLASS_NAME + ".values()").build() // Microtus - Banner and shield meta + ) + ); + + // Methods + biomesEnum.addMethods( + List.of( + // Constructor + MethodSpec.constructorBuilder() + .addParameter( + ParameterSpec.builder(biomeCn, BIOME_KEY).addAnnotation(NotNull.class).build() + ) + .addStatement("this.$1L = $1L", BIOME_KEY) + .build(), + MethodSpec.methodBuilder(BIOME_KEY) + .addModifiers(Modifier.PUBLIC) + .returns(biomeCn.annotated(AnnotationSpec.builder(NotNull.class).build())) + .addStatement("return this.$L", BIOME_KEY) + .build(), + MethodSpec.methodBuilder("getValue") + .addModifiers(Modifier.PUBLIC, Modifier.STATIC) + .addParameter(ParameterSpec.builder(TypeName.INT, "id").build()) + .addAnnotation(Nullable.class) + .returns(ClassName.get(BIOME_FILE_PACKAGE, CLASS_NAME)) + .addCode("return VALUES[$L];", "id") + .build(), + MethodSpec.methodBuilder("registerBiomes") + .addModifiers(Modifier.PUBLIC, Modifier.STATIC) + .beginControlFlow("for (var $L : VALUES)", BIOME_KEY) + .addStatement("$1T.getBiomeManager().addBiome($2L.$2L())", minecraftServerCn, BIOME_KEY) + .endControlFlow() + .build() + ) + ); + final JsonObject biomesAsJsonObject = biomes.getAsJsonObject(); + biomesAsJsonObject.keySet().forEach(biome -> { + var biomeObject = biomesAsJsonObject.get(biome).getAsJsonObject(); + var temperature = biomeObject.get("temperature").getAsFloat(); + var downfall = biomeObject.get("downfall").getAsFloat(); + var hasPrecipitation = biomeObject.get("has_precipitation").getAsBoolean(); + var fogColor = Integer.toHexString(new Color(biomeObject.get("fogColor").getAsInt()).getRGB()).substring(2); + var waterColor = Integer.toHexString(new Color(biomeObject.get("waterColor").getAsInt()).getRGB()).substring(2); + var waterFogColor = Integer.toHexString(new Color(biomeObject.get("waterFogColor").getAsInt()).getRGB()).substring(2); + var skyColor = Integer.toHexString(new Color(biomeObject.get("skyColor").getAsInt()).getRGB()).substring(2); + var effectCodeBlock = CodeBlock.builder(); + effectCodeBlock = effectCodeBlock.add("$T.builder().fogColor(0x$L).waterColor(0x$L).waterFogColor(0x$L).skyColor(0x$L)", biomeEffectsCn, fogColor, waterColor, waterFogColor, skyColor); + if (biomeObject.has("grassColor")) { + var grassColor = Integer.toHexString(new Color(biomeObject.get("grassColor").getAsInt()).getRGB()).substring(2); + effectCodeBlock = effectCodeBlock.add(".grassColor(0x$L)", grassColor); + } + if (biomeObject.has("foliageColor")) { + var foliageColor = Integer.toHexString(new Color(biomeObject.get("foliageColor").getAsInt()).getRGB()).substring(2); + effectCodeBlock = effectCodeBlock.add(".foliageColor(0x$L)", foliageColor); + } + effectCodeBlock = effectCodeBlock.add(".build()"); + var namespacedCode = CodeBlock.of("$T.from($S)", namespaceIDCn, biome.replaceFirst("minecraft:", "")); + biomesEnum.addEnumConstant(extractNamespace(biome), TypeSpec.anonymousClassBuilder( + "$T.builder().name($L).category($T.NONE).depth(0.125F).scale(0.05F).temperature($Lf).downfall($Lf).showPrecipitation($L).effects($L).build()", + biomeCn, namespacedCode, categoryCn, temperature, downfall, hasPrecipitation, effectCodeBlock.build() + ).build() + ); + }); + + // Write files to outputFolder + writeFiles( + List.of( + JavaFile.builder(BIOME_FILE_PACKAGE, biomesEnum.build()) + .indent(DEFAULT_INDENT) + .skipJavaLangImports(true) + .build() + ), + outputFolder + ); + } +} diff --git a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java index 9309c8ec68d..d25441a83db 100644 --- a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java @@ -31,6 +31,7 @@ public final class VillagerProfessionGenerator extends MinestomCodeGenerator { public VillagerProfessionGenerator(@Nullable InputStream villagerProfessionsFile, @NotNull File outputFolder) { + super(""); this.villagerProfessionsFile = villagerProfessionsFile; this.outputFolder = outputFolder; } diff --git a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java index 0f59af765a7..bc26041d017 100644 --- a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java @@ -29,6 +29,7 @@ public final class VillagerTypeGenerator extends MinestomCodeGenerator { private final File outputFolder; public VillagerTypeGenerator(@Nullable InputStream villagerTypesFile, @NotNull File outputFolder) { + super(""); this.villagerTypesFile = villagerTypesFile; this.outputFolder = outputFolder; } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/autogenerated/java/net/minestom/server/attribute/Attributes.java b/src/autogenerated/java/net/minestom/server/attribute/Attributes.java new file mode 100644 index 00000000000..a5edd76b551 --- /dev/null +++ b/src/autogenerated/java/net/minestom/server/attribute/Attributes.java @@ -0,0 +1,61 @@ +package net.minestom.server.attribute; + +import net.minestom.server.MinecraftServer; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * AUTOGENERATED by AttributeGenerator + */ +public enum Attributes { + GENERIC_ARMOR(new Attribute("minecraft:generic.armor", 0.0f, 30.0f)), + + GENERIC_ARMOR_TOUGHNESS(new Attribute("minecraft:generic.armor_toughness", 0.0f, 20.0f)), + + GENERIC_ATTACK_DAMAGE(new Attribute("minecraft:generic.attack_damage", 2.0f, 2048.0f)), + + GENERIC_ATTACK_KNOCKBACK(new Attribute("minecraft:generic.attack_knockback", 0.0f, 5.0f)), + + GENERIC_ATTACK_SPEED(new Attribute("minecraft:generic.attack_speed", 4.0f, 1024.0f)), + + GENERIC_FLYING_SPEED(new Attribute("minecraft:generic.flying_speed", 0.4f, 1024.0f)), + + GENERIC_FOLLOW_RANGE(new Attribute("minecraft:generic.follow_range", 32.0f, 2048.0f)), + + HORSE_JUMP_STRENGTH(new Attribute("minecraft:horse.jump_strength", 0.7f, 2.0f)), + + GENERIC_KNOCKBACK_RESISTANCE(new Attribute("minecraft:generic.knockback_resistance", 0.0f, 1.0f)), + + GENERIC_LUCK(new Attribute("minecraft:generic.luck", 0.0f, 1024.0f)), + + GENERIC_MAX_ABSORPTION(new Attribute("minecraft:generic.max_absorption", 0.0f, 2048.0f)), + + GENERIC_MAX_HEALTH(new Attribute("minecraft:generic.max_health", 20.0f, 1024.0f)), + + GENERIC_MOVEMENT_SPEED(new Attribute("minecraft:generic.movement_speed", 0.7f, 1024.0f)), + + ZOMBIE_SPAWN_REINFORCEMENTS(new Attribute("minecraft:zombie.spawn_reinforcements", 0.0f, 1.0f)); + + private static final Attributes[] VALUES = values(); + + private final Attribute attribute; + + Attributes(@NotNull Attribute attribute) { + this.attribute = attribute; + } + + public @NotNull Attribute attribute() { + return this.attribute; + } + + @Nullable + public static Attribute getValue(int id) { + return VALUES[id].attribute; + } + + public static void registerAttributes() { + for (var v : VALUES) { + MinecraftServer.getAttributeManager().register(v.attribute()); + } + } +} diff --git a/src/main/java/net/minestom/server/item/metadata/BannerMeta.java b/src/main/java/net/minestom/server/item/metadata/BannerMeta.java new file mode 100644 index 00000000000..9d0a70d06e1 --- /dev/null +++ b/src/main/java/net/minestom/server/item/metadata/BannerMeta.java @@ -0,0 +1,165 @@ +package net.minestom.server.item.metadata; + +/** + * @author theEvilReaper + * @version 1.0.0 + * @since + **/ + +import net.kyori.adventure.text.Component; +import net.minestom.server.color.DyeColor; +import net.minestom.server.item.ItemMetaView; +import net.minestom.server.item.banner.BannerPattern; +import net.minestom.server.tag.Tag; +import net.minestom.server.tag.TagHandler; +import net.minestom.server.tag.TagReadable; +import net.minestom.server.tag.TagSerializer; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.Nullable; +import org.jetbrains.annotations.UnknownNullability; +import org.jglrxavpok.hephaistos.nbt.NBT; +import org.jglrxavpok.hephaistos.nbt.NBTCompound; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * Meta for all {@link net.minestom.server.item.Material#WHITE_BANNER} and {@link net.minestom.server.item.Material#SHIELD} items + * + * @param readable data + */ +// Microtus - Banner and Shield Meta +@ApiStatus.Experimental +public record BannerMeta(TagReadable readable) implements ItemMetaView { + + private static final String PATTERN_KEY = "Pattern"; + private static final String COLOR_KEY = "Color"; + + private static final Tag CUSTOM_NAME = Tag.Component("CustomName").path("BlockEntityTag"); + private static final Tag> PATTERNS = Tag.Structure("Patterns", + TagSerializer.fromCompound(Pattern::fromCompound, Pattern::asCompound)) + .path("BlockEntityTag").list().defaultValue(List.of()); + + + @Contract(value = "_, _ -> new", pure = true) + public static @NotNull Pattern from(@NotNull DyeColor color, @NotNull BannerPattern pattern) { + return new Pattern(color, pattern); + } + + /** + * Get name of the marker, unused by Minestom + * + * @return name of the marker + */ + public @Nullable Component getCustomName() { + return getTag(CUSTOM_NAME); + } + + /** + * Get patterns of the banner + * + * @return patterns of the banner + */ + public @NotNull List getPatterns() { + return getTag(PATTERNS); + } + + @Override + public @UnknownNullability T getTag(@NotNull Tag tag) { + return readable.getTag(tag); + } + + public record Builder(TagHandler tagHandler) implements ItemMetaView.Builder { + public Builder() { + this(TagHandler.newHandler()); + } + + /** + * Set name of the marker, unused by Minestom + * + * @param customName name of the marker + * @return this + */ + public @NotNull Builder customName(Component customName) { + setTag(CUSTOM_NAME, customName); + return this; + } + + /** + * Set the patterns of the banner + * + * @param patterns patterns of the banner + * @return this + */ + public @NotNull Builder patterns(@NotNull List patterns) { + setTag(PATTERNS, patterns); + return this; + } + + /** + * Add a pattern to the banner + * + * @param pattern pattern to add + * @return this + */ + public @NotNull Builder addPattern(Pattern pattern) { + var newList = new ArrayList<>(getTag(PATTERNS)); + newList.add(pattern); + return patterns(newList); + } + + /** + * Remove a pattern from the banner + * + * @param pattern pattern to remove + * @return this + */ + public @NotNull Builder removePattern(Pattern pattern) { + var newList = new ArrayList<>(getTag(PATTERNS)); + newList.remove(pattern); + return patterns(newList); + } + + /** + * Clears the underlying list which contains the pattern values. + * @return this + */ + public @NotNull Builder clearPatterns() { + return patterns(List.of()); + } + } + + public record Pattern(@NotNull DyeColor color, @NotNull BannerPattern pattern) { + + /** + * Retrieves a banner pattern from the given {@code compound}. + * + * @param compound The NBT connection, which should be a banner pattern. + * @return A new created banner pattern. + */ + public static @NotNull Pattern fromCompound(@NotNull NBTCompound compound) { + DyeColor color = compound.containsKey(COLOR_KEY) ? DyeColor.getValue(compound.getByte(COLOR_KEY)) : DyeColor.WHITE; + BannerPattern type; + if (compound.containsKey(PATTERN_KEY)) { + BannerPattern pattern = BannerPattern.fromIdentifier(compound.getString(PATTERN_KEY)); + type = pattern != null ? pattern : BannerPattern.BASE; + } else type = BannerPattern.BASE; + return new Pattern(color, type); + } + + /** + * Retrieves the {@link Pattern} as an {@link NBTCompound}. + * + * @return The banner pattern as a nbt compound. + */ + public @NotNull NBTCompound asCompound() { + return NBT.Compound(Map.of( + COLOR_KEY, NBT.Byte(color.ordinal()), + PATTERN_KEY, NBT.String(pattern.identifier()) + )); + } + } +} diff --git a/src/main/java/net/minestom/server/item/metadata/ShieldMeta.java b/src/main/java/net/minestom/server/item/metadata/ShieldMeta.java new file mode 100644 index 00000000000..56a864253f2 --- /dev/null +++ b/src/main/java/net/minestom/server/item/metadata/ShieldMeta.java @@ -0,0 +1,131 @@ +package net.minestom.server.item.metadata; + +import net.kyori.adventure.text.Component; +import net.minestom.server.color.DyeColor; +import net.minestom.server.item.ItemMetaView; +import net.minestom.server.tag.Tag; +import net.minestom.server.tag.TagHandler; +import net.minestom.server.tag.TagReadable; +import net.minestom.server.tag.TagSerializer; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.jetbrains.annotations.UnknownNullability; + +import java.util.ArrayList; +import java.util.List; + +// Microtus - Banner and Shield Meta +@ApiStatus.Experimental +public record ShieldMeta(@NotNull TagReadable readable) implements ItemMetaView { + + private static final String BASE_KEY = "Base"; + private static final String ENTITY_TAG = "BlockEntityTag"; + private static final Tag CUSTOM_NAME = Tag.Component("CustomName").path(ENTITY_TAG); + private static final Tag BASE_TAG = Tag.Integer(BASE_KEY).path(ENTITY_TAG); + private static final Tag> PATTERNS = Tag.Structure("Patterns", + TagSerializer.fromCompound(BannerMeta.Pattern::fromCompound, BannerMeta.Pattern::asCompound)) + .path(ENTITY_TAG).list().defaultValue(List.of()); + + /** + * Get base color of the shield + * + * @return the base color + */ + public @NotNull DyeColor getBaseColor() { + return DyeColor.getValue(getTag(BASE_TAG)); + } + + /** + * Get name of the marker, unused by Minestom + * + * @return name of the marker + */ + public @Nullable Component getCustomName() { + return getTag(CUSTOM_NAME); + } + + /** + * Get patterns of the shield + * + * @return patterns of the shield + */ + public @NotNull List getPatterns() { + return getTag(PATTERNS); + } + + @Override + public @UnknownNullability T getTag(@NotNull Tag tag) { + return readable.getTag(tag); + } + + public record Builder(@NotNull TagHandler tagHandler) implements ItemMetaView.Builder { + public Builder() { + this(TagHandler.newHandler()); + } + + /** + * Set the color which is used as base color for a shield. + * @param dyeColor the color to set + * @return the builder instance + */ + public @NotNull ShieldMeta.Builder baseColor(@NotNull DyeColor dyeColor) { + setTag(BASE_TAG, dyeColor.ordinal()); + return this; + } + + /** + * Set name of the marker, unused by Minestom + * + * @param customName name of the marker + * @return this + */ + public @NotNull ShieldMeta.Builder customName(@NotNull Component customName) { + setTag(CUSTOM_NAME, customName); + return this; + } + + /** + * Set the patterns of the shield + * + * @param patterns patterns of the shield + * @return this + */ + public @NotNull ShieldMeta.Builder patterns(@NotNull List patterns) { + setTag(PATTERNS, patterns); + return this; + } + + /** + * Add a pattern to the shield + * + * @param pattern pattern to add + * @return this + */ + public @NotNull ShieldMeta.Builder addPattern(BannerMeta.Pattern pattern) { + var newList = new ArrayList<>(getTag(PATTERNS)); + newList.add(pattern); + return patterns(newList); + } + + /** + * Remove a pattern from the shield + * + * @param pattern pattern to remove + * @return this + */ + public @NotNull ShieldMeta.Builder removePattern(BannerMeta.Pattern pattern) { + var newList = new ArrayList<>(getTag(PATTERNS)); + newList.remove(pattern); + return patterns(newList); + } + + /** + * Clears the underlying list which contains the pattern values. + * @return this + */ + public @NotNull ShieldMeta.Builder clearPatterns() { + return patterns(List.of()); + } + } +} diff --git a/src/main/java/net/minestom/server/network/NetworkBufferTypes.java b/src/main/java/net/minestom/server/network/NetworkBufferTypes.java new file mode 100644 index 00000000000..13cc9079a34 --- /dev/null +++ b/src/main/java/net/minestom/server/network/NetworkBufferTypes.java @@ -0,0 +1,639 @@ +package net.minestom.server.network; + +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; +import net.minestom.server.adventure.serializer.nbt.NbtComponentSerializer; +import net.minestom.server.coordinate.Point; +import net.minestom.server.coordinate.Vec; +import net.minestom.server.entity.Entity; +import net.minestom.server.entity.metadata.animal.FrogMeta; +import net.minestom.server.entity.metadata.animal.SnifferMeta; +import net.minestom.server.entity.metadata.animal.tameable.CatMeta; +import net.minestom.server.item.ItemStack; +import net.minestom.server.item.Material; +import net.minestom.server.network.packet.server.play.data.DeathLocation; +import net.minestom.server.utils.Direction; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.UnknownNullability; +import org.jglrxavpok.hephaistos.nbt.*; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.nio.charset.StandardCharsets; +import java.util.UUID; + +final class NetworkBufferTypes { + private static final int SEGMENT_BITS = 0x7F; + private static final int CONTINUE_BIT = 0x80; + + static final TypeImpl BOOLEAN = new TypeImpl<>(Boolean.class, + (buffer, value) -> { + buffer.ensureSize(1); + buffer.nioBuffer.put(buffer.writeIndex(), value ? (byte) 1 : (byte) 0); + return 1; + }, + buffer -> { + final byte value = buffer.nioBuffer.get(buffer.readIndex()); + buffer.readIndex += 1; + return value == 1; + }); + static final TypeImpl BYTE = new TypeImpl<>(Byte.class, + (buffer, value) -> { + buffer.ensureSize(1); + buffer.nioBuffer.put(buffer.writeIndex(), value); + return 1; + }, + buffer -> { + final byte value = buffer.nioBuffer.get(buffer.readIndex()); + buffer.readIndex += 1; + return value; + }); + static final TypeImpl SHORT = new TypeImpl<>(Short.class, + (buffer, value) -> { + buffer.ensureSize(2); + buffer.nioBuffer.putShort(buffer.writeIndex(), value); + return 2; + }, + buffer -> { + final short value = buffer.nioBuffer.getShort(buffer.readIndex()); + buffer.readIndex += 2; + return value; + }); + static final TypeImpl UNSIGNED_SHORT = new TypeImpl<>(Integer.class, + (buffer, value) -> { + buffer.ensureSize(2); + buffer.nioBuffer.putShort(buffer.writeIndex(), (short) (value & 0xFFFF)); + return 2; + }, + buffer -> { + final short value = buffer.nioBuffer.getShort(buffer.readIndex()); + buffer.readIndex += 2; + return value & 0xFFFF; + }); + static final TypeImpl INT = new TypeImpl<>(Integer.class, + (buffer, value) -> { + buffer.ensureSize(4); + buffer.nioBuffer.putInt(buffer.writeIndex(), value); + return 4; + }, + buffer -> { + final int value = buffer.nioBuffer.getInt(buffer.readIndex()); + buffer.readIndex += 4; + return value; + }); + static final TypeImpl LONG = new TypeImpl<>(Long.class, + (buffer, value) -> { + buffer.ensureSize(8); + buffer.nioBuffer.putLong(buffer.writeIndex(), value); + return 8; + }, + buffer -> { + final long value = buffer.nioBuffer.getLong(buffer.readIndex()); + buffer.readIndex += 8; + return value; + }); + static final TypeImpl FLOAT = new TypeImpl<>(Float.class, + (buffer, value) -> { + buffer.ensureSize(4); + buffer.nioBuffer.putFloat(buffer.writeIndex(), value); + return 4; + }, + buffer -> { + final float value = buffer.nioBuffer.getFloat(buffer.readIndex()); + buffer.readIndex += 4; + return value; + }); + static final TypeImpl DOUBLE = new TypeImpl<>(Double.class, + (buffer, value) -> { + buffer.ensureSize(8); + buffer.nioBuffer.putDouble(buffer.writeIndex(), value); + return 8; + }, + buffer -> { + final double value = buffer.nioBuffer.getDouble(buffer.readIndex()); + buffer.readIndex += 8; + return value; + }); + static final TypeImpl VAR_INT = new TypeImpl<>(Integer.class, + (buffer, boxed) -> { + final int value = boxed; + final int index = buffer.writeIndex(); + if ((value & (0xFFFFFFFF << 7)) == 0) { + buffer.ensureSize(1); + buffer.nioBuffer.put(index, (byte) value); + return 1; + } else if ((value & (0xFFFFFFFF << 14)) == 0) { + buffer.ensureSize(2); + buffer.nioBuffer.putShort(index, (short) ((value & 0x7F | 0x80) << 8 | (value >>> 7))); + return 2; + } else if ((value & (0xFFFFFFFF << 21)) == 0) { + buffer.ensureSize(3); + var nio = buffer.nioBuffer; + nio.put(index, (byte) (value & 0x7F | 0x80)); + nio.put(index + 1, (byte) ((value >>> 7) & 0x7F | 0x80)); + nio.put(index + 2, (byte) (value >>> 14)); + return 3; + } else if ((value & (0xFFFFFFFF << 28)) == 0) { + buffer.ensureSize(4); + var nio = buffer.nioBuffer; + nio.putInt(index, (value & 0x7F | 0x80) << 24 | (((value >>> 7) & 0x7F | 0x80) << 16) + | ((value >>> 14) & 0x7F | 0x80) << 8 | (value >>> 21)); + return 4; + } else { + buffer.ensureSize(5); + var nio = buffer.nioBuffer; + nio.putInt(index, (value & 0x7F | 0x80) << 24 | ((value >>> 7) & 0x7F | 0x80) << 16 + | ((value >>> 14) & 0x7F | 0x80) << 8 | ((value >>> 21) & 0x7F | 0x80)); + nio.put(index + 4, (byte) (value >>> 28)); + return 5; + } + }, + buffer -> { + int index = buffer.readIndex(); + // https://github.com/jvm-profiling-tools/async-profiler/blob/a38a375dc62b31a8109f3af97366a307abb0fe6f/src/converter/one/jfr/JfrReader.java#L393 + int result = 0; + for (int shift = 0; ; shift += 7) { + byte b = buffer.nioBuffer.get(index++); + result |= (b & 0x7f) << shift; + if (b >= 0) { + buffer.readIndex += index - buffer.readIndex(); + return result; + } + } + }); + static final TypeImpl VAR_LONG = new TypeImpl<>(Long.class, + (buffer, value) -> { + buffer.ensureSize(10); + int size = 0; + while (true) { + if ((value & ~((long) SEGMENT_BITS)) == 0) { + buffer.nioBuffer.put(buffer.writeIndex() + size, (byte) value.intValue()); + return size + 1; + } + buffer.nioBuffer.put(buffer.writeIndex() + size, (byte) (value & SEGMENT_BITS | CONTINUE_BIT)); + size++; + // Note: >>> means that the sign bit is shifted with the rest of the number rather than being left alone + value >>>= 7; + } + }, + buffer -> { + int length = 0; + + long value = 0; + int position = 0; + byte currentByte; + + while (true) { + currentByte = buffer.nioBuffer.get(buffer.readIndex() + length); + length++; + value |= (long) (currentByte & SEGMENT_BITS) << position; + if ((currentByte & CONTINUE_BIT) == 0) break; + position += 7; + if (position >= 64) throw new RuntimeException("VarLong is too big"); + } + buffer.readIndex += length; + return value; + }); + static final TypeImpl RAW_BYTES = new TypeImpl<>(byte[].class, + (buffer, value) -> { + buffer.ensureSize(value.length); + buffer.nioBuffer.put(buffer.writeIndex(), value); + return value.length; + }, + buffer -> { + final int limit = buffer.nioBuffer.limit(); + final int length = limit - buffer.readIndex(); + assert length > 0 : "Invalid remaining: " + length; + final byte[] bytes = new byte[length]; + buffer.nioBuffer.get(buffer.readIndex(), bytes); + buffer.readIndex += length; + return bytes; + }); + static final TypeImpl STRING = new TypeImpl<>(String.class, + (buffer, value) -> { + final byte[] bytes = value.getBytes(StandardCharsets.UTF_8); + buffer.write(VAR_INT, bytes.length); + buffer.write(RAW_BYTES, bytes); + return -1; + }, + buffer -> { + final int length = buffer.read(VAR_INT); + byte[] bytes = new byte[length]; + buffer.nioBuffer.get(buffer.readIndex(), bytes); + buffer.readIndex += length; + return new String(bytes, StandardCharsets.UTF_8); + }); + static final TypeImpl NBT = new TypeImpl<>(NBT.class, + (buffer, value) -> { + NBTWriter nbtWriter = buffer.nbtWriter; + if (nbtWriter == null) { + nbtWriter = new NBTWriter(new OutputStream() { + @Override + public void write(int b) { + buffer.write(BYTE, (byte) b); + } + }, CompressedProcesser.NONE); + buffer.nbtWriter = nbtWriter; + } + try { + if (value == NBTEnd.INSTANCE) { + // Kotlin - https://discord.com/channels/706185253441634317/706186227493109860/1163703658341478462 + buffer.write(BYTE, (byte) NBTType.TAG_End.getOrdinal()); + } else { + buffer.write(BYTE, (byte) value.getID().getOrdinal()); + nbtWriter.writeRaw(value); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + return -1; + }, + buffer -> { + NBTReader nbtReader = buffer.nbtReader; + if (nbtReader == null) { + nbtReader = new NBTReader(new InputStream() { + @Override + public int read() { + return buffer.read(BYTE) & 0xFF; + } + + @Override + public int available() { + return buffer.readableBytes(); + } + }, CompressedProcesser.NONE); + buffer.nbtReader = nbtReader; + } + try { + byte tagId = buffer.read(BYTE); + if (tagId == NBTType.TAG_End.getOrdinal()) + return NBTEnd.INSTANCE; + return nbtReader.readRaw(tagId); + } catch (IOException | NBTException e) { + throw new RuntimeException(e); + } + }); + static final TypeImpl BLOCK_POSITION = new TypeImpl<>(Point.class, + (buffer, value) -> { + final int blockX = value.blockX(); + final int blockY = value.blockY(); + final int blockZ = value.blockZ(); + final long longPos = (((long) blockX & 0x3FFFFFF) << 38) | + (((long) blockZ & 0x3FFFFFF) << 12) | + ((long) blockY & 0xFFF); + buffer.write(LONG, longPos); + return -1; + }, + buffer -> { + final long value = buffer.read(LONG); + final int x = (int) (value >> 38); + final int y = (int) (value << 52 >> 52); + final int z = (int) (value << 26 >> 38); + return new Vec(x, y, z); + }); + static final TypeImpl COMPONENT = new TypeImpl<>(Component.class, + (buffer, value) -> { + final NBT nbt = NbtComponentSerializer.nbt().serialize(value); + buffer.write(NBT, nbt); + return -1; + }, + buffer -> { + final NBT nbt = buffer.read(NBT); + return NbtComponentSerializer.nbt().deserialize(nbt); + }); + static final TypeImpl JSON_COMPONENT = new TypeImpl<>(Component.class, + (buffer, value) -> { + final String json = GsonComponentSerializer.gson().serialize(value); + buffer.write(STRING, json); + return -1; + }, + buffer -> { + final String json = buffer.read(STRING); + return GsonComponentSerializer.gson().deserialize(json); + }); + static final TypeImpl UUID = new TypeImpl<>(UUID.class, + (buffer, value) -> { + buffer.write(LONG, value.getMostSignificantBits()); + buffer.write(LONG, value.getLeastSignificantBits()); + return -1; + }, + buffer -> { + final long mostSignificantBits = buffer.read(LONG); + final long leastSignificantBits = buffer.read(LONG); + return new UUID(mostSignificantBits, leastSignificantBits); + }); + static final TypeImpl ITEM = new TypeImpl<>(ItemStack.class, + (buffer, value) -> { + if (value.isAir()) { + buffer.write(BOOLEAN, false); + return -1; + } + buffer.write(BOOLEAN, true); + buffer.write(VAR_INT, value.material().id()); + buffer.write(BYTE, (byte) value.amount()); + + // Vanilla does not write an empty object, just an end tag. + NBTCompound nbt = value.meta().toNBT(); + buffer.write(NBT, nbt.isEmpty() ? NBTEnd.INSTANCE : nbt); + return -1; + }, + buffer -> { + final boolean present = buffer.read(BOOLEAN); + if (!present) return ItemStack.AIR; + + final int id = buffer.read(VAR_INT); + final Material material = Material.fromId(id); + if (material == null) throw new RuntimeException("Unknown material id: " + id); + + final int amount = buffer.read(BYTE); + final NBT nbt = buffer.read(NBT); + if (!(nbt instanceof NBTCompound compound)) { + return ItemStack.of(material, amount); + } + + return ItemStack.fromNBT(material, compound, amount); + }); + static final TypeImpl BYTE_ARRAY = new TypeImpl<>(byte[].class, + (buffer, value) -> { + buffer.write(VAR_INT, value.length); + buffer.write(RAW_BYTES, value); + return -1; + }, + buffer -> { + final int length = buffer.read(VAR_INT); + final byte[] bytes = new byte[length]; + buffer.nioBuffer.get(buffer.readIndex(), bytes); + buffer.readIndex += length; + return bytes; + }); + static final TypeImpl LONG_ARRAY = new TypeImpl<>(long[].class, + (buffer, value) -> { + buffer.write(VAR_INT, value.length); + for (long l : value) { + buffer.write(LONG, l); + } + return -1; + }, + buffer -> { + final int length = buffer.read(VAR_INT); + final long[] longs = new long[length]; + for (int i = 0; i < length; i++) { + longs[i] = buffer.read(LONG); + } + return longs; + }); + static final TypeImpl VAR_INT_ARRAY = new TypeImpl<>(int[].class, + (buffer, value) -> { + buffer.write(VAR_INT, value.length); + for (int i : value) { + buffer.write(VAR_INT, i); + } + return -1; + }, + buffer -> { + final int length = buffer.read(VAR_INT); + final int[] ints = new int[length]; + for (int i = 0; i < length; i++) { + ints[i] = buffer.read(VAR_INT); + } + return ints; + }); + static final TypeImpl VAR_LONG_ARRAY = new TypeImpl<>(long[].class, + (buffer, value) -> { + buffer.write(VAR_INT, value.length); + for (long l : value) { + buffer.write(VAR_LONG, l); + } + return -1; + }, + buffer -> { + final int length = buffer.read(VAR_INT); + final long[] longs = new long[length]; + for (int i = 0; i < length; i++) { + longs[i] = buffer.read(VAR_LONG); + } + return longs; + }); + // METADATA + static final TypeImpl OPT_CHAT = new TypeImpl<>(Component.class, + (buffer, value) -> { + if (value == null) { + buffer.write(BOOLEAN, false); + return -1; + } + buffer.write(BOOLEAN, true); + buffer.write(COMPONENT, value); + return -1; + }, + buffer -> { + final boolean present = buffer.read(BOOLEAN); + if (!present) return null; + return buffer.read(COMPONENT); + }); + static final TypeImpl ROTATION = new TypeImpl<>(Point.class, + (buffer, value) -> { + buffer.write(FLOAT, (float) value.x()); + buffer.write(FLOAT, (float) value.y()); + buffer.write(FLOAT, (float) value.z()); + return -1; + }, + buffer -> { + final float x = buffer.read(FLOAT); + final float y = buffer.read(FLOAT); + final float z = buffer.read(FLOAT); + return new Vec(x, y, z); + }); + static final TypeImpl OPT_BLOCK_POSITION = new TypeImpl<>(Point.class, + (buffer, value) -> { + if (value == null) { + buffer.write(BOOLEAN, false); + return -1; + } + buffer.write(BOOLEAN, true); + buffer.write(BLOCK_POSITION, value); + return -1; + }, + buffer -> { + final boolean present = buffer.read(BOOLEAN); + if (!present) return null; + return buffer.read(BLOCK_POSITION); + }); + static final TypeImpl DIRECTION = new TypeImpl<>(Direction.class, + (buffer, value) -> { + buffer.write(VAR_INT, value.ordinal()); + return -1; + }, + buffer -> { + final int ordinal = buffer.read(VAR_INT); + return Direction.values()[ordinal]; + }); + static final TypeImpl OPT_UUID = new TypeImpl<>(UUID.class, + (buffer, value) -> { + if (value == null) { + buffer.write(BOOLEAN, false); + return -1; + } + buffer.write(BOOLEAN, true); + buffer.write(UUID, value); + return -1; + }, + buffer -> { + final boolean present = buffer.read(BOOLEAN); + if (!present) return null; + return buffer.read(UUID); + }); + static final TypeImpl BLOCK_STATE = new TypeImpl<>(Integer.class, + (buffer, value) -> { + buffer.write(NetworkBuffer.VAR_INT, value); + return -1; + }, + buffer -> buffer.read(VAR_INT)); + static final TypeImpl OPT_BLOCK_STATE = new TypeImpl<>(Integer.class, + (buffer, value) -> { + if (value == null) { + buffer.write(NetworkBuffer.VAR_INT, 0); + return -1; + } + buffer.write(VAR_INT, value); + return -1; + }, + buffer -> { + final int value = buffer.read(VAR_INT); + return value == 0 ? null : value; + }); + static final TypeImpl VILLAGER_DATA = new TypeImpl<>(int[].class, + (buffer, value) -> { + buffer.write(VAR_INT, value[0]); + buffer.write(VAR_INT, value[1]); + buffer.write(VAR_INT, value[2]); + return -1; + }, + buffer -> { + final int[] value = new int[3]; + value[0] = buffer.read(VAR_INT); + value[1] = buffer.read(VAR_INT); + value[2] = buffer.read(VAR_INT); + return value; + }); + static final TypeImpl OPT_VAR_INT = new TypeImpl<>(int.class, + (buffer, value) -> { + if (value == null) { + buffer.write(VAR_INT, 0); + return -1; + } + buffer.write(VAR_INT, value + 1); + return -1; + }, + buffer -> { + final int value = buffer.read(VAR_INT); + return value == 0 ? null : value - 1; + }); + static final TypeImpl POSE = new TypeImpl<>(Entity.Pose.class, + (buffer, value) -> { + buffer.write(VAR_INT, value.ordinal()); + return -1; + }, + buffer -> { + final int ordinal = buffer.read(VAR_INT); + return Entity.Pose.values()[ordinal]; + }); + static final TypeImpl DEATH_LOCATION = new TypeImpl<>(DeathLocation.class, + (buffer, value) -> { + if (value == null) { + buffer.write(BOOLEAN, false); + } else { + buffer.write(BOOLEAN, true); + buffer.write(STRING, value.dimension()); + buffer.write(BLOCK_POSITION, value.position()); + } + return -1; + }, + buffer -> { + if (buffer.read(BOOLEAN)) { + return new DeathLocation(buffer.read(STRING), buffer.read(BLOCK_POSITION)); + } + return null; + }); + static final TypeImpl CAT_VARIANT = new TypeImpl<>(CatMeta.Variant.class, + (buffer, value) -> { + buffer.write(VAR_INT, value.ordinal()); + return -1; + }, + buffer -> { + final int ordinal = buffer.read(VAR_INT); + return CatMeta.Variant.values()[ordinal]; + }); + static final TypeImpl FROG_VARIANT = new TypeImpl<>(FrogMeta.Variant.class, + (buffer, value) -> { + buffer.write(VAR_INT, value.ordinal()); + return -1; + }, + buffer -> { + final int ordinal = buffer.read(VAR_INT); + return FrogMeta.Variant.getVariant(ordinal); // Microtus - meta update + }); + static final TypeImpl SNIFFER_STATE = new TypeImpl<>(SnifferMeta.State.class, + (buffer, value) -> { + buffer.write(VAR_INT, value.ordinal()); + return -1; + }, + buffer -> { + final int ordinal = buffer.read(VAR_INT); + return SnifferMeta.State.values()[ordinal]; + }); + static final TypeImpl VECTOR3 = new TypeImpl<>(Point.class, + (buffer, value) -> { + buffer.write(FLOAT, (float) value.x()); + buffer.write(FLOAT, (float) value.y()); + buffer.write(FLOAT, (float) value.z()); + return -1; + }, + buffer -> { + final float x = buffer.read(FLOAT); + final float y = buffer.read(FLOAT); + final float z = buffer.read(FLOAT); + return new Vec(x, y, z); + }); + static final TypeImpl VECTOR3D = new TypeImpl<>(Point.class, + (buffer, value) -> { + buffer.write(DOUBLE, value.x()); + buffer.write(DOUBLE, value.y()); + buffer.write(DOUBLE, value.z()); + return -1; + }, + buffer -> { + final double x = buffer.read(DOUBLE); + final double y = buffer.read(DOUBLE); + final double z = buffer.read(DOUBLE); + return new Vec(x, y, z); + }); + static final TypeImpl QUATERNION = new TypeImpl<>(float[].class, + (buffer, value) -> { + buffer.write(FLOAT, value[0]); + buffer.write(FLOAT, value[1]); + buffer.write(FLOAT, value[2]); + buffer.write(FLOAT, value[3]); + return -1; + }, + buffer -> { + final float x = buffer.read(FLOAT); + final float y = buffer.read(FLOAT); + final float z = buffer.read(FLOAT); + final float w = buffer.read(FLOAT); + return new float[]{x, y, z, w}; + }); + + record TypeImpl(@NotNull Class type, + @NotNull TypeWriter writer, + @NotNull TypeReader reader) implements NetworkBuffer.Type { + } + + interface TypeWriter { + long write(@NotNull NetworkBuffer buffer, @UnknownNullability T value); + } + + interface TypeReader { + @UnknownNullability T read(@NotNull NetworkBuffer buffer); + } +} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/BiomeOption.java b/src/main/java/net/minestom/server/world/biomes/particle/BiomeOption.java new file mode 100644 index 00000000000..07ffda2ba5d --- /dev/null +++ b/src/main/java/net/minestom/server/world/biomes/particle/BiomeOption.java @@ -0,0 +1,16 @@ +package net.minestom.server.world.biomes.particle; + +import net.minestom.server.particle.Particle; +import org.jetbrains.annotations.NotNull; +import org.jglrxavpok.hephaistos.nbt.NBTCompound; + +/** + * Just a generic interface to hold data about biome particles + * @author TheMeinerLP + */ +public interface BiomeOption { + @NotNull + NBTCompound toNbt(); + @NotNull + Particle getType(); +} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/BlockOption.java b/src/main/java/net/minestom/server/world/biomes/particle/BlockOption.java new file mode 100644 index 00000000000..117d9a1ec79 --- /dev/null +++ b/src/main/java/net/minestom/server/world/biomes/particle/BlockOption.java @@ -0,0 +1,32 @@ +package net.minestom.server.world.biomes.particle; + +import net.minestom.server.instance.block.Block; +import net.minestom.server.particle.Particle; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; +import org.jglrxavpok.hephaistos.nbt.NBT; +import org.jglrxavpok.hephaistos.nbt.NBTCompound; + +import java.util.Map; + +@ApiStatus.Experimental +public record BlockOption(@NotNull Block block) implements BiomeOption { + + @Override + public @NotNull NBTCompound toNbt() { + return NBT.Compound(nbtCompound -> { + nbtCompound.setString("type", getType().namespace().toString()); + nbtCompound.setString("Name", block.name()); + Map propertiesMap = block.properties(); + if (!propertiesMap.isEmpty()) { + nbtCompound.set("Properties", NBT.Compound(p -> propertiesMap.forEach(p::setString))); + } + }); + } + + @Override + public @NotNull Particle getType() { + return Particle.BLOCK; + } + +} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/DefaultOption.java b/src/main/java/net/minestom/server/world/biomes/particle/DefaultOption.java new file mode 100644 index 00000000000..1ddad4d7ea4 --- /dev/null +++ b/src/main/java/net/minestom/server/world/biomes/particle/DefaultOption.java @@ -0,0 +1,20 @@ +package net.minestom.server.world.biomes.particle; + +import net.minestom.server.particle.Particle; +import org.jetbrains.annotations.NotNull; +import org.jglrxavpok.hephaistos.nbt.NBT; +import org.jglrxavpok.hephaistos.nbt.NBTCompound; + +import java.util.Map; + +public record DefaultOption(@NotNull Particle particle) implements BiomeOption { + @Override + public @NotNull NBTCompound toNbt() { + return NBT.Compound(Map.of("type", NBT.String(getType().namespace().toString()))); + } + + @Override + public @NotNull Particle getType() { + return particle; + } +} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/DustOption.java b/src/main/java/net/minestom/server/world/biomes/particle/DustOption.java new file mode 100644 index 00000000000..0a84f495820 --- /dev/null +++ b/src/main/java/net/minestom/server/world/biomes/particle/DustOption.java @@ -0,0 +1,34 @@ +package net.minestom.server.world.biomes.particle; + +import net.minestom.server.particle.Particle; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; +import org.jglrxavpok.hephaistos.nbt.NBT; +import org.jglrxavpok.hephaistos.nbt.NBTCompound; + +import java.util.Map; + +/** + * Particle effect which used based on the color values. + * @param red can between 0 and 1 and is divided by 255 + * @param green can between 0 and 1 and is divided by 255 + * @param blue can between 0 and 1 and is divided by 255 + * @param scale can between 0.01 to 4 + */ +@ApiStatus.Experimental +public record DustOption(float red, float green, float blue, float scale) implements BiomeOption { + @Override + public @NotNull NBTCompound toNbt() { + return NBT.Compound(Map.of( + "type", NBT.String(getType().namespace().toString()), + "Red", NBT.Float(red), + "Green", NBT.Float(green), + "Blue", NBT.Float(blue), + "Scale", NBT.Float(scale))); + } + + @Override + public @NotNull Particle getType() { + return Particle.DUST; + } +} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/ItemOption.java b/src/main/java/net/minestom/server/world/biomes/particle/ItemOption.java new file mode 100644 index 00000000000..a977cd052c1 --- /dev/null +++ b/src/main/java/net/minestom/server/world/biomes/particle/ItemOption.java @@ -0,0 +1,27 @@ +package net.minestom.server.world.biomes.particle; + +import net.minestom.server.item.ItemStack; +import net.minestom.server.particle.Particle; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; +import org.jglrxavpok.hephaistos.nbt.NBTCompound; + +/** + * Particle effect which used based on an item inside the biome. + * @param item to bes used + */ +@ApiStatus.Experimental +public record ItemOption(@NotNull ItemStack item) implements BiomeOption { + + @Override + public @NotNull NBTCompound toNbt() { + NBTCompound nbtCompound = item.meta().toNBT(); + return nbtCompound.modify(n -> n.setString("type", getType().namespace().toString())); + } + + @Override + public @NotNull Particle getType() { + return Particle.ITEM; + } + +} diff --git a/src/main/kotlin/minestom.common-conventions.gradle.kts b/src/main/kotlin/minestom.common-conventions.gradle.kts new file mode 100644 index 00000000000..6c56062ffab --- /dev/null +++ b/src/main/kotlin/minestom.common-conventions.gradle.kts @@ -0,0 +1,28 @@ +plugins { + java +} + +// Always exclude checker-qual. This is the single most annoying thing that always reappears. +configurations.all { + // We only use Jetbrains Annotations + exclude("org.checkerframework", "checker-qual") +} + +java { + toolchain { + languageVersion.set(JavaLanguageVersion.of(21)) + } +} + +tasks { + withType { + // We are fully aware, that we should be suppressing these instead of ignoring them here, but man keep my terminal clean. + options.compilerArgs.addAll(listOf("-Xlint:none", "-Xlint:-deprecation", "-Xlint:-unchecked")) + } + withType { + useJUnitPlatform() + // Viewable packets make tracking harder. Could be re-enabled later. + jvmArgs("-Dminestom.viewable-packet=false") + jvmArgs("-Dminestom.inside-test=true") + } +} \ No newline at end of file diff --git a/src/main/kotlin/minestom.native-conventions.gradle.kts b/src/main/kotlin/minestom.native-conventions.gradle.kts new file mode 100644 index 00000000000..4a873e818bb --- /dev/null +++ b/src/main/kotlin/minestom.native-conventions.gradle.kts @@ -0,0 +1,14 @@ +plugins { + id("minestom.common-conventions") + id("org.graalvm.buildtools.native") +} + +graalvmNative { + binaries { + named("main") { + buildArgs.add("--allow-incomplete-classpath") + // One day toolchains will support getting this automagically, but that day is not today. + toolchainDetection.set(false) + } + } +} \ No newline at end of file diff --git a/src/main/kotlin/minestom.publishing-conventions.gradle.kts b/src/main/kotlin/minestom.publishing-conventions.gradle.kts new file mode 100644 index 00000000000..305dd158be3 --- /dev/null +++ b/src/main/kotlin/minestom.publishing-conventions.gradle.kts @@ -0,0 +1,40 @@ +plugins { + id("net.kyori.indra") + id("net.kyori.indra.publishing") + id("net.kyori.indra.publishing.sonatype") + id("io.github.gradle-nexus.publish-plugin") +} + +indra { + javaVersions { + target(21) + testWith(21) + } + + github("OneLiteFeatherNET", "Microtus") { + ci(true) + publishing(false) + } + mitLicense() + signWithKeyFromPrefixedProperties("onelitefeather") + configurePublications { + pom { + developers { + developer { + id.set("themeinerlp") + name.set("Phillipp Glanz") + email.set("p.glanz@madfix.me") + } + developer { + id.set("theEvilReaper") + name.set("Steffen Wonning") + email.set("steffenwx@gmail.com") + } + } + } + } +} + +indraSonatype { + useAlternateSonatypeOSSHost("s01") +} \ No newline at end of file diff --git a/src/main/kotlin/net/onelitefeather/microtus/ExtensionPlugin.kt b/src/main/kotlin/net/onelitefeather/microtus/ExtensionPlugin.kt new file mode 100644 index 00000000000..e02e9d94396 --- /dev/null +++ b/src/main/kotlin/net/onelitefeather/microtus/ExtensionPlugin.kt @@ -0,0 +1,76 @@ +package net.onelitefeather.microtus + +import net.onelitefeather.microtus.models.Extension +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.api.plugins.JavaPlugin +import org.gradle.api.tasks.SourceSet +import org.gradle.api.tasks.SourceSetContainer +import org.gradle.kotlin.dsl.getByType +import org.gradle.kotlin.dsl.register +import org.gradle.kotlin.dsl.withType + +/** + * Represents the gradle plugin extension which can be integrated into a `build.gradle.kts` file to define the properties of the extension. + * The usage of this plugin is as follows: + * + * ```kotlin + * plugins { + * id("net.onelitefeather.microtus.extension") version "" + * // ... + * } + * + * extension { + * //... use the properties of the extension here + * } + * ``` + * + * @since 1.2.0 + * @author TheMeinerLP + */ +class ExtensionPlugin : Plugin { + + private val fileName = "extension.json" + + /** + * Applies the plugin to the project. + * @param target the project to apply the plugin to + */ + override fun apply(target: Project) { + target.run { + val generatedResourcesDirectory = layout.buildDirectory.dir("generated/extension") + val extension = Extension() + extensions.add("extension", extension) + + val library = project.configurations.maybeCreate("library") + val libraries = project.configurations.create("extensionLibrary").extendsFrom(library) + + val generateTask = tasks.register("generateExtension") { + group = "minestom" + + fileName.set(this@ExtensionPlugin.fileName) + librariesRootComponent.set(libraries.incoming.resolutionResult.root) + outputDirectory.set(generatedResourcesDirectory) + this.extension.set(provider { + setDefaults(project, extension) + extension + }) + } + plugins.withType { + extensions.getByType().named(SourceSet.MAIN_SOURCE_SET_NAME) { + resources.srcDir(generateTask) + } + } + } + } + + /** + * Sets some default variables to a [Extension] object. + * @param project the project to get the name and version from + * @param extension the extension to set the variables to + */ + private fun setDefaults(project: Project, extension: Extension) { + extension.name = extension.name ?: project.name + extension.version = extension.version ?: project.version.toString() + } +} \ No newline at end of file diff --git a/src/main/kotlin/net/onelitefeather/microtus/GenerateExtension.kt b/src/main/kotlin/net/onelitefeather/microtus/GenerateExtension.kt new file mode 100644 index 00000000000..0df18c5afb0 --- /dev/null +++ b/src/main/kotlin/net/onelitefeather/microtus/GenerateExtension.kt @@ -0,0 +1,79 @@ +package net.onelitefeather.microtus + +import com.fasterxml.jackson.annotation.JsonInclude +import com.fasterxml.jackson.databind.ObjectMapper +import com.fasterxml.jackson.databind.module.SimpleModule +import com.fasterxml.jackson.module.kotlin.registerKotlinModule +import net.onelitefeather.microtus.models.Extension +import org.gradle.api.DefaultTask +import org.gradle.api.artifacts.repositories.MavenArtifactRepository +import org.gradle.api.artifacts.result.ResolvedComponentResult +import org.gradle.api.artifacts.result.ResolvedDependencyResult +import org.gradle.api.file.DirectoryProperty +import org.gradle.api.provider.Property +import org.gradle.api.tasks.* +import kotlin.jvm.Throws + +/** + * Defines the task which generates the required extension.json file for Minestom. + * @since 1.2.0 + * @author TheMeinerLP + */ +abstract class GenerateExtension : DefaultTask() { + @get:Input + abstract val fileName: Property + + @get:Nested + abstract val extension: Property + + @get:OutputDirectory + abstract val outputDirectory: DirectoryProperty + + @get:Input + @get:Optional + abstract val librariesRootComponent: Property + + /** + * Generates an extension.json file based on the given properties. + */ + @TaskAction + fun generate() { + val module = SimpleModule() + val mapper = ObjectMapper() + .registerKotlinModule() + .registerModule(module) + .setSerializationInclusion(JsonInclude.Include.NON_EMPTY) + val extension = extension.get() + val dependencies = librariesRootComponent.orNull.collectLibraries() + val repos = this.project.repositories.withType(MavenArtifactRepository::class.java) + val externalDependencies = Extension.ExternalDependencies() + externalDependencies.artifacts = dependencies.toList() + val mavenCentral = Extension.Repository() + mavenCentral.url = "https://repo.maven.apache.org/maven2/" + mavenCentral.name = "mavenCentral" + val mappedRepos = repos.map { + val repo = Extension.Repository() + repo.url = it.url.toString() + repo.name = it.name + repo + }.toList() + externalDependencies.repositories = if (mappedRepos.isNotEmpty() || dependencies.isNotEmpty()) { + mappedRepos + listOf(mavenCentral) + } else { + listOf() + } + extension.externalDependencies = externalDependencies + mapper.writeValue(outputDirectory.file(fileName).get().asFile, extension) + } + + /** + * Collects all libraries from the root component and the additional libraries. + * @param additional the additional libraries to add + */ + private fun ResolvedComponentResult?.collectLibraries(additional: List? = null): List { + val resolved = this?.dependencies?.map { dependencyResult -> + (dependencyResult as? ResolvedDependencyResult)?.selected?.moduleVersion?.toString() ?: error("No moduleVersion for $dependencyResult") + } + return ((additional ?: listOf()) + (resolved ?: listOf())).distinct() + } +} \ No newline at end of file diff --git a/src/main/kotlin/net/onelitefeather/microtus/models/Extension.kt b/src/main/kotlin/net/onelitefeather/microtus/models/Extension.kt new file mode 100644 index 00000000000..3e8976c5970 --- /dev/null +++ b/src/main/kotlin/net/onelitefeather/microtus/models/Extension.kt @@ -0,0 +1,76 @@ +package net.onelitefeather.microtus.models + +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.Optional +import org.gradle.internal.impldep.com.fasterxml.jackson.annotation.JsonProperty + +/** + * Represents the allowed data fields for an extension.json file which is required from Minestom to load an extension. + * The following fields are allowed (fields with a * are required): + * + * - name: The name of the extension (*) + * - version: The version of the extension (*) + * - entrypoint: The entrypoint of the extension (*) + * - authors: The authors of the extension + * - dependencies: The dependencies of the extension + * - externalDependencies: The external dependencies of the extension + * @since 1.2.0 + * @author TheMeinerLP + */ +class Extension() { + @Input + var name: String? = null + + @Input + var version: String? = null + + @Input + var entrypoint: String? = null + + @Input + @Optional + @JsonProperty("authors") + var authors: List? = null + + @Input + @Optional + @JsonProperty("dependencies") + var dependencies: List? = null + + @Input + @Optional + @JsonProperty("externalDependencies") + var externalDependencies: ExternalDependencies? = null + + /** + * Represents the external dependencies which is required for the extension to work. + * @since 1.2.0 + * @author TheMeinerLP + */ + class ExternalDependencies { + @JsonProperty("repositories") + var repositories: List? = null + + @Input + @Optional + @JsonProperty("artifacts") + var artifacts: List? = null + + } + + /** + * Represents a repository which is used by an extension to load external dependencies. + * @since 1.2.0 + * @author TheMeinerLP + * @see ExternalDependencies + */ + class Repository { + @Input + @JsonProperty("name") + var name: String? = null + + @Input + @JsonProperty("url") + var url: String? = null + } +} From 6cfff150b3b9449d55f2ffd3ed06251d39d8b246 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Mon, 5 Aug 2024 14:29:58 +0200 Subject: [PATCH 50/93] Remove old biome, banner, shield, particle, attribute system --- .../codegen/biome/BiomeGenerator.java | 146 ---------------- .../codegen/feature/FeatureFlagGenerator.java | 106 ----------- .../minestom/server/attribute/Attributes.java | 61 ------- .../server/item/banner/BannerPatterns.java | 89 ---------- .../server/item/banner/BannerPattern.java | 40 ----- .../server/item/banner/BannerPatternImpl.java | 49 ------ .../server/item/metadata/BannerMeta.java | 165 ------------------ .../server/item/metadata/ShieldMeta.java | 131 -------------- .../world/biomes/particle/BiomeOption.java | 16 -- .../world/biomes/particle/BlockOption.java | 32 ---- .../world/biomes/particle/DefaultOption.java | 20 --- .../world/biomes/particle/DustOption.java | 34 ---- .../world/biomes/particle/ItemOption.java | 27 --- 13 files changed, 916 deletions(-) delete mode 100644 code-generators/src/main/java/net/minestom/codegen/biome/BiomeGenerator.java delete mode 100644 code-generators/src/main/java/net/minestom/codegen/feature/FeatureFlagGenerator.java delete mode 100644 src/autogenerated/java/net/minestom/server/attribute/Attributes.java delete mode 100644 src/autogenerated/java/net/minestom/server/item/banner/BannerPatterns.java delete mode 100644 src/main/java/net/minestom/server/item/banner/BannerPattern.java delete mode 100644 src/main/java/net/minestom/server/item/banner/BannerPatternImpl.java delete mode 100644 src/main/java/net/minestom/server/item/metadata/BannerMeta.java delete mode 100644 src/main/java/net/minestom/server/item/metadata/ShieldMeta.java delete mode 100644 src/main/java/net/minestom/server/world/biomes/particle/BiomeOption.java delete mode 100644 src/main/java/net/minestom/server/world/biomes/particle/BlockOption.java delete mode 100644 src/main/java/net/minestom/server/world/biomes/particle/DefaultOption.java delete mode 100644 src/main/java/net/minestom/server/world/biomes/particle/DustOption.java delete mode 100644 src/main/java/net/minestom/server/world/biomes/particle/ItemOption.java diff --git a/code-generators/src/main/java/net/minestom/codegen/biome/BiomeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/biome/BiomeGenerator.java deleted file mode 100644 index f82f817012c..00000000000 --- a/code-generators/src/main/java/net/minestom/codegen/biome/BiomeGenerator.java +++ /dev/null @@ -1,146 +0,0 @@ -package net.minestom.codegen.biome; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.squareup.javapoet.AnnotationSpec; -import com.squareup.javapoet.ArrayTypeName; -import com.squareup.javapoet.ClassName; -import com.squareup.javapoet.CodeBlock; -import com.squareup.javapoet.FieldSpec; -import com.squareup.javapoet.JavaFile; -import com.squareup.javapoet.MethodSpec; -import com.squareup.javapoet.ParameterSpec; -import com.squareup.javapoet.TypeName; -import com.squareup.javapoet.TypeSpec; -import java.awt.Color; -import java.io.File; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.List; -import javax.lang.model.element.Modifier; -import net.minestom.codegen.MinestomCodeGenerator; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -@ApiStatus.Internal -@ApiStatus.NonExtendable -public final class BiomeGenerator extends MinestomCodeGenerator { - - private static final String BIOME_KEY = "biome"; - private static final String BIOME_FILE_PACKAGE = "net.minestom.server.world.biomes"; // Microtus - Biomes - private static final String CLASS_NAME = "Biomes"; // Microtus - Biomes - private static final Logger LOGGER = LoggerFactory.getLogger(BiomeGenerator.class); - private final InputStream biomeFile; - private final File outputFolder; - - public BiomeGenerator(@Nullable InputStream biomeFile, @NotNull File outputFolder) { - super(BIOME_FILE_PACKAGE); - this.biomeFile = biomeFile; - this.outputFolder = outputFolder; - } - - @Override - public void generate() { - if (biomeFile == null) { - LOGGER.error("Failed to find biome.json."); - LOGGER.error("Stopped code generation for biomes."); - return; - } - if (!outputFolder.exists() && !outputFolder.mkdirs()) { - LOGGER.error("Output folder for code generation does not exist and could not be created."); - return; - } - - JsonElement biomes = GSON.fromJson(new InputStreamReader(biomeFile), JsonElement.class); - ClassName biomeCN = ClassName.get(BIOME_FILE_PACKAGE, CLASS_NAME); - ClassName biomeCn = ClassName.get(BIOME_FILE_PACKAGE, "Biome"); - ClassName categoryCn = biomeCn.nestedClass("Category"); - ClassName minecraftServerCn = ClassName.get("net.minestom.server", "MinecraftServer"); - ClassName namespaceIDCn = ClassName.get("net.minestom.server.utils", "NamespaceID"); - ClassName biomeEffectsCn = ClassName.get(BIOME_FILE_PACKAGE, "BiomeEffects"); - // Dye Color Enum - TypeSpec.Builder biomesEnum = TypeSpec.enumBuilder(biomeCN) - .addModifiers(Modifier.PUBLIC).addJavadoc("AUTOGENERATED by " + getClass().getSimpleName()); - - // Fields - biomesEnum.addFields( - List.of( - FieldSpec.builder(biomeCn, BIOME_KEY, Modifier.PRIVATE, Modifier.FINAL).build(), - FieldSpec.builder(ArrayTypeName.of(biomeCN), "VALUES", Modifier.PRIVATE, Modifier.STATIC, Modifier.FINAL).initializer(CLASS_NAME + ".values()").build() // Microtus - Banner and shield meta - ) - ); - - // Methods - biomesEnum.addMethods( - List.of( - // Constructor - MethodSpec.constructorBuilder() - .addParameter( - ParameterSpec.builder(biomeCn, BIOME_KEY).addAnnotation(NotNull.class).build() - ) - .addStatement("this.$1L = $1L", BIOME_KEY) - .build(), - MethodSpec.methodBuilder(BIOME_KEY) - .addModifiers(Modifier.PUBLIC) - .returns(biomeCn.annotated(AnnotationSpec.builder(NotNull.class).build())) - .addStatement("return this.$L", BIOME_KEY) - .build(), - MethodSpec.methodBuilder("getValue") - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .addParameter(ParameterSpec.builder(TypeName.INT, "id").build()) - .addAnnotation(Nullable.class) - .returns(ClassName.get(BIOME_FILE_PACKAGE, CLASS_NAME)) - .addCode("return VALUES[$L];", "id") - .build(), - MethodSpec.methodBuilder("registerBiomes") - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .beginControlFlow("for (var $L : VALUES)", BIOME_KEY) - .addStatement("$1T.getBiomeManager().addBiome($2L.$2L())", minecraftServerCn, BIOME_KEY) - .endControlFlow() - .build() - ) - ); - final JsonObject biomesAsJsonObject = biomes.getAsJsonObject(); - biomesAsJsonObject.keySet().forEach(biome -> { - var biomeObject = biomesAsJsonObject.get(biome).getAsJsonObject(); - var temperature = biomeObject.get("temperature").getAsFloat(); - var downfall = biomeObject.get("downfall").getAsFloat(); - var hasPrecipitation = biomeObject.get("has_precipitation").getAsBoolean(); - var fogColor = Integer.toHexString(new Color(biomeObject.get("fogColor").getAsInt()).getRGB()).substring(2); - var waterColor = Integer.toHexString(new Color(biomeObject.get("waterColor").getAsInt()).getRGB()).substring(2); - var waterFogColor = Integer.toHexString(new Color(biomeObject.get("waterFogColor").getAsInt()).getRGB()).substring(2); - var skyColor = Integer.toHexString(new Color(biomeObject.get("skyColor").getAsInt()).getRGB()).substring(2); - var effectCodeBlock = CodeBlock.builder(); - effectCodeBlock = effectCodeBlock.add("$T.builder().fogColor(0x$L).waterColor(0x$L).waterFogColor(0x$L).skyColor(0x$L)", biomeEffectsCn, fogColor, waterColor, waterFogColor, skyColor); - if (biomeObject.has("grassColor")) { - var grassColor = Integer.toHexString(new Color(biomeObject.get("grassColor").getAsInt()).getRGB()).substring(2); - effectCodeBlock = effectCodeBlock.add(".grassColor(0x$L)", grassColor); - } - if (biomeObject.has("foliageColor")) { - var foliageColor = Integer.toHexString(new Color(biomeObject.get("foliageColor").getAsInt()).getRGB()).substring(2); - effectCodeBlock = effectCodeBlock.add(".foliageColor(0x$L)", foliageColor); - } - effectCodeBlock = effectCodeBlock.add(".build()"); - var namespacedCode = CodeBlock.of("$T.from($S)", namespaceIDCn, biome.replaceFirst("minecraft:", "")); - biomesEnum.addEnumConstant(extractNamespace(biome), TypeSpec.anonymousClassBuilder( - "$T.builder().name($L).category($T.NONE).depth(0.125F).scale(0.05F).temperature($Lf).downfall($Lf).showPrecipitation($L).effects($L).build()", - biomeCn, namespacedCode, categoryCn, temperature, downfall, hasPrecipitation, effectCodeBlock.build() - ).build() - ); - }); - - // Write files to outputFolder - writeFiles( - List.of( - JavaFile.builder(BIOME_FILE_PACKAGE, biomesEnum.build()) - .indent(DEFAULT_INDENT) - .skipJavaLangImports(true) - .build() - ), - outputFolder - ); - } -} diff --git a/code-generators/src/main/java/net/minestom/codegen/feature/FeatureFlagGenerator.java b/code-generators/src/main/java/net/minestom/codegen/feature/FeatureFlagGenerator.java deleted file mode 100644 index 8545161b910..00000000000 --- a/code-generators/src/main/java/net/minestom/codegen/feature/FeatureFlagGenerator.java +++ /dev/null @@ -1,106 +0,0 @@ -package net.minestom.codegen.feature; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.squareup.javapoet.*; -import net.minestom.codegen.MinestomCodeGenerator; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.lang.model.element.Modifier; -import java.io.File; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.List; - -public class FeatureFlagGenerator extends MinestomCodeGenerator { - - private static final String FEATURE_FLAG_FILE_PACKAGE = "net.minestom.server.feature"; // Microtus - Feature flag - private static final String CLASS_NAME = "FeatureFlags"; - private static final String FEATURE_KEY = "feature"; - private static final Logger LOGGER = LoggerFactory.getLogger(FeatureFlagGenerator.class); - - private final InputStream featureFlagFile; - private final File outputFolder; - - /** - * Creates a new code generator. - */ - public FeatureFlagGenerator(InputStream featureFlagFile, File outputFolder) { - super(FEATURE_FLAG_FILE_PACKAGE); - this.featureFlagFile = featureFlagFile; - this.outputFolder = outputFolder; - } - - @Override - public void generate() { - if (featureFlagFile == null) { - LOGGER.error("Failed to find feature_flag.json."); - LOGGER.error("Stopped code generation for feature_flag.json."); - return; - } - if (!outputFolder.exists() && !outputFolder.mkdirs()) { - LOGGER.error("Output folder for code generation does not exist and could not be created."); - return; - } - JsonElement featureFlags = GSON.fromJson(new InputStreamReader(featureFlagFile), JsonElement.class); - - ClassName featureFlag = ClassName.get(FEATURE_FLAG_FILE_PACKAGE, CLASS_NAME); - ClassName namespacedId = ClassName.get("net.minestom.server.utils", "NamespaceID"); - - TypeSpec.Builder featureFlagEnum = TypeSpec.enumBuilder(featureFlag) - .addModifiers(Modifier.PUBLIC).addJavadoc("AUTOGENERATED by " + getClass().getSimpleName()); - - // Fields - featureFlagEnum.addFields( - List.of( - FieldSpec.builder(namespacedId, FEATURE_KEY, Modifier.PRIVATE, Modifier.FINAL).build(), - FieldSpec.builder(ArrayTypeName.of(featureFlag), "VALUES", Modifier.PRIVATE, Modifier.STATIC, Modifier.FINAL).initializer(CLASS_NAME + ".values()").build() - ) - ); - - // Methods - featureFlagEnum.addMethods( - List.of( - // Constructor - MethodSpec.constructorBuilder() - .addParameter( - ParameterSpec.builder(namespacedId, FEATURE_KEY).addAnnotation(NotNull.class).build() - ) - .addStatement("this.$1L = $1L", FEATURE_KEY) - .build(), - MethodSpec.methodBuilder(FEATURE_KEY) - .addModifiers(Modifier.PUBLIC) - .returns(namespacedId.annotated(AnnotationSpec.builder(NotNull.class).build())) - .addStatement("return this.$L", FEATURE_KEY) - .build(), - MethodSpec.methodBuilder("getValue") - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .addParameter(ParameterSpec.builder(TypeName.INT, "id").build()) - .addAnnotation(Nullable.class) - .returns(ClassName.get(FEATURE_FLAG_FILE_PACKAGE, CLASS_NAME)) - .addCode("return VALUES[$L];", "id") - .build() - ) - ); - featureFlags.getAsJsonArray().forEach(featureFlagElement -> { - String object = featureFlagElement.getAsString(); - featureFlagEnum.addEnumConstant(extractNamespace(object), TypeSpec.anonymousClassBuilder( - "$T.from($S)", - namespacedId, object - ).build() - ); - }); - writeFiles( - List.of( - JavaFile.builder(FEATURE_FLAG_FILE_PACKAGE, featureFlagEnum.build()) - .indent(DEFAULT_INDENT) - .skipJavaLangImports(true) - .build() - ), - outputFolder - ); - } -} diff --git a/src/autogenerated/java/net/minestom/server/attribute/Attributes.java b/src/autogenerated/java/net/minestom/server/attribute/Attributes.java deleted file mode 100644 index a5edd76b551..00000000000 --- a/src/autogenerated/java/net/minestom/server/attribute/Attributes.java +++ /dev/null @@ -1,61 +0,0 @@ -package net.minestom.server.attribute; - -import net.minestom.server.MinecraftServer; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * AUTOGENERATED by AttributeGenerator - */ -public enum Attributes { - GENERIC_ARMOR(new Attribute("minecraft:generic.armor", 0.0f, 30.0f)), - - GENERIC_ARMOR_TOUGHNESS(new Attribute("minecraft:generic.armor_toughness", 0.0f, 20.0f)), - - GENERIC_ATTACK_DAMAGE(new Attribute("minecraft:generic.attack_damage", 2.0f, 2048.0f)), - - GENERIC_ATTACK_KNOCKBACK(new Attribute("minecraft:generic.attack_knockback", 0.0f, 5.0f)), - - GENERIC_ATTACK_SPEED(new Attribute("minecraft:generic.attack_speed", 4.0f, 1024.0f)), - - GENERIC_FLYING_SPEED(new Attribute("minecraft:generic.flying_speed", 0.4f, 1024.0f)), - - GENERIC_FOLLOW_RANGE(new Attribute("minecraft:generic.follow_range", 32.0f, 2048.0f)), - - HORSE_JUMP_STRENGTH(new Attribute("minecraft:horse.jump_strength", 0.7f, 2.0f)), - - GENERIC_KNOCKBACK_RESISTANCE(new Attribute("minecraft:generic.knockback_resistance", 0.0f, 1.0f)), - - GENERIC_LUCK(new Attribute("minecraft:generic.luck", 0.0f, 1024.0f)), - - GENERIC_MAX_ABSORPTION(new Attribute("minecraft:generic.max_absorption", 0.0f, 2048.0f)), - - GENERIC_MAX_HEALTH(new Attribute("minecraft:generic.max_health", 20.0f, 1024.0f)), - - GENERIC_MOVEMENT_SPEED(new Attribute("minecraft:generic.movement_speed", 0.7f, 1024.0f)), - - ZOMBIE_SPAWN_REINFORCEMENTS(new Attribute("minecraft:zombie.spawn_reinforcements", 0.0f, 1.0f)); - - private static final Attributes[] VALUES = values(); - - private final Attribute attribute; - - Attributes(@NotNull Attribute attribute) { - this.attribute = attribute; - } - - public @NotNull Attribute attribute() { - return this.attribute; - } - - @Nullable - public static Attribute getValue(int id) { - return VALUES[id].attribute; - } - - public static void registerAttributes() { - for (var v : VALUES) { - MinecraftServer.getAttributeManager().register(v.attribute()); - } - } -} diff --git a/src/autogenerated/java/net/minestom/server/item/banner/BannerPatterns.java b/src/autogenerated/java/net/minestom/server/item/banner/BannerPatterns.java deleted file mode 100644 index b53f30b6e26..00000000000 --- a/src/autogenerated/java/net/minestom/server/item/banner/BannerPatterns.java +++ /dev/null @@ -1,89 +0,0 @@ -package net.minestom.server.item.banner; - -/** - * Code autogenerated, do not edit! - */ -@SuppressWarnings("unused") -interface BannerPatterns { - BannerPattern BASE = BannerPatternImpl.get("minecraft:base"); - - BannerPattern SQUARE_BOTTOM_LEFT = BannerPatternImpl.get("minecraft:square_bottom_left"); - - BannerPattern SQUARE_BOTTOM_RIGHT = BannerPatternImpl.get("minecraft:square_bottom_right"); - - BannerPattern SQUARE_TOP_LEFT = BannerPatternImpl.get("minecraft:square_top_left"); - - BannerPattern SQUARE_TOP_RIGHT = BannerPatternImpl.get("minecraft:square_top_right"); - - BannerPattern STRIPE_BOTTOM = BannerPatternImpl.get("minecraft:stripe_bottom"); - - BannerPattern STRIPE_TOP = BannerPatternImpl.get("minecraft:stripe_top"); - - BannerPattern STRIPE_LEFT = BannerPatternImpl.get("minecraft:stripe_left"); - - BannerPattern STRIPE_RIGHT = BannerPatternImpl.get("minecraft:stripe_right"); - - BannerPattern STRIPE_CENTER = BannerPatternImpl.get("minecraft:stripe_center"); - - BannerPattern STRIPE_MIDDLE = BannerPatternImpl.get("minecraft:stripe_middle"); - - BannerPattern STRIPE_DOWNRIGHT = BannerPatternImpl.get("minecraft:stripe_downright"); - - BannerPattern STRIPE_DOWNLEFT = BannerPatternImpl.get("minecraft:stripe_downleft"); - - BannerPattern SMALL_STRIPES = BannerPatternImpl.get("minecraft:small_stripes"); - - BannerPattern CROSS = BannerPatternImpl.get("minecraft:cross"); - - BannerPattern STRAIGHT_CROSS = BannerPatternImpl.get("minecraft:straight_cross"); - - BannerPattern TRIANGLE_BOTTOM = BannerPatternImpl.get("minecraft:triangle_bottom"); - - BannerPattern TRIANGLE_TOP = BannerPatternImpl.get("minecraft:triangle_top"); - - BannerPattern TRIANGLES_BOTTOM = BannerPatternImpl.get("minecraft:triangles_bottom"); - - BannerPattern TRIANGLES_TOP = BannerPatternImpl.get("minecraft:triangles_top"); - - BannerPattern DIAGONAL_LEFT = BannerPatternImpl.get("minecraft:diagonal_left"); - - BannerPattern DIAGONAL_UP_RIGHT = BannerPatternImpl.get("minecraft:diagonal_up_right"); - - BannerPattern DIAGONAL_UP_LEFT = BannerPatternImpl.get("minecraft:diagonal_up_left"); - - BannerPattern DIAGONAL_RIGHT = BannerPatternImpl.get("minecraft:diagonal_right"); - - BannerPattern CIRCLE = BannerPatternImpl.get("minecraft:circle"); - - BannerPattern RHOMBUS = BannerPatternImpl.get("minecraft:rhombus"); - - BannerPattern HALF_VERTICAL = BannerPatternImpl.get("minecraft:half_vertical"); - - BannerPattern HALF_HORIZONTAL = BannerPatternImpl.get("minecraft:half_horizontal"); - - BannerPattern HALF_VERTICAL_RIGHT = BannerPatternImpl.get("minecraft:half_vertical_right"); - - BannerPattern HALF_HORIZONTAL_BOTTOM = BannerPatternImpl.get("minecraft:half_horizontal_bottom"); - - BannerPattern BORDER = BannerPatternImpl.get("minecraft:border"); - - BannerPattern CURLY_BORDER = BannerPatternImpl.get("minecraft:curly_border"); - - BannerPattern GRADIENT = BannerPatternImpl.get("minecraft:gradient"); - - BannerPattern GRADIENT_UP = BannerPatternImpl.get("minecraft:gradient_up"); - - BannerPattern BRICKS = BannerPatternImpl.get("minecraft:bricks"); - - BannerPattern GLOBE = BannerPatternImpl.get("minecraft:globe"); - - BannerPattern CREEPER = BannerPatternImpl.get("minecraft:creeper"); - - BannerPattern SKULL = BannerPatternImpl.get("minecraft:skull"); - - BannerPattern FLOWER = BannerPatternImpl.get("minecraft:flower"); - - BannerPattern MOJANG = BannerPatternImpl.get("minecraft:mojang"); - - BannerPattern PIGLIN = BannerPatternImpl.get("minecraft:piglin"); -} diff --git a/src/main/java/net/minestom/server/item/banner/BannerPattern.java b/src/main/java/net/minestom/server/item/banner/BannerPattern.java deleted file mode 100644 index 86d320f1285..00000000000 --- a/src/main/java/net/minestom/server/item/banner/BannerPattern.java +++ /dev/null @@ -1,40 +0,0 @@ -package net.minestom.server.item.banner; - -import net.kyori.adventure.key.Key; -import net.minestom.server.registry.ProtocolObject; -import net.minestom.server.registry.StaticProtocolObject; -import net.minestom.server.utils.NamespaceID; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Collection; - -// Microtus - Banner and Shield Meta -public sealed interface BannerPattern extends StaticProtocolObject, BannerPatterns permits BannerPatternImpl { - static @NotNull Collection<@NotNull BannerPattern> values() { - return BannerPatternImpl.values(); - } - - static @Nullable BannerPattern fromNamespaceId(@NotNull String namespaceID) { - return BannerPatternImpl.getSafe(namespaceID); - } - - static @Nullable BannerPattern fromNamespaceId(@NotNull NamespaceID namespaceID) { - return fromNamespaceId(namespaceID.asString()); - } - - static @Nullable BannerPattern fromId(int id) { - return BannerPatternImpl.getId(id); - } - - static @Nullable BannerPattern fromIdentifier(String identifier) { - return BannerPatternImpl.getIdentifier(identifier); - } - - @Override - default @NotNull Key key() { - return StaticProtocolObject.super.key(); - } - - @NotNull String identifier(); -} diff --git a/src/main/java/net/minestom/server/item/banner/BannerPatternImpl.java b/src/main/java/net/minestom/server/item/banner/BannerPatternImpl.java deleted file mode 100644 index 028e219a01e..00000000000 --- a/src/main/java/net/minestom/server/item/banner/BannerPatternImpl.java +++ /dev/null @@ -1,49 +0,0 @@ -package net.minestom.server.item.banner; - -import net.minestom.server.registry.Registry; -import net.minestom.server.utils.NamespaceID; -import org.jetbrains.annotations.NotNull; - -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; - -// Microtus - Banner and Shield Meta -public record BannerPatternImpl(NamespaceID namespace, int id, String identifier) implements BannerPattern { - - private static Map IDENTIFIERS = new HashMap<>(); - private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.BANNER_PATTERNS, BannerPatternImpl::createImpl); - - private static BannerPattern createImpl(String namespace, Registry.Properties properties) { - int id = properties.getInt("id"); - String identifier = properties.getString("identifier"); - BannerPatternImpl bannerPattern = new BannerPatternImpl(NamespaceID.from(namespace), id, identifier); - IDENTIFIERS.put(identifier, bannerPattern); - return bannerPattern; - } - - static BannerPattern get(@NotNull String namespace) { - return CONTAINER.get(namespace); - } - - static BannerPattern getSafe(@NotNull String namespace) { - return CONTAINER.getSafe(namespace); - } - - static BannerPattern getId(int id) { - return CONTAINER.getId(id); - } - - static BannerPattern getIdentifier(@NotNull String identifier) { - return IDENTIFIERS.get(identifier); - } - - static Collection values() { - return CONTAINER.values(); - } - - @Override - public String toString() { - return name(); - } -} diff --git a/src/main/java/net/minestom/server/item/metadata/BannerMeta.java b/src/main/java/net/minestom/server/item/metadata/BannerMeta.java deleted file mode 100644 index 9d0a70d06e1..00000000000 --- a/src/main/java/net/minestom/server/item/metadata/BannerMeta.java +++ /dev/null @@ -1,165 +0,0 @@ -package net.minestom.server.item.metadata; - -/** - * @author theEvilReaper - * @version 1.0.0 - * @since - **/ - -import net.kyori.adventure.text.Component; -import net.minestom.server.color.DyeColor; -import net.minestom.server.item.ItemMetaView; -import net.minestom.server.item.banner.BannerPattern; -import net.minestom.server.tag.Tag; -import net.minestom.server.tag.TagHandler; -import net.minestom.server.tag.TagReadable; -import net.minestom.server.tag.TagSerializer; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.Nullable; -import org.jetbrains.annotations.UnknownNullability; -import org.jglrxavpok.hephaistos.nbt.NBT; -import org.jglrxavpok.hephaistos.nbt.NBTCompound; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -/** - * Meta for all {@link net.minestom.server.item.Material#WHITE_BANNER} and {@link net.minestom.server.item.Material#SHIELD} items - * - * @param readable data - */ -// Microtus - Banner and Shield Meta -@ApiStatus.Experimental -public record BannerMeta(TagReadable readable) implements ItemMetaView { - - private static final String PATTERN_KEY = "Pattern"; - private static final String COLOR_KEY = "Color"; - - private static final Tag CUSTOM_NAME = Tag.Component("CustomName").path("BlockEntityTag"); - private static final Tag> PATTERNS = Tag.Structure("Patterns", - TagSerializer.fromCompound(Pattern::fromCompound, Pattern::asCompound)) - .path("BlockEntityTag").list().defaultValue(List.of()); - - - @Contract(value = "_, _ -> new", pure = true) - public static @NotNull Pattern from(@NotNull DyeColor color, @NotNull BannerPattern pattern) { - return new Pattern(color, pattern); - } - - /** - * Get name of the marker, unused by Minestom - * - * @return name of the marker - */ - public @Nullable Component getCustomName() { - return getTag(CUSTOM_NAME); - } - - /** - * Get patterns of the banner - * - * @return patterns of the banner - */ - public @NotNull List getPatterns() { - return getTag(PATTERNS); - } - - @Override - public @UnknownNullability T getTag(@NotNull Tag tag) { - return readable.getTag(tag); - } - - public record Builder(TagHandler tagHandler) implements ItemMetaView.Builder { - public Builder() { - this(TagHandler.newHandler()); - } - - /** - * Set name of the marker, unused by Minestom - * - * @param customName name of the marker - * @return this - */ - public @NotNull Builder customName(Component customName) { - setTag(CUSTOM_NAME, customName); - return this; - } - - /** - * Set the patterns of the banner - * - * @param patterns patterns of the banner - * @return this - */ - public @NotNull Builder patterns(@NotNull List patterns) { - setTag(PATTERNS, patterns); - return this; - } - - /** - * Add a pattern to the banner - * - * @param pattern pattern to add - * @return this - */ - public @NotNull Builder addPattern(Pattern pattern) { - var newList = new ArrayList<>(getTag(PATTERNS)); - newList.add(pattern); - return patterns(newList); - } - - /** - * Remove a pattern from the banner - * - * @param pattern pattern to remove - * @return this - */ - public @NotNull Builder removePattern(Pattern pattern) { - var newList = new ArrayList<>(getTag(PATTERNS)); - newList.remove(pattern); - return patterns(newList); - } - - /** - * Clears the underlying list which contains the pattern values. - * @return this - */ - public @NotNull Builder clearPatterns() { - return patterns(List.of()); - } - } - - public record Pattern(@NotNull DyeColor color, @NotNull BannerPattern pattern) { - - /** - * Retrieves a banner pattern from the given {@code compound}. - * - * @param compound The NBT connection, which should be a banner pattern. - * @return A new created banner pattern. - */ - public static @NotNull Pattern fromCompound(@NotNull NBTCompound compound) { - DyeColor color = compound.containsKey(COLOR_KEY) ? DyeColor.getValue(compound.getByte(COLOR_KEY)) : DyeColor.WHITE; - BannerPattern type; - if (compound.containsKey(PATTERN_KEY)) { - BannerPattern pattern = BannerPattern.fromIdentifier(compound.getString(PATTERN_KEY)); - type = pattern != null ? pattern : BannerPattern.BASE; - } else type = BannerPattern.BASE; - return new Pattern(color, type); - } - - /** - * Retrieves the {@link Pattern} as an {@link NBTCompound}. - * - * @return The banner pattern as a nbt compound. - */ - public @NotNull NBTCompound asCompound() { - return NBT.Compound(Map.of( - COLOR_KEY, NBT.Byte(color.ordinal()), - PATTERN_KEY, NBT.String(pattern.identifier()) - )); - } - } -} diff --git a/src/main/java/net/minestom/server/item/metadata/ShieldMeta.java b/src/main/java/net/minestom/server/item/metadata/ShieldMeta.java deleted file mode 100644 index 56a864253f2..00000000000 --- a/src/main/java/net/minestom/server/item/metadata/ShieldMeta.java +++ /dev/null @@ -1,131 +0,0 @@ -package net.minestom.server.item.metadata; - -import net.kyori.adventure.text.Component; -import net.minestom.server.color.DyeColor; -import net.minestom.server.item.ItemMetaView; -import net.minestom.server.tag.Tag; -import net.minestom.server.tag.TagHandler; -import net.minestom.server.tag.TagReadable; -import net.minestom.server.tag.TagSerializer; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.jetbrains.annotations.UnknownNullability; - -import java.util.ArrayList; -import java.util.List; - -// Microtus - Banner and Shield Meta -@ApiStatus.Experimental -public record ShieldMeta(@NotNull TagReadable readable) implements ItemMetaView { - - private static final String BASE_KEY = "Base"; - private static final String ENTITY_TAG = "BlockEntityTag"; - private static final Tag CUSTOM_NAME = Tag.Component("CustomName").path(ENTITY_TAG); - private static final Tag BASE_TAG = Tag.Integer(BASE_KEY).path(ENTITY_TAG); - private static final Tag> PATTERNS = Tag.Structure("Patterns", - TagSerializer.fromCompound(BannerMeta.Pattern::fromCompound, BannerMeta.Pattern::asCompound)) - .path(ENTITY_TAG).list().defaultValue(List.of()); - - /** - * Get base color of the shield - * - * @return the base color - */ - public @NotNull DyeColor getBaseColor() { - return DyeColor.getValue(getTag(BASE_TAG)); - } - - /** - * Get name of the marker, unused by Minestom - * - * @return name of the marker - */ - public @Nullable Component getCustomName() { - return getTag(CUSTOM_NAME); - } - - /** - * Get patterns of the shield - * - * @return patterns of the shield - */ - public @NotNull List getPatterns() { - return getTag(PATTERNS); - } - - @Override - public @UnknownNullability T getTag(@NotNull Tag tag) { - return readable.getTag(tag); - } - - public record Builder(@NotNull TagHandler tagHandler) implements ItemMetaView.Builder { - public Builder() { - this(TagHandler.newHandler()); - } - - /** - * Set the color which is used as base color for a shield. - * @param dyeColor the color to set - * @return the builder instance - */ - public @NotNull ShieldMeta.Builder baseColor(@NotNull DyeColor dyeColor) { - setTag(BASE_TAG, dyeColor.ordinal()); - return this; - } - - /** - * Set name of the marker, unused by Minestom - * - * @param customName name of the marker - * @return this - */ - public @NotNull ShieldMeta.Builder customName(@NotNull Component customName) { - setTag(CUSTOM_NAME, customName); - return this; - } - - /** - * Set the patterns of the shield - * - * @param patterns patterns of the shield - * @return this - */ - public @NotNull ShieldMeta.Builder patterns(@NotNull List patterns) { - setTag(PATTERNS, patterns); - return this; - } - - /** - * Add a pattern to the shield - * - * @param pattern pattern to add - * @return this - */ - public @NotNull ShieldMeta.Builder addPattern(BannerMeta.Pattern pattern) { - var newList = new ArrayList<>(getTag(PATTERNS)); - newList.add(pattern); - return patterns(newList); - } - - /** - * Remove a pattern from the shield - * - * @param pattern pattern to remove - * @return this - */ - public @NotNull ShieldMeta.Builder removePattern(BannerMeta.Pattern pattern) { - var newList = new ArrayList<>(getTag(PATTERNS)); - newList.remove(pattern); - return patterns(newList); - } - - /** - * Clears the underlying list which contains the pattern values. - * @return this - */ - public @NotNull ShieldMeta.Builder clearPatterns() { - return patterns(List.of()); - } - } -} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/BiomeOption.java b/src/main/java/net/minestom/server/world/biomes/particle/BiomeOption.java deleted file mode 100644 index 07ffda2ba5d..00000000000 --- a/src/main/java/net/minestom/server/world/biomes/particle/BiomeOption.java +++ /dev/null @@ -1,16 +0,0 @@ -package net.minestom.server.world.biomes.particle; - -import net.minestom.server.particle.Particle; -import org.jetbrains.annotations.NotNull; -import org.jglrxavpok.hephaistos.nbt.NBTCompound; - -/** - * Just a generic interface to hold data about biome particles - * @author TheMeinerLP - */ -public interface BiomeOption { - @NotNull - NBTCompound toNbt(); - @NotNull - Particle getType(); -} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/BlockOption.java b/src/main/java/net/minestom/server/world/biomes/particle/BlockOption.java deleted file mode 100644 index 117d9a1ec79..00000000000 --- a/src/main/java/net/minestom/server/world/biomes/particle/BlockOption.java +++ /dev/null @@ -1,32 +0,0 @@ -package net.minestom.server.world.biomes.particle; - -import net.minestom.server.instance.block.Block; -import net.minestom.server.particle.Particle; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; -import org.jglrxavpok.hephaistos.nbt.NBT; -import org.jglrxavpok.hephaistos.nbt.NBTCompound; - -import java.util.Map; - -@ApiStatus.Experimental -public record BlockOption(@NotNull Block block) implements BiomeOption { - - @Override - public @NotNull NBTCompound toNbt() { - return NBT.Compound(nbtCompound -> { - nbtCompound.setString("type", getType().namespace().toString()); - nbtCompound.setString("Name", block.name()); - Map propertiesMap = block.properties(); - if (!propertiesMap.isEmpty()) { - nbtCompound.set("Properties", NBT.Compound(p -> propertiesMap.forEach(p::setString))); - } - }); - } - - @Override - public @NotNull Particle getType() { - return Particle.BLOCK; - } - -} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/DefaultOption.java b/src/main/java/net/minestom/server/world/biomes/particle/DefaultOption.java deleted file mode 100644 index 1ddad4d7ea4..00000000000 --- a/src/main/java/net/minestom/server/world/biomes/particle/DefaultOption.java +++ /dev/null @@ -1,20 +0,0 @@ -package net.minestom.server.world.biomes.particle; - -import net.minestom.server.particle.Particle; -import org.jetbrains.annotations.NotNull; -import org.jglrxavpok.hephaistos.nbt.NBT; -import org.jglrxavpok.hephaistos.nbt.NBTCompound; - -import java.util.Map; - -public record DefaultOption(@NotNull Particle particle) implements BiomeOption { - @Override - public @NotNull NBTCompound toNbt() { - return NBT.Compound(Map.of("type", NBT.String(getType().namespace().toString()))); - } - - @Override - public @NotNull Particle getType() { - return particle; - } -} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/DustOption.java b/src/main/java/net/minestom/server/world/biomes/particle/DustOption.java deleted file mode 100644 index 0a84f495820..00000000000 --- a/src/main/java/net/minestom/server/world/biomes/particle/DustOption.java +++ /dev/null @@ -1,34 +0,0 @@ -package net.minestom.server.world.biomes.particle; - -import net.minestom.server.particle.Particle; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; -import org.jglrxavpok.hephaistos.nbt.NBT; -import org.jglrxavpok.hephaistos.nbt.NBTCompound; - -import java.util.Map; - -/** - * Particle effect which used based on the color values. - * @param red can between 0 and 1 and is divided by 255 - * @param green can between 0 and 1 and is divided by 255 - * @param blue can between 0 and 1 and is divided by 255 - * @param scale can between 0.01 to 4 - */ -@ApiStatus.Experimental -public record DustOption(float red, float green, float blue, float scale) implements BiomeOption { - @Override - public @NotNull NBTCompound toNbt() { - return NBT.Compound(Map.of( - "type", NBT.String(getType().namespace().toString()), - "Red", NBT.Float(red), - "Green", NBT.Float(green), - "Blue", NBT.Float(blue), - "Scale", NBT.Float(scale))); - } - - @Override - public @NotNull Particle getType() { - return Particle.DUST; - } -} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/ItemOption.java b/src/main/java/net/minestom/server/world/biomes/particle/ItemOption.java deleted file mode 100644 index a977cd052c1..00000000000 --- a/src/main/java/net/minestom/server/world/biomes/particle/ItemOption.java +++ /dev/null @@ -1,27 +0,0 @@ -package net.minestom.server.world.biomes.particle; - -import net.minestom.server.item.ItemStack; -import net.minestom.server.particle.Particle; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; -import org.jglrxavpok.hephaistos.nbt.NBTCompound; - -/** - * Particle effect which used based on an item inside the biome. - * @param item to bes used - */ -@ApiStatus.Experimental -public record ItemOption(@NotNull ItemStack item) implements BiomeOption { - - @Override - public @NotNull NBTCompound toNbt() { - NBTCompound nbtCompound = item.meta().toNBT(); - return nbtCompound.modify(n -> n.setString("type", getType().namespace().toString())); - } - - @Override - public @NotNull Particle getType() { - return Particle.ITEM; - } - -} From 31ea30569105fbff6fb315a3a23549cfd87ab409 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Mon, 5 Aug 2024 14:30:09 +0200 Subject: [PATCH 51/93] Fix forward data generator --- .../net/minestom/codegen/MinestomCodeGenerator.java | 12 +++++------- .../codegen/entity/VillagerProfessionGenerator.java | 1 - .../codegen/entity/VillagerTypeGenerator.java | 1 - 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/code-generators/src/main/java/net/minestom/codegen/MinestomCodeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/MinestomCodeGenerator.java index 02f47ef71f2..c868029a0ec 100644 --- a/code-generators/src/main/java/net/minestom/codegen/MinestomCodeGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/MinestomCodeGenerator.java @@ -22,17 +22,11 @@ public abstract class MinestomCodeGenerator implements CodeExporter { protected static final Modifier[] CONSTANT_MODIFIERS = {Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL}; protected static final Modifier[] PRIVATE_FINAL_MODIFIERS = {Modifier.PRIVATE, Modifier.FINAL}; protected static final String DEFAULT_INDENT = " "; - protected String packageName; /** * Creates a new code generator. - * @param packageName the package name of the generated class */ - protected MinestomCodeGenerator(@NotNull String packageName) { - if (packageName.trim().isEmpty()) { - throw new IllegalArgumentException("Package name cannot be empty"); - } - this.packageName = packageName; + protected MinestomCodeGenerator() { } public abstract void generate(); @@ -42,6 +36,10 @@ protected MinestomCodeGenerator(@NotNull String packageName) { } + protected static String toConstant(String namespace) { + return namespace.replace("minecraft:", "").toUpperCase(Locale.ROOT); + } + protected static String toConstant(String namespace) { return namespace.replace("minecraft:", "").toUpperCase(Locale.ROOT); } diff --git a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java index d25441a83db..9309c8ec68d 100644 --- a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java @@ -31,7 +31,6 @@ public final class VillagerProfessionGenerator extends MinestomCodeGenerator { public VillagerProfessionGenerator(@Nullable InputStream villagerProfessionsFile, @NotNull File outputFolder) { - super(""); this.villagerProfessionsFile = villagerProfessionsFile; this.outputFolder = outputFolder; } diff --git a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java index bc26041d017..0f59af765a7 100644 --- a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java @@ -29,7 +29,6 @@ public final class VillagerTypeGenerator extends MinestomCodeGenerator { private final File outputFolder; public VillagerTypeGenerator(@Nullable InputStream villagerTypesFile, @NotNull File outputFolder) { - super(""); this.villagerTypesFile = villagerTypesFile; this.outputFolder = outputFolder; } From d47ae72a01a4f60dc7b3ba5ae1baaaec8ec2a893 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Mon, 5 Aug 2024 14:30:36 +0200 Subject: [PATCH 52/93] Remove old network stack --- .../server/network/NetworkBufferTypes.java | 639 ------------------ 1 file changed, 639 deletions(-) delete mode 100644 src/main/java/net/minestom/server/network/NetworkBufferTypes.java diff --git a/src/main/java/net/minestom/server/network/NetworkBufferTypes.java b/src/main/java/net/minestom/server/network/NetworkBufferTypes.java deleted file mode 100644 index 13cc9079a34..00000000000 --- a/src/main/java/net/minestom/server/network/NetworkBufferTypes.java +++ /dev/null @@ -1,639 +0,0 @@ -package net.minestom.server.network; - -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.minestom.server.adventure.serializer.nbt.NbtComponentSerializer; -import net.minestom.server.coordinate.Point; -import net.minestom.server.coordinate.Vec; -import net.minestom.server.entity.Entity; -import net.minestom.server.entity.metadata.animal.FrogMeta; -import net.minestom.server.entity.metadata.animal.SnifferMeta; -import net.minestom.server.entity.metadata.animal.tameable.CatMeta; -import net.minestom.server.item.ItemStack; -import net.minestom.server.item.Material; -import net.minestom.server.network.packet.server.play.data.DeathLocation; -import net.minestom.server.utils.Direction; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.UnknownNullability; -import org.jglrxavpok.hephaistos.nbt.*; - -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.nio.charset.StandardCharsets; -import java.util.UUID; - -final class NetworkBufferTypes { - private static final int SEGMENT_BITS = 0x7F; - private static final int CONTINUE_BIT = 0x80; - - static final TypeImpl BOOLEAN = new TypeImpl<>(Boolean.class, - (buffer, value) -> { - buffer.ensureSize(1); - buffer.nioBuffer.put(buffer.writeIndex(), value ? (byte) 1 : (byte) 0); - return 1; - }, - buffer -> { - final byte value = buffer.nioBuffer.get(buffer.readIndex()); - buffer.readIndex += 1; - return value == 1; - }); - static final TypeImpl BYTE = new TypeImpl<>(Byte.class, - (buffer, value) -> { - buffer.ensureSize(1); - buffer.nioBuffer.put(buffer.writeIndex(), value); - return 1; - }, - buffer -> { - final byte value = buffer.nioBuffer.get(buffer.readIndex()); - buffer.readIndex += 1; - return value; - }); - static final TypeImpl SHORT = new TypeImpl<>(Short.class, - (buffer, value) -> { - buffer.ensureSize(2); - buffer.nioBuffer.putShort(buffer.writeIndex(), value); - return 2; - }, - buffer -> { - final short value = buffer.nioBuffer.getShort(buffer.readIndex()); - buffer.readIndex += 2; - return value; - }); - static final TypeImpl UNSIGNED_SHORT = new TypeImpl<>(Integer.class, - (buffer, value) -> { - buffer.ensureSize(2); - buffer.nioBuffer.putShort(buffer.writeIndex(), (short) (value & 0xFFFF)); - return 2; - }, - buffer -> { - final short value = buffer.nioBuffer.getShort(buffer.readIndex()); - buffer.readIndex += 2; - return value & 0xFFFF; - }); - static final TypeImpl INT = new TypeImpl<>(Integer.class, - (buffer, value) -> { - buffer.ensureSize(4); - buffer.nioBuffer.putInt(buffer.writeIndex(), value); - return 4; - }, - buffer -> { - final int value = buffer.nioBuffer.getInt(buffer.readIndex()); - buffer.readIndex += 4; - return value; - }); - static final TypeImpl LONG = new TypeImpl<>(Long.class, - (buffer, value) -> { - buffer.ensureSize(8); - buffer.nioBuffer.putLong(buffer.writeIndex(), value); - return 8; - }, - buffer -> { - final long value = buffer.nioBuffer.getLong(buffer.readIndex()); - buffer.readIndex += 8; - return value; - }); - static final TypeImpl FLOAT = new TypeImpl<>(Float.class, - (buffer, value) -> { - buffer.ensureSize(4); - buffer.nioBuffer.putFloat(buffer.writeIndex(), value); - return 4; - }, - buffer -> { - final float value = buffer.nioBuffer.getFloat(buffer.readIndex()); - buffer.readIndex += 4; - return value; - }); - static final TypeImpl DOUBLE = new TypeImpl<>(Double.class, - (buffer, value) -> { - buffer.ensureSize(8); - buffer.nioBuffer.putDouble(buffer.writeIndex(), value); - return 8; - }, - buffer -> { - final double value = buffer.nioBuffer.getDouble(buffer.readIndex()); - buffer.readIndex += 8; - return value; - }); - static final TypeImpl VAR_INT = new TypeImpl<>(Integer.class, - (buffer, boxed) -> { - final int value = boxed; - final int index = buffer.writeIndex(); - if ((value & (0xFFFFFFFF << 7)) == 0) { - buffer.ensureSize(1); - buffer.nioBuffer.put(index, (byte) value); - return 1; - } else if ((value & (0xFFFFFFFF << 14)) == 0) { - buffer.ensureSize(2); - buffer.nioBuffer.putShort(index, (short) ((value & 0x7F | 0x80) << 8 | (value >>> 7))); - return 2; - } else if ((value & (0xFFFFFFFF << 21)) == 0) { - buffer.ensureSize(3); - var nio = buffer.nioBuffer; - nio.put(index, (byte) (value & 0x7F | 0x80)); - nio.put(index + 1, (byte) ((value >>> 7) & 0x7F | 0x80)); - nio.put(index + 2, (byte) (value >>> 14)); - return 3; - } else if ((value & (0xFFFFFFFF << 28)) == 0) { - buffer.ensureSize(4); - var nio = buffer.nioBuffer; - nio.putInt(index, (value & 0x7F | 0x80) << 24 | (((value >>> 7) & 0x7F | 0x80) << 16) - | ((value >>> 14) & 0x7F | 0x80) << 8 | (value >>> 21)); - return 4; - } else { - buffer.ensureSize(5); - var nio = buffer.nioBuffer; - nio.putInt(index, (value & 0x7F | 0x80) << 24 | ((value >>> 7) & 0x7F | 0x80) << 16 - | ((value >>> 14) & 0x7F | 0x80) << 8 | ((value >>> 21) & 0x7F | 0x80)); - nio.put(index + 4, (byte) (value >>> 28)); - return 5; - } - }, - buffer -> { - int index = buffer.readIndex(); - // https://github.com/jvm-profiling-tools/async-profiler/blob/a38a375dc62b31a8109f3af97366a307abb0fe6f/src/converter/one/jfr/JfrReader.java#L393 - int result = 0; - for (int shift = 0; ; shift += 7) { - byte b = buffer.nioBuffer.get(index++); - result |= (b & 0x7f) << shift; - if (b >= 0) { - buffer.readIndex += index - buffer.readIndex(); - return result; - } - } - }); - static final TypeImpl VAR_LONG = new TypeImpl<>(Long.class, - (buffer, value) -> { - buffer.ensureSize(10); - int size = 0; - while (true) { - if ((value & ~((long) SEGMENT_BITS)) == 0) { - buffer.nioBuffer.put(buffer.writeIndex() + size, (byte) value.intValue()); - return size + 1; - } - buffer.nioBuffer.put(buffer.writeIndex() + size, (byte) (value & SEGMENT_BITS | CONTINUE_BIT)); - size++; - // Note: >>> means that the sign bit is shifted with the rest of the number rather than being left alone - value >>>= 7; - } - }, - buffer -> { - int length = 0; - - long value = 0; - int position = 0; - byte currentByte; - - while (true) { - currentByte = buffer.nioBuffer.get(buffer.readIndex() + length); - length++; - value |= (long) (currentByte & SEGMENT_BITS) << position; - if ((currentByte & CONTINUE_BIT) == 0) break; - position += 7; - if (position >= 64) throw new RuntimeException("VarLong is too big"); - } - buffer.readIndex += length; - return value; - }); - static final TypeImpl RAW_BYTES = new TypeImpl<>(byte[].class, - (buffer, value) -> { - buffer.ensureSize(value.length); - buffer.nioBuffer.put(buffer.writeIndex(), value); - return value.length; - }, - buffer -> { - final int limit = buffer.nioBuffer.limit(); - final int length = limit - buffer.readIndex(); - assert length > 0 : "Invalid remaining: " + length; - final byte[] bytes = new byte[length]; - buffer.nioBuffer.get(buffer.readIndex(), bytes); - buffer.readIndex += length; - return bytes; - }); - static final TypeImpl STRING = new TypeImpl<>(String.class, - (buffer, value) -> { - final byte[] bytes = value.getBytes(StandardCharsets.UTF_8); - buffer.write(VAR_INT, bytes.length); - buffer.write(RAW_BYTES, bytes); - return -1; - }, - buffer -> { - final int length = buffer.read(VAR_INT); - byte[] bytes = new byte[length]; - buffer.nioBuffer.get(buffer.readIndex(), bytes); - buffer.readIndex += length; - return new String(bytes, StandardCharsets.UTF_8); - }); - static final TypeImpl NBT = new TypeImpl<>(NBT.class, - (buffer, value) -> { - NBTWriter nbtWriter = buffer.nbtWriter; - if (nbtWriter == null) { - nbtWriter = new NBTWriter(new OutputStream() { - @Override - public void write(int b) { - buffer.write(BYTE, (byte) b); - } - }, CompressedProcesser.NONE); - buffer.nbtWriter = nbtWriter; - } - try { - if (value == NBTEnd.INSTANCE) { - // Kotlin - https://discord.com/channels/706185253441634317/706186227493109860/1163703658341478462 - buffer.write(BYTE, (byte) NBTType.TAG_End.getOrdinal()); - } else { - buffer.write(BYTE, (byte) value.getID().getOrdinal()); - nbtWriter.writeRaw(value); - } - } catch (IOException e) { - throw new RuntimeException(e); - } - return -1; - }, - buffer -> { - NBTReader nbtReader = buffer.nbtReader; - if (nbtReader == null) { - nbtReader = new NBTReader(new InputStream() { - @Override - public int read() { - return buffer.read(BYTE) & 0xFF; - } - - @Override - public int available() { - return buffer.readableBytes(); - } - }, CompressedProcesser.NONE); - buffer.nbtReader = nbtReader; - } - try { - byte tagId = buffer.read(BYTE); - if (tagId == NBTType.TAG_End.getOrdinal()) - return NBTEnd.INSTANCE; - return nbtReader.readRaw(tagId); - } catch (IOException | NBTException e) { - throw new RuntimeException(e); - } - }); - static final TypeImpl BLOCK_POSITION = new TypeImpl<>(Point.class, - (buffer, value) -> { - final int blockX = value.blockX(); - final int blockY = value.blockY(); - final int blockZ = value.blockZ(); - final long longPos = (((long) blockX & 0x3FFFFFF) << 38) | - (((long) blockZ & 0x3FFFFFF) << 12) | - ((long) blockY & 0xFFF); - buffer.write(LONG, longPos); - return -1; - }, - buffer -> { - final long value = buffer.read(LONG); - final int x = (int) (value >> 38); - final int y = (int) (value << 52 >> 52); - final int z = (int) (value << 26 >> 38); - return new Vec(x, y, z); - }); - static final TypeImpl COMPONENT = new TypeImpl<>(Component.class, - (buffer, value) -> { - final NBT nbt = NbtComponentSerializer.nbt().serialize(value); - buffer.write(NBT, nbt); - return -1; - }, - buffer -> { - final NBT nbt = buffer.read(NBT); - return NbtComponentSerializer.nbt().deserialize(nbt); - }); - static final TypeImpl JSON_COMPONENT = new TypeImpl<>(Component.class, - (buffer, value) -> { - final String json = GsonComponentSerializer.gson().serialize(value); - buffer.write(STRING, json); - return -1; - }, - buffer -> { - final String json = buffer.read(STRING); - return GsonComponentSerializer.gson().deserialize(json); - }); - static final TypeImpl UUID = new TypeImpl<>(UUID.class, - (buffer, value) -> { - buffer.write(LONG, value.getMostSignificantBits()); - buffer.write(LONG, value.getLeastSignificantBits()); - return -1; - }, - buffer -> { - final long mostSignificantBits = buffer.read(LONG); - final long leastSignificantBits = buffer.read(LONG); - return new UUID(mostSignificantBits, leastSignificantBits); - }); - static final TypeImpl ITEM = new TypeImpl<>(ItemStack.class, - (buffer, value) -> { - if (value.isAir()) { - buffer.write(BOOLEAN, false); - return -1; - } - buffer.write(BOOLEAN, true); - buffer.write(VAR_INT, value.material().id()); - buffer.write(BYTE, (byte) value.amount()); - - // Vanilla does not write an empty object, just an end tag. - NBTCompound nbt = value.meta().toNBT(); - buffer.write(NBT, nbt.isEmpty() ? NBTEnd.INSTANCE : nbt); - return -1; - }, - buffer -> { - final boolean present = buffer.read(BOOLEAN); - if (!present) return ItemStack.AIR; - - final int id = buffer.read(VAR_INT); - final Material material = Material.fromId(id); - if (material == null) throw new RuntimeException("Unknown material id: " + id); - - final int amount = buffer.read(BYTE); - final NBT nbt = buffer.read(NBT); - if (!(nbt instanceof NBTCompound compound)) { - return ItemStack.of(material, amount); - } - - return ItemStack.fromNBT(material, compound, amount); - }); - static final TypeImpl BYTE_ARRAY = new TypeImpl<>(byte[].class, - (buffer, value) -> { - buffer.write(VAR_INT, value.length); - buffer.write(RAW_BYTES, value); - return -1; - }, - buffer -> { - final int length = buffer.read(VAR_INT); - final byte[] bytes = new byte[length]; - buffer.nioBuffer.get(buffer.readIndex(), bytes); - buffer.readIndex += length; - return bytes; - }); - static final TypeImpl LONG_ARRAY = new TypeImpl<>(long[].class, - (buffer, value) -> { - buffer.write(VAR_INT, value.length); - for (long l : value) { - buffer.write(LONG, l); - } - return -1; - }, - buffer -> { - final int length = buffer.read(VAR_INT); - final long[] longs = new long[length]; - for (int i = 0; i < length; i++) { - longs[i] = buffer.read(LONG); - } - return longs; - }); - static final TypeImpl VAR_INT_ARRAY = new TypeImpl<>(int[].class, - (buffer, value) -> { - buffer.write(VAR_INT, value.length); - for (int i : value) { - buffer.write(VAR_INT, i); - } - return -1; - }, - buffer -> { - final int length = buffer.read(VAR_INT); - final int[] ints = new int[length]; - for (int i = 0; i < length; i++) { - ints[i] = buffer.read(VAR_INT); - } - return ints; - }); - static final TypeImpl VAR_LONG_ARRAY = new TypeImpl<>(long[].class, - (buffer, value) -> { - buffer.write(VAR_INT, value.length); - for (long l : value) { - buffer.write(VAR_LONG, l); - } - return -1; - }, - buffer -> { - final int length = buffer.read(VAR_INT); - final long[] longs = new long[length]; - for (int i = 0; i < length; i++) { - longs[i] = buffer.read(VAR_LONG); - } - return longs; - }); - // METADATA - static final TypeImpl OPT_CHAT = new TypeImpl<>(Component.class, - (buffer, value) -> { - if (value == null) { - buffer.write(BOOLEAN, false); - return -1; - } - buffer.write(BOOLEAN, true); - buffer.write(COMPONENT, value); - return -1; - }, - buffer -> { - final boolean present = buffer.read(BOOLEAN); - if (!present) return null; - return buffer.read(COMPONENT); - }); - static final TypeImpl ROTATION = new TypeImpl<>(Point.class, - (buffer, value) -> { - buffer.write(FLOAT, (float) value.x()); - buffer.write(FLOAT, (float) value.y()); - buffer.write(FLOAT, (float) value.z()); - return -1; - }, - buffer -> { - final float x = buffer.read(FLOAT); - final float y = buffer.read(FLOAT); - final float z = buffer.read(FLOAT); - return new Vec(x, y, z); - }); - static final TypeImpl OPT_BLOCK_POSITION = new TypeImpl<>(Point.class, - (buffer, value) -> { - if (value == null) { - buffer.write(BOOLEAN, false); - return -1; - } - buffer.write(BOOLEAN, true); - buffer.write(BLOCK_POSITION, value); - return -1; - }, - buffer -> { - final boolean present = buffer.read(BOOLEAN); - if (!present) return null; - return buffer.read(BLOCK_POSITION); - }); - static final TypeImpl DIRECTION = new TypeImpl<>(Direction.class, - (buffer, value) -> { - buffer.write(VAR_INT, value.ordinal()); - return -1; - }, - buffer -> { - final int ordinal = buffer.read(VAR_INT); - return Direction.values()[ordinal]; - }); - static final TypeImpl OPT_UUID = new TypeImpl<>(UUID.class, - (buffer, value) -> { - if (value == null) { - buffer.write(BOOLEAN, false); - return -1; - } - buffer.write(BOOLEAN, true); - buffer.write(UUID, value); - return -1; - }, - buffer -> { - final boolean present = buffer.read(BOOLEAN); - if (!present) return null; - return buffer.read(UUID); - }); - static final TypeImpl BLOCK_STATE = new TypeImpl<>(Integer.class, - (buffer, value) -> { - buffer.write(NetworkBuffer.VAR_INT, value); - return -1; - }, - buffer -> buffer.read(VAR_INT)); - static final TypeImpl OPT_BLOCK_STATE = new TypeImpl<>(Integer.class, - (buffer, value) -> { - if (value == null) { - buffer.write(NetworkBuffer.VAR_INT, 0); - return -1; - } - buffer.write(VAR_INT, value); - return -1; - }, - buffer -> { - final int value = buffer.read(VAR_INT); - return value == 0 ? null : value; - }); - static final TypeImpl VILLAGER_DATA = new TypeImpl<>(int[].class, - (buffer, value) -> { - buffer.write(VAR_INT, value[0]); - buffer.write(VAR_INT, value[1]); - buffer.write(VAR_INT, value[2]); - return -1; - }, - buffer -> { - final int[] value = new int[3]; - value[0] = buffer.read(VAR_INT); - value[1] = buffer.read(VAR_INT); - value[2] = buffer.read(VAR_INT); - return value; - }); - static final TypeImpl OPT_VAR_INT = new TypeImpl<>(int.class, - (buffer, value) -> { - if (value == null) { - buffer.write(VAR_INT, 0); - return -1; - } - buffer.write(VAR_INT, value + 1); - return -1; - }, - buffer -> { - final int value = buffer.read(VAR_INT); - return value == 0 ? null : value - 1; - }); - static final TypeImpl POSE = new TypeImpl<>(Entity.Pose.class, - (buffer, value) -> { - buffer.write(VAR_INT, value.ordinal()); - return -1; - }, - buffer -> { - final int ordinal = buffer.read(VAR_INT); - return Entity.Pose.values()[ordinal]; - }); - static final TypeImpl DEATH_LOCATION = new TypeImpl<>(DeathLocation.class, - (buffer, value) -> { - if (value == null) { - buffer.write(BOOLEAN, false); - } else { - buffer.write(BOOLEAN, true); - buffer.write(STRING, value.dimension()); - buffer.write(BLOCK_POSITION, value.position()); - } - return -1; - }, - buffer -> { - if (buffer.read(BOOLEAN)) { - return new DeathLocation(buffer.read(STRING), buffer.read(BLOCK_POSITION)); - } - return null; - }); - static final TypeImpl CAT_VARIANT = new TypeImpl<>(CatMeta.Variant.class, - (buffer, value) -> { - buffer.write(VAR_INT, value.ordinal()); - return -1; - }, - buffer -> { - final int ordinal = buffer.read(VAR_INT); - return CatMeta.Variant.values()[ordinal]; - }); - static final TypeImpl FROG_VARIANT = new TypeImpl<>(FrogMeta.Variant.class, - (buffer, value) -> { - buffer.write(VAR_INT, value.ordinal()); - return -1; - }, - buffer -> { - final int ordinal = buffer.read(VAR_INT); - return FrogMeta.Variant.getVariant(ordinal); // Microtus - meta update - }); - static final TypeImpl SNIFFER_STATE = new TypeImpl<>(SnifferMeta.State.class, - (buffer, value) -> { - buffer.write(VAR_INT, value.ordinal()); - return -1; - }, - buffer -> { - final int ordinal = buffer.read(VAR_INT); - return SnifferMeta.State.values()[ordinal]; - }); - static final TypeImpl VECTOR3 = new TypeImpl<>(Point.class, - (buffer, value) -> { - buffer.write(FLOAT, (float) value.x()); - buffer.write(FLOAT, (float) value.y()); - buffer.write(FLOAT, (float) value.z()); - return -1; - }, - buffer -> { - final float x = buffer.read(FLOAT); - final float y = buffer.read(FLOAT); - final float z = buffer.read(FLOAT); - return new Vec(x, y, z); - }); - static final TypeImpl VECTOR3D = new TypeImpl<>(Point.class, - (buffer, value) -> { - buffer.write(DOUBLE, value.x()); - buffer.write(DOUBLE, value.y()); - buffer.write(DOUBLE, value.z()); - return -1; - }, - buffer -> { - final double x = buffer.read(DOUBLE); - final double y = buffer.read(DOUBLE); - final double z = buffer.read(DOUBLE); - return new Vec(x, y, z); - }); - static final TypeImpl QUATERNION = new TypeImpl<>(float[].class, - (buffer, value) -> { - buffer.write(FLOAT, value[0]); - buffer.write(FLOAT, value[1]); - buffer.write(FLOAT, value[2]); - buffer.write(FLOAT, value[3]); - return -1; - }, - buffer -> { - final float x = buffer.read(FLOAT); - final float y = buffer.read(FLOAT); - final float z = buffer.read(FLOAT); - final float w = buffer.read(FLOAT); - return new float[]{x, y, z, w}; - }); - - record TypeImpl(@NotNull Class type, - @NotNull TypeWriter writer, - @NotNull TypeReader reader) implements NetworkBuffer.Type { - } - - interface TypeWriter { - long write(@NotNull NetworkBuffer buffer, @UnknownNullability T value); - } - - interface TypeReader { - @UnknownNullability T read(@NotNull NetworkBuffer buffer); - } -} From 3036238630c3031859c7fcbc362e3b3ae1a190bb Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Mon, 5 Aug 2024 14:31:21 +0200 Subject: [PATCH 53/93] Remove no longer exists api form player --- .../net/minestom/server/entity/Player.java | 127 ++++++++++-------- 1 file changed, 72 insertions(+), 55 deletions(-) diff --git a/src/main/java/net/minestom/server/entity/Player.java b/src/main/java/net/minestom/server/entity/Player.java index 040c26cefd2..e88d90de368 100644 --- a/src/main/java/net/minestom/server/entity/Player.java +++ b/src/main/java/net/minestom/server/entity/Player.java @@ -7,7 +7,6 @@ import net.kyori.adventure.identity.Identified; import net.kyori.adventure.identity.Identity; import net.kyori.adventure.inventory.Book; -import net.kyori.adventure.key.Key; import net.kyori.adventure.pointer.Pointers; import net.kyori.adventure.resource.ResourcePackCallback; import net.kyori.adventure.resource.ResourcePackInfo; @@ -98,7 +97,8 @@ import net.minestom.server.utils.time.TimeUnit; import net.minestom.server.utils.validate.Check; import net.minestom.server.world.DimensionType; -import org.jctools.queues.MpscArrayQueue; +import org.jctools.queues.MessagePassingQueue; +import org.jctools.queues.MpscUnboundedXaddArrayQueue; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -175,7 +175,7 @@ public class Player extends LivingEntity implements CommandSender, Localizable, private final AtomicInteger teleportId = new AtomicInteger(); private int receivedTeleportId; - private final MpscArrayQueue packets = new MpscArrayQueue<>(ServerFlag.PLAYER_PACKET_QUEUE_SIZE); + private final MessagePassingQueue packets = new MpscUnboundedXaddArrayQueue<>(32); private final boolean levelFlat; private final PlayerSettings settings; private float exp; @@ -613,6 +613,15 @@ public void remove(boolean permanent) { if (permanent && playerConnection.isOnline()) kick(REMOVE_MESSAGE); } + @Override + public void updateOldViewer(@NotNull Player player) { + super.updateOldViewer(player); + // Team + if (this.getTeam() != null && this.getTeam().getMembers().size() == 1) {// If team only contains "this" player + player.sendPacket(this.getTeam().createTeamDestructionPacket()); + } + } + @Override public void sendPacketToViewersAndSelf(@NotNull SendablePacket packet) { sendPacket(packet); @@ -905,20 +914,8 @@ public void sendMessage(final @NotNull Identity source, final @NotNull Component * * @param channel the message channel * @param data the message data - * @deprecated Use {@link #sendPluginMessage(Key, byte[])} instead. */ - @Deprecated(forRemoval = true, since = "1.5.0") public void sendPluginMessage(@NotNull String channel, byte @NotNull [] data) { - sendPluginMessage(Key.key(channel), data); - } - - /** - * Sends a plugin message to the player. - * - * @param channel the message channel - * @param data the message data - */ - public void sendPluginMessage(@NotNull Key channel, byte @NotNull [] data) { sendPacket(new PluginMessagePacket(channel, data)); } @@ -929,9 +926,7 @@ public void sendPluginMessage(@NotNull Key channel, byte @NotNull [] data) { * * @param channel the message channel * @param message the message - * @deprecated Use {@link #sendPluginMessage(Key, byte[])} instead. */ - @Deprecated(forRemoval = true, since = "1.5.0") public void sendPluginMessage(@NotNull String channel, @NotNull String message) { sendPluginMessage(channel, message.getBytes(StandardCharsets.UTF_8)); } @@ -1656,7 +1651,6 @@ public boolean setGameMode(@NotNull GameMode gameMode) { // Make sure that the player is in the PLAY state and synchronize their flight speed. if (isActive()) { refreshAbilities(); - updateCollisions(); } return true; @@ -2133,14 +2127,15 @@ protected void refreshAbilities() { * @param packet the packet to add in the queue */ public void addPacketToQueue(@NotNull ClientPacket packet) { - final boolean success = packets.offer(packet); - if (!success) { - kick(Component.text("Too Many Packets", NamedTextColor.RED)); - } + this.packets.offer(packet); } @ApiStatus.Internal public void interpretPacketQueue() { + if (this.packets.size() >= ServerFlag.PLAYER_PACKET_QUEUE_SIZE) { + kick(Component.text("Too Many Packets", NamedTextColor.RED)); + return; + } final PacketListenerManager manager = MinecraftServer.getPacketListenerManager(); // This method is NOT thread-safe this.packets.drain(packet -> manager.processClientPacket(packet, playerConnection), ServerFlag.PLAYER_PACKET_PER_TICK); @@ -2296,13 +2291,63 @@ protected void showPlayer(@NotNull PlayerConnection connection) { } @Override - public @NotNull ItemStack getEquipment(@NotNull EquipmentSlot slot) { - return inventory.getEquipment(slot); + public @NotNull ItemStack getItemInMainHand() { + return inventory.getItemInMainHand(); + } + + @Override + public void setItemInMainHand(@NotNull ItemStack itemStack) { + inventory.setItemInMainHand(itemStack); + } + + @Override + public @NotNull ItemStack getItemInOffHand() { + return inventory.getItemInOffHand(); + } + + @Override + public void setItemInOffHand(@NotNull ItemStack itemStack) { + inventory.setItemInOffHand(itemStack); + } + + @Override + public @NotNull ItemStack getHelmet() { + return inventory.getHelmet(); } @Override - public void setEquipment(@NotNull EquipmentSlot slot, @NotNull ItemStack itemStack) { - inventory.setEquipment(slot, itemStack); + public void setHelmet(@NotNull ItemStack itemStack) { + inventory.setHelmet(itemStack); + } + + @Override + public @NotNull ItemStack getChestplate() { + return inventory.getChestplate(); + } + + @Override + public void setChestplate(@NotNull ItemStack itemStack) { + inventory.setChestplate(itemStack); + } + + @Override + public @NotNull ItemStack getLeggings() { + return inventory.getLeggings(); + } + + @Override + public void setLeggings(@NotNull ItemStack itemStack) { + inventory.setLeggings(itemStack); + } + + @Override + public @NotNull ItemStack getBoots() { + return inventory.getBoots(); + } + + @Override + public void setBoots(@NotNull ItemStack itemStack) { + inventory.setBoots(itemStack); } @Override @@ -2339,12 +2384,6 @@ public void setLocale(@Nullable Locale locale) { return this.pointers; } - @Override - protected void updateCollisions() { - preventBlockPlacement = gameMode != GameMode.SPECTATOR; - collidesWithEntities = gameMode != GameMode.SPECTATOR; - } - protected void sendChunkUpdates(Chunk newChunk) { if (chunkUpdateLimitChecker.addToHistory(newChunk)) { final int newX = newChunk.getChunkX(); @@ -2481,7 +2520,6 @@ public void refresh(String locale, byte viewDistance, ChatMessageType chatMessag byte displayedSkinParts, MainHand mainHand, boolean enableTextFiltering, boolean allowServerListings) { this.locale = locale; // Clamp viewDistance to valid bounds - byte previousViewDistance = this.viewDistance; this.viewDistance = (byte) MathUtils.clamp(viewDistance, 2, 32); this.chatMessageType = chatMessageType; this.chatColors = chatColors; @@ -2490,29 +2528,8 @@ public void refresh(String locale, byte viewDistance, ChatMessageType chatMessag this.enableTextFiltering = enableTextFiltering; this.allowServerListings = allowServerListings; - // Check to see if we're in an instance first, as this method is called when first logging in since the client sends the Settings packet during configuration - if (instance != null) { - // Load/unload chunks if necessary due to view distance changes - if (previousViewDistance < this.viewDistance) { - // View distance expanded, send chunks - ChunkUtils.forChunksInRange(position.chunkX(), position.chunkZ(), this.viewDistance, (chunkX, chunkZ) -> { - if (Math.abs(chunkX - position.chunkX()) > previousViewDistance || Math.abs(chunkZ - position.chunkZ()) > previousViewDistance) { - chunkAdder.accept(chunkX, chunkZ); - } - }); - } else if (previousViewDistance > this.viewDistance) { - // View distance shrunk, unload chunks - ChunkUtils.forChunksInRange(position.chunkX(), position.chunkZ(), previousViewDistance, (chunkX, chunkZ) -> { - if (Math.abs(chunkX - position.chunkX()) > this.viewDistance || Math.abs(chunkZ - position.chunkZ()) > this.viewDistance) { - chunkRemover.accept(chunkX, chunkZ); - } - }); - } - // Else previous and current are equal, do nothing - } - boolean isInPlayState = getPlayerConnection().getConnectionState() == ConnectionState.PLAY; - PlayerMeta playerMeta = getUnsafeEntityMeta(); + PlayerMeta playerMeta = getPlayerMeta(); if (isInPlayState) playerMeta.setNotifyAboutChanges(false); playerMeta.setDisplayedSkinParts(displayedSkinParts); playerMeta.setRightMainHand(this.mainHand == MainHand.RIGHT); From f0da8087c1a3b269ad6bacab9a41fd1b72cf7f28 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Thu, 23 May 2024 07:10:21 +0200 Subject: [PATCH 54/93] Move miss landed classes after patching source (cherry picked from commit 2f2dec233f123c1433fb2b8e28b84eefe34381b6) --- .../minestom.common-conventions.gradle.kts | 28 ------- .../minestom.native-conventions.gradle.kts | 14 ---- ...minestom.publishing-conventions.gradle.kts | 40 ---------- .../microtus/ExtensionPlugin.kt | 76 ------------------ .../microtus/GenerateExtension.kt | 79 ------------------- .../microtus/models/Extension.kt | 76 ------------------ 6 files changed, 313 deletions(-) delete mode 100644 src/main/kotlin/minestom.common-conventions.gradle.kts delete mode 100644 src/main/kotlin/minestom.native-conventions.gradle.kts delete mode 100644 src/main/kotlin/minestom.publishing-conventions.gradle.kts delete mode 100644 src/main/kotlin/net/onelitefeather/microtus/ExtensionPlugin.kt delete mode 100644 src/main/kotlin/net/onelitefeather/microtus/GenerateExtension.kt delete mode 100644 src/main/kotlin/net/onelitefeather/microtus/models/Extension.kt diff --git a/src/main/kotlin/minestom.common-conventions.gradle.kts b/src/main/kotlin/minestom.common-conventions.gradle.kts deleted file mode 100644 index 6c56062ffab..00000000000 --- a/src/main/kotlin/minestom.common-conventions.gradle.kts +++ /dev/null @@ -1,28 +0,0 @@ -plugins { - java -} - -// Always exclude checker-qual. This is the single most annoying thing that always reappears. -configurations.all { - // We only use Jetbrains Annotations - exclude("org.checkerframework", "checker-qual") -} - -java { - toolchain { - languageVersion.set(JavaLanguageVersion.of(21)) - } -} - -tasks { - withType { - // We are fully aware, that we should be suppressing these instead of ignoring them here, but man keep my terminal clean. - options.compilerArgs.addAll(listOf("-Xlint:none", "-Xlint:-deprecation", "-Xlint:-unchecked")) - } - withType { - useJUnitPlatform() - // Viewable packets make tracking harder. Could be re-enabled later. - jvmArgs("-Dminestom.viewable-packet=false") - jvmArgs("-Dminestom.inside-test=true") - } -} \ No newline at end of file diff --git a/src/main/kotlin/minestom.native-conventions.gradle.kts b/src/main/kotlin/minestom.native-conventions.gradle.kts deleted file mode 100644 index 4a873e818bb..00000000000 --- a/src/main/kotlin/minestom.native-conventions.gradle.kts +++ /dev/null @@ -1,14 +0,0 @@ -plugins { - id("minestom.common-conventions") - id("org.graalvm.buildtools.native") -} - -graalvmNative { - binaries { - named("main") { - buildArgs.add("--allow-incomplete-classpath") - // One day toolchains will support getting this automagically, but that day is not today. - toolchainDetection.set(false) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/minestom.publishing-conventions.gradle.kts b/src/main/kotlin/minestom.publishing-conventions.gradle.kts deleted file mode 100644 index 305dd158be3..00000000000 --- a/src/main/kotlin/minestom.publishing-conventions.gradle.kts +++ /dev/null @@ -1,40 +0,0 @@ -plugins { - id("net.kyori.indra") - id("net.kyori.indra.publishing") - id("net.kyori.indra.publishing.sonatype") - id("io.github.gradle-nexus.publish-plugin") -} - -indra { - javaVersions { - target(21) - testWith(21) - } - - github("OneLiteFeatherNET", "Microtus") { - ci(true) - publishing(false) - } - mitLicense() - signWithKeyFromPrefixedProperties("onelitefeather") - configurePublications { - pom { - developers { - developer { - id.set("themeinerlp") - name.set("Phillipp Glanz") - email.set("p.glanz@madfix.me") - } - developer { - id.set("theEvilReaper") - name.set("Steffen Wonning") - email.set("steffenwx@gmail.com") - } - } - } - } -} - -indraSonatype { - useAlternateSonatypeOSSHost("s01") -} \ No newline at end of file diff --git a/src/main/kotlin/net/onelitefeather/microtus/ExtensionPlugin.kt b/src/main/kotlin/net/onelitefeather/microtus/ExtensionPlugin.kt deleted file mode 100644 index e02e9d94396..00000000000 --- a/src/main/kotlin/net/onelitefeather/microtus/ExtensionPlugin.kt +++ /dev/null @@ -1,76 +0,0 @@ -package net.onelitefeather.microtus - -import net.onelitefeather.microtus.models.Extension -import org.gradle.api.Plugin -import org.gradle.api.Project -import org.gradle.api.plugins.JavaPlugin -import org.gradle.api.tasks.SourceSet -import org.gradle.api.tasks.SourceSetContainer -import org.gradle.kotlin.dsl.getByType -import org.gradle.kotlin.dsl.register -import org.gradle.kotlin.dsl.withType - -/** - * Represents the gradle plugin extension which can be integrated into a `build.gradle.kts` file to define the properties of the extension. - * The usage of this plugin is as follows: - * - * ```kotlin - * plugins { - * id("net.onelitefeather.microtus.extension") version "" - * // ... - * } - * - * extension { - * //... use the properties of the extension here - * } - * ``` - * - * @since 1.2.0 - * @author TheMeinerLP - */ -class ExtensionPlugin : Plugin { - - private val fileName = "extension.json" - - /** - * Applies the plugin to the project. - * @param target the project to apply the plugin to - */ - override fun apply(target: Project) { - target.run { - val generatedResourcesDirectory = layout.buildDirectory.dir("generated/extension") - val extension = Extension() - extensions.add("extension", extension) - - val library = project.configurations.maybeCreate("library") - val libraries = project.configurations.create("extensionLibrary").extendsFrom(library) - - val generateTask = tasks.register("generateExtension") { - group = "minestom" - - fileName.set(this@ExtensionPlugin.fileName) - librariesRootComponent.set(libraries.incoming.resolutionResult.root) - outputDirectory.set(generatedResourcesDirectory) - this.extension.set(provider { - setDefaults(project, extension) - extension - }) - } - plugins.withType { - extensions.getByType().named(SourceSet.MAIN_SOURCE_SET_NAME) { - resources.srcDir(generateTask) - } - } - } - } - - /** - * Sets some default variables to a [Extension] object. - * @param project the project to get the name and version from - * @param extension the extension to set the variables to - */ - private fun setDefaults(project: Project, extension: Extension) { - extension.name = extension.name ?: project.name - extension.version = extension.version ?: project.version.toString() - } -} \ No newline at end of file diff --git a/src/main/kotlin/net/onelitefeather/microtus/GenerateExtension.kt b/src/main/kotlin/net/onelitefeather/microtus/GenerateExtension.kt deleted file mode 100644 index 0df18c5afb0..00000000000 --- a/src/main/kotlin/net/onelitefeather/microtus/GenerateExtension.kt +++ /dev/null @@ -1,79 +0,0 @@ -package net.onelitefeather.microtus - -import com.fasterxml.jackson.annotation.JsonInclude -import com.fasterxml.jackson.databind.ObjectMapper -import com.fasterxml.jackson.databind.module.SimpleModule -import com.fasterxml.jackson.module.kotlin.registerKotlinModule -import net.onelitefeather.microtus.models.Extension -import org.gradle.api.DefaultTask -import org.gradle.api.artifacts.repositories.MavenArtifactRepository -import org.gradle.api.artifacts.result.ResolvedComponentResult -import org.gradle.api.artifacts.result.ResolvedDependencyResult -import org.gradle.api.file.DirectoryProperty -import org.gradle.api.provider.Property -import org.gradle.api.tasks.* -import kotlin.jvm.Throws - -/** - * Defines the task which generates the required extension.json file for Minestom. - * @since 1.2.0 - * @author TheMeinerLP - */ -abstract class GenerateExtension : DefaultTask() { - @get:Input - abstract val fileName: Property - - @get:Nested - abstract val extension: Property - - @get:OutputDirectory - abstract val outputDirectory: DirectoryProperty - - @get:Input - @get:Optional - abstract val librariesRootComponent: Property - - /** - * Generates an extension.json file based on the given properties. - */ - @TaskAction - fun generate() { - val module = SimpleModule() - val mapper = ObjectMapper() - .registerKotlinModule() - .registerModule(module) - .setSerializationInclusion(JsonInclude.Include.NON_EMPTY) - val extension = extension.get() - val dependencies = librariesRootComponent.orNull.collectLibraries() - val repos = this.project.repositories.withType(MavenArtifactRepository::class.java) - val externalDependencies = Extension.ExternalDependencies() - externalDependencies.artifacts = dependencies.toList() - val mavenCentral = Extension.Repository() - mavenCentral.url = "https://repo.maven.apache.org/maven2/" - mavenCentral.name = "mavenCentral" - val mappedRepos = repos.map { - val repo = Extension.Repository() - repo.url = it.url.toString() - repo.name = it.name - repo - }.toList() - externalDependencies.repositories = if (mappedRepos.isNotEmpty() || dependencies.isNotEmpty()) { - mappedRepos + listOf(mavenCentral) - } else { - listOf() - } - extension.externalDependencies = externalDependencies - mapper.writeValue(outputDirectory.file(fileName).get().asFile, extension) - } - - /** - * Collects all libraries from the root component and the additional libraries. - * @param additional the additional libraries to add - */ - private fun ResolvedComponentResult?.collectLibraries(additional: List? = null): List { - val resolved = this?.dependencies?.map { dependencyResult -> - (dependencyResult as? ResolvedDependencyResult)?.selected?.moduleVersion?.toString() ?: error("No moduleVersion for $dependencyResult") - } - return ((additional ?: listOf()) + (resolved ?: listOf())).distinct() - } -} \ No newline at end of file diff --git a/src/main/kotlin/net/onelitefeather/microtus/models/Extension.kt b/src/main/kotlin/net/onelitefeather/microtus/models/Extension.kt deleted file mode 100644 index 3e8976c5970..00000000000 --- a/src/main/kotlin/net/onelitefeather/microtus/models/Extension.kt +++ /dev/null @@ -1,76 +0,0 @@ -package net.onelitefeather.microtus.models - -import org.gradle.api.tasks.Input -import org.gradle.api.tasks.Optional -import org.gradle.internal.impldep.com.fasterxml.jackson.annotation.JsonProperty - -/** - * Represents the allowed data fields for an extension.json file which is required from Minestom to load an extension. - * The following fields are allowed (fields with a * are required): - * - * - name: The name of the extension (*) - * - version: The version of the extension (*) - * - entrypoint: The entrypoint of the extension (*) - * - authors: The authors of the extension - * - dependencies: The dependencies of the extension - * - externalDependencies: The external dependencies of the extension - * @since 1.2.0 - * @author TheMeinerLP - */ -class Extension() { - @Input - var name: String? = null - - @Input - var version: String? = null - - @Input - var entrypoint: String? = null - - @Input - @Optional - @JsonProperty("authors") - var authors: List? = null - - @Input - @Optional - @JsonProperty("dependencies") - var dependencies: List? = null - - @Input - @Optional - @JsonProperty("externalDependencies") - var externalDependencies: ExternalDependencies? = null - - /** - * Represents the external dependencies which is required for the extension to work. - * @since 1.2.0 - * @author TheMeinerLP - */ - class ExternalDependencies { - @JsonProperty("repositories") - var repositories: List? = null - - @Input - @Optional - @JsonProperty("artifacts") - var artifacts: List? = null - - } - - /** - * Represents a repository which is used by an extension to load external dependencies. - * @since 1.2.0 - * @author TheMeinerLP - * @see ExternalDependencies - */ - class Repository { - @Input - @JsonProperty("name") - var name: String? = null - - @Input - @JsonProperty("url") - var url: String? = null - } -} From f5a451664e963ea22d1d39c028cf09d27a495b9c Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Fri, 24 May 2024 10:13:07 +0200 Subject: [PATCH 55/93] [Chore] Update gradle to 8.7 (cherry picked from commit cf0f73caff61bb7843548b3e77a5bab4bfe905aa) --- gradlew.bat | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/gradlew.bat b/gradlew.bat index 25da30dbdee..93e3f59f135 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -43,11 +43,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. 1>&2 -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. goto fail @@ -57,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. 1>&2 -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. goto fail From c10aefd05db30fe5f7dae5f3c29915bd1b733b7d Mon Sep 17 00:00:00 2001 From: Steffen Wonning Date: Sat, 1 Jun 2024 16:19:57 +0200 Subject: [PATCH 56/93] [Chore] Update gradle to version 8.8 (#58) (cherry picked from commit 9373005a6b71905a33eff7a12f5267374c9b1e50) --- gradlew.bat | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/gradlew.bat b/gradlew.bat index 93e3f59f135..25da30dbdee 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -43,11 +43,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -57,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail From 48d7a62bbc3da0707388ddc9e6c6feb2454a87c7 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Wed, 22 May 2024 20:26:17 +0200 Subject: [PATCH 57/93] Apply microtus patches 1-20 --- .../codegen/biome/BiomeGenerator.java | 146 ++++ .../entity/VillagerProfessionGenerator.java | 1 + .../codegen/entity/VillagerTypeGenerator.java | 1 + .../codegen/feature/FeatureFlagGenerator.java | 108 +++ .../minestom/server/attribute/Attributes.java | 61 ++ .../server/item/banner/BannerPatterns.java | 89 +++ .../server/item/banner/BannerPattern.java | 39 ++ .../server/item/banner/BannerPatternImpl.java | 48 ++ .../server/item/metadata/BannerMeta.java | 165 +++++ .../server/item/metadata/ShieldMeta.java | 131 ++++ .../server/network/NetworkBufferTypes.java | 639 ++++++++++++++++++ .../world/biomes/particle/BiomeOption.java | 16 + .../world/biomes/particle/BlockOption.java | 32 + .../world/biomes/particle/DefaultOption.java | 20 + .../world/biomes/particle/DustOption.java | 34 + .../world/biomes/particle/ItemOption.java | 27 + .../minestom.common-conventions.gradle.kts | 28 + .../minestom.native-conventions.gradle.kts | 14 + ...minestom.publishing-conventions.gradle.kts | 40 ++ .../microtus/ExtensionPlugin.kt | 76 +++ .../microtus/GenerateExtension.kt | 79 +++ .../microtus/models/Extension.kt | 76 +++ 22 files changed, 1870 insertions(+) create mode 100644 code-generators/src/main/java/net/minestom/codegen/biome/BiomeGenerator.java create mode 100644 code-generators/src/main/java/net/minestom/codegen/feature/FeatureFlagGenerator.java create mode 100644 src/autogenerated/java/net/minestom/server/attribute/Attributes.java create mode 100644 src/autogenerated/java/net/minestom/server/item/banner/BannerPatterns.java create mode 100644 src/main/java/net/minestom/server/item/banner/BannerPattern.java create mode 100644 src/main/java/net/minestom/server/item/banner/BannerPatternImpl.java create mode 100644 src/main/java/net/minestom/server/item/metadata/BannerMeta.java create mode 100644 src/main/java/net/minestom/server/item/metadata/ShieldMeta.java create mode 100644 src/main/java/net/minestom/server/network/NetworkBufferTypes.java create mode 100644 src/main/java/net/minestom/server/world/biomes/particle/BiomeOption.java create mode 100644 src/main/java/net/minestom/server/world/biomes/particle/BlockOption.java create mode 100644 src/main/java/net/minestom/server/world/biomes/particle/DefaultOption.java create mode 100644 src/main/java/net/minestom/server/world/biomes/particle/DustOption.java create mode 100644 src/main/java/net/minestom/server/world/biomes/particle/ItemOption.java create mode 100644 src/main/kotlin/minestom.common-conventions.gradle.kts create mode 100644 src/main/kotlin/minestom.native-conventions.gradle.kts create mode 100644 src/main/kotlin/minestom.publishing-conventions.gradle.kts create mode 100644 src/main/kotlin/net/onelitefeather/microtus/ExtensionPlugin.kt create mode 100644 src/main/kotlin/net/onelitefeather/microtus/GenerateExtension.kt create mode 100644 src/main/kotlin/net/onelitefeather/microtus/models/Extension.kt diff --git a/code-generators/src/main/java/net/minestom/codegen/biome/BiomeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/biome/BiomeGenerator.java new file mode 100644 index 00000000000..f82f817012c --- /dev/null +++ b/code-generators/src/main/java/net/minestom/codegen/biome/BiomeGenerator.java @@ -0,0 +1,146 @@ +package net.minestom.codegen.biome; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.squareup.javapoet.AnnotationSpec; +import com.squareup.javapoet.ArrayTypeName; +import com.squareup.javapoet.ClassName; +import com.squareup.javapoet.CodeBlock; +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.JavaFile; +import com.squareup.javapoet.MethodSpec; +import com.squareup.javapoet.ParameterSpec; +import com.squareup.javapoet.TypeName; +import com.squareup.javapoet.TypeSpec; +import java.awt.Color; +import java.io.File; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.List; +import javax.lang.model.element.Modifier; +import net.minestom.codegen.MinestomCodeGenerator; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@ApiStatus.Internal +@ApiStatus.NonExtendable +public final class BiomeGenerator extends MinestomCodeGenerator { + + private static final String BIOME_KEY = "biome"; + private static final String BIOME_FILE_PACKAGE = "net.minestom.server.world.biomes"; // Microtus - Biomes + private static final String CLASS_NAME = "Biomes"; // Microtus - Biomes + private static final Logger LOGGER = LoggerFactory.getLogger(BiomeGenerator.class); + private final InputStream biomeFile; + private final File outputFolder; + + public BiomeGenerator(@Nullable InputStream biomeFile, @NotNull File outputFolder) { + super(BIOME_FILE_PACKAGE); + this.biomeFile = biomeFile; + this.outputFolder = outputFolder; + } + + @Override + public void generate() { + if (biomeFile == null) { + LOGGER.error("Failed to find biome.json."); + LOGGER.error("Stopped code generation for biomes."); + return; + } + if (!outputFolder.exists() && !outputFolder.mkdirs()) { + LOGGER.error("Output folder for code generation does not exist and could not be created."); + return; + } + + JsonElement biomes = GSON.fromJson(new InputStreamReader(biomeFile), JsonElement.class); + ClassName biomeCN = ClassName.get(BIOME_FILE_PACKAGE, CLASS_NAME); + ClassName biomeCn = ClassName.get(BIOME_FILE_PACKAGE, "Biome"); + ClassName categoryCn = biomeCn.nestedClass("Category"); + ClassName minecraftServerCn = ClassName.get("net.minestom.server", "MinecraftServer"); + ClassName namespaceIDCn = ClassName.get("net.minestom.server.utils", "NamespaceID"); + ClassName biomeEffectsCn = ClassName.get(BIOME_FILE_PACKAGE, "BiomeEffects"); + // Dye Color Enum + TypeSpec.Builder biomesEnum = TypeSpec.enumBuilder(biomeCN) + .addModifiers(Modifier.PUBLIC).addJavadoc("AUTOGENERATED by " + getClass().getSimpleName()); + + // Fields + biomesEnum.addFields( + List.of( + FieldSpec.builder(biomeCn, BIOME_KEY, Modifier.PRIVATE, Modifier.FINAL).build(), + FieldSpec.builder(ArrayTypeName.of(biomeCN), "VALUES", Modifier.PRIVATE, Modifier.STATIC, Modifier.FINAL).initializer(CLASS_NAME + ".values()").build() // Microtus - Banner and shield meta + ) + ); + + // Methods + biomesEnum.addMethods( + List.of( + // Constructor + MethodSpec.constructorBuilder() + .addParameter( + ParameterSpec.builder(biomeCn, BIOME_KEY).addAnnotation(NotNull.class).build() + ) + .addStatement("this.$1L = $1L", BIOME_KEY) + .build(), + MethodSpec.methodBuilder(BIOME_KEY) + .addModifiers(Modifier.PUBLIC) + .returns(biomeCn.annotated(AnnotationSpec.builder(NotNull.class).build())) + .addStatement("return this.$L", BIOME_KEY) + .build(), + MethodSpec.methodBuilder("getValue") + .addModifiers(Modifier.PUBLIC, Modifier.STATIC) + .addParameter(ParameterSpec.builder(TypeName.INT, "id").build()) + .addAnnotation(Nullable.class) + .returns(ClassName.get(BIOME_FILE_PACKAGE, CLASS_NAME)) + .addCode("return VALUES[$L];", "id") + .build(), + MethodSpec.methodBuilder("registerBiomes") + .addModifiers(Modifier.PUBLIC, Modifier.STATIC) + .beginControlFlow("for (var $L : VALUES)", BIOME_KEY) + .addStatement("$1T.getBiomeManager().addBiome($2L.$2L())", minecraftServerCn, BIOME_KEY) + .endControlFlow() + .build() + ) + ); + final JsonObject biomesAsJsonObject = biomes.getAsJsonObject(); + biomesAsJsonObject.keySet().forEach(biome -> { + var biomeObject = biomesAsJsonObject.get(biome).getAsJsonObject(); + var temperature = biomeObject.get("temperature").getAsFloat(); + var downfall = biomeObject.get("downfall").getAsFloat(); + var hasPrecipitation = biomeObject.get("has_precipitation").getAsBoolean(); + var fogColor = Integer.toHexString(new Color(biomeObject.get("fogColor").getAsInt()).getRGB()).substring(2); + var waterColor = Integer.toHexString(new Color(biomeObject.get("waterColor").getAsInt()).getRGB()).substring(2); + var waterFogColor = Integer.toHexString(new Color(biomeObject.get("waterFogColor").getAsInt()).getRGB()).substring(2); + var skyColor = Integer.toHexString(new Color(biomeObject.get("skyColor").getAsInt()).getRGB()).substring(2); + var effectCodeBlock = CodeBlock.builder(); + effectCodeBlock = effectCodeBlock.add("$T.builder().fogColor(0x$L).waterColor(0x$L).waterFogColor(0x$L).skyColor(0x$L)", biomeEffectsCn, fogColor, waterColor, waterFogColor, skyColor); + if (biomeObject.has("grassColor")) { + var grassColor = Integer.toHexString(new Color(biomeObject.get("grassColor").getAsInt()).getRGB()).substring(2); + effectCodeBlock = effectCodeBlock.add(".grassColor(0x$L)", grassColor); + } + if (biomeObject.has("foliageColor")) { + var foliageColor = Integer.toHexString(new Color(biomeObject.get("foliageColor").getAsInt()).getRGB()).substring(2); + effectCodeBlock = effectCodeBlock.add(".foliageColor(0x$L)", foliageColor); + } + effectCodeBlock = effectCodeBlock.add(".build()"); + var namespacedCode = CodeBlock.of("$T.from($S)", namespaceIDCn, biome.replaceFirst("minecraft:", "")); + biomesEnum.addEnumConstant(extractNamespace(biome), TypeSpec.anonymousClassBuilder( + "$T.builder().name($L).category($T.NONE).depth(0.125F).scale(0.05F).temperature($Lf).downfall($Lf).showPrecipitation($L).effects($L).build()", + biomeCn, namespacedCode, categoryCn, temperature, downfall, hasPrecipitation, effectCodeBlock.build() + ).build() + ); + }); + + // Write files to outputFolder + writeFiles( + List.of( + JavaFile.builder(BIOME_FILE_PACKAGE, biomesEnum.build()) + .indent(DEFAULT_INDENT) + .skipJavaLangImports(true) + .build() + ), + outputFolder + ); + } +} diff --git a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java index 9309c8ec68d..d25441a83db 100644 --- a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java @@ -31,6 +31,7 @@ public final class VillagerProfessionGenerator extends MinestomCodeGenerator { public VillagerProfessionGenerator(@Nullable InputStream villagerProfessionsFile, @NotNull File outputFolder) { + super(""); this.villagerProfessionsFile = villagerProfessionsFile; this.outputFolder = outputFolder; } diff --git a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java index 0f59af765a7..bc26041d017 100644 --- a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java @@ -29,6 +29,7 @@ public final class VillagerTypeGenerator extends MinestomCodeGenerator { private final File outputFolder; public VillagerTypeGenerator(@Nullable InputStream villagerTypesFile, @NotNull File outputFolder) { + super(""); this.villagerTypesFile = villagerTypesFile; this.outputFolder = outputFolder; } diff --git a/code-generators/src/main/java/net/minestom/codegen/feature/FeatureFlagGenerator.java b/code-generators/src/main/java/net/minestom/codegen/feature/FeatureFlagGenerator.java new file mode 100644 index 00000000000..b8dd93b040f --- /dev/null +++ b/code-generators/src/main/java/net/minestom/codegen/feature/FeatureFlagGenerator.java @@ -0,0 +1,108 @@ +package net.minestom.codegen.feature; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.squareup.javapoet.*; +import net.minestom.codegen.MinestomCodeGenerator; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.lang.model.element.Modifier; +import java.io.File; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.List; + +public class FeatureFlagGenerator extends MinestomCodeGenerator { + + private static final String FEATURE_FLAG_FILE_PACKAGE = "net.minestom.server.feature"; // Microtus - Feature flag + private static final String CLASS_NAME = "FeatureFlags"; + private static final String FEATURE_KEY = "feature"; + private static final Logger LOGGER = LoggerFactory.getLogger(FeatureFlagGenerator.class); + + private final InputStream featureFlagFile; + private final File outputFolder; + + /** + * Creates a new code generator. + * + * @param packageName the package name of the generated class + */ + public FeatureFlagGenerator(InputStream featureFlagFile, File outputFolder) { + super(FEATURE_FLAG_FILE_PACKAGE); + this.featureFlagFile = featureFlagFile; + this.outputFolder = outputFolder; + } + + @Override + public void generate() { + if (featureFlagFile == null) { + LOGGER.error("Failed to find feature_flag.json."); + LOGGER.error("Stopped code generation for feature_flag.json."); + return; + } + if (!outputFolder.exists() && !outputFolder.mkdirs()) { + LOGGER.error("Output folder for code generation does not exist and could not be created."); + return; + } + JsonElement featureFlags = GSON.fromJson(new InputStreamReader(featureFlagFile), JsonElement.class); + + ClassName featureFlag = ClassName.get(FEATURE_FLAG_FILE_PACKAGE, CLASS_NAME); + ClassName namespacedId = ClassName.get("net.minestom.server.utils", "NamespaceID"); + + TypeSpec.Builder featureFlagEnum = TypeSpec.enumBuilder(featureFlag) + .addModifiers(Modifier.PUBLIC).addJavadoc("AUTOGENERATED by " + getClass().getSimpleName()); + + // Fields + featureFlagEnum.addFields( + List.of( + FieldSpec.builder(namespacedId, FEATURE_KEY, Modifier.PRIVATE, Modifier.FINAL).build(), + FieldSpec.builder(ArrayTypeName.of(featureFlag), "VALUES", Modifier.PRIVATE, Modifier.STATIC, Modifier.FINAL).initializer(CLASS_NAME + ".values()").build() + ) + ); + + // Methods + featureFlagEnum.addMethods( + List.of( + // Constructor + MethodSpec.constructorBuilder() + .addParameter( + ParameterSpec.builder(namespacedId, FEATURE_KEY).addAnnotation(NotNull.class).build() + ) + .addStatement("this.$1L = $1L", FEATURE_KEY) + .build(), + MethodSpec.methodBuilder(FEATURE_KEY) + .addModifiers(Modifier.PUBLIC) + .returns(namespacedId.annotated(AnnotationSpec.builder(NotNull.class).build())) + .addStatement("return this.$L", FEATURE_KEY) + .build(), + MethodSpec.methodBuilder("getValue") + .addModifiers(Modifier.PUBLIC, Modifier.STATIC) + .addParameter(ParameterSpec.builder(TypeName.INT, "id").build()) + .addAnnotation(Nullable.class) + .returns(ClassName.get(FEATURE_FLAG_FILE_PACKAGE, CLASS_NAME)) + .addCode("return VALUES[$L];", "id") + .build() + ) + ); + featureFlags.getAsJsonArray().forEach(featureFlagElement -> { + String object = featureFlagElement.getAsString(); + featureFlagEnum.addEnumConstant(extractNamespace(object), TypeSpec.anonymousClassBuilder( + "$T.from($S)", + namespacedId, object + ).build() + ); + }); + writeFiles( + List.of( + JavaFile.builder(FEATURE_FLAG_FILE_PACKAGE, featureFlagEnum.build()) + .indent(DEFAULT_INDENT) + .skipJavaLangImports(true) + .build() + ), + outputFolder + ); + } +} diff --git a/src/autogenerated/java/net/minestom/server/attribute/Attributes.java b/src/autogenerated/java/net/minestom/server/attribute/Attributes.java new file mode 100644 index 00000000000..a5edd76b551 --- /dev/null +++ b/src/autogenerated/java/net/minestom/server/attribute/Attributes.java @@ -0,0 +1,61 @@ +package net.minestom.server.attribute; + +import net.minestom.server.MinecraftServer; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * AUTOGENERATED by AttributeGenerator + */ +public enum Attributes { + GENERIC_ARMOR(new Attribute("minecraft:generic.armor", 0.0f, 30.0f)), + + GENERIC_ARMOR_TOUGHNESS(new Attribute("minecraft:generic.armor_toughness", 0.0f, 20.0f)), + + GENERIC_ATTACK_DAMAGE(new Attribute("minecraft:generic.attack_damage", 2.0f, 2048.0f)), + + GENERIC_ATTACK_KNOCKBACK(new Attribute("minecraft:generic.attack_knockback", 0.0f, 5.0f)), + + GENERIC_ATTACK_SPEED(new Attribute("minecraft:generic.attack_speed", 4.0f, 1024.0f)), + + GENERIC_FLYING_SPEED(new Attribute("minecraft:generic.flying_speed", 0.4f, 1024.0f)), + + GENERIC_FOLLOW_RANGE(new Attribute("minecraft:generic.follow_range", 32.0f, 2048.0f)), + + HORSE_JUMP_STRENGTH(new Attribute("minecraft:horse.jump_strength", 0.7f, 2.0f)), + + GENERIC_KNOCKBACK_RESISTANCE(new Attribute("minecraft:generic.knockback_resistance", 0.0f, 1.0f)), + + GENERIC_LUCK(new Attribute("minecraft:generic.luck", 0.0f, 1024.0f)), + + GENERIC_MAX_ABSORPTION(new Attribute("minecraft:generic.max_absorption", 0.0f, 2048.0f)), + + GENERIC_MAX_HEALTH(new Attribute("minecraft:generic.max_health", 20.0f, 1024.0f)), + + GENERIC_MOVEMENT_SPEED(new Attribute("minecraft:generic.movement_speed", 0.7f, 1024.0f)), + + ZOMBIE_SPAWN_REINFORCEMENTS(new Attribute("minecraft:zombie.spawn_reinforcements", 0.0f, 1.0f)); + + private static final Attributes[] VALUES = values(); + + private final Attribute attribute; + + Attributes(@NotNull Attribute attribute) { + this.attribute = attribute; + } + + public @NotNull Attribute attribute() { + return this.attribute; + } + + @Nullable + public static Attribute getValue(int id) { + return VALUES[id].attribute; + } + + public static void registerAttributes() { + for (var v : VALUES) { + MinecraftServer.getAttributeManager().register(v.attribute()); + } + } +} diff --git a/src/autogenerated/java/net/minestom/server/item/banner/BannerPatterns.java b/src/autogenerated/java/net/minestom/server/item/banner/BannerPatterns.java new file mode 100644 index 00000000000..b53f30b6e26 --- /dev/null +++ b/src/autogenerated/java/net/minestom/server/item/banner/BannerPatterns.java @@ -0,0 +1,89 @@ +package net.minestom.server.item.banner; + +/** + * Code autogenerated, do not edit! + */ +@SuppressWarnings("unused") +interface BannerPatterns { + BannerPattern BASE = BannerPatternImpl.get("minecraft:base"); + + BannerPattern SQUARE_BOTTOM_LEFT = BannerPatternImpl.get("minecraft:square_bottom_left"); + + BannerPattern SQUARE_BOTTOM_RIGHT = BannerPatternImpl.get("minecraft:square_bottom_right"); + + BannerPattern SQUARE_TOP_LEFT = BannerPatternImpl.get("minecraft:square_top_left"); + + BannerPattern SQUARE_TOP_RIGHT = BannerPatternImpl.get("minecraft:square_top_right"); + + BannerPattern STRIPE_BOTTOM = BannerPatternImpl.get("minecraft:stripe_bottom"); + + BannerPattern STRIPE_TOP = BannerPatternImpl.get("minecraft:stripe_top"); + + BannerPattern STRIPE_LEFT = BannerPatternImpl.get("minecraft:stripe_left"); + + BannerPattern STRIPE_RIGHT = BannerPatternImpl.get("minecraft:stripe_right"); + + BannerPattern STRIPE_CENTER = BannerPatternImpl.get("minecraft:stripe_center"); + + BannerPattern STRIPE_MIDDLE = BannerPatternImpl.get("minecraft:stripe_middle"); + + BannerPattern STRIPE_DOWNRIGHT = BannerPatternImpl.get("minecraft:stripe_downright"); + + BannerPattern STRIPE_DOWNLEFT = BannerPatternImpl.get("minecraft:stripe_downleft"); + + BannerPattern SMALL_STRIPES = BannerPatternImpl.get("minecraft:small_stripes"); + + BannerPattern CROSS = BannerPatternImpl.get("minecraft:cross"); + + BannerPattern STRAIGHT_CROSS = BannerPatternImpl.get("minecraft:straight_cross"); + + BannerPattern TRIANGLE_BOTTOM = BannerPatternImpl.get("minecraft:triangle_bottom"); + + BannerPattern TRIANGLE_TOP = BannerPatternImpl.get("minecraft:triangle_top"); + + BannerPattern TRIANGLES_BOTTOM = BannerPatternImpl.get("minecraft:triangles_bottom"); + + BannerPattern TRIANGLES_TOP = BannerPatternImpl.get("minecraft:triangles_top"); + + BannerPattern DIAGONAL_LEFT = BannerPatternImpl.get("minecraft:diagonal_left"); + + BannerPattern DIAGONAL_UP_RIGHT = BannerPatternImpl.get("minecraft:diagonal_up_right"); + + BannerPattern DIAGONAL_UP_LEFT = BannerPatternImpl.get("minecraft:diagonal_up_left"); + + BannerPattern DIAGONAL_RIGHT = BannerPatternImpl.get("minecraft:diagonal_right"); + + BannerPattern CIRCLE = BannerPatternImpl.get("minecraft:circle"); + + BannerPattern RHOMBUS = BannerPatternImpl.get("minecraft:rhombus"); + + BannerPattern HALF_VERTICAL = BannerPatternImpl.get("minecraft:half_vertical"); + + BannerPattern HALF_HORIZONTAL = BannerPatternImpl.get("minecraft:half_horizontal"); + + BannerPattern HALF_VERTICAL_RIGHT = BannerPatternImpl.get("minecraft:half_vertical_right"); + + BannerPattern HALF_HORIZONTAL_BOTTOM = BannerPatternImpl.get("minecraft:half_horizontal_bottom"); + + BannerPattern BORDER = BannerPatternImpl.get("minecraft:border"); + + BannerPattern CURLY_BORDER = BannerPatternImpl.get("minecraft:curly_border"); + + BannerPattern GRADIENT = BannerPatternImpl.get("minecraft:gradient"); + + BannerPattern GRADIENT_UP = BannerPatternImpl.get("minecraft:gradient_up"); + + BannerPattern BRICKS = BannerPatternImpl.get("minecraft:bricks"); + + BannerPattern GLOBE = BannerPatternImpl.get("minecraft:globe"); + + BannerPattern CREEPER = BannerPatternImpl.get("minecraft:creeper"); + + BannerPattern SKULL = BannerPatternImpl.get("minecraft:skull"); + + BannerPattern FLOWER = BannerPatternImpl.get("minecraft:flower"); + + BannerPattern MOJANG = BannerPatternImpl.get("minecraft:mojang"); + + BannerPattern PIGLIN = BannerPatternImpl.get("minecraft:piglin"); +} diff --git a/src/main/java/net/minestom/server/item/banner/BannerPattern.java b/src/main/java/net/minestom/server/item/banner/BannerPattern.java new file mode 100644 index 00000000000..582bc644d42 --- /dev/null +++ b/src/main/java/net/minestom/server/item/banner/BannerPattern.java @@ -0,0 +1,39 @@ +package net.minestom.server.item.banner; + +import net.kyori.adventure.key.Key; +import net.minestom.server.registry.ProtocolObject; +import net.minestom.server.utils.NamespaceID; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Collection; + +// Microtus - Banner and Shield Meta +public sealed interface BannerPattern extends ProtocolObject, BannerPatterns permits BannerPatternImpl { + static @NotNull Collection<@NotNull BannerPattern> values() { + return BannerPatternImpl.values(); + } + + static @Nullable BannerPattern fromNamespaceId(@NotNull String namespaceID) { + return BannerPatternImpl.getSafe(namespaceID); + } + + static @Nullable BannerPattern fromNamespaceId(@NotNull NamespaceID namespaceID) { + return fromNamespaceId(namespaceID.asString()); + } + + static @Nullable BannerPattern fromId(int id) { + return BannerPatternImpl.getId(id); + } + + static @Nullable BannerPattern fromIdentifier(String identifier) { + return BannerPatternImpl.getIdentifier(identifier); + } + + @Override + default @NotNull Key key() { + return ProtocolObject.super.key(); + } + + @NotNull String identifier(); +} diff --git a/src/main/java/net/minestom/server/item/banner/BannerPatternImpl.java b/src/main/java/net/minestom/server/item/banner/BannerPatternImpl.java new file mode 100644 index 00000000000..063b5565ba8 --- /dev/null +++ b/src/main/java/net/minestom/server/item/banner/BannerPatternImpl.java @@ -0,0 +1,48 @@ +package net.minestom.server.item.banner; + +import net.minestom.server.registry.Registry; +import net.minestom.server.utils.NamespaceID; +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; + +// Microtus - Banner and Shield Meta +public record BannerPatternImpl(NamespaceID namespace, int id, String identifier) implements BannerPattern { + + private static Map IDENTIFIERS = new HashMap<>(); + private static final Registry.Container CONTAINER = Registry.createContainer(Registry.Resource.BANNER_PATTERNS, + (namespace, properties) -> { + int id = properties.getInt("id"); + String identifier = properties.getString("identifier"); + BannerPatternImpl bannerPattern = new BannerPatternImpl(NamespaceID.from(namespace), id, identifier); + IDENTIFIERS.put(identifier, bannerPattern); + return bannerPattern; + }); + + static BannerPattern get(@NotNull String namespace) { + return CONTAINER.get(namespace); + } + + static BannerPattern getSafe(@NotNull String namespace) { + return CONTAINER.getSafe(namespace); + } + + static BannerPattern getId(int id) { + return CONTAINER.getId(id); + } + + static BannerPattern getIdentifier(@NotNull String identifier) { + return IDENTIFIERS.get(identifier); + } + + static Collection values() { + return CONTAINER.values(); + } + + @Override + public String toString() { + return name(); + } +} diff --git a/src/main/java/net/minestom/server/item/metadata/BannerMeta.java b/src/main/java/net/minestom/server/item/metadata/BannerMeta.java new file mode 100644 index 00000000000..9d0a70d06e1 --- /dev/null +++ b/src/main/java/net/minestom/server/item/metadata/BannerMeta.java @@ -0,0 +1,165 @@ +package net.minestom.server.item.metadata; + +/** + * @author theEvilReaper + * @version 1.0.0 + * @since + **/ + +import net.kyori.adventure.text.Component; +import net.minestom.server.color.DyeColor; +import net.minestom.server.item.ItemMetaView; +import net.minestom.server.item.banner.BannerPattern; +import net.minestom.server.tag.Tag; +import net.minestom.server.tag.TagHandler; +import net.minestom.server.tag.TagReadable; +import net.minestom.server.tag.TagSerializer; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.Nullable; +import org.jetbrains.annotations.UnknownNullability; +import org.jglrxavpok.hephaistos.nbt.NBT; +import org.jglrxavpok.hephaistos.nbt.NBTCompound; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * Meta for all {@link net.minestom.server.item.Material#WHITE_BANNER} and {@link net.minestom.server.item.Material#SHIELD} items + * + * @param readable data + */ +// Microtus - Banner and Shield Meta +@ApiStatus.Experimental +public record BannerMeta(TagReadable readable) implements ItemMetaView { + + private static final String PATTERN_KEY = "Pattern"; + private static final String COLOR_KEY = "Color"; + + private static final Tag CUSTOM_NAME = Tag.Component("CustomName").path("BlockEntityTag"); + private static final Tag> PATTERNS = Tag.Structure("Patterns", + TagSerializer.fromCompound(Pattern::fromCompound, Pattern::asCompound)) + .path("BlockEntityTag").list().defaultValue(List.of()); + + + @Contract(value = "_, _ -> new", pure = true) + public static @NotNull Pattern from(@NotNull DyeColor color, @NotNull BannerPattern pattern) { + return new Pattern(color, pattern); + } + + /** + * Get name of the marker, unused by Minestom + * + * @return name of the marker + */ + public @Nullable Component getCustomName() { + return getTag(CUSTOM_NAME); + } + + /** + * Get patterns of the banner + * + * @return patterns of the banner + */ + public @NotNull List getPatterns() { + return getTag(PATTERNS); + } + + @Override + public @UnknownNullability T getTag(@NotNull Tag tag) { + return readable.getTag(tag); + } + + public record Builder(TagHandler tagHandler) implements ItemMetaView.Builder { + public Builder() { + this(TagHandler.newHandler()); + } + + /** + * Set name of the marker, unused by Minestom + * + * @param customName name of the marker + * @return this + */ + public @NotNull Builder customName(Component customName) { + setTag(CUSTOM_NAME, customName); + return this; + } + + /** + * Set the patterns of the banner + * + * @param patterns patterns of the banner + * @return this + */ + public @NotNull Builder patterns(@NotNull List patterns) { + setTag(PATTERNS, patterns); + return this; + } + + /** + * Add a pattern to the banner + * + * @param pattern pattern to add + * @return this + */ + public @NotNull Builder addPattern(Pattern pattern) { + var newList = new ArrayList<>(getTag(PATTERNS)); + newList.add(pattern); + return patterns(newList); + } + + /** + * Remove a pattern from the banner + * + * @param pattern pattern to remove + * @return this + */ + public @NotNull Builder removePattern(Pattern pattern) { + var newList = new ArrayList<>(getTag(PATTERNS)); + newList.remove(pattern); + return patterns(newList); + } + + /** + * Clears the underlying list which contains the pattern values. + * @return this + */ + public @NotNull Builder clearPatterns() { + return patterns(List.of()); + } + } + + public record Pattern(@NotNull DyeColor color, @NotNull BannerPattern pattern) { + + /** + * Retrieves a banner pattern from the given {@code compound}. + * + * @param compound The NBT connection, which should be a banner pattern. + * @return A new created banner pattern. + */ + public static @NotNull Pattern fromCompound(@NotNull NBTCompound compound) { + DyeColor color = compound.containsKey(COLOR_KEY) ? DyeColor.getValue(compound.getByte(COLOR_KEY)) : DyeColor.WHITE; + BannerPattern type; + if (compound.containsKey(PATTERN_KEY)) { + BannerPattern pattern = BannerPattern.fromIdentifier(compound.getString(PATTERN_KEY)); + type = pattern != null ? pattern : BannerPattern.BASE; + } else type = BannerPattern.BASE; + return new Pattern(color, type); + } + + /** + * Retrieves the {@link Pattern} as an {@link NBTCompound}. + * + * @return The banner pattern as a nbt compound. + */ + public @NotNull NBTCompound asCompound() { + return NBT.Compound(Map.of( + COLOR_KEY, NBT.Byte(color.ordinal()), + PATTERN_KEY, NBT.String(pattern.identifier()) + )); + } + } +} diff --git a/src/main/java/net/minestom/server/item/metadata/ShieldMeta.java b/src/main/java/net/minestom/server/item/metadata/ShieldMeta.java new file mode 100644 index 00000000000..56a864253f2 --- /dev/null +++ b/src/main/java/net/minestom/server/item/metadata/ShieldMeta.java @@ -0,0 +1,131 @@ +package net.minestom.server.item.metadata; + +import net.kyori.adventure.text.Component; +import net.minestom.server.color.DyeColor; +import net.minestom.server.item.ItemMetaView; +import net.minestom.server.tag.Tag; +import net.minestom.server.tag.TagHandler; +import net.minestom.server.tag.TagReadable; +import net.minestom.server.tag.TagSerializer; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.jetbrains.annotations.UnknownNullability; + +import java.util.ArrayList; +import java.util.List; + +// Microtus - Banner and Shield Meta +@ApiStatus.Experimental +public record ShieldMeta(@NotNull TagReadable readable) implements ItemMetaView { + + private static final String BASE_KEY = "Base"; + private static final String ENTITY_TAG = "BlockEntityTag"; + private static final Tag CUSTOM_NAME = Tag.Component("CustomName").path(ENTITY_TAG); + private static final Tag BASE_TAG = Tag.Integer(BASE_KEY).path(ENTITY_TAG); + private static final Tag> PATTERNS = Tag.Structure("Patterns", + TagSerializer.fromCompound(BannerMeta.Pattern::fromCompound, BannerMeta.Pattern::asCompound)) + .path(ENTITY_TAG).list().defaultValue(List.of()); + + /** + * Get base color of the shield + * + * @return the base color + */ + public @NotNull DyeColor getBaseColor() { + return DyeColor.getValue(getTag(BASE_TAG)); + } + + /** + * Get name of the marker, unused by Minestom + * + * @return name of the marker + */ + public @Nullable Component getCustomName() { + return getTag(CUSTOM_NAME); + } + + /** + * Get patterns of the shield + * + * @return patterns of the shield + */ + public @NotNull List getPatterns() { + return getTag(PATTERNS); + } + + @Override + public @UnknownNullability T getTag(@NotNull Tag tag) { + return readable.getTag(tag); + } + + public record Builder(@NotNull TagHandler tagHandler) implements ItemMetaView.Builder { + public Builder() { + this(TagHandler.newHandler()); + } + + /** + * Set the color which is used as base color for a shield. + * @param dyeColor the color to set + * @return the builder instance + */ + public @NotNull ShieldMeta.Builder baseColor(@NotNull DyeColor dyeColor) { + setTag(BASE_TAG, dyeColor.ordinal()); + return this; + } + + /** + * Set name of the marker, unused by Minestom + * + * @param customName name of the marker + * @return this + */ + public @NotNull ShieldMeta.Builder customName(@NotNull Component customName) { + setTag(CUSTOM_NAME, customName); + return this; + } + + /** + * Set the patterns of the shield + * + * @param patterns patterns of the shield + * @return this + */ + public @NotNull ShieldMeta.Builder patterns(@NotNull List patterns) { + setTag(PATTERNS, patterns); + return this; + } + + /** + * Add a pattern to the shield + * + * @param pattern pattern to add + * @return this + */ + public @NotNull ShieldMeta.Builder addPattern(BannerMeta.Pattern pattern) { + var newList = new ArrayList<>(getTag(PATTERNS)); + newList.add(pattern); + return patterns(newList); + } + + /** + * Remove a pattern from the shield + * + * @param pattern pattern to remove + * @return this + */ + public @NotNull ShieldMeta.Builder removePattern(BannerMeta.Pattern pattern) { + var newList = new ArrayList<>(getTag(PATTERNS)); + newList.remove(pattern); + return patterns(newList); + } + + /** + * Clears the underlying list which contains the pattern values. + * @return this + */ + public @NotNull ShieldMeta.Builder clearPatterns() { + return patterns(List.of()); + } + } +} diff --git a/src/main/java/net/minestom/server/network/NetworkBufferTypes.java b/src/main/java/net/minestom/server/network/NetworkBufferTypes.java new file mode 100644 index 00000000000..13cc9079a34 --- /dev/null +++ b/src/main/java/net/minestom/server/network/NetworkBufferTypes.java @@ -0,0 +1,639 @@ +package net.minestom.server.network; + +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; +import net.minestom.server.adventure.serializer.nbt.NbtComponentSerializer; +import net.minestom.server.coordinate.Point; +import net.minestom.server.coordinate.Vec; +import net.minestom.server.entity.Entity; +import net.minestom.server.entity.metadata.animal.FrogMeta; +import net.minestom.server.entity.metadata.animal.SnifferMeta; +import net.minestom.server.entity.metadata.animal.tameable.CatMeta; +import net.minestom.server.item.ItemStack; +import net.minestom.server.item.Material; +import net.minestom.server.network.packet.server.play.data.DeathLocation; +import net.minestom.server.utils.Direction; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.UnknownNullability; +import org.jglrxavpok.hephaistos.nbt.*; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.nio.charset.StandardCharsets; +import java.util.UUID; + +final class NetworkBufferTypes { + private static final int SEGMENT_BITS = 0x7F; + private static final int CONTINUE_BIT = 0x80; + + static final TypeImpl BOOLEAN = new TypeImpl<>(Boolean.class, + (buffer, value) -> { + buffer.ensureSize(1); + buffer.nioBuffer.put(buffer.writeIndex(), value ? (byte) 1 : (byte) 0); + return 1; + }, + buffer -> { + final byte value = buffer.nioBuffer.get(buffer.readIndex()); + buffer.readIndex += 1; + return value == 1; + }); + static final TypeImpl BYTE = new TypeImpl<>(Byte.class, + (buffer, value) -> { + buffer.ensureSize(1); + buffer.nioBuffer.put(buffer.writeIndex(), value); + return 1; + }, + buffer -> { + final byte value = buffer.nioBuffer.get(buffer.readIndex()); + buffer.readIndex += 1; + return value; + }); + static final TypeImpl SHORT = new TypeImpl<>(Short.class, + (buffer, value) -> { + buffer.ensureSize(2); + buffer.nioBuffer.putShort(buffer.writeIndex(), value); + return 2; + }, + buffer -> { + final short value = buffer.nioBuffer.getShort(buffer.readIndex()); + buffer.readIndex += 2; + return value; + }); + static final TypeImpl UNSIGNED_SHORT = new TypeImpl<>(Integer.class, + (buffer, value) -> { + buffer.ensureSize(2); + buffer.nioBuffer.putShort(buffer.writeIndex(), (short) (value & 0xFFFF)); + return 2; + }, + buffer -> { + final short value = buffer.nioBuffer.getShort(buffer.readIndex()); + buffer.readIndex += 2; + return value & 0xFFFF; + }); + static final TypeImpl INT = new TypeImpl<>(Integer.class, + (buffer, value) -> { + buffer.ensureSize(4); + buffer.nioBuffer.putInt(buffer.writeIndex(), value); + return 4; + }, + buffer -> { + final int value = buffer.nioBuffer.getInt(buffer.readIndex()); + buffer.readIndex += 4; + return value; + }); + static final TypeImpl LONG = new TypeImpl<>(Long.class, + (buffer, value) -> { + buffer.ensureSize(8); + buffer.nioBuffer.putLong(buffer.writeIndex(), value); + return 8; + }, + buffer -> { + final long value = buffer.nioBuffer.getLong(buffer.readIndex()); + buffer.readIndex += 8; + return value; + }); + static final TypeImpl FLOAT = new TypeImpl<>(Float.class, + (buffer, value) -> { + buffer.ensureSize(4); + buffer.nioBuffer.putFloat(buffer.writeIndex(), value); + return 4; + }, + buffer -> { + final float value = buffer.nioBuffer.getFloat(buffer.readIndex()); + buffer.readIndex += 4; + return value; + }); + static final TypeImpl DOUBLE = new TypeImpl<>(Double.class, + (buffer, value) -> { + buffer.ensureSize(8); + buffer.nioBuffer.putDouble(buffer.writeIndex(), value); + return 8; + }, + buffer -> { + final double value = buffer.nioBuffer.getDouble(buffer.readIndex()); + buffer.readIndex += 8; + return value; + }); + static final TypeImpl VAR_INT = new TypeImpl<>(Integer.class, + (buffer, boxed) -> { + final int value = boxed; + final int index = buffer.writeIndex(); + if ((value & (0xFFFFFFFF << 7)) == 0) { + buffer.ensureSize(1); + buffer.nioBuffer.put(index, (byte) value); + return 1; + } else if ((value & (0xFFFFFFFF << 14)) == 0) { + buffer.ensureSize(2); + buffer.nioBuffer.putShort(index, (short) ((value & 0x7F | 0x80) << 8 | (value >>> 7))); + return 2; + } else if ((value & (0xFFFFFFFF << 21)) == 0) { + buffer.ensureSize(3); + var nio = buffer.nioBuffer; + nio.put(index, (byte) (value & 0x7F | 0x80)); + nio.put(index + 1, (byte) ((value >>> 7) & 0x7F | 0x80)); + nio.put(index + 2, (byte) (value >>> 14)); + return 3; + } else if ((value & (0xFFFFFFFF << 28)) == 0) { + buffer.ensureSize(4); + var nio = buffer.nioBuffer; + nio.putInt(index, (value & 0x7F | 0x80) << 24 | (((value >>> 7) & 0x7F | 0x80) << 16) + | ((value >>> 14) & 0x7F | 0x80) << 8 | (value >>> 21)); + return 4; + } else { + buffer.ensureSize(5); + var nio = buffer.nioBuffer; + nio.putInt(index, (value & 0x7F | 0x80) << 24 | ((value >>> 7) & 0x7F | 0x80) << 16 + | ((value >>> 14) & 0x7F | 0x80) << 8 | ((value >>> 21) & 0x7F | 0x80)); + nio.put(index + 4, (byte) (value >>> 28)); + return 5; + } + }, + buffer -> { + int index = buffer.readIndex(); + // https://github.com/jvm-profiling-tools/async-profiler/blob/a38a375dc62b31a8109f3af97366a307abb0fe6f/src/converter/one/jfr/JfrReader.java#L393 + int result = 0; + for (int shift = 0; ; shift += 7) { + byte b = buffer.nioBuffer.get(index++); + result |= (b & 0x7f) << shift; + if (b >= 0) { + buffer.readIndex += index - buffer.readIndex(); + return result; + } + } + }); + static final TypeImpl VAR_LONG = new TypeImpl<>(Long.class, + (buffer, value) -> { + buffer.ensureSize(10); + int size = 0; + while (true) { + if ((value & ~((long) SEGMENT_BITS)) == 0) { + buffer.nioBuffer.put(buffer.writeIndex() + size, (byte) value.intValue()); + return size + 1; + } + buffer.nioBuffer.put(buffer.writeIndex() + size, (byte) (value & SEGMENT_BITS | CONTINUE_BIT)); + size++; + // Note: >>> means that the sign bit is shifted with the rest of the number rather than being left alone + value >>>= 7; + } + }, + buffer -> { + int length = 0; + + long value = 0; + int position = 0; + byte currentByte; + + while (true) { + currentByte = buffer.nioBuffer.get(buffer.readIndex() + length); + length++; + value |= (long) (currentByte & SEGMENT_BITS) << position; + if ((currentByte & CONTINUE_BIT) == 0) break; + position += 7; + if (position >= 64) throw new RuntimeException("VarLong is too big"); + } + buffer.readIndex += length; + return value; + }); + static final TypeImpl RAW_BYTES = new TypeImpl<>(byte[].class, + (buffer, value) -> { + buffer.ensureSize(value.length); + buffer.nioBuffer.put(buffer.writeIndex(), value); + return value.length; + }, + buffer -> { + final int limit = buffer.nioBuffer.limit(); + final int length = limit - buffer.readIndex(); + assert length > 0 : "Invalid remaining: " + length; + final byte[] bytes = new byte[length]; + buffer.nioBuffer.get(buffer.readIndex(), bytes); + buffer.readIndex += length; + return bytes; + }); + static final TypeImpl STRING = new TypeImpl<>(String.class, + (buffer, value) -> { + final byte[] bytes = value.getBytes(StandardCharsets.UTF_8); + buffer.write(VAR_INT, bytes.length); + buffer.write(RAW_BYTES, bytes); + return -1; + }, + buffer -> { + final int length = buffer.read(VAR_INT); + byte[] bytes = new byte[length]; + buffer.nioBuffer.get(buffer.readIndex(), bytes); + buffer.readIndex += length; + return new String(bytes, StandardCharsets.UTF_8); + }); + static final TypeImpl NBT = new TypeImpl<>(NBT.class, + (buffer, value) -> { + NBTWriter nbtWriter = buffer.nbtWriter; + if (nbtWriter == null) { + nbtWriter = new NBTWriter(new OutputStream() { + @Override + public void write(int b) { + buffer.write(BYTE, (byte) b); + } + }, CompressedProcesser.NONE); + buffer.nbtWriter = nbtWriter; + } + try { + if (value == NBTEnd.INSTANCE) { + // Kotlin - https://discord.com/channels/706185253441634317/706186227493109860/1163703658341478462 + buffer.write(BYTE, (byte) NBTType.TAG_End.getOrdinal()); + } else { + buffer.write(BYTE, (byte) value.getID().getOrdinal()); + nbtWriter.writeRaw(value); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + return -1; + }, + buffer -> { + NBTReader nbtReader = buffer.nbtReader; + if (nbtReader == null) { + nbtReader = new NBTReader(new InputStream() { + @Override + public int read() { + return buffer.read(BYTE) & 0xFF; + } + + @Override + public int available() { + return buffer.readableBytes(); + } + }, CompressedProcesser.NONE); + buffer.nbtReader = nbtReader; + } + try { + byte tagId = buffer.read(BYTE); + if (tagId == NBTType.TAG_End.getOrdinal()) + return NBTEnd.INSTANCE; + return nbtReader.readRaw(tagId); + } catch (IOException | NBTException e) { + throw new RuntimeException(e); + } + }); + static final TypeImpl BLOCK_POSITION = new TypeImpl<>(Point.class, + (buffer, value) -> { + final int blockX = value.blockX(); + final int blockY = value.blockY(); + final int blockZ = value.blockZ(); + final long longPos = (((long) blockX & 0x3FFFFFF) << 38) | + (((long) blockZ & 0x3FFFFFF) << 12) | + ((long) blockY & 0xFFF); + buffer.write(LONG, longPos); + return -1; + }, + buffer -> { + final long value = buffer.read(LONG); + final int x = (int) (value >> 38); + final int y = (int) (value << 52 >> 52); + final int z = (int) (value << 26 >> 38); + return new Vec(x, y, z); + }); + static final TypeImpl COMPONENT = new TypeImpl<>(Component.class, + (buffer, value) -> { + final NBT nbt = NbtComponentSerializer.nbt().serialize(value); + buffer.write(NBT, nbt); + return -1; + }, + buffer -> { + final NBT nbt = buffer.read(NBT); + return NbtComponentSerializer.nbt().deserialize(nbt); + }); + static final TypeImpl JSON_COMPONENT = new TypeImpl<>(Component.class, + (buffer, value) -> { + final String json = GsonComponentSerializer.gson().serialize(value); + buffer.write(STRING, json); + return -1; + }, + buffer -> { + final String json = buffer.read(STRING); + return GsonComponentSerializer.gson().deserialize(json); + }); + static final TypeImpl UUID = new TypeImpl<>(UUID.class, + (buffer, value) -> { + buffer.write(LONG, value.getMostSignificantBits()); + buffer.write(LONG, value.getLeastSignificantBits()); + return -1; + }, + buffer -> { + final long mostSignificantBits = buffer.read(LONG); + final long leastSignificantBits = buffer.read(LONG); + return new UUID(mostSignificantBits, leastSignificantBits); + }); + static final TypeImpl ITEM = new TypeImpl<>(ItemStack.class, + (buffer, value) -> { + if (value.isAir()) { + buffer.write(BOOLEAN, false); + return -1; + } + buffer.write(BOOLEAN, true); + buffer.write(VAR_INT, value.material().id()); + buffer.write(BYTE, (byte) value.amount()); + + // Vanilla does not write an empty object, just an end tag. + NBTCompound nbt = value.meta().toNBT(); + buffer.write(NBT, nbt.isEmpty() ? NBTEnd.INSTANCE : nbt); + return -1; + }, + buffer -> { + final boolean present = buffer.read(BOOLEAN); + if (!present) return ItemStack.AIR; + + final int id = buffer.read(VAR_INT); + final Material material = Material.fromId(id); + if (material == null) throw new RuntimeException("Unknown material id: " + id); + + final int amount = buffer.read(BYTE); + final NBT nbt = buffer.read(NBT); + if (!(nbt instanceof NBTCompound compound)) { + return ItemStack.of(material, amount); + } + + return ItemStack.fromNBT(material, compound, amount); + }); + static final TypeImpl BYTE_ARRAY = new TypeImpl<>(byte[].class, + (buffer, value) -> { + buffer.write(VAR_INT, value.length); + buffer.write(RAW_BYTES, value); + return -1; + }, + buffer -> { + final int length = buffer.read(VAR_INT); + final byte[] bytes = new byte[length]; + buffer.nioBuffer.get(buffer.readIndex(), bytes); + buffer.readIndex += length; + return bytes; + }); + static final TypeImpl LONG_ARRAY = new TypeImpl<>(long[].class, + (buffer, value) -> { + buffer.write(VAR_INT, value.length); + for (long l : value) { + buffer.write(LONG, l); + } + return -1; + }, + buffer -> { + final int length = buffer.read(VAR_INT); + final long[] longs = new long[length]; + for (int i = 0; i < length; i++) { + longs[i] = buffer.read(LONG); + } + return longs; + }); + static final TypeImpl VAR_INT_ARRAY = new TypeImpl<>(int[].class, + (buffer, value) -> { + buffer.write(VAR_INT, value.length); + for (int i : value) { + buffer.write(VAR_INT, i); + } + return -1; + }, + buffer -> { + final int length = buffer.read(VAR_INT); + final int[] ints = new int[length]; + for (int i = 0; i < length; i++) { + ints[i] = buffer.read(VAR_INT); + } + return ints; + }); + static final TypeImpl VAR_LONG_ARRAY = new TypeImpl<>(long[].class, + (buffer, value) -> { + buffer.write(VAR_INT, value.length); + for (long l : value) { + buffer.write(VAR_LONG, l); + } + return -1; + }, + buffer -> { + final int length = buffer.read(VAR_INT); + final long[] longs = new long[length]; + for (int i = 0; i < length; i++) { + longs[i] = buffer.read(VAR_LONG); + } + return longs; + }); + // METADATA + static final TypeImpl OPT_CHAT = new TypeImpl<>(Component.class, + (buffer, value) -> { + if (value == null) { + buffer.write(BOOLEAN, false); + return -1; + } + buffer.write(BOOLEAN, true); + buffer.write(COMPONENT, value); + return -1; + }, + buffer -> { + final boolean present = buffer.read(BOOLEAN); + if (!present) return null; + return buffer.read(COMPONENT); + }); + static final TypeImpl ROTATION = new TypeImpl<>(Point.class, + (buffer, value) -> { + buffer.write(FLOAT, (float) value.x()); + buffer.write(FLOAT, (float) value.y()); + buffer.write(FLOAT, (float) value.z()); + return -1; + }, + buffer -> { + final float x = buffer.read(FLOAT); + final float y = buffer.read(FLOAT); + final float z = buffer.read(FLOAT); + return new Vec(x, y, z); + }); + static final TypeImpl OPT_BLOCK_POSITION = new TypeImpl<>(Point.class, + (buffer, value) -> { + if (value == null) { + buffer.write(BOOLEAN, false); + return -1; + } + buffer.write(BOOLEAN, true); + buffer.write(BLOCK_POSITION, value); + return -1; + }, + buffer -> { + final boolean present = buffer.read(BOOLEAN); + if (!present) return null; + return buffer.read(BLOCK_POSITION); + }); + static final TypeImpl DIRECTION = new TypeImpl<>(Direction.class, + (buffer, value) -> { + buffer.write(VAR_INT, value.ordinal()); + return -1; + }, + buffer -> { + final int ordinal = buffer.read(VAR_INT); + return Direction.values()[ordinal]; + }); + static final TypeImpl OPT_UUID = new TypeImpl<>(UUID.class, + (buffer, value) -> { + if (value == null) { + buffer.write(BOOLEAN, false); + return -1; + } + buffer.write(BOOLEAN, true); + buffer.write(UUID, value); + return -1; + }, + buffer -> { + final boolean present = buffer.read(BOOLEAN); + if (!present) return null; + return buffer.read(UUID); + }); + static final TypeImpl BLOCK_STATE = new TypeImpl<>(Integer.class, + (buffer, value) -> { + buffer.write(NetworkBuffer.VAR_INT, value); + return -1; + }, + buffer -> buffer.read(VAR_INT)); + static final TypeImpl OPT_BLOCK_STATE = new TypeImpl<>(Integer.class, + (buffer, value) -> { + if (value == null) { + buffer.write(NetworkBuffer.VAR_INT, 0); + return -1; + } + buffer.write(VAR_INT, value); + return -1; + }, + buffer -> { + final int value = buffer.read(VAR_INT); + return value == 0 ? null : value; + }); + static final TypeImpl VILLAGER_DATA = new TypeImpl<>(int[].class, + (buffer, value) -> { + buffer.write(VAR_INT, value[0]); + buffer.write(VAR_INT, value[1]); + buffer.write(VAR_INT, value[2]); + return -1; + }, + buffer -> { + final int[] value = new int[3]; + value[0] = buffer.read(VAR_INT); + value[1] = buffer.read(VAR_INT); + value[2] = buffer.read(VAR_INT); + return value; + }); + static final TypeImpl OPT_VAR_INT = new TypeImpl<>(int.class, + (buffer, value) -> { + if (value == null) { + buffer.write(VAR_INT, 0); + return -1; + } + buffer.write(VAR_INT, value + 1); + return -1; + }, + buffer -> { + final int value = buffer.read(VAR_INT); + return value == 0 ? null : value - 1; + }); + static final TypeImpl POSE = new TypeImpl<>(Entity.Pose.class, + (buffer, value) -> { + buffer.write(VAR_INT, value.ordinal()); + return -1; + }, + buffer -> { + final int ordinal = buffer.read(VAR_INT); + return Entity.Pose.values()[ordinal]; + }); + static final TypeImpl DEATH_LOCATION = new TypeImpl<>(DeathLocation.class, + (buffer, value) -> { + if (value == null) { + buffer.write(BOOLEAN, false); + } else { + buffer.write(BOOLEAN, true); + buffer.write(STRING, value.dimension()); + buffer.write(BLOCK_POSITION, value.position()); + } + return -1; + }, + buffer -> { + if (buffer.read(BOOLEAN)) { + return new DeathLocation(buffer.read(STRING), buffer.read(BLOCK_POSITION)); + } + return null; + }); + static final TypeImpl CAT_VARIANT = new TypeImpl<>(CatMeta.Variant.class, + (buffer, value) -> { + buffer.write(VAR_INT, value.ordinal()); + return -1; + }, + buffer -> { + final int ordinal = buffer.read(VAR_INT); + return CatMeta.Variant.values()[ordinal]; + }); + static final TypeImpl FROG_VARIANT = new TypeImpl<>(FrogMeta.Variant.class, + (buffer, value) -> { + buffer.write(VAR_INT, value.ordinal()); + return -1; + }, + buffer -> { + final int ordinal = buffer.read(VAR_INT); + return FrogMeta.Variant.getVariant(ordinal); // Microtus - meta update + }); + static final TypeImpl SNIFFER_STATE = new TypeImpl<>(SnifferMeta.State.class, + (buffer, value) -> { + buffer.write(VAR_INT, value.ordinal()); + return -1; + }, + buffer -> { + final int ordinal = buffer.read(VAR_INT); + return SnifferMeta.State.values()[ordinal]; + }); + static final TypeImpl VECTOR3 = new TypeImpl<>(Point.class, + (buffer, value) -> { + buffer.write(FLOAT, (float) value.x()); + buffer.write(FLOAT, (float) value.y()); + buffer.write(FLOAT, (float) value.z()); + return -1; + }, + buffer -> { + final float x = buffer.read(FLOAT); + final float y = buffer.read(FLOAT); + final float z = buffer.read(FLOAT); + return new Vec(x, y, z); + }); + static final TypeImpl VECTOR3D = new TypeImpl<>(Point.class, + (buffer, value) -> { + buffer.write(DOUBLE, value.x()); + buffer.write(DOUBLE, value.y()); + buffer.write(DOUBLE, value.z()); + return -1; + }, + buffer -> { + final double x = buffer.read(DOUBLE); + final double y = buffer.read(DOUBLE); + final double z = buffer.read(DOUBLE); + return new Vec(x, y, z); + }); + static final TypeImpl QUATERNION = new TypeImpl<>(float[].class, + (buffer, value) -> { + buffer.write(FLOAT, value[0]); + buffer.write(FLOAT, value[1]); + buffer.write(FLOAT, value[2]); + buffer.write(FLOAT, value[3]); + return -1; + }, + buffer -> { + final float x = buffer.read(FLOAT); + final float y = buffer.read(FLOAT); + final float z = buffer.read(FLOAT); + final float w = buffer.read(FLOAT); + return new float[]{x, y, z, w}; + }); + + record TypeImpl(@NotNull Class type, + @NotNull TypeWriter writer, + @NotNull TypeReader reader) implements NetworkBuffer.Type { + } + + interface TypeWriter { + long write(@NotNull NetworkBuffer buffer, @UnknownNullability T value); + } + + interface TypeReader { + @UnknownNullability T read(@NotNull NetworkBuffer buffer); + } +} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/BiomeOption.java b/src/main/java/net/minestom/server/world/biomes/particle/BiomeOption.java new file mode 100644 index 00000000000..07ffda2ba5d --- /dev/null +++ b/src/main/java/net/minestom/server/world/biomes/particle/BiomeOption.java @@ -0,0 +1,16 @@ +package net.minestom.server.world.biomes.particle; + +import net.minestom.server.particle.Particle; +import org.jetbrains.annotations.NotNull; +import org.jglrxavpok.hephaistos.nbt.NBTCompound; + +/** + * Just a generic interface to hold data about biome particles + * @author TheMeinerLP + */ +public interface BiomeOption { + @NotNull + NBTCompound toNbt(); + @NotNull + Particle getType(); +} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/BlockOption.java b/src/main/java/net/minestom/server/world/biomes/particle/BlockOption.java new file mode 100644 index 00000000000..117d9a1ec79 --- /dev/null +++ b/src/main/java/net/minestom/server/world/biomes/particle/BlockOption.java @@ -0,0 +1,32 @@ +package net.minestom.server.world.biomes.particle; + +import net.minestom.server.instance.block.Block; +import net.minestom.server.particle.Particle; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; +import org.jglrxavpok.hephaistos.nbt.NBT; +import org.jglrxavpok.hephaistos.nbt.NBTCompound; + +import java.util.Map; + +@ApiStatus.Experimental +public record BlockOption(@NotNull Block block) implements BiomeOption { + + @Override + public @NotNull NBTCompound toNbt() { + return NBT.Compound(nbtCompound -> { + nbtCompound.setString("type", getType().namespace().toString()); + nbtCompound.setString("Name", block.name()); + Map propertiesMap = block.properties(); + if (!propertiesMap.isEmpty()) { + nbtCompound.set("Properties", NBT.Compound(p -> propertiesMap.forEach(p::setString))); + } + }); + } + + @Override + public @NotNull Particle getType() { + return Particle.BLOCK; + } + +} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/DefaultOption.java b/src/main/java/net/minestom/server/world/biomes/particle/DefaultOption.java new file mode 100644 index 00000000000..1ddad4d7ea4 --- /dev/null +++ b/src/main/java/net/minestom/server/world/biomes/particle/DefaultOption.java @@ -0,0 +1,20 @@ +package net.minestom.server.world.biomes.particle; + +import net.minestom.server.particle.Particle; +import org.jetbrains.annotations.NotNull; +import org.jglrxavpok.hephaistos.nbt.NBT; +import org.jglrxavpok.hephaistos.nbt.NBTCompound; + +import java.util.Map; + +public record DefaultOption(@NotNull Particle particle) implements BiomeOption { + @Override + public @NotNull NBTCompound toNbt() { + return NBT.Compound(Map.of("type", NBT.String(getType().namespace().toString()))); + } + + @Override + public @NotNull Particle getType() { + return particle; + } +} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/DustOption.java b/src/main/java/net/minestom/server/world/biomes/particle/DustOption.java new file mode 100644 index 00000000000..0a84f495820 --- /dev/null +++ b/src/main/java/net/minestom/server/world/biomes/particle/DustOption.java @@ -0,0 +1,34 @@ +package net.minestom.server.world.biomes.particle; + +import net.minestom.server.particle.Particle; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; +import org.jglrxavpok.hephaistos.nbt.NBT; +import org.jglrxavpok.hephaistos.nbt.NBTCompound; + +import java.util.Map; + +/** + * Particle effect which used based on the color values. + * @param red can between 0 and 1 and is divided by 255 + * @param green can between 0 and 1 and is divided by 255 + * @param blue can between 0 and 1 and is divided by 255 + * @param scale can between 0.01 to 4 + */ +@ApiStatus.Experimental +public record DustOption(float red, float green, float blue, float scale) implements BiomeOption { + @Override + public @NotNull NBTCompound toNbt() { + return NBT.Compound(Map.of( + "type", NBT.String(getType().namespace().toString()), + "Red", NBT.Float(red), + "Green", NBT.Float(green), + "Blue", NBT.Float(blue), + "Scale", NBT.Float(scale))); + } + + @Override + public @NotNull Particle getType() { + return Particle.DUST; + } +} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/ItemOption.java b/src/main/java/net/minestom/server/world/biomes/particle/ItemOption.java new file mode 100644 index 00000000000..a977cd052c1 --- /dev/null +++ b/src/main/java/net/minestom/server/world/biomes/particle/ItemOption.java @@ -0,0 +1,27 @@ +package net.minestom.server.world.biomes.particle; + +import net.minestom.server.item.ItemStack; +import net.minestom.server.particle.Particle; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; +import org.jglrxavpok.hephaistos.nbt.NBTCompound; + +/** + * Particle effect which used based on an item inside the biome. + * @param item to bes used + */ +@ApiStatus.Experimental +public record ItemOption(@NotNull ItemStack item) implements BiomeOption { + + @Override + public @NotNull NBTCompound toNbt() { + NBTCompound nbtCompound = item.meta().toNBT(); + return nbtCompound.modify(n -> n.setString("type", getType().namespace().toString())); + } + + @Override + public @NotNull Particle getType() { + return Particle.ITEM; + } + +} diff --git a/src/main/kotlin/minestom.common-conventions.gradle.kts b/src/main/kotlin/minestom.common-conventions.gradle.kts new file mode 100644 index 00000000000..6c56062ffab --- /dev/null +++ b/src/main/kotlin/minestom.common-conventions.gradle.kts @@ -0,0 +1,28 @@ +plugins { + java +} + +// Always exclude checker-qual. This is the single most annoying thing that always reappears. +configurations.all { + // We only use Jetbrains Annotations + exclude("org.checkerframework", "checker-qual") +} + +java { + toolchain { + languageVersion.set(JavaLanguageVersion.of(21)) + } +} + +tasks { + withType { + // We are fully aware, that we should be suppressing these instead of ignoring them here, but man keep my terminal clean. + options.compilerArgs.addAll(listOf("-Xlint:none", "-Xlint:-deprecation", "-Xlint:-unchecked")) + } + withType { + useJUnitPlatform() + // Viewable packets make tracking harder. Could be re-enabled later. + jvmArgs("-Dminestom.viewable-packet=false") + jvmArgs("-Dminestom.inside-test=true") + } +} \ No newline at end of file diff --git a/src/main/kotlin/minestom.native-conventions.gradle.kts b/src/main/kotlin/minestom.native-conventions.gradle.kts new file mode 100644 index 00000000000..4a873e818bb --- /dev/null +++ b/src/main/kotlin/minestom.native-conventions.gradle.kts @@ -0,0 +1,14 @@ +plugins { + id("minestom.common-conventions") + id("org.graalvm.buildtools.native") +} + +graalvmNative { + binaries { + named("main") { + buildArgs.add("--allow-incomplete-classpath") + // One day toolchains will support getting this automagically, but that day is not today. + toolchainDetection.set(false) + } + } +} \ No newline at end of file diff --git a/src/main/kotlin/minestom.publishing-conventions.gradle.kts b/src/main/kotlin/minestom.publishing-conventions.gradle.kts new file mode 100644 index 00000000000..305dd158be3 --- /dev/null +++ b/src/main/kotlin/minestom.publishing-conventions.gradle.kts @@ -0,0 +1,40 @@ +plugins { + id("net.kyori.indra") + id("net.kyori.indra.publishing") + id("net.kyori.indra.publishing.sonatype") + id("io.github.gradle-nexus.publish-plugin") +} + +indra { + javaVersions { + target(21) + testWith(21) + } + + github("OneLiteFeatherNET", "Microtus") { + ci(true) + publishing(false) + } + mitLicense() + signWithKeyFromPrefixedProperties("onelitefeather") + configurePublications { + pom { + developers { + developer { + id.set("themeinerlp") + name.set("Phillipp Glanz") + email.set("p.glanz@madfix.me") + } + developer { + id.set("theEvilReaper") + name.set("Steffen Wonning") + email.set("steffenwx@gmail.com") + } + } + } + } +} + +indraSonatype { + useAlternateSonatypeOSSHost("s01") +} \ No newline at end of file diff --git a/src/main/kotlin/net/onelitefeather/microtus/ExtensionPlugin.kt b/src/main/kotlin/net/onelitefeather/microtus/ExtensionPlugin.kt new file mode 100644 index 00000000000..e02e9d94396 --- /dev/null +++ b/src/main/kotlin/net/onelitefeather/microtus/ExtensionPlugin.kt @@ -0,0 +1,76 @@ +package net.onelitefeather.microtus + +import net.onelitefeather.microtus.models.Extension +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.api.plugins.JavaPlugin +import org.gradle.api.tasks.SourceSet +import org.gradle.api.tasks.SourceSetContainer +import org.gradle.kotlin.dsl.getByType +import org.gradle.kotlin.dsl.register +import org.gradle.kotlin.dsl.withType + +/** + * Represents the gradle plugin extension which can be integrated into a `build.gradle.kts` file to define the properties of the extension. + * The usage of this plugin is as follows: + * + * ```kotlin + * plugins { + * id("net.onelitefeather.microtus.extension") version "" + * // ... + * } + * + * extension { + * //... use the properties of the extension here + * } + * ``` + * + * @since 1.2.0 + * @author TheMeinerLP + */ +class ExtensionPlugin : Plugin { + + private val fileName = "extension.json" + + /** + * Applies the plugin to the project. + * @param target the project to apply the plugin to + */ + override fun apply(target: Project) { + target.run { + val generatedResourcesDirectory = layout.buildDirectory.dir("generated/extension") + val extension = Extension() + extensions.add("extension", extension) + + val library = project.configurations.maybeCreate("library") + val libraries = project.configurations.create("extensionLibrary").extendsFrom(library) + + val generateTask = tasks.register("generateExtension") { + group = "minestom" + + fileName.set(this@ExtensionPlugin.fileName) + librariesRootComponent.set(libraries.incoming.resolutionResult.root) + outputDirectory.set(generatedResourcesDirectory) + this.extension.set(provider { + setDefaults(project, extension) + extension + }) + } + plugins.withType { + extensions.getByType().named(SourceSet.MAIN_SOURCE_SET_NAME) { + resources.srcDir(generateTask) + } + } + } + } + + /** + * Sets some default variables to a [Extension] object. + * @param project the project to get the name and version from + * @param extension the extension to set the variables to + */ + private fun setDefaults(project: Project, extension: Extension) { + extension.name = extension.name ?: project.name + extension.version = extension.version ?: project.version.toString() + } +} \ No newline at end of file diff --git a/src/main/kotlin/net/onelitefeather/microtus/GenerateExtension.kt b/src/main/kotlin/net/onelitefeather/microtus/GenerateExtension.kt new file mode 100644 index 00000000000..0df18c5afb0 --- /dev/null +++ b/src/main/kotlin/net/onelitefeather/microtus/GenerateExtension.kt @@ -0,0 +1,79 @@ +package net.onelitefeather.microtus + +import com.fasterxml.jackson.annotation.JsonInclude +import com.fasterxml.jackson.databind.ObjectMapper +import com.fasterxml.jackson.databind.module.SimpleModule +import com.fasterxml.jackson.module.kotlin.registerKotlinModule +import net.onelitefeather.microtus.models.Extension +import org.gradle.api.DefaultTask +import org.gradle.api.artifacts.repositories.MavenArtifactRepository +import org.gradle.api.artifacts.result.ResolvedComponentResult +import org.gradle.api.artifacts.result.ResolvedDependencyResult +import org.gradle.api.file.DirectoryProperty +import org.gradle.api.provider.Property +import org.gradle.api.tasks.* +import kotlin.jvm.Throws + +/** + * Defines the task which generates the required extension.json file for Minestom. + * @since 1.2.0 + * @author TheMeinerLP + */ +abstract class GenerateExtension : DefaultTask() { + @get:Input + abstract val fileName: Property + + @get:Nested + abstract val extension: Property + + @get:OutputDirectory + abstract val outputDirectory: DirectoryProperty + + @get:Input + @get:Optional + abstract val librariesRootComponent: Property + + /** + * Generates an extension.json file based on the given properties. + */ + @TaskAction + fun generate() { + val module = SimpleModule() + val mapper = ObjectMapper() + .registerKotlinModule() + .registerModule(module) + .setSerializationInclusion(JsonInclude.Include.NON_EMPTY) + val extension = extension.get() + val dependencies = librariesRootComponent.orNull.collectLibraries() + val repos = this.project.repositories.withType(MavenArtifactRepository::class.java) + val externalDependencies = Extension.ExternalDependencies() + externalDependencies.artifacts = dependencies.toList() + val mavenCentral = Extension.Repository() + mavenCentral.url = "https://repo.maven.apache.org/maven2/" + mavenCentral.name = "mavenCentral" + val mappedRepos = repos.map { + val repo = Extension.Repository() + repo.url = it.url.toString() + repo.name = it.name + repo + }.toList() + externalDependencies.repositories = if (mappedRepos.isNotEmpty() || dependencies.isNotEmpty()) { + mappedRepos + listOf(mavenCentral) + } else { + listOf() + } + extension.externalDependencies = externalDependencies + mapper.writeValue(outputDirectory.file(fileName).get().asFile, extension) + } + + /** + * Collects all libraries from the root component and the additional libraries. + * @param additional the additional libraries to add + */ + private fun ResolvedComponentResult?.collectLibraries(additional: List? = null): List { + val resolved = this?.dependencies?.map { dependencyResult -> + (dependencyResult as? ResolvedDependencyResult)?.selected?.moduleVersion?.toString() ?: error("No moduleVersion for $dependencyResult") + } + return ((additional ?: listOf()) + (resolved ?: listOf())).distinct() + } +} \ No newline at end of file diff --git a/src/main/kotlin/net/onelitefeather/microtus/models/Extension.kt b/src/main/kotlin/net/onelitefeather/microtus/models/Extension.kt new file mode 100644 index 00000000000..3e8976c5970 --- /dev/null +++ b/src/main/kotlin/net/onelitefeather/microtus/models/Extension.kt @@ -0,0 +1,76 @@ +package net.onelitefeather.microtus.models + +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.Optional +import org.gradle.internal.impldep.com.fasterxml.jackson.annotation.JsonProperty + +/** + * Represents the allowed data fields for an extension.json file which is required from Minestom to load an extension. + * The following fields are allowed (fields with a * are required): + * + * - name: The name of the extension (*) + * - version: The version of the extension (*) + * - entrypoint: The entrypoint of the extension (*) + * - authors: The authors of the extension + * - dependencies: The dependencies of the extension + * - externalDependencies: The external dependencies of the extension + * @since 1.2.0 + * @author TheMeinerLP + */ +class Extension() { + @Input + var name: String? = null + + @Input + var version: String? = null + + @Input + var entrypoint: String? = null + + @Input + @Optional + @JsonProperty("authors") + var authors: List? = null + + @Input + @Optional + @JsonProperty("dependencies") + var dependencies: List? = null + + @Input + @Optional + @JsonProperty("externalDependencies") + var externalDependencies: ExternalDependencies? = null + + /** + * Represents the external dependencies which is required for the extension to work. + * @since 1.2.0 + * @author TheMeinerLP + */ + class ExternalDependencies { + @JsonProperty("repositories") + var repositories: List? = null + + @Input + @Optional + @JsonProperty("artifacts") + var artifacts: List? = null + + } + + /** + * Represents a repository which is used by an extension to load external dependencies. + * @since 1.2.0 + * @author TheMeinerLP + * @see ExternalDependencies + */ + class Repository { + @Input + @JsonProperty("name") + var name: String? = null + + @Input + @JsonProperty("url") + var url: String? = null + } +} From 93ae35541cb211093e8c30b1ddd6648ad155ba5b Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Wed, 22 May 2024 20:33:50 +0200 Subject: [PATCH 58/93] Fix compile mistake after apply patches --- .../java/net/minestom/server/item/banner/BannerPattern.java | 5 +++-- .../net/minestom/server/item/banner/BannerPatternImpl.java | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/minestom/server/item/banner/BannerPattern.java b/src/main/java/net/minestom/server/item/banner/BannerPattern.java index 582bc644d42..86d320f1285 100644 --- a/src/main/java/net/minestom/server/item/banner/BannerPattern.java +++ b/src/main/java/net/minestom/server/item/banner/BannerPattern.java @@ -2,6 +2,7 @@ import net.kyori.adventure.key.Key; import net.minestom.server.registry.ProtocolObject; +import net.minestom.server.registry.StaticProtocolObject; import net.minestom.server.utils.NamespaceID; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -9,7 +10,7 @@ import java.util.Collection; // Microtus - Banner and Shield Meta -public sealed interface BannerPattern extends ProtocolObject, BannerPatterns permits BannerPatternImpl { +public sealed interface BannerPattern extends StaticProtocolObject, BannerPatterns permits BannerPatternImpl { static @NotNull Collection<@NotNull BannerPattern> values() { return BannerPatternImpl.values(); } @@ -32,7 +33,7 @@ public sealed interface BannerPattern extends ProtocolObject, BannerPatterns per @Override default @NotNull Key key() { - return ProtocolObject.super.key(); + return StaticProtocolObject.super.key(); } @NotNull String identifier(); diff --git a/src/main/java/net/minestom/server/item/banner/BannerPatternImpl.java b/src/main/java/net/minestom/server/item/banner/BannerPatternImpl.java index 063b5565ba8..2f1dd27b1c5 100644 --- a/src/main/java/net/minestom/server/item/banner/BannerPatternImpl.java +++ b/src/main/java/net/minestom/server/item/banner/BannerPatternImpl.java @@ -12,7 +12,7 @@ public record BannerPatternImpl(NamespaceID namespace, int id, String identifier) implements BannerPattern { private static Map IDENTIFIERS = new HashMap<>(); - private static final Registry.Container CONTAINER = Registry.createContainer(Registry.Resource.BANNER_PATTERNS, + private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.BANNER_PATTERNS, (namespace, properties) -> { int id = properties.getInt("id"); String identifier = properties.getString("identifier"); From 3cfbc4ae2698ddff909096ff85b06b16c271d8c5 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Wed, 22 May 2024 20:42:46 +0200 Subject: [PATCH 59/93] Fix compile mistake after apply patches --- .../net/minestom/server/entity/Player.java | 2 +- .../server/network/NetworkBufferTypes.java | 639 ------------------ 2 files changed, 1 insertion(+), 640 deletions(-) delete mode 100644 src/main/java/net/minestom/server/network/NetworkBufferTypes.java diff --git a/src/main/java/net/minestom/server/entity/Player.java b/src/main/java/net/minestom/server/entity/Player.java index e88d90de368..4596404442b 100644 --- a/src/main/java/net/minestom/server/entity/Player.java +++ b/src/main/java/net/minestom/server/entity/Player.java @@ -2529,7 +2529,7 @@ public void refresh(String locale, byte viewDistance, ChatMessageType chatMessag this.allowServerListings = allowServerListings; boolean isInPlayState = getPlayerConnection().getConnectionState() == ConnectionState.PLAY; - PlayerMeta playerMeta = getPlayerMeta(); + PlayerMeta playerMeta = getUnsafeEntityMeta(); if (isInPlayState) playerMeta.setNotifyAboutChanges(false); playerMeta.setDisplayedSkinParts(displayedSkinParts); playerMeta.setRightMainHand(this.mainHand == MainHand.RIGHT); diff --git a/src/main/java/net/minestom/server/network/NetworkBufferTypes.java b/src/main/java/net/minestom/server/network/NetworkBufferTypes.java deleted file mode 100644 index 13cc9079a34..00000000000 --- a/src/main/java/net/minestom/server/network/NetworkBufferTypes.java +++ /dev/null @@ -1,639 +0,0 @@ -package net.minestom.server.network; - -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.minestom.server.adventure.serializer.nbt.NbtComponentSerializer; -import net.minestom.server.coordinate.Point; -import net.minestom.server.coordinate.Vec; -import net.minestom.server.entity.Entity; -import net.minestom.server.entity.metadata.animal.FrogMeta; -import net.minestom.server.entity.metadata.animal.SnifferMeta; -import net.minestom.server.entity.metadata.animal.tameable.CatMeta; -import net.minestom.server.item.ItemStack; -import net.minestom.server.item.Material; -import net.minestom.server.network.packet.server.play.data.DeathLocation; -import net.minestom.server.utils.Direction; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.UnknownNullability; -import org.jglrxavpok.hephaistos.nbt.*; - -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.nio.charset.StandardCharsets; -import java.util.UUID; - -final class NetworkBufferTypes { - private static final int SEGMENT_BITS = 0x7F; - private static final int CONTINUE_BIT = 0x80; - - static final TypeImpl BOOLEAN = new TypeImpl<>(Boolean.class, - (buffer, value) -> { - buffer.ensureSize(1); - buffer.nioBuffer.put(buffer.writeIndex(), value ? (byte) 1 : (byte) 0); - return 1; - }, - buffer -> { - final byte value = buffer.nioBuffer.get(buffer.readIndex()); - buffer.readIndex += 1; - return value == 1; - }); - static final TypeImpl BYTE = new TypeImpl<>(Byte.class, - (buffer, value) -> { - buffer.ensureSize(1); - buffer.nioBuffer.put(buffer.writeIndex(), value); - return 1; - }, - buffer -> { - final byte value = buffer.nioBuffer.get(buffer.readIndex()); - buffer.readIndex += 1; - return value; - }); - static final TypeImpl SHORT = new TypeImpl<>(Short.class, - (buffer, value) -> { - buffer.ensureSize(2); - buffer.nioBuffer.putShort(buffer.writeIndex(), value); - return 2; - }, - buffer -> { - final short value = buffer.nioBuffer.getShort(buffer.readIndex()); - buffer.readIndex += 2; - return value; - }); - static final TypeImpl UNSIGNED_SHORT = new TypeImpl<>(Integer.class, - (buffer, value) -> { - buffer.ensureSize(2); - buffer.nioBuffer.putShort(buffer.writeIndex(), (short) (value & 0xFFFF)); - return 2; - }, - buffer -> { - final short value = buffer.nioBuffer.getShort(buffer.readIndex()); - buffer.readIndex += 2; - return value & 0xFFFF; - }); - static final TypeImpl INT = new TypeImpl<>(Integer.class, - (buffer, value) -> { - buffer.ensureSize(4); - buffer.nioBuffer.putInt(buffer.writeIndex(), value); - return 4; - }, - buffer -> { - final int value = buffer.nioBuffer.getInt(buffer.readIndex()); - buffer.readIndex += 4; - return value; - }); - static final TypeImpl LONG = new TypeImpl<>(Long.class, - (buffer, value) -> { - buffer.ensureSize(8); - buffer.nioBuffer.putLong(buffer.writeIndex(), value); - return 8; - }, - buffer -> { - final long value = buffer.nioBuffer.getLong(buffer.readIndex()); - buffer.readIndex += 8; - return value; - }); - static final TypeImpl FLOAT = new TypeImpl<>(Float.class, - (buffer, value) -> { - buffer.ensureSize(4); - buffer.nioBuffer.putFloat(buffer.writeIndex(), value); - return 4; - }, - buffer -> { - final float value = buffer.nioBuffer.getFloat(buffer.readIndex()); - buffer.readIndex += 4; - return value; - }); - static final TypeImpl DOUBLE = new TypeImpl<>(Double.class, - (buffer, value) -> { - buffer.ensureSize(8); - buffer.nioBuffer.putDouble(buffer.writeIndex(), value); - return 8; - }, - buffer -> { - final double value = buffer.nioBuffer.getDouble(buffer.readIndex()); - buffer.readIndex += 8; - return value; - }); - static final TypeImpl VAR_INT = new TypeImpl<>(Integer.class, - (buffer, boxed) -> { - final int value = boxed; - final int index = buffer.writeIndex(); - if ((value & (0xFFFFFFFF << 7)) == 0) { - buffer.ensureSize(1); - buffer.nioBuffer.put(index, (byte) value); - return 1; - } else if ((value & (0xFFFFFFFF << 14)) == 0) { - buffer.ensureSize(2); - buffer.nioBuffer.putShort(index, (short) ((value & 0x7F | 0x80) << 8 | (value >>> 7))); - return 2; - } else if ((value & (0xFFFFFFFF << 21)) == 0) { - buffer.ensureSize(3); - var nio = buffer.nioBuffer; - nio.put(index, (byte) (value & 0x7F | 0x80)); - nio.put(index + 1, (byte) ((value >>> 7) & 0x7F | 0x80)); - nio.put(index + 2, (byte) (value >>> 14)); - return 3; - } else if ((value & (0xFFFFFFFF << 28)) == 0) { - buffer.ensureSize(4); - var nio = buffer.nioBuffer; - nio.putInt(index, (value & 0x7F | 0x80) << 24 | (((value >>> 7) & 0x7F | 0x80) << 16) - | ((value >>> 14) & 0x7F | 0x80) << 8 | (value >>> 21)); - return 4; - } else { - buffer.ensureSize(5); - var nio = buffer.nioBuffer; - nio.putInt(index, (value & 0x7F | 0x80) << 24 | ((value >>> 7) & 0x7F | 0x80) << 16 - | ((value >>> 14) & 0x7F | 0x80) << 8 | ((value >>> 21) & 0x7F | 0x80)); - nio.put(index + 4, (byte) (value >>> 28)); - return 5; - } - }, - buffer -> { - int index = buffer.readIndex(); - // https://github.com/jvm-profiling-tools/async-profiler/blob/a38a375dc62b31a8109f3af97366a307abb0fe6f/src/converter/one/jfr/JfrReader.java#L393 - int result = 0; - for (int shift = 0; ; shift += 7) { - byte b = buffer.nioBuffer.get(index++); - result |= (b & 0x7f) << shift; - if (b >= 0) { - buffer.readIndex += index - buffer.readIndex(); - return result; - } - } - }); - static final TypeImpl VAR_LONG = new TypeImpl<>(Long.class, - (buffer, value) -> { - buffer.ensureSize(10); - int size = 0; - while (true) { - if ((value & ~((long) SEGMENT_BITS)) == 0) { - buffer.nioBuffer.put(buffer.writeIndex() + size, (byte) value.intValue()); - return size + 1; - } - buffer.nioBuffer.put(buffer.writeIndex() + size, (byte) (value & SEGMENT_BITS | CONTINUE_BIT)); - size++; - // Note: >>> means that the sign bit is shifted with the rest of the number rather than being left alone - value >>>= 7; - } - }, - buffer -> { - int length = 0; - - long value = 0; - int position = 0; - byte currentByte; - - while (true) { - currentByte = buffer.nioBuffer.get(buffer.readIndex() + length); - length++; - value |= (long) (currentByte & SEGMENT_BITS) << position; - if ((currentByte & CONTINUE_BIT) == 0) break; - position += 7; - if (position >= 64) throw new RuntimeException("VarLong is too big"); - } - buffer.readIndex += length; - return value; - }); - static final TypeImpl RAW_BYTES = new TypeImpl<>(byte[].class, - (buffer, value) -> { - buffer.ensureSize(value.length); - buffer.nioBuffer.put(buffer.writeIndex(), value); - return value.length; - }, - buffer -> { - final int limit = buffer.nioBuffer.limit(); - final int length = limit - buffer.readIndex(); - assert length > 0 : "Invalid remaining: " + length; - final byte[] bytes = new byte[length]; - buffer.nioBuffer.get(buffer.readIndex(), bytes); - buffer.readIndex += length; - return bytes; - }); - static final TypeImpl STRING = new TypeImpl<>(String.class, - (buffer, value) -> { - final byte[] bytes = value.getBytes(StandardCharsets.UTF_8); - buffer.write(VAR_INT, bytes.length); - buffer.write(RAW_BYTES, bytes); - return -1; - }, - buffer -> { - final int length = buffer.read(VAR_INT); - byte[] bytes = new byte[length]; - buffer.nioBuffer.get(buffer.readIndex(), bytes); - buffer.readIndex += length; - return new String(bytes, StandardCharsets.UTF_8); - }); - static final TypeImpl NBT = new TypeImpl<>(NBT.class, - (buffer, value) -> { - NBTWriter nbtWriter = buffer.nbtWriter; - if (nbtWriter == null) { - nbtWriter = new NBTWriter(new OutputStream() { - @Override - public void write(int b) { - buffer.write(BYTE, (byte) b); - } - }, CompressedProcesser.NONE); - buffer.nbtWriter = nbtWriter; - } - try { - if (value == NBTEnd.INSTANCE) { - // Kotlin - https://discord.com/channels/706185253441634317/706186227493109860/1163703658341478462 - buffer.write(BYTE, (byte) NBTType.TAG_End.getOrdinal()); - } else { - buffer.write(BYTE, (byte) value.getID().getOrdinal()); - nbtWriter.writeRaw(value); - } - } catch (IOException e) { - throw new RuntimeException(e); - } - return -1; - }, - buffer -> { - NBTReader nbtReader = buffer.nbtReader; - if (nbtReader == null) { - nbtReader = new NBTReader(new InputStream() { - @Override - public int read() { - return buffer.read(BYTE) & 0xFF; - } - - @Override - public int available() { - return buffer.readableBytes(); - } - }, CompressedProcesser.NONE); - buffer.nbtReader = nbtReader; - } - try { - byte tagId = buffer.read(BYTE); - if (tagId == NBTType.TAG_End.getOrdinal()) - return NBTEnd.INSTANCE; - return nbtReader.readRaw(tagId); - } catch (IOException | NBTException e) { - throw new RuntimeException(e); - } - }); - static final TypeImpl BLOCK_POSITION = new TypeImpl<>(Point.class, - (buffer, value) -> { - final int blockX = value.blockX(); - final int blockY = value.blockY(); - final int blockZ = value.blockZ(); - final long longPos = (((long) blockX & 0x3FFFFFF) << 38) | - (((long) blockZ & 0x3FFFFFF) << 12) | - ((long) blockY & 0xFFF); - buffer.write(LONG, longPos); - return -1; - }, - buffer -> { - final long value = buffer.read(LONG); - final int x = (int) (value >> 38); - final int y = (int) (value << 52 >> 52); - final int z = (int) (value << 26 >> 38); - return new Vec(x, y, z); - }); - static final TypeImpl COMPONENT = new TypeImpl<>(Component.class, - (buffer, value) -> { - final NBT nbt = NbtComponentSerializer.nbt().serialize(value); - buffer.write(NBT, nbt); - return -1; - }, - buffer -> { - final NBT nbt = buffer.read(NBT); - return NbtComponentSerializer.nbt().deserialize(nbt); - }); - static final TypeImpl JSON_COMPONENT = new TypeImpl<>(Component.class, - (buffer, value) -> { - final String json = GsonComponentSerializer.gson().serialize(value); - buffer.write(STRING, json); - return -1; - }, - buffer -> { - final String json = buffer.read(STRING); - return GsonComponentSerializer.gson().deserialize(json); - }); - static final TypeImpl UUID = new TypeImpl<>(UUID.class, - (buffer, value) -> { - buffer.write(LONG, value.getMostSignificantBits()); - buffer.write(LONG, value.getLeastSignificantBits()); - return -1; - }, - buffer -> { - final long mostSignificantBits = buffer.read(LONG); - final long leastSignificantBits = buffer.read(LONG); - return new UUID(mostSignificantBits, leastSignificantBits); - }); - static final TypeImpl ITEM = new TypeImpl<>(ItemStack.class, - (buffer, value) -> { - if (value.isAir()) { - buffer.write(BOOLEAN, false); - return -1; - } - buffer.write(BOOLEAN, true); - buffer.write(VAR_INT, value.material().id()); - buffer.write(BYTE, (byte) value.amount()); - - // Vanilla does not write an empty object, just an end tag. - NBTCompound nbt = value.meta().toNBT(); - buffer.write(NBT, nbt.isEmpty() ? NBTEnd.INSTANCE : nbt); - return -1; - }, - buffer -> { - final boolean present = buffer.read(BOOLEAN); - if (!present) return ItemStack.AIR; - - final int id = buffer.read(VAR_INT); - final Material material = Material.fromId(id); - if (material == null) throw new RuntimeException("Unknown material id: " + id); - - final int amount = buffer.read(BYTE); - final NBT nbt = buffer.read(NBT); - if (!(nbt instanceof NBTCompound compound)) { - return ItemStack.of(material, amount); - } - - return ItemStack.fromNBT(material, compound, amount); - }); - static final TypeImpl BYTE_ARRAY = new TypeImpl<>(byte[].class, - (buffer, value) -> { - buffer.write(VAR_INT, value.length); - buffer.write(RAW_BYTES, value); - return -1; - }, - buffer -> { - final int length = buffer.read(VAR_INT); - final byte[] bytes = new byte[length]; - buffer.nioBuffer.get(buffer.readIndex(), bytes); - buffer.readIndex += length; - return bytes; - }); - static final TypeImpl LONG_ARRAY = new TypeImpl<>(long[].class, - (buffer, value) -> { - buffer.write(VAR_INT, value.length); - for (long l : value) { - buffer.write(LONG, l); - } - return -1; - }, - buffer -> { - final int length = buffer.read(VAR_INT); - final long[] longs = new long[length]; - for (int i = 0; i < length; i++) { - longs[i] = buffer.read(LONG); - } - return longs; - }); - static final TypeImpl VAR_INT_ARRAY = new TypeImpl<>(int[].class, - (buffer, value) -> { - buffer.write(VAR_INT, value.length); - for (int i : value) { - buffer.write(VAR_INT, i); - } - return -1; - }, - buffer -> { - final int length = buffer.read(VAR_INT); - final int[] ints = new int[length]; - for (int i = 0; i < length; i++) { - ints[i] = buffer.read(VAR_INT); - } - return ints; - }); - static final TypeImpl VAR_LONG_ARRAY = new TypeImpl<>(long[].class, - (buffer, value) -> { - buffer.write(VAR_INT, value.length); - for (long l : value) { - buffer.write(VAR_LONG, l); - } - return -1; - }, - buffer -> { - final int length = buffer.read(VAR_INT); - final long[] longs = new long[length]; - for (int i = 0; i < length; i++) { - longs[i] = buffer.read(VAR_LONG); - } - return longs; - }); - // METADATA - static final TypeImpl OPT_CHAT = new TypeImpl<>(Component.class, - (buffer, value) -> { - if (value == null) { - buffer.write(BOOLEAN, false); - return -1; - } - buffer.write(BOOLEAN, true); - buffer.write(COMPONENT, value); - return -1; - }, - buffer -> { - final boolean present = buffer.read(BOOLEAN); - if (!present) return null; - return buffer.read(COMPONENT); - }); - static final TypeImpl ROTATION = new TypeImpl<>(Point.class, - (buffer, value) -> { - buffer.write(FLOAT, (float) value.x()); - buffer.write(FLOAT, (float) value.y()); - buffer.write(FLOAT, (float) value.z()); - return -1; - }, - buffer -> { - final float x = buffer.read(FLOAT); - final float y = buffer.read(FLOAT); - final float z = buffer.read(FLOAT); - return new Vec(x, y, z); - }); - static final TypeImpl OPT_BLOCK_POSITION = new TypeImpl<>(Point.class, - (buffer, value) -> { - if (value == null) { - buffer.write(BOOLEAN, false); - return -1; - } - buffer.write(BOOLEAN, true); - buffer.write(BLOCK_POSITION, value); - return -1; - }, - buffer -> { - final boolean present = buffer.read(BOOLEAN); - if (!present) return null; - return buffer.read(BLOCK_POSITION); - }); - static final TypeImpl DIRECTION = new TypeImpl<>(Direction.class, - (buffer, value) -> { - buffer.write(VAR_INT, value.ordinal()); - return -1; - }, - buffer -> { - final int ordinal = buffer.read(VAR_INT); - return Direction.values()[ordinal]; - }); - static final TypeImpl OPT_UUID = new TypeImpl<>(UUID.class, - (buffer, value) -> { - if (value == null) { - buffer.write(BOOLEAN, false); - return -1; - } - buffer.write(BOOLEAN, true); - buffer.write(UUID, value); - return -1; - }, - buffer -> { - final boolean present = buffer.read(BOOLEAN); - if (!present) return null; - return buffer.read(UUID); - }); - static final TypeImpl BLOCK_STATE = new TypeImpl<>(Integer.class, - (buffer, value) -> { - buffer.write(NetworkBuffer.VAR_INT, value); - return -1; - }, - buffer -> buffer.read(VAR_INT)); - static final TypeImpl OPT_BLOCK_STATE = new TypeImpl<>(Integer.class, - (buffer, value) -> { - if (value == null) { - buffer.write(NetworkBuffer.VAR_INT, 0); - return -1; - } - buffer.write(VAR_INT, value); - return -1; - }, - buffer -> { - final int value = buffer.read(VAR_INT); - return value == 0 ? null : value; - }); - static final TypeImpl VILLAGER_DATA = new TypeImpl<>(int[].class, - (buffer, value) -> { - buffer.write(VAR_INT, value[0]); - buffer.write(VAR_INT, value[1]); - buffer.write(VAR_INT, value[2]); - return -1; - }, - buffer -> { - final int[] value = new int[3]; - value[0] = buffer.read(VAR_INT); - value[1] = buffer.read(VAR_INT); - value[2] = buffer.read(VAR_INT); - return value; - }); - static final TypeImpl OPT_VAR_INT = new TypeImpl<>(int.class, - (buffer, value) -> { - if (value == null) { - buffer.write(VAR_INT, 0); - return -1; - } - buffer.write(VAR_INT, value + 1); - return -1; - }, - buffer -> { - final int value = buffer.read(VAR_INT); - return value == 0 ? null : value - 1; - }); - static final TypeImpl POSE = new TypeImpl<>(Entity.Pose.class, - (buffer, value) -> { - buffer.write(VAR_INT, value.ordinal()); - return -1; - }, - buffer -> { - final int ordinal = buffer.read(VAR_INT); - return Entity.Pose.values()[ordinal]; - }); - static final TypeImpl DEATH_LOCATION = new TypeImpl<>(DeathLocation.class, - (buffer, value) -> { - if (value == null) { - buffer.write(BOOLEAN, false); - } else { - buffer.write(BOOLEAN, true); - buffer.write(STRING, value.dimension()); - buffer.write(BLOCK_POSITION, value.position()); - } - return -1; - }, - buffer -> { - if (buffer.read(BOOLEAN)) { - return new DeathLocation(buffer.read(STRING), buffer.read(BLOCK_POSITION)); - } - return null; - }); - static final TypeImpl CAT_VARIANT = new TypeImpl<>(CatMeta.Variant.class, - (buffer, value) -> { - buffer.write(VAR_INT, value.ordinal()); - return -1; - }, - buffer -> { - final int ordinal = buffer.read(VAR_INT); - return CatMeta.Variant.values()[ordinal]; - }); - static final TypeImpl FROG_VARIANT = new TypeImpl<>(FrogMeta.Variant.class, - (buffer, value) -> { - buffer.write(VAR_INT, value.ordinal()); - return -1; - }, - buffer -> { - final int ordinal = buffer.read(VAR_INT); - return FrogMeta.Variant.getVariant(ordinal); // Microtus - meta update - }); - static final TypeImpl SNIFFER_STATE = new TypeImpl<>(SnifferMeta.State.class, - (buffer, value) -> { - buffer.write(VAR_INT, value.ordinal()); - return -1; - }, - buffer -> { - final int ordinal = buffer.read(VAR_INT); - return SnifferMeta.State.values()[ordinal]; - }); - static final TypeImpl VECTOR3 = new TypeImpl<>(Point.class, - (buffer, value) -> { - buffer.write(FLOAT, (float) value.x()); - buffer.write(FLOAT, (float) value.y()); - buffer.write(FLOAT, (float) value.z()); - return -1; - }, - buffer -> { - final float x = buffer.read(FLOAT); - final float y = buffer.read(FLOAT); - final float z = buffer.read(FLOAT); - return new Vec(x, y, z); - }); - static final TypeImpl VECTOR3D = new TypeImpl<>(Point.class, - (buffer, value) -> { - buffer.write(DOUBLE, value.x()); - buffer.write(DOUBLE, value.y()); - buffer.write(DOUBLE, value.z()); - return -1; - }, - buffer -> { - final double x = buffer.read(DOUBLE); - final double y = buffer.read(DOUBLE); - final double z = buffer.read(DOUBLE); - return new Vec(x, y, z); - }); - static final TypeImpl QUATERNION = new TypeImpl<>(float[].class, - (buffer, value) -> { - buffer.write(FLOAT, value[0]); - buffer.write(FLOAT, value[1]); - buffer.write(FLOAT, value[2]); - buffer.write(FLOAT, value[3]); - return -1; - }, - buffer -> { - final float x = buffer.read(FLOAT); - final float y = buffer.read(FLOAT); - final float z = buffer.read(FLOAT); - final float w = buffer.read(FLOAT); - return new float[]{x, y, z, w}; - }); - - record TypeImpl(@NotNull Class type, - @NotNull TypeWriter writer, - @NotNull TypeReader reader) implements NetworkBuffer.Type { - } - - interface TypeWriter { - long write(@NotNull NetworkBuffer buffer, @UnknownNullability T value); - } - - interface TypeReader { - @UnknownNullability T read(@NotNull NetworkBuffer buffer); - } -} From 4ae2c6afde143089ab5a6f1e02cafff246bc0709 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Thu, 23 May 2024 07:10:21 +0200 Subject: [PATCH 60/93] Move miss landed classes after patching source --- .../minestom.common-conventions.gradle.kts | 28 ------- .../minestom.native-conventions.gradle.kts | 14 ---- ...minestom.publishing-conventions.gradle.kts | 40 ---------- .../microtus/ExtensionPlugin.kt | 76 ------------------ .../microtus/GenerateExtension.kt | 79 ------------------- .../microtus/models/Extension.kt | 76 ------------------ 6 files changed, 313 deletions(-) delete mode 100644 src/main/kotlin/minestom.common-conventions.gradle.kts delete mode 100644 src/main/kotlin/minestom.native-conventions.gradle.kts delete mode 100644 src/main/kotlin/minestom.publishing-conventions.gradle.kts delete mode 100644 src/main/kotlin/net/onelitefeather/microtus/ExtensionPlugin.kt delete mode 100644 src/main/kotlin/net/onelitefeather/microtus/GenerateExtension.kt delete mode 100644 src/main/kotlin/net/onelitefeather/microtus/models/Extension.kt diff --git a/src/main/kotlin/minestom.common-conventions.gradle.kts b/src/main/kotlin/minestom.common-conventions.gradle.kts deleted file mode 100644 index 6c56062ffab..00000000000 --- a/src/main/kotlin/minestom.common-conventions.gradle.kts +++ /dev/null @@ -1,28 +0,0 @@ -plugins { - java -} - -// Always exclude checker-qual. This is the single most annoying thing that always reappears. -configurations.all { - // We only use Jetbrains Annotations - exclude("org.checkerframework", "checker-qual") -} - -java { - toolchain { - languageVersion.set(JavaLanguageVersion.of(21)) - } -} - -tasks { - withType { - // We are fully aware, that we should be suppressing these instead of ignoring them here, but man keep my terminal clean. - options.compilerArgs.addAll(listOf("-Xlint:none", "-Xlint:-deprecation", "-Xlint:-unchecked")) - } - withType { - useJUnitPlatform() - // Viewable packets make tracking harder. Could be re-enabled later. - jvmArgs("-Dminestom.viewable-packet=false") - jvmArgs("-Dminestom.inside-test=true") - } -} \ No newline at end of file diff --git a/src/main/kotlin/minestom.native-conventions.gradle.kts b/src/main/kotlin/minestom.native-conventions.gradle.kts deleted file mode 100644 index 4a873e818bb..00000000000 --- a/src/main/kotlin/minestom.native-conventions.gradle.kts +++ /dev/null @@ -1,14 +0,0 @@ -plugins { - id("minestom.common-conventions") - id("org.graalvm.buildtools.native") -} - -graalvmNative { - binaries { - named("main") { - buildArgs.add("--allow-incomplete-classpath") - // One day toolchains will support getting this automagically, but that day is not today. - toolchainDetection.set(false) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/minestom.publishing-conventions.gradle.kts b/src/main/kotlin/minestom.publishing-conventions.gradle.kts deleted file mode 100644 index 305dd158be3..00000000000 --- a/src/main/kotlin/minestom.publishing-conventions.gradle.kts +++ /dev/null @@ -1,40 +0,0 @@ -plugins { - id("net.kyori.indra") - id("net.kyori.indra.publishing") - id("net.kyori.indra.publishing.sonatype") - id("io.github.gradle-nexus.publish-plugin") -} - -indra { - javaVersions { - target(21) - testWith(21) - } - - github("OneLiteFeatherNET", "Microtus") { - ci(true) - publishing(false) - } - mitLicense() - signWithKeyFromPrefixedProperties("onelitefeather") - configurePublications { - pom { - developers { - developer { - id.set("themeinerlp") - name.set("Phillipp Glanz") - email.set("p.glanz@madfix.me") - } - developer { - id.set("theEvilReaper") - name.set("Steffen Wonning") - email.set("steffenwx@gmail.com") - } - } - } - } -} - -indraSonatype { - useAlternateSonatypeOSSHost("s01") -} \ No newline at end of file diff --git a/src/main/kotlin/net/onelitefeather/microtus/ExtensionPlugin.kt b/src/main/kotlin/net/onelitefeather/microtus/ExtensionPlugin.kt deleted file mode 100644 index e02e9d94396..00000000000 --- a/src/main/kotlin/net/onelitefeather/microtus/ExtensionPlugin.kt +++ /dev/null @@ -1,76 +0,0 @@ -package net.onelitefeather.microtus - -import net.onelitefeather.microtus.models.Extension -import org.gradle.api.Plugin -import org.gradle.api.Project -import org.gradle.api.plugins.JavaPlugin -import org.gradle.api.tasks.SourceSet -import org.gradle.api.tasks.SourceSetContainer -import org.gradle.kotlin.dsl.getByType -import org.gradle.kotlin.dsl.register -import org.gradle.kotlin.dsl.withType - -/** - * Represents the gradle plugin extension which can be integrated into a `build.gradle.kts` file to define the properties of the extension. - * The usage of this plugin is as follows: - * - * ```kotlin - * plugins { - * id("net.onelitefeather.microtus.extension") version "" - * // ... - * } - * - * extension { - * //... use the properties of the extension here - * } - * ``` - * - * @since 1.2.0 - * @author TheMeinerLP - */ -class ExtensionPlugin : Plugin { - - private val fileName = "extension.json" - - /** - * Applies the plugin to the project. - * @param target the project to apply the plugin to - */ - override fun apply(target: Project) { - target.run { - val generatedResourcesDirectory = layout.buildDirectory.dir("generated/extension") - val extension = Extension() - extensions.add("extension", extension) - - val library = project.configurations.maybeCreate("library") - val libraries = project.configurations.create("extensionLibrary").extendsFrom(library) - - val generateTask = tasks.register("generateExtension") { - group = "minestom" - - fileName.set(this@ExtensionPlugin.fileName) - librariesRootComponent.set(libraries.incoming.resolutionResult.root) - outputDirectory.set(generatedResourcesDirectory) - this.extension.set(provider { - setDefaults(project, extension) - extension - }) - } - plugins.withType { - extensions.getByType().named(SourceSet.MAIN_SOURCE_SET_NAME) { - resources.srcDir(generateTask) - } - } - } - } - - /** - * Sets some default variables to a [Extension] object. - * @param project the project to get the name and version from - * @param extension the extension to set the variables to - */ - private fun setDefaults(project: Project, extension: Extension) { - extension.name = extension.name ?: project.name - extension.version = extension.version ?: project.version.toString() - } -} \ No newline at end of file diff --git a/src/main/kotlin/net/onelitefeather/microtus/GenerateExtension.kt b/src/main/kotlin/net/onelitefeather/microtus/GenerateExtension.kt deleted file mode 100644 index 0df18c5afb0..00000000000 --- a/src/main/kotlin/net/onelitefeather/microtus/GenerateExtension.kt +++ /dev/null @@ -1,79 +0,0 @@ -package net.onelitefeather.microtus - -import com.fasterxml.jackson.annotation.JsonInclude -import com.fasterxml.jackson.databind.ObjectMapper -import com.fasterxml.jackson.databind.module.SimpleModule -import com.fasterxml.jackson.module.kotlin.registerKotlinModule -import net.onelitefeather.microtus.models.Extension -import org.gradle.api.DefaultTask -import org.gradle.api.artifacts.repositories.MavenArtifactRepository -import org.gradle.api.artifacts.result.ResolvedComponentResult -import org.gradle.api.artifacts.result.ResolvedDependencyResult -import org.gradle.api.file.DirectoryProperty -import org.gradle.api.provider.Property -import org.gradle.api.tasks.* -import kotlin.jvm.Throws - -/** - * Defines the task which generates the required extension.json file for Minestom. - * @since 1.2.0 - * @author TheMeinerLP - */ -abstract class GenerateExtension : DefaultTask() { - @get:Input - abstract val fileName: Property - - @get:Nested - abstract val extension: Property - - @get:OutputDirectory - abstract val outputDirectory: DirectoryProperty - - @get:Input - @get:Optional - abstract val librariesRootComponent: Property - - /** - * Generates an extension.json file based on the given properties. - */ - @TaskAction - fun generate() { - val module = SimpleModule() - val mapper = ObjectMapper() - .registerKotlinModule() - .registerModule(module) - .setSerializationInclusion(JsonInclude.Include.NON_EMPTY) - val extension = extension.get() - val dependencies = librariesRootComponent.orNull.collectLibraries() - val repos = this.project.repositories.withType(MavenArtifactRepository::class.java) - val externalDependencies = Extension.ExternalDependencies() - externalDependencies.artifacts = dependencies.toList() - val mavenCentral = Extension.Repository() - mavenCentral.url = "https://repo.maven.apache.org/maven2/" - mavenCentral.name = "mavenCentral" - val mappedRepos = repos.map { - val repo = Extension.Repository() - repo.url = it.url.toString() - repo.name = it.name - repo - }.toList() - externalDependencies.repositories = if (mappedRepos.isNotEmpty() || dependencies.isNotEmpty()) { - mappedRepos + listOf(mavenCentral) - } else { - listOf() - } - extension.externalDependencies = externalDependencies - mapper.writeValue(outputDirectory.file(fileName).get().asFile, extension) - } - - /** - * Collects all libraries from the root component and the additional libraries. - * @param additional the additional libraries to add - */ - private fun ResolvedComponentResult?.collectLibraries(additional: List? = null): List { - val resolved = this?.dependencies?.map { dependencyResult -> - (dependencyResult as? ResolvedDependencyResult)?.selected?.moduleVersion?.toString() ?: error("No moduleVersion for $dependencyResult") - } - return ((additional ?: listOf()) + (resolved ?: listOf())).distinct() - } -} \ No newline at end of file diff --git a/src/main/kotlin/net/onelitefeather/microtus/models/Extension.kt b/src/main/kotlin/net/onelitefeather/microtus/models/Extension.kt deleted file mode 100644 index 3e8976c5970..00000000000 --- a/src/main/kotlin/net/onelitefeather/microtus/models/Extension.kt +++ /dev/null @@ -1,76 +0,0 @@ -package net.onelitefeather.microtus.models - -import org.gradle.api.tasks.Input -import org.gradle.api.tasks.Optional -import org.gradle.internal.impldep.com.fasterxml.jackson.annotation.JsonProperty - -/** - * Represents the allowed data fields for an extension.json file which is required from Minestom to load an extension. - * The following fields are allowed (fields with a * are required): - * - * - name: The name of the extension (*) - * - version: The version of the extension (*) - * - entrypoint: The entrypoint of the extension (*) - * - authors: The authors of the extension - * - dependencies: The dependencies of the extension - * - externalDependencies: The external dependencies of the extension - * @since 1.2.0 - * @author TheMeinerLP - */ -class Extension() { - @Input - var name: String? = null - - @Input - var version: String? = null - - @Input - var entrypoint: String? = null - - @Input - @Optional - @JsonProperty("authors") - var authors: List? = null - - @Input - @Optional - @JsonProperty("dependencies") - var dependencies: List? = null - - @Input - @Optional - @JsonProperty("externalDependencies") - var externalDependencies: ExternalDependencies? = null - - /** - * Represents the external dependencies which is required for the extension to work. - * @since 1.2.0 - * @author TheMeinerLP - */ - class ExternalDependencies { - @JsonProperty("repositories") - var repositories: List? = null - - @Input - @Optional - @JsonProperty("artifacts") - var artifacts: List? = null - - } - - /** - * Represents a repository which is used by an extension to load external dependencies. - * @since 1.2.0 - * @author TheMeinerLP - * @see ExternalDependencies - */ - class Repository { - @Input - @JsonProperty("name") - var name: String? = null - - @Input - @JsonProperty("url") - var url: String? = null - } -} From 1208b4fcbdf03c6f40450a8bf77b0bc650e76282 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Fri, 24 May 2024 10:04:25 +0200 Subject: [PATCH 61/93] [Docs] Fix docs generation --- .../java/net/minestom/codegen/feature/FeatureFlagGenerator.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/code-generators/src/main/java/net/minestom/codegen/feature/FeatureFlagGenerator.java b/code-generators/src/main/java/net/minestom/codegen/feature/FeatureFlagGenerator.java index b8dd93b040f..8545161b910 100644 --- a/code-generators/src/main/java/net/minestom/codegen/feature/FeatureFlagGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/feature/FeatureFlagGenerator.java @@ -27,8 +27,6 @@ public class FeatureFlagGenerator extends MinestomCodeGenerator { /** * Creates a new code generator. - * - * @param packageName the package name of the generated class */ public FeatureFlagGenerator(InputStream featureFlagFile, File outputFolder) { super(FEATURE_FLAG_FILE_PACKAGE); From dfdaae96a76e58ea8ebd2b82bf40937844eadae7 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Fri, 24 May 2024 10:14:56 +0200 Subject: [PATCH 62/93] [Chore] Change adventure javadocs link --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 59c2d5c53ad..7c34b0388d8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -60,7 +60,7 @@ tasks { addStringOption("-release", "21") // Links to external javadocs links("https://docs.oracle.com/en/java/javase/21/docs/api/") - links("https://jd.adventure.kyori.net/api/${libs.versions.adventure.get()}/") + links("https://jd.advntr.dev/api/${libs.versions.adventure.get()}/") } } withType { From f1ac21b94b39b4cb9ee4dd895c44d1472c2ea74a Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Fri, 24 May 2024 10:13:07 +0200 Subject: [PATCH 63/93] [Chore] Update gradle to 8.7 --- gradlew.bat | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/gradlew.bat b/gradlew.bat index 25da30dbdee..93e3f59f135 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -43,11 +43,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. 1>&2 -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. goto fail @@ -57,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. 1>&2 -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. goto fail From 5cb92c4b7a11cff72a6c4453ce574cd07efd5a79 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Fri, 24 May 2024 11:12:41 +0200 Subject: [PATCH 64/93] [Chore] Improve internal registry handling for implementation creation. --- .../server/item/banner/BannerPatternImpl.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/java/net/minestom/server/item/banner/BannerPatternImpl.java b/src/main/java/net/minestom/server/item/banner/BannerPatternImpl.java index 2f1dd27b1c5..028e219a01e 100644 --- a/src/main/java/net/minestom/server/item/banner/BannerPatternImpl.java +++ b/src/main/java/net/minestom/server/item/banner/BannerPatternImpl.java @@ -12,14 +12,15 @@ public record BannerPatternImpl(NamespaceID namespace, int id, String identifier) implements BannerPattern { private static Map IDENTIFIERS = new HashMap<>(); - private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.BANNER_PATTERNS, - (namespace, properties) -> { - int id = properties.getInt("id"); - String identifier = properties.getString("identifier"); - BannerPatternImpl bannerPattern = new BannerPatternImpl(NamespaceID.from(namespace), id, identifier); - IDENTIFIERS.put(identifier, bannerPattern); - return bannerPattern; - }); + private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.BANNER_PATTERNS, BannerPatternImpl::createImpl); + + private static BannerPattern createImpl(String namespace, Registry.Properties properties) { + int id = properties.getInt("id"); + String identifier = properties.getString("identifier"); + BannerPatternImpl bannerPattern = new BannerPatternImpl(NamespaceID.from(namespace), id, identifier); + IDENTIFIERS.put(identifier, bannerPattern); + return bannerPattern; + } static BannerPattern get(@NotNull String namespace) { return CONTAINER.get(namespace); From bdac8a6bce382c7aad3febd3594d1ae4a8b74fea Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Fri, 24 May 2024 22:26:59 +0200 Subject: [PATCH 65/93] Remove not longer needed biome generator (#21) --- .../codegen/biome/BiomeGenerator.java | 146 ------------------ 1 file changed, 146 deletions(-) delete mode 100644 code-generators/src/main/java/net/minestom/codegen/biome/BiomeGenerator.java diff --git a/code-generators/src/main/java/net/minestom/codegen/biome/BiomeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/biome/BiomeGenerator.java deleted file mode 100644 index f82f817012c..00000000000 --- a/code-generators/src/main/java/net/minestom/codegen/biome/BiomeGenerator.java +++ /dev/null @@ -1,146 +0,0 @@ -package net.minestom.codegen.biome; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.squareup.javapoet.AnnotationSpec; -import com.squareup.javapoet.ArrayTypeName; -import com.squareup.javapoet.ClassName; -import com.squareup.javapoet.CodeBlock; -import com.squareup.javapoet.FieldSpec; -import com.squareup.javapoet.JavaFile; -import com.squareup.javapoet.MethodSpec; -import com.squareup.javapoet.ParameterSpec; -import com.squareup.javapoet.TypeName; -import com.squareup.javapoet.TypeSpec; -import java.awt.Color; -import java.io.File; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.List; -import javax.lang.model.element.Modifier; -import net.minestom.codegen.MinestomCodeGenerator; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -@ApiStatus.Internal -@ApiStatus.NonExtendable -public final class BiomeGenerator extends MinestomCodeGenerator { - - private static final String BIOME_KEY = "biome"; - private static final String BIOME_FILE_PACKAGE = "net.minestom.server.world.biomes"; // Microtus - Biomes - private static final String CLASS_NAME = "Biomes"; // Microtus - Biomes - private static final Logger LOGGER = LoggerFactory.getLogger(BiomeGenerator.class); - private final InputStream biomeFile; - private final File outputFolder; - - public BiomeGenerator(@Nullable InputStream biomeFile, @NotNull File outputFolder) { - super(BIOME_FILE_PACKAGE); - this.biomeFile = biomeFile; - this.outputFolder = outputFolder; - } - - @Override - public void generate() { - if (biomeFile == null) { - LOGGER.error("Failed to find biome.json."); - LOGGER.error("Stopped code generation for biomes."); - return; - } - if (!outputFolder.exists() && !outputFolder.mkdirs()) { - LOGGER.error("Output folder for code generation does not exist and could not be created."); - return; - } - - JsonElement biomes = GSON.fromJson(new InputStreamReader(biomeFile), JsonElement.class); - ClassName biomeCN = ClassName.get(BIOME_FILE_PACKAGE, CLASS_NAME); - ClassName biomeCn = ClassName.get(BIOME_FILE_PACKAGE, "Biome"); - ClassName categoryCn = biomeCn.nestedClass("Category"); - ClassName minecraftServerCn = ClassName.get("net.minestom.server", "MinecraftServer"); - ClassName namespaceIDCn = ClassName.get("net.minestom.server.utils", "NamespaceID"); - ClassName biomeEffectsCn = ClassName.get(BIOME_FILE_PACKAGE, "BiomeEffects"); - // Dye Color Enum - TypeSpec.Builder biomesEnum = TypeSpec.enumBuilder(biomeCN) - .addModifiers(Modifier.PUBLIC).addJavadoc("AUTOGENERATED by " + getClass().getSimpleName()); - - // Fields - biomesEnum.addFields( - List.of( - FieldSpec.builder(biomeCn, BIOME_KEY, Modifier.PRIVATE, Modifier.FINAL).build(), - FieldSpec.builder(ArrayTypeName.of(biomeCN), "VALUES", Modifier.PRIVATE, Modifier.STATIC, Modifier.FINAL).initializer(CLASS_NAME + ".values()").build() // Microtus - Banner and shield meta - ) - ); - - // Methods - biomesEnum.addMethods( - List.of( - // Constructor - MethodSpec.constructorBuilder() - .addParameter( - ParameterSpec.builder(biomeCn, BIOME_KEY).addAnnotation(NotNull.class).build() - ) - .addStatement("this.$1L = $1L", BIOME_KEY) - .build(), - MethodSpec.methodBuilder(BIOME_KEY) - .addModifiers(Modifier.PUBLIC) - .returns(biomeCn.annotated(AnnotationSpec.builder(NotNull.class).build())) - .addStatement("return this.$L", BIOME_KEY) - .build(), - MethodSpec.methodBuilder("getValue") - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .addParameter(ParameterSpec.builder(TypeName.INT, "id").build()) - .addAnnotation(Nullable.class) - .returns(ClassName.get(BIOME_FILE_PACKAGE, CLASS_NAME)) - .addCode("return VALUES[$L];", "id") - .build(), - MethodSpec.methodBuilder("registerBiomes") - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .beginControlFlow("for (var $L : VALUES)", BIOME_KEY) - .addStatement("$1T.getBiomeManager().addBiome($2L.$2L())", minecraftServerCn, BIOME_KEY) - .endControlFlow() - .build() - ) - ); - final JsonObject biomesAsJsonObject = biomes.getAsJsonObject(); - biomesAsJsonObject.keySet().forEach(biome -> { - var biomeObject = biomesAsJsonObject.get(biome).getAsJsonObject(); - var temperature = biomeObject.get("temperature").getAsFloat(); - var downfall = biomeObject.get("downfall").getAsFloat(); - var hasPrecipitation = biomeObject.get("has_precipitation").getAsBoolean(); - var fogColor = Integer.toHexString(new Color(biomeObject.get("fogColor").getAsInt()).getRGB()).substring(2); - var waterColor = Integer.toHexString(new Color(biomeObject.get("waterColor").getAsInt()).getRGB()).substring(2); - var waterFogColor = Integer.toHexString(new Color(biomeObject.get("waterFogColor").getAsInt()).getRGB()).substring(2); - var skyColor = Integer.toHexString(new Color(biomeObject.get("skyColor").getAsInt()).getRGB()).substring(2); - var effectCodeBlock = CodeBlock.builder(); - effectCodeBlock = effectCodeBlock.add("$T.builder().fogColor(0x$L).waterColor(0x$L).waterFogColor(0x$L).skyColor(0x$L)", biomeEffectsCn, fogColor, waterColor, waterFogColor, skyColor); - if (biomeObject.has("grassColor")) { - var grassColor = Integer.toHexString(new Color(biomeObject.get("grassColor").getAsInt()).getRGB()).substring(2); - effectCodeBlock = effectCodeBlock.add(".grassColor(0x$L)", grassColor); - } - if (biomeObject.has("foliageColor")) { - var foliageColor = Integer.toHexString(new Color(biomeObject.get("foliageColor").getAsInt()).getRGB()).substring(2); - effectCodeBlock = effectCodeBlock.add(".foliageColor(0x$L)", foliageColor); - } - effectCodeBlock = effectCodeBlock.add(".build()"); - var namespacedCode = CodeBlock.of("$T.from($S)", namespaceIDCn, biome.replaceFirst("minecraft:", "")); - biomesEnum.addEnumConstant(extractNamespace(biome), TypeSpec.anonymousClassBuilder( - "$T.builder().name($L).category($T.NONE).depth(0.125F).scale(0.05F).temperature($Lf).downfall($Lf).showPrecipitation($L).effects($L).build()", - biomeCn, namespacedCode, categoryCn, temperature, downfall, hasPrecipitation, effectCodeBlock.build() - ).build() - ); - }); - - // Write files to outputFolder - writeFiles( - List.of( - JavaFile.builder(BIOME_FILE_PACKAGE, biomesEnum.build()) - .indent(DEFAULT_INDENT) - .skipJavaLangImports(true) - .build() - ), - outputFolder - ); - } -} From a74ffd2c2104d95b3ca202204a8c69f65be2fc7a Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Fri, 24 May 2024 23:01:39 +0200 Subject: [PATCH 66/93] [Chore] Rework attribute system to generice generator (#23) * Rework attribute system for microtus and use generic generator * Remove old code * Remove already implemented methods because records * Use constant --- .../minestom/server/attribute/Attributes.java | 60 ++++++------------- 1 file changed, 17 insertions(+), 43 deletions(-) diff --git a/src/autogenerated/java/net/minestom/server/attribute/Attributes.java b/src/autogenerated/java/net/minestom/server/attribute/Attributes.java index a5edd76b551..b0e0b870ac7 100644 --- a/src/autogenerated/java/net/minestom/server/attribute/Attributes.java +++ b/src/autogenerated/java/net/minestom/server/attribute/Attributes.java @@ -1,61 +1,35 @@ package net.minestom.server.attribute; -import net.minestom.server.MinecraftServer; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - /** - * AUTOGENERATED by AttributeGenerator + * Code autogenerated, do not edit! */ -public enum Attributes { - GENERIC_ARMOR(new Attribute("minecraft:generic.armor", 0.0f, 30.0f)), - - GENERIC_ARMOR_TOUGHNESS(new Attribute("minecraft:generic.armor_toughness", 0.0f, 20.0f)), - - GENERIC_ATTACK_DAMAGE(new Attribute("minecraft:generic.attack_damage", 2.0f, 2048.0f)), - - GENERIC_ATTACK_KNOCKBACK(new Attribute("minecraft:generic.attack_knockback", 0.0f, 5.0f)), - - GENERIC_ATTACK_SPEED(new Attribute("minecraft:generic.attack_speed", 4.0f, 1024.0f)), - - GENERIC_FLYING_SPEED(new Attribute("minecraft:generic.flying_speed", 0.4f, 1024.0f)), - - GENERIC_FOLLOW_RANGE(new Attribute("minecraft:generic.follow_range", 32.0f, 2048.0f)), +@SuppressWarnings("unused") +interface Attributes { + Attribute GENERIC_ARMOR = AttributeImpl.get("minecraft:generic.armor"); - HORSE_JUMP_STRENGTH(new Attribute("minecraft:horse.jump_strength", 0.7f, 2.0f)), + Attribute GENERIC_ARMOR_TOUGHNESS = AttributeImpl.get("minecraft:generic.armor_toughness"); - GENERIC_KNOCKBACK_RESISTANCE(new Attribute("minecraft:generic.knockback_resistance", 0.0f, 1.0f)), + Attribute GENERIC_ATTACK_DAMAGE = AttributeImpl.get("minecraft:generic.attack_damage"); - GENERIC_LUCK(new Attribute("minecraft:generic.luck", 0.0f, 1024.0f)), + Attribute GENERIC_ATTACK_KNOCKBACK = AttributeImpl.get("minecraft:generic.attack_knockback"); - GENERIC_MAX_ABSORPTION(new Attribute("minecraft:generic.max_absorption", 0.0f, 2048.0f)), + Attribute GENERIC_ATTACK_SPEED = AttributeImpl.get("minecraft:generic.attack_speed"); - GENERIC_MAX_HEALTH(new Attribute("minecraft:generic.max_health", 20.0f, 1024.0f)), + Attribute GENERIC_FLYING_SPEED = AttributeImpl.get("minecraft:generic.flying_speed"); - GENERIC_MOVEMENT_SPEED(new Attribute("minecraft:generic.movement_speed", 0.7f, 1024.0f)), + Attribute GENERIC_FOLLOW_RANGE = AttributeImpl.get("minecraft:generic.follow_range"); - ZOMBIE_SPAWN_REINFORCEMENTS(new Attribute("minecraft:zombie.spawn_reinforcements", 0.0f, 1.0f)); + Attribute HORSE_JUMP_STRENGTH = AttributeImpl.get("minecraft:horse.jump_strength"); - private static final Attributes[] VALUES = values(); + Attribute GENERIC_KNOCKBACK_RESISTANCE = AttributeImpl.get("minecraft:generic.knockback_resistance"); - private final Attribute attribute; + Attribute GENERIC_LUCK = AttributeImpl.get("minecraft:generic.luck"); - Attributes(@NotNull Attribute attribute) { - this.attribute = attribute; - } + Attribute GENERIC_MAX_ABSORPTION = AttributeImpl.get("minecraft:generic.max_absorption"); - public @NotNull Attribute attribute() { - return this.attribute; - } + Attribute GENERIC_MAX_HEALTH = AttributeImpl.get("minecraft:generic.max_health"); - @Nullable - public static Attribute getValue(int id) { - return VALUES[id].attribute; - } + Attribute GENERIC_MOVEMENT_SPEED = AttributeImpl.get("minecraft:generic.movement_speed"); - public static void registerAttributes() { - for (var v : VALUES) { - MinecraftServer.getAttributeManager().register(v.attribute()); - } - } + Attribute ZOMBIE_SPAWN_REINFORCEMENTS = AttributeImpl.get("minecraft:zombie.spawn_reinforcements"); } From ed2211d64f34d54867a8933ba4ba070d4b1e2550 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Fri, 24 May 2024 23:19:14 +0200 Subject: [PATCH 67/93] [Chore] Replace static enum with generated villager types and professions (#26) --- .../entity/VillagerProfessionGenerator.java | 195 ------------------ .../codegen/entity/VillagerTypeGenerator.java | 152 -------------- .../entity/villager/VillagerProfessions.java | 37 ++++ .../server/entity/villager/VillagerTypes.java | 21 ++ .../monster/zombie/ZombieVillagerMeta.java | 10 +- .../entity/villager/VillagerProfession.java | 42 ++++ .../villager/VillagerProfessionImpl.java | 39 ++++ .../server/entity/villager/VillagerType.java | 43 ++++ .../entity/villager/VillagerTypeImpl.java | 39 ++++ 9 files changed, 227 insertions(+), 351 deletions(-) delete mode 100644 code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java delete mode 100644 code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java create mode 100644 src/autogenerated/java/net/minestom/server/entity/villager/VillagerProfessions.java create mode 100644 src/autogenerated/java/net/minestom/server/entity/villager/VillagerTypes.java create mode 100644 src/main/java/net/minestom/server/entity/villager/VillagerProfession.java create mode 100644 src/main/java/net/minestom/server/entity/villager/VillagerProfessionImpl.java create mode 100644 src/main/java/net/minestom/server/entity/villager/VillagerType.java create mode 100644 src/main/java/net/minestom/server/entity/villager/VillagerTypeImpl.java diff --git a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java deleted file mode 100644 index d25441a83db..00000000000 --- a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java +++ /dev/null @@ -1,195 +0,0 @@ -package net.minestom.codegen.entity; - -import com.google.gson.JsonArray; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.squareup.javapoet.*; -import net.minestom.codegen.MinestomCodeGenerator; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import net.minestom.codegen.util.GenerationHelper; - -import javax.lang.model.element.Modifier; -import java.io.File; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.List; - -import static net.minestom.codegen.util.GenerationHelper.*; - -@ApiStatus.NonExtendable -@ApiStatus.Internal -public final class VillagerProfessionGenerator extends MinestomCodeGenerator { - - private static final String VILLAGER_PROFESSION_DATE = "villagerProfessionData"; - private static final Logger LOGGER = LoggerFactory.getLogger(VillagerProfessionGenerator.class); - private final InputStream villagerProfessionsFile; - private final File outputFolder; - - - public VillagerProfessionGenerator(@Nullable InputStream villagerProfessionsFile, @NotNull File outputFolder) { - super(""); - this.villagerProfessionsFile = villagerProfessionsFile; - this.outputFolder = outputFolder; - } - - @Override - public void generate() { - if (villagerProfessionsFile == null) { - LOGGER.error("Failed to find villager_professions.json."); - LOGGER.error("Stopped code generation for villager professions."); - return; - } - if (!outputFolder.exists() && !outputFolder.mkdirs()) { - LOGGER.error("Output folder for code generation does not exist and could not be created."); - return; - } - // Important classes we use alot - ClassName rawVillagerProfessionDataClassName = ClassName.get("net.minestom.server.raw_data", "RawVillagerProfessionData"); - - JsonArray villagerProfessions = GSON.fromJson(new InputStreamReader(villagerProfessionsFile), JsonArray.class); - ClassName villagerProfessionClassName = ClassName.get("net.minestom.server.entity.metadata.villager", "VillagerProfession"); - - // Particle - TypeSpec.Builder villagerProfessionClass = TypeSpec.classBuilder(villagerProfessionClassName) - .addSuperinterface(KEYORI_ADVENTURE_KEY) - .addModifiers(Modifier.PUBLIC).addJavadoc("AUTOGENERATED by " + getClass().getSimpleName()); - villagerProfessionClass.addField( - FieldSpec.builder(NAMESPACE_ID_CLASS, "id") - .addModifiers(Modifier.PRIVATE, Modifier.FINAL).addAnnotation(NotNull.class).build() - ); - villagerProfessionClass.addField( - FieldSpec.builder(rawVillagerProfessionDataClassName, VILLAGER_PROFESSION_DATE) - .addModifiers(Modifier.PRIVATE, Modifier.VOLATILE) - .addAnnotation(NotNull.class) - .build() - ); - villagerProfessionClass.addMethod( - MethodSpec.constructorBuilder() - .addParameter(ParameterSpec.builder(NAMESPACE_ID_CLASS, "id").addAnnotation(NotNull.class).build()) - .addParameter(ParameterSpec.builder(rawVillagerProfessionDataClassName, VILLAGER_PROFESSION_DATE).addAnnotation(NotNull.class).build()) - .addStatement(VARIABLE_SETTER, "id") - .addStatement(VARIABLE_SETTER, VILLAGER_PROFESSION_DATE) - .addModifiers(Modifier.PROTECTED) - .build() - ); - // Override key method (adventure) - villagerProfessionClass.addMethod(GenerationHelper.ADVENTURE_KEY_METHOD); - // getId method - villagerProfessionClass.addMethod(GenerationHelper.ID_GETTER); - // getVillagerProfessionData method - villagerProfessionClass.addMethod( - MethodSpec.methodBuilder("getVillagerProfessionData") - .returns(rawVillagerProfessionDataClassName) - .addAnnotation(NotNull.class) - .addStatement("return this.villagerProfessionData") - .addModifiers(Modifier.PUBLIC, Modifier.FINAL) - .build() - ); - // setVillagerProfessionData method - villagerProfessionClass.addMethod( - MethodSpec.methodBuilder("setVillagerProfessionData") - .addParameter(ParameterSpec.builder(rawVillagerProfessionDataClassName, VILLAGER_PROFESSION_DATE).addAnnotation(NotNull.class).build()) - .addStatement("this.$L1 = $L1", VILLAGER_PROFESSION_DATE) - .addModifiers(Modifier.PUBLIC, Modifier.FINAL) - .build() - ); - // getNumericalId - villagerProfessionClass.addMethod( - MethodSpec.methodBuilder("getNumericalId") - .returns(TypeName.INT) - .addStatement("return $T.VILLAGER_PROFESSION_REGISTRY.getId(this)", REGISTRY_CLASS) - .addModifiers(Modifier.PUBLIC) - .build() - ); - // fromId Method - villagerProfessionClass.addMethod( - MethodSpec.methodBuilder("fromId") - .returns(villagerProfessionClassName) - .addAnnotation(Nullable.class) - .addParameter(TypeName.INT, "id") - .addStatement("return $T.VILLAGER_PROFESSION_REGISTRY.get((short) id)", REGISTRY_CLASS) - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .build() - ); - // fromId Method - villagerProfessionClass.addMethod( - MethodSpec.methodBuilder("fromId") - .returns(villagerProfessionClassName) - .addAnnotation(NotNull.class) - .addParameter(ADVENTURE_KEY, "id") - .addStatement("return $T.VILLAGER_PROFESSION_REGISTRY.get(id)", REGISTRY_CLASS) - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .build() - ); - // toString method - villagerProfessionClass.addMethod(GenerationHelper.TO_STRING); - // values method - villagerProfessionClass.addMethod( - MethodSpec.methodBuilder("values") - .addAnnotation(NotNull.class) - .returns(ParameterizedTypeName.get(ClassName.get(List.class), villagerProfessionClassName)) - .addStatement("return $T.VILLAGER_PROFESSION_REGISTRY.values()", REGISTRY_CLASS) - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .build() - ); - CodeBlock.Builder staticBlock = CodeBlock.builder(); - // Use data - for (JsonElement vp : villagerProfessions) { - JsonObject villagerProfession = vp.getAsJsonObject(); - - String villagerProfessionName = villagerProfession.get("name").getAsString(); - JsonElement workSound = villagerProfession.get("workSound"); - if (workSound == null) { - villagerProfessionClass.addField( - FieldSpec.builder( - villagerProfessionClassName, - villagerProfessionName - ).initializer( - "new $T($T.from($S), new $T(() -> null))", - villagerProfessionClassName, - NAMESPACE_ID_CLASS, - villagerProfession.get("id").getAsString(), - - rawVillagerProfessionDataClassName - ).addModifiers(Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).build() - ); - } else { - villagerProfessionClass.addField( - FieldSpec.builder( - villagerProfessionClassName, - villagerProfessionName - ).initializer( - "new $T($T.from($S), new $T(() -> $T.SOUND_EVENT_REGISTRY.get($S)))", - villagerProfessionClassName, - NAMESPACE_ID_CLASS, - villagerProfession.get("id").getAsString(), - - rawVillagerProfessionDataClassName, - REGISTRY_CLASS, - workSound.getAsString() - ).addModifiers(Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).build() - ); - } - - // Add to static init. - staticBlock.addStatement("$T.VILLAGER_PROFESSION_REGISTRY.register($N)", REGISTRY_CLASS, villagerProfessionName); - } - - villagerProfessionClass.addStaticBlock(staticBlock.build()); - - // Write files to outputFolder - writeFiles( - List.of( - JavaFile.builder("net.minestom.server.entity.metadata.villager", villagerProfessionClass.build()) - .indent(DEFAULT_INDENT) - .skipJavaLangImports(true) - .build() - ), - outputFolder - ); - } -} diff --git a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java deleted file mode 100644 index bc26041d017..00000000000 --- a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java +++ /dev/null @@ -1,152 +0,0 @@ -package net.minestom.codegen.entity; - -import com.google.gson.JsonArray; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.squareup.javapoet.*; -import net.minestom.codegen.MinestomCodeGenerator; -import net.minestom.codegen.util.GenerationHelper; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.lang.model.element.Modifier; -import java.io.File; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.List; - -import static net.minestom.codegen.util.GenerationHelper.ADVENTURE_KEY; -import static net.minestom.codegen.util.GenerationHelper.TO_STRING; - -@ApiStatus.NonExtendable -@ApiStatus.Internal -public final class VillagerTypeGenerator extends MinestomCodeGenerator { - private static final Logger LOGGER = LoggerFactory.getLogger(VillagerTypeGenerator.class); - private final InputStream villagerTypesFile; - private final File outputFolder; - - public VillagerTypeGenerator(@Nullable InputStream villagerTypesFile, @NotNull File outputFolder) { - super(""); - this.villagerTypesFile = villagerTypesFile; - this.outputFolder = outputFolder; - } - - @Override - public void generate() { - if (villagerTypesFile == null) { - LOGGER.error("Failed to find villager_types.json."); - LOGGER.error("Stopped code generation for villager types."); - return; - } - if (!outputFolder.exists() && !outputFolder.mkdirs()) { - LOGGER.error("Output folder for code generation does not exist and could not be created."); - return; - } - // Important classes we use alot - JsonArray villagerTypes = GSON.fromJson(new InputStreamReader(villagerTypesFile), JsonArray.class); - ClassName villagerTypeClassName = ClassName.get("net.minestom.server.entity.metadata.villager", "VillagerType"); - - // Particle - TypeSpec.Builder villagerTypeClass = TypeSpec.classBuilder(villagerTypeClassName) - .addSuperinterface(KEYORI_ADVENTURE_KEY) - .addModifiers(Modifier.PUBLIC).addJavadoc("AUTOGENERATED by " + getClass().getSimpleName()); - villagerTypeClass.addField( - FieldSpec.builder(NAMESPACE_ID_CLASS, "id") - .addModifiers(Modifier.PRIVATE, Modifier.FINAL).addAnnotation(NotNull.class).build() - ); - villagerTypeClass.addMethod( - MethodSpec.constructorBuilder() - .addParameter(ParameterSpec.builder(NAMESPACE_ID_CLASS, "id").addAnnotation(NotNull.class).build()) - .addStatement("this.id = id") - .addModifiers(Modifier.PROTECTED) - .build() - ); - // Override key method (adventure) - villagerTypeClass.addMethod(GenerationHelper.ID_GETTER); - // getId method - villagerTypeClass.addMethod( - MethodSpec.methodBuilder("getId") - .returns(NAMESPACE_ID_CLASS) - .addAnnotation(NotNull.class) - .addStatement("return this.id") - .addModifiers(Modifier.PUBLIC) - .build() - ); - // getNumericalId - villagerTypeClass.addMethod( - MethodSpec.methodBuilder("getNumericalId") - .returns(TypeName.INT) - .addStatement("return $T.VILLAGER_TYPE_REGISTRY.getId(this)", REGISTRY_CLASS) - .addModifiers(Modifier.PUBLIC) - .build() - ); - // fromId Method - villagerTypeClass.addMethod( - MethodSpec.methodBuilder("fromId") - .returns(villagerTypeClassName) - .addAnnotation(Nullable.class) - .addParameter(TypeName.INT, "id") - .addStatement("return $T.VILLAGER_TYPE_REGISTRY.get((short) id)", REGISTRY_CLASS) - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .build() - ); - // fromId Method - villagerTypeClass.addMethod( - MethodSpec.methodBuilder("fromId") - .returns(villagerTypeClassName) - .addAnnotation(NotNull.class) - .addParameter(ADVENTURE_KEY, "id") - .addStatement("return $T.VILLAGER_TYPE_REGISTRY.get(id)", REGISTRY_CLASS) - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .build() - ); - // toString method - villagerTypeClass.addMethod(TO_STRING); - // values method - villagerTypeClass.addMethod( - MethodSpec.methodBuilder("values") - .addAnnotation(NotNull.class) - .returns(ParameterizedTypeName.get(ClassName.get(List.class), villagerTypeClassName)) - .addStatement("return $T.VILLAGER_TYPE_REGISTRY.values()", REGISTRY_CLASS) - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .build() - ); - CodeBlock.Builder staticBlock = CodeBlock.builder(); - // Use data - for (JsonElement vp : villagerTypes) { - JsonObject villagerProfession = vp.getAsJsonObject(); - - String villagerProfessionName = villagerProfession.get("name").getAsString(); - - villagerTypeClass.addField( - FieldSpec.builder( - villagerTypeClassName, - villagerProfessionName - ).initializer( - "new $T($T.from($S))", - villagerTypeClassName, - NAMESPACE_ID_CLASS, - villagerProfession.get("id").getAsString() - ).addModifiers(Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).build() - ); - // Add to static init. - staticBlock.addStatement("$T.VILLAGER_TYPE_REGISTRY.register($N)", REGISTRY_CLASS, villagerProfessionName); - } - - villagerTypeClass.addStaticBlock(staticBlock.build()); - - // Write files to outputFolder - writeFiles( - List.of( - JavaFile.builder("net.minestom.server.entity.metadata.villager", villagerTypeClass.build()) - .indent(DEFAULT_INDENT) - .skipJavaLangImports(true) - .build() - ), - outputFolder - ); - } -} diff --git a/src/autogenerated/java/net/minestom/server/entity/villager/VillagerProfessions.java b/src/autogenerated/java/net/minestom/server/entity/villager/VillagerProfessions.java new file mode 100644 index 00000000000..0f47b8b5050 --- /dev/null +++ b/src/autogenerated/java/net/minestom/server/entity/villager/VillagerProfessions.java @@ -0,0 +1,37 @@ +package net.minestom.server.entity.villager; + +/** + * Code autogenerated, do not edit! + */ +@SuppressWarnings("unused") +interface VillagerProfessions { + VillagerProfession NONE = VillagerProfessionImpl.get("minecraft:none"); + + VillagerProfession ARMORER = VillagerProfessionImpl.get("minecraft:armorer"); + + VillagerProfession BUTCHER = VillagerProfessionImpl.get("minecraft:butcher"); + + VillagerProfession CARTOGRAPHER = VillagerProfessionImpl.get("minecraft:cartographer"); + + VillagerProfession CLERIC = VillagerProfessionImpl.get("minecraft:cleric"); + + VillagerProfession FARMER = VillagerProfessionImpl.get("minecraft:farmer"); + + VillagerProfession FISHERMAN = VillagerProfessionImpl.get("minecraft:fisherman"); + + VillagerProfession FLETCHER = VillagerProfessionImpl.get("minecraft:fletcher"); + + VillagerProfession LEATHERWORKER = VillagerProfessionImpl.get("minecraft:leatherworker"); + + VillagerProfession LIBRARIAN = VillagerProfessionImpl.get("minecraft:librarian"); + + VillagerProfession MASON = VillagerProfessionImpl.get("minecraft:mason"); + + VillagerProfession NITWIT = VillagerProfessionImpl.get("minecraft:nitwit"); + + VillagerProfession SHEPHERD = VillagerProfessionImpl.get("minecraft:shepherd"); + + VillagerProfession TOOLSMITH = VillagerProfessionImpl.get("minecraft:toolsmith"); + + VillagerProfession WEAPONSMITH = VillagerProfessionImpl.get("minecraft:weaponsmith"); +} diff --git a/src/autogenerated/java/net/minestom/server/entity/villager/VillagerTypes.java b/src/autogenerated/java/net/minestom/server/entity/villager/VillagerTypes.java new file mode 100644 index 00000000000..681ce44c1d3 --- /dev/null +++ b/src/autogenerated/java/net/minestom/server/entity/villager/VillagerTypes.java @@ -0,0 +1,21 @@ +package net.minestom.server.entity.villager; + +/** + * Code autogenerated, do not edit! + */ +@SuppressWarnings("unused") +interface VillagerTypes { + VillagerType DESERT = VillagerTypeImpl.get("minecraft:desert"); + + VillagerType JUNGLE = VillagerTypeImpl.get("minecraft:jungle"); + + VillagerType PLAINS = VillagerTypeImpl.get("minecraft:plains"); + + VillagerType SAVANNA = VillagerTypeImpl.get("minecraft:savanna"); + + VillagerType SNOW = VillagerTypeImpl.get("minecraft:snow"); + + VillagerType SWAMP = VillagerTypeImpl.get("minecraft:swamp"); + + VillagerType TAIGA = VillagerTypeImpl.get("minecraft:taiga"); +} diff --git a/src/main/java/net/minestom/server/entity/metadata/monster/zombie/ZombieVillagerMeta.java b/src/main/java/net/minestom/server/entity/metadata/monster/zombie/ZombieVillagerMeta.java index 66023cc1212..ea04af22fb9 100644 --- a/src/main/java/net/minestom/server/entity/metadata/monster/zombie/ZombieVillagerMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/monster/zombie/ZombieVillagerMeta.java @@ -4,6 +4,8 @@ import net.minestom.server.entity.Metadata; import net.minestom.server.entity.MetadataHolder; import net.minestom.server.entity.metadata.villager.VillagerMeta; +import net.minestom.server.entity.villager.VillagerProfession; +import net.minestom.server.entity.villager.VillagerType; import org.jetbrains.annotations.NotNull; public class ZombieVillagerMeta extends ZombieMeta { @@ -25,15 +27,15 @@ public void setConverting(boolean value) { public VillagerMeta.VillagerData getVillagerData() { int[] data = super.metadata.getIndex(OFFSET + 1, null); if (data == null) { - return new VillagerMeta.VillagerData(VillagerMeta.Type.PLAINS, VillagerMeta.Profession.NONE, VillagerMeta.Level.NOVICE); + return new VillagerMeta.VillagerData(VillagerType.PLAINS, VillagerProfession.NONE, VillagerMeta.Level.NOVICE); } - return new VillagerMeta.VillagerData(VillagerMeta.Type.VALUES[data[0]], VillagerMeta.Profession.VALUES[data[1]], VillagerMeta.Level.VALUES[data[2] - 1]); + return new VillagerMeta.VillagerData(VillagerType.fromId(data[0]), VillagerProfession.fromId(data[1]), VillagerMeta.Level.VALUES[data[2] - 1]); } public void setVillagerData(VillagerMeta.VillagerData data) { super.metadata.setIndex(OFFSET + 1, Metadata.VillagerData( - data.getType().ordinal(), - data.getProfession().ordinal(), + data.getType().id(), + data.getProfession().id(), data.getLevel().ordinal() + 1 )); } diff --git a/src/main/java/net/minestom/server/entity/villager/VillagerProfession.java b/src/main/java/net/minestom/server/entity/villager/VillagerProfession.java new file mode 100644 index 00000000000..faf65662f88 --- /dev/null +++ b/src/main/java/net/minestom/server/entity/villager/VillagerProfession.java @@ -0,0 +1,42 @@ +package net.minestom.server.entity.villager; + +import net.kyori.adventure.key.Key; +import net.minestom.server.registry.Registry; +import net.minestom.server.registry.StaticProtocolObject; +import net.minestom.server.utils.NamespaceID; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Collection; + +public interface VillagerProfession extends StaticProtocolObject, VillagerProfessions { + static @NotNull Collection<@NotNull VillagerProfession> values() { + return VillagerProfessionImpl.values(); + } + + static @Nullable VillagerProfession fromNamespaceId(@NotNull String namespaceID) { + return VillagerProfessionImpl.getSafe(namespaceID); + } + + static @Nullable VillagerProfession fromNamespaceId(@NotNull NamespaceID namespaceID) { + return fromNamespaceId(namespaceID.asString()); + } + + static @Nullable VillagerProfession fromId(int id) { + return VillagerProfessionImpl.getId(id); + } + + @Override + default @NotNull Key key() { + return StaticProtocolObject.super.key(); + } + + @Contract(pure = true) + Registry.VillagerProfession registry(); + + @Override + default @NotNull NamespaceID namespace() { + return registry().namespace(); + } +} diff --git a/src/main/java/net/minestom/server/entity/villager/VillagerProfessionImpl.java b/src/main/java/net/minestom/server/entity/villager/VillagerProfessionImpl.java new file mode 100644 index 00000000000..338cbb39e3f --- /dev/null +++ b/src/main/java/net/minestom/server/entity/villager/VillagerProfessionImpl.java @@ -0,0 +1,39 @@ +package net.minestom.server.entity.villager; + +import net.minestom.server.registry.Registry; +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; + +public record VillagerProfessionImpl(Registry.VillagerProfession registry, int id) implements VillagerProfession { + private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.VILLAGER_PROFESSION, VillagerProfessionImpl::createImpl); + + public VillagerProfessionImpl(Registry.VillagerProfession registry) { + this(registry, registry.id()); + } + + private static VillagerProfession createImpl(String namespace, Registry.Properties properties) { + return new VillagerProfessionImpl(Registry.villagerProfession(namespace, properties)); + } + + static VillagerProfession get(@NotNull String namespace) { + return CONTAINER.get(namespace); + } + + static VillagerProfession getSafe(@NotNull String namespace) { + return CONTAINER.getSafe(namespace); + } + + static VillagerProfession getId(int id) { + return CONTAINER.getId(id); + } + + static Collection values() { + return CONTAINER.values(); + } + + @Override + public String toString() { + return name(); + } +} diff --git a/src/main/java/net/minestom/server/entity/villager/VillagerType.java b/src/main/java/net/minestom/server/entity/villager/VillagerType.java new file mode 100644 index 00000000000..ac8fcfd4f21 --- /dev/null +++ b/src/main/java/net/minestom/server/entity/villager/VillagerType.java @@ -0,0 +1,43 @@ +package net.minestom.server.entity.villager; + +import net.kyori.adventure.key.Key; +import net.minestom.server.registry.Registry; +import net.minestom.server.registry.StaticProtocolObject; +import net.minestom.server.utils.NamespaceID; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Collection; + +public sealed interface VillagerType extends StaticProtocolObject, VillagerTypes permits VillagerTypeImpl { + + static @NotNull Collection<@NotNull VillagerType> values() { + return VillagerTypeImpl.values(); + } + + static @Nullable VillagerType fromNamespaceId(@NotNull String namespaceID) { + return VillagerTypeImpl.getSafe(namespaceID); + } + + static @Nullable VillagerType fromNamespaceId(@NotNull NamespaceID namespaceID) { + return fromNamespaceId(namespaceID.asString()); + } + + static @Nullable VillagerType fromId(int id) { + return VillagerTypeImpl.getId(id); + } + + @Override + default @NotNull Key key() { + return StaticProtocolObject.super.key(); + } + + @Contract(pure = true) + Registry.VillagerType registry(); + + @Override + default @NotNull NamespaceID namespace() { + return registry().namespace(); + } +} diff --git a/src/main/java/net/minestom/server/entity/villager/VillagerTypeImpl.java b/src/main/java/net/minestom/server/entity/villager/VillagerTypeImpl.java new file mode 100644 index 00000000000..ec8af984f09 --- /dev/null +++ b/src/main/java/net/minestom/server/entity/villager/VillagerTypeImpl.java @@ -0,0 +1,39 @@ +package net.minestom.server.entity.villager; + +import net.minestom.server.registry.Registry; +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; + +public record VillagerTypeImpl(Registry.VillagerType registry, int id) implements VillagerType { + private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.VILLAGER_TYPES, VillagerTypeImpl::createImpl); + + public VillagerTypeImpl(Registry.VillagerType registry) { + this(registry, registry.id()); + } + + private static VillagerType createImpl(String namespace, Registry.Properties properties) { + return new VillagerTypeImpl(Registry.villagerType(namespace, properties)); + } + + static VillagerType get(@NotNull String namespace) { + return CONTAINER.get(namespace); + } + + static VillagerType getSafe(@NotNull String namespace) { + return CONTAINER.getSafe(namespace); + } + + static VillagerType getId(int id) { + return CONTAINER.getId(id); + } + + static Collection values() { + return CONTAINER.values(); + } + + @Override + public String toString() { + return name(); + } +} From b4362b8e526d45750d7565ffd27df70f78707c3d Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Sun, 26 May 2024 15:32:17 +0200 Subject: [PATCH 68/93] [Chore] Replace enum with code generator for fluids (#27) * Move Fluids to CodeGenerator * [Chore] Replace enum with registry * Refactor: Move 'Fluids' interface from FluidImpl implements to Fluid extends --------- Co-authored-by: OneLiteFeather --- .../net/minestom/server/fluid/Fluids.java | 17 +++++++++ .../java/net/minestom/server/fluid/Fluid.java | 37 +++++++++++++++++++ .../net/minestom/server/fluid/FluidImpl.java | 34 +++++++++++++++++ 3 files changed, 88 insertions(+) create mode 100644 src/autogenerated/java/net/minestom/server/fluid/Fluids.java create mode 100644 src/main/java/net/minestom/server/fluid/Fluid.java create mode 100644 src/main/java/net/minestom/server/fluid/FluidImpl.java diff --git a/src/autogenerated/java/net/minestom/server/fluid/Fluids.java b/src/autogenerated/java/net/minestom/server/fluid/Fluids.java new file mode 100644 index 00000000000..27157009e9e --- /dev/null +++ b/src/autogenerated/java/net/minestom/server/fluid/Fluids.java @@ -0,0 +1,17 @@ +package net.minestom.server.fluid; + +/** + * Code autogenerated, do not edit! + */ +@SuppressWarnings("unused") +interface Fluids { + Fluid EMPTY = FluidImpl.get("minecraft:empty"); + + Fluid FLOWING_WATER = FluidImpl.get("minecraft:flowing_water"); + + Fluid WATER = FluidImpl.get("minecraft:water"); + + Fluid FLOWING_LAVA = FluidImpl.get("minecraft:flowing_lava"); + + Fluid LAVA = FluidImpl.get("minecraft:lava"); +} diff --git a/src/main/java/net/minestom/server/fluid/Fluid.java b/src/main/java/net/minestom/server/fluid/Fluid.java new file mode 100644 index 00000000000..c9e6bedf370 --- /dev/null +++ b/src/main/java/net/minestom/server/fluid/Fluid.java @@ -0,0 +1,37 @@ +package net.minestom.server.fluid; + +import net.minestom.server.registry.Registry; +import net.minestom.server.registry.StaticProtocolObject; +import net.minestom.server.utils.NamespaceID; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Collection; + +public sealed interface Fluid extends StaticProtocolObject, Fluids permits FluidImpl { + /** + * Returns the entity registry. + * + * @return the entity registry or null if it was created with a builder + */ + @Contract(pure = true) + @Nullable + Registry.FluidEntry registry(); + + @Override + @NotNull + NamespaceID namespace(); + + static @NotNull Collection<@NotNull Fluid> values() { + return FluidImpl.values(); + } + + static @Nullable Fluid fromNamespaceId(@NotNull String namespaceID) { + return FluidImpl.getSafe(namespaceID); + } + + static @Nullable Fluid fromNamespaceId(@NotNull NamespaceID namespaceID) { + return fromNamespaceId(namespaceID.asString()); + } +} diff --git a/src/main/java/net/minestom/server/fluid/FluidImpl.java b/src/main/java/net/minestom/server/fluid/FluidImpl.java new file mode 100644 index 00000000000..d5c0cc3b741 --- /dev/null +++ b/src/main/java/net/minestom/server/fluid/FluidImpl.java @@ -0,0 +1,34 @@ +package net.minestom.server.fluid; + +import net.minestom.server.registry.Registry; +import net.minestom.server.utils.NamespaceID; +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; +import java.util.concurrent.atomic.AtomicInteger; + +public record FluidImpl(Registry.FluidEntry registry, NamespaceID namespace, int id) implements Fluid { + + private static final Registry.DynamicContainer CONTAINER = Registry.createDynamicContainer(Registry.Resource.FLUIDS, FluidImpl::createImpl); + private static final AtomicInteger INDEX = new AtomicInteger(); + + private static FluidImpl createImpl(String namespace, Registry.Properties properties) { + return new FluidImpl(Registry.fluidEntry(namespace, properties)); + } + + private FluidImpl(Registry.FluidEntry registry) { + this(registry, registry.namespace(), INDEX.getAndIncrement()); + } + + static Collection values() { + return CONTAINER.values(); + } + + public static Fluid get(@NotNull String namespace) { + return CONTAINER.get(namespace); + } + + static Fluid getSafe(@NotNull String namespace) { + return CONTAINER.getSafe(namespace); + } +} From 8c3e7517d137e8e6acf51109ac2f945c743b103c Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Sun, 26 May 2024 17:03:26 +0200 Subject: [PATCH 69/93] [Chore] Replace enum with registry system for feature flags (#28) * [Chore] Replace enum with registry system for feature flags * Remove wildcard import * Create CNAME * Bump snapshot version (#31) * [Bugfix] Fix failing tests * Update build.gradle.kts * [Chore] Replace enum with code generator for fluids (#27) * Move Fluids to CodeGenerator * [Chore] Replace enum with registry * Refactor: Move 'Fluids' interface from FluidImpl implements to Fluid extends --------- Co-authored-by: OneLiteFeather * [Chore] Replace enum with registry system for feature flags * Remove wildcard import --------- Co-authored-by: theEvilReaper Co-authored-by: OneLiteFeather --- .../codegen/feature/FeatureFlagGenerator.java | 106 ------------------ .../minestom/server/feature/FeatureFlags.java | 35 ------ .../server/featureflag/FeatureFlags.java | 15 +++ .../server/featureflag/FeatureFlag.java | 39 +++++++ .../server/featureflag/FeatureFlagImpl.java | 33 ++++++ .../UpdateEnabledFeaturesPacket.java | 10 +- 6 files changed, 92 insertions(+), 146 deletions(-) delete mode 100644 code-generators/src/main/java/net/minestom/codegen/feature/FeatureFlagGenerator.java delete mode 100644 src/autogenerated/java/net/minestom/server/feature/FeatureFlags.java create mode 100644 src/autogenerated/java/net/minestom/server/featureflag/FeatureFlags.java create mode 100644 src/main/java/net/minestom/server/featureflag/FeatureFlag.java create mode 100644 src/main/java/net/minestom/server/featureflag/FeatureFlagImpl.java diff --git a/code-generators/src/main/java/net/minestom/codegen/feature/FeatureFlagGenerator.java b/code-generators/src/main/java/net/minestom/codegen/feature/FeatureFlagGenerator.java deleted file mode 100644 index 8545161b910..00000000000 --- a/code-generators/src/main/java/net/minestom/codegen/feature/FeatureFlagGenerator.java +++ /dev/null @@ -1,106 +0,0 @@ -package net.minestom.codegen.feature; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.squareup.javapoet.*; -import net.minestom.codegen.MinestomCodeGenerator; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.lang.model.element.Modifier; -import java.io.File; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.List; - -public class FeatureFlagGenerator extends MinestomCodeGenerator { - - private static final String FEATURE_FLAG_FILE_PACKAGE = "net.minestom.server.feature"; // Microtus - Feature flag - private static final String CLASS_NAME = "FeatureFlags"; - private static final String FEATURE_KEY = "feature"; - private static final Logger LOGGER = LoggerFactory.getLogger(FeatureFlagGenerator.class); - - private final InputStream featureFlagFile; - private final File outputFolder; - - /** - * Creates a new code generator. - */ - public FeatureFlagGenerator(InputStream featureFlagFile, File outputFolder) { - super(FEATURE_FLAG_FILE_PACKAGE); - this.featureFlagFile = featureFlagFile; - this.outputFolder = outputFolder; - } - - @Override - public void generate() { - if (featureFlagFile == null) { - LOGGER.error("Failed to find feature_flag.json."); - LOGGER.error("Stopped code generation for feature_flag.json."); - return; - } - if (!outputFolder.exists() && !outputFolder.mkdirs()) { - LOGGER.error("Output folder for code generation does not exist and could not be created."); - return; - } - JsonElement featureFlags = GSON.fromJson(new InputStreamReader(featureFlagFile), JsonElement.class); - - ClassName featureFlag = ClassName.get(FEATURE_FLAG_FILE_PACKAGE, CLASS_NAME); - ClassName namespacedId = ClassName.get("net.minestom.server.utils", "NamespaceID"); - - TypeSpec.Builder featureFlagEnum = TypeSpec.enumBuilder(featureFlag) - .addModifiers(Modifier.PUBLIC).addJavadoc("AUTOGENERATED by " + getClass().getSimpleName()); - - // Fields - featureFlagEnum.addFields( - List.of( - FieldSpec.builder(namespacedId, FEATURE_KEY, Modifier.PRIVATE, Modifier.FINAL).build(), - FieldSpec.builder(ArrayTypeName.of(featureFlag), "VALUES", Modifier.PRIVATE, Modifier.STATIC, Modifier.FINAL).initializer(CLASS_NAME + ".values()").build() - ) - ); - - // Methods - featureFlagEnum.addMethods( - List.of( - // Constructor - MethodSpec.constructorBuilder() - .addParameter( - ParameterSpec.builder(namespacedId, FEATURE_KEY).addAnnotation(NotNull.class).build() - ) - .addStatement("this.$1L = $1L", FEATURE_KEY) - .build(), - MethodSpec.methodBuilder(FEATURE_KEY) - .addModifiers(Modifier.PUBLIC) - .returns(namespacedId.annotated(AnnotationSpec.builder(NotNull.class).build())) - .addStatement("return this.$L", FEATURE_KEY) - .build(), - MethodSpec.methodBuilder("getValue") - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .addParameter(ParameterSpec.builder(TypeName.INT, "id").build()) - .addAnnotation(Nullable.class) - .returns(ClassName.get(FEATURE_FLAG_FILE_PACKAGE, CLASS_NAME)) - .addCode("return VALUES[$L];", "id") - .build() - ) - ); - featureFlags.getAsJsonArray().forEach(featureFlagElement -> { - String object = featureFlagElement.getAsString(); - featureFlagEnum.addEnumConstant(extractNamespace(object), TypeSpec.anonymousClassBuilder( - "$T.from($S)", - namespacedId, object - ).build() - ); - }); - writeFiles( - List.of( - JavaFile.builder(FEATURE_FLAG_FILE_PACKAGE, featureFlagEnum.build()) - .indent(DEFAULT_INDENT) - .skipJavaLangImports(true) - .build() - ), - outputFolder - ); - } -} diff --git a/src/autogenerated/java/net/minestom/server/feature/FeatureFlags.java b/src/autogenerated/java/net/minestom/server/feature/FeatureFlags.java deleted file mode 100644 index 983bd307419..00000000000 --- a/src/autogenerated/java/net/minestom/server/feature/FeatureFlags.java +++ /dev/null @@ -1,35 +0,0 @@ -package net.minestom.server.feature; - -import net.minestom.server.utils.NamespaceID; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * AUTOGENERATED by FeatureFlagGenerator - */ -public enum FeatureFlags { - UPDATE_1_21(NamespaceID.from("minecraft:update_1_21")), - - BUNDLE(NamespaceID.from("minecraft:bundle")), - - VANILLA(NamespaceID.from("minecraft:vanilla")), - - TRADE_REBALANCE(NamespaceID.from("minecraft:trade_rebalance")); - - private static final FeatureFlags[] VALUES = FeatureFlags.values(); - - private final NamespaceID feature; - - FeatureFlags(@NotNull NamespaceID feature) { - this.feature = feature; - } - - public @NotNull NamespaceID feature() { - return this.feature; - } - - @Nullable - public static FeatureFlags getValue(int id) { - return VALUES[id]; - } -} diff --git a/src/autogenerated/java/net/minestom/server/featureflag/FeatureFlags.java b/src/autogenerated/java/net/minestom/server/featureflag/FeatureFlags.java new file mode 100644 index 00000000000..1f92c8da724 --- /dev/null +++ b/src/autogenerated/java/net/minestom/server/featureflag/FeatureFlags.java @@ -0,0 +1,15 @@ +package net.minestom.server.featureflag; + +/** + * Code autogenerated, do not edit! + */ +@SuppressWarnings("unused") +interface FeatureFlags { + FeatureFlag UPDATE_1_21 = FeatureFlagImpl.get("minecraft:update_1_21"); + + FeatureFlag BUNDLE = FeatureFlagImpl.get("minecraft:bundle"); + + FeatureFlag VANILLA = FeatureFlagImpl.get("minecraft:vanilla"); + + FeatureFlag TRADE_REBALANCE = FeatureFlagImpl.get("minecraft:trade_rebalance"); +} diff --git a/src/main/java/net/minestom/server/featureflag/FeatureFlag.java b/src/main/java/net/minestom/server/featureflag/FeatureFlag.java new file mode 100644 index 00000000000..a19dc438601 --- /dev/null +++ b/src/main/java/net/minestom/server/featureflag/FeatureFlag.java @@ -0,0 +1,39 @@ +package net.minestom.server.featureflag; + +import net.minestom.server.registry.Registry; +import net.minestom.server.registry.StaticProtocolObject; +import net.minestom.server.utils.NamespaceID; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Collection; + +public sealed interface FeatureFlag extends StaticProtocolObject permits FeatureFlagImpl { + + /** + * Returns the entity registry. + * + * @return the entity registry or null if it was created with a builder + */ + @Contract(pure = true) + @Nullable + Registry.FeatureFlagEntry registry(); + + @Override + @NotNull + NamespaceID namespace(); + + static @NotNull Collection<@NotNull FeatureFlag> values() { + return FeatureFlagImpl.values(); + } + + static @Nullable FeatureFlag fromNamespaceId(@NotNull String namespaceID) { + return FeatureFlagImpl.getSafe(namespaceID); + } + + static @Nullable FeatureFlag fromNamespaceId(@NotNull NamespaceID namespaceID) { + return fromNamespaceId(namespaceID.asString()); + } + +} diff --git a/src/main/java/net/minestom/server/featureflag/FeatureFlagImpl.java b/src/main/java/net/minestom/server/featureflag/FeatureFlagImpl.java new file mode 100644 index 00000000000..a0333d5085f --- /dev/null +++ b/src/main/java/net/minestom/server/featureflag/FeatureFlagImpl.java @@ -0,0 +1,33 @@ +package net.minestom.server.featureflag; + +import net.minestom.server.registry.Registry; +import net.minestom.server.utils.NamespaceID; +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; +import java.util.concurrent.atomic.AtomicInteger; + +public record FeatureFlagImpl(Registry.FeatureFlagEntry registry, NamespaceID namespace, int id) implements FeatureFlag { + private static final Registry.DynamicContainer CONTAINER = Registry.createDynamicContainer(Registry.Resource.FEATURE_FLAGS, FeatureFlagImpl::createImpl); + private static final AtomicInteger INDEX = new AtomicInteger(); + + private static FeatureFlagImpl createImpl(String namespace, Registry.Properties properties) { + return new FeatureFlagImpl(Registry.featureFlag(namespace, properties)); + } + + private FeatureFlagImpl(Registry.FeatureFlagEntry registry) { + this(registry, registry.namespace(), INDEX.getAndIncrement()); + } + + static Collection values() { + return CONTAINER.values(); + } + + public static FeatureFlag get(@NotNull String namespace) { + return CONTAINER.get(namespace); + } + + static FeatureFlag getSafe(@NotNull String namespace) { + return CONTAINER.getSafe(namespace); + } +} diff --git a/src/main/java/net/minestom/server/network/packet/server/configuration/UpdateEnabledFeaturesPacket.java b/src/main/java/net/minestom/server/network/packet/server/configuration/UpdateEnabledFeaturesPacket.java index 7bba65a9b18..226b347525f 100644 --- a/src/main/java/net/minestom/server/network/packet/server/configuration/UpdateEnabledFeaturesPacket.java +++ b/src/main/java/net/minestom/server/network/packet/server/configuration/UpdateEnabledFeaturesPacket.java @@ -1,25 +1,25 @@ package net.minestom.server.network.packet.server.configuration; +import net.minestom.server.featureflag.FeatureFlag; import net.minestom.server.network.NetworkBuffer; import net.minestom.server.network.packet.server.ServerPacket; import net.minestom.server.network.packet.server.ServerPacketIdentifier; -import net.minestom.server.utils.NamespaceID; import org.jetbrains.annotations.NotNull; import java.util.Set; import static net.minestom.server.network.NetworkBuffer.STRING; -public record UpdateEnabledFeaturesPacket(@NotNull Set features) implements ServerPacket.Configuration { - public static final int MAX_FEATURES = 1024; +public record UpdateEnabledFeaturesPacket(@NotNull Set features) implements ServerPacket.Configuration { + public static final int MAX_FEATURES = 64; public UpdateEnabledFeaturesPacket(@NotNull NetworkBuffer buffer) { - this(Set.copyOf(buffer.readCollection((b) -> NamespaceID.from(b.read(STRING)), MAX_FEATURES))); + this(Set.copyOf(buffer.readCollection((b) -> FeatureFlag.fromNamespaceId(b.read(STRING)), MAX_FEATURES))); } @Override public void write(@NotNull NetworkBuffer writer) { - writer.writeCollection(features, (b, feature) -> b.write(STRING, feature.asString())); + writer.writeCollection(features, (b, feature) -> b.write(STRING, feature.namespace().toString())); } @Override From 9f6db5d25a65ea2b6d802d01dc8a576b4e592df8 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Sun, 26 May 2024 19:24:25 +0200 Subject: [PATCH 70/93] Comment out gameevent tags and fix order of AtomicInteger for fluid registry --- src/main/java/net/minestom/server/fluid/FluidImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/minestom/server/fluid/FluidImpl.java b/src/main/java/net/minestom/server/fluid/FluidImpl.java index d5c0cc3b741..8066c423375 100644 --- a/src/main/java/net/minestom/server/fluid/FluidImpl.java +++ b/src/main/java/net/minestom/server/fluid/FluidImpl.java @@ -9,8 +9,8 @@ public record FluidImpl(Registry.FluidEntry registry, NamespaceID namespace, int id) implements Fluid { - private static final Registry.DynamicContainer CONTAINER = Registry.createDynamicContainer(Registry.Resource.FLUIDS, FluidImpl::createImpl); private static final AtomicInteger INDEX = new AtomicInteger(); + private static final Registry.DynamicContainer CONTAINER = Registry.createDynamicContainer(Registry.Resource.FLUIDS, FluidImpl::createImpl); private static FluidImpl createImpl(String namespace, Registry.Properties properties) { return new FluidImpl(Registry.fluidEntry(namespace, properties)); From 66faf2ef74337dd764561ae79d9f828dd2ce51df Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Tue, 28 May 2024 21:13:40 +0200 Subject: [PATCH 71/93] Fix featureflag interface and extends FeatureFlags --- src/main/java/net/minestom/server/featureflag/FeatureFlag.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/minestom/server/featureflag/FeatureFlag.java b/src/main/java/net/minestom/server/featureflag/FeatureFlag.java index a19dc438601..485d9a873bd 100644 --- a/src/main/java/net/minestom/server/featureflag/FeatureFlag.java +++ b/src/main/java/net/minestom/server/featureflag/FeatureFlag.java @@ -9,7 +9,7 @@ import java.util.Collection; -public sealed interface FeatureFlag extends StaticProtocolObject permits FeatureFlagImpl { +public sealed interface FeatureFlag extends StaticProtocolObject, FeatureFlags permits FeatureFlagImpl { /** * Returns the entity registry. From 1af8c47e2bf90c5cd515af511f7a3c5ed6c81bc4 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Tue, 28 May 2024 21:23:46 +0200 Subject: [PATCH 72/93] Fix init order of atomic int --- .../java/net/minestom/server/featureflag/FeatureFlagImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/minestom/server/featureflag/FeatureFlagImpl.java b/src/main/java/net/minestom/server/featureflag/FeatureFlagImpl.java index a0333d5085f..e5aab62cbe6 100644 --- a/src/main/java/net/minestom/server/featureflag/FeatureFlagImpl.java +++ b/src/main/java/net/minestom/server/featureflag/FeatureFlagImpl.java @@ -8,8 +8,8 @@ import java.util.concurrent.atomic.AtomicInteger; public record FeatureFlagImpl(Registry.FeatureFlagEntry registry, NamespaceID namespace, int id) implements FeatureFlag { - private static final Registry.DynamicContainer CONTAINER = Registry.createDynamicContainer(Registry.Resource.FEATURE_FLAGS, FeatureFlagImpl::createImpl); private static final AtomicInteger INDEX = new AtomicInteger(); + private static final Registry.DynamicContainer CONTAINER = Registry.createDynamicContainer(Registry.Resource.FEATURE_FLAGS, FeatureFlagImpl::createImpl); private static FeatureFlagImpl createImpl(String namespace, Registry.Properties properties) { return new FeatureFlagImpl(Registry.featureFlag(namespace, properties)); From 0203a46645befcec965d318f1b7fac1aa857ef9f Mon Sep 17 00:00:00 2001 From: Steffen Wonning Date: Sat, 1 Jun 2024 16:19:57 +0200 Subject: [PATCH 73/93] [Chore] Update gradle to version 8.8 (#58) --- gradlew.bat | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/gradlew.bat b/gradlew.bat index 93e3f59f135..25da30dbdee 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -43,11 +43,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -57,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail From 998cfdba6ba0a735af6115213452492dcfc1bcc5 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Mon, 5 Aug 2024 17:02:27 +0200 Subject: [PATCH 74/93] Remove no longer needed classes --- .../minestom/server/attribute/Attributes.java | 35 ---- .../entity/villager/VillagerProfessions.java | 37 ---- .../server/entity/villager/VillagerTypes.java | 21 --- .../server/featureflag/FeatureFlags.java | 15 -- .../net/minestom/server/fluid/Fluids.java | 17 -- .../monster/zombie/ZombieVillagerMeta.java | 10 +- .../entity/villager/VillagerProfession.java | 42 ----- .../villager/VillagerProfessionImpl.java | 39 ----- .../server/entity/villager/VillagerType.java | 43 ----- .../entity/villager/VillagerTypeImpl.java | 39 ----- .../server/featureflag/FeatureFlag.java | 39 ----- .../server/featureflag/FeatureFlagImpl.java | 33 ---- .../java/net/minestom/server/fluid/Fluid.java | 37 ---- .../net/minestom/server/fluid/FluidImpl.java | 34 ---- .../server/item/metadata/BannerMeta.java | 165 ------------------ .../server/item/metadata/ShieldMeta.java | 131 -------------- .../UpdateEnabledFeaturesPacket.java | 6 +- .../world/biomes/particle/BiomeOption.java | 16 -- .../world/biomes/particle/BlockOption.java | 32 ---- .../world/biomes/particle/DefaultOption.java | 20 --- .../world/biomes/particle/DustOption.java | 34 ---- .../world/biomes/particle/ItemOption.java | 27 --- 22 files changed, 7 insertions(+), 865 deletions(-) delete mode 100644 src/autogenerated/java/net/minestom/server/attribute/Attributes.java delete mode 100644 src/autogenerated/java/net/minestom/server/entity/villager/VillagerProfessions.java delete mode 100644 src/autogenerated/java/net/minestom/server/entity/villager/VillagerTypes.java delete mode 100644 src/autogenerated/java/net/minestom/server/featureflag/FeatureFlags.java delete mode 100644 src/autogenerated/java/net/minestom/server/fluid/Fluids.java delete mode 100644 src/main/java/net/minestom/server/entity/villager/VillagerProfession.java delete mode 100644 src/main/java/net/minestom/server/entity/villager/VillagerProfessionImpl.java delete mode 100644 src/main/java/net/minestom/server/entity/villager/VillagerType.java delete mode 100644 src/main/java/net/minestom/server/entity/villager/VillagerTypeImpl.java delete mode 100644 src/main/java/net/minestom/server/featureflag/FeatureFlag.java delete mode 100644 src/main/java/net/minestom/server/featureflag/FeatureFlagImpl.java delete mode 100644 src/main/java/net/minestom/server/fluid/Fluid.java delete mode 100644 src/main/java/net/minestom/server/fluid/FluidImpl.java delete mode 100644 src/main/java/net/minestom/server/item/metadata/BannerMeta.java delete mode 100644 src/main/java/net/minestom/server/item/metadata/ShieldMeta.java delete mode 100644 src/main/java/net/minestom/server/world/biomes/particle/BiomeOption.java delete mode 100644 src/main/java/net/minestom/server/world/biomes/particle/BlockOption.java delete mode 100644 src/main/java/net/minestom/server/world/biomes/particle/DefaultOption.java delete mode 100644 src/main/java/net/minestom/server/world/biomes/particle/DustOption.java delete mode 100644 src/main/java/net/minestom/server/world/biomes/particle/ItemOption.java diff --git a/src/autogenerated/java/net/minestom/server/attribute/Attributes.java b/src/autogenerated/java/net/minestom/server/attribute/Attributes.java deleted file mode 100644 index b0e0b870ac7..00000000000 --- a/src/autogenerated/java/net/minestom/server/attribute/Attributes.java +++ /dev/null @@ -1,35 +0,0 @@ -package net.minestom.server.attribute; - -/** - * Code autogenerated, do not edit! - */ -@SuppressWarnings("unused") -interface Attributes { - Attribute GENERIC_ARMOR = AttributeImpl.get("minecraft:generic.armor"); - - Attribute GENERIC_ARMOR_TOUGHNESS = AttributeImpl.get("minecraft:generic.armor_toughness"); - - Attribute GENERIC_ATTACK_DAMAGE = AttributeImpl.get("minecraft:generic.attack_damage"); - - Attribute GENERIC_ATTACK_KNOCKBACK = AttributeImpl.get("minecraft:generic.attack_knockback"); - - Attribute GENERIC_ATTACK_SPEED = AttributeImpl.get("minecraft:generic.attack_speed"); - - Attribute GENERIC_FLYING_SPEED = AttributeImpl.get("minecraft:generic.flying_speed"); - - Attribute GENERIC_FOLLOW_RANGE = AttributeImpl.get("minecraft:generic.follow_range"); - - Attribute HORSE_JUMP_STRENGTH = AttributeImpl.get("minecraft:horse.jump_strength"); - - Attribute GENERIC_KNOCKBACK_RESISTANCE = AttributeImpl.get("minecraft:generic.knockback_resistance"); - - Attribute GENERIC_LUCK = AttributeImpl.get("minecraft:generic.luck"); - - Attribute GENERIC_MAX_ABSORPTION = AttributeImpl.get("minecraft:generic.max_absorption"); - - Attribute GENERIC_MAX_HEALTH = AttributeImpl.get("minecraft:generic.max_health"); - - Attribute GENERIC_MOVEMENT_SPEED = AttributeImpl.get("minecraft:generic.movement_speed"); - - Attribute ZOMBIE_SPAWN_REINFORCEMENTS = AttributeImpl.get("minecraft:zombie.spawn_reinforcements"); -} diff --git a/src/autogenerated/java/net/minestom/server/entity/villager/VillagerProfessions.java b/src/autogenerated/java/net/minestom/server/entity/villager/VillagerProfessions.java deleted file mode 100644 index 0f47b8b5050..00000000000 --- a/src/autogenerated/java/net/minestom/server/entity/villager/VillagerProfessions.java +++ /dev/null @@ -1,37 +0,0 @@ -package net.minestom.server.entity.villager; - -/** - * Code autogenerated, do not edit! - */ -@SuppressWarnings("unused") -interface VillagerProfessions { - VillagerProfession NONE = VillagerProfessionImpl.get("minecraft:none"); - - VillagerProfession ARMORER = VillagerProfessionImpl.get("minecraft:armorer"); - - VillagerProfession BUTCHER = VillagerProfessionImpl.get("minecraft:butcher"); - - VillagerProfession CARTOGRAPHER = VillagerProfessionImpl.get("minecraft:cartographer"); - - VillagerProfession CLERIC = VillagerProfessionImpl.get("minecraft:cleric"); - - VillagerProfession FARMER = VillagerProfessionImpl.get("minecraft:farmer"); - - VillagerProfession FISHERMAN = VillagerProfessionImpl.get("minecraft:fisherman"); - - VillagerProfession FLETCHER = VillagerProfessionImpl.get("minecraft:fletcher"); - - VillagerProfession LEATHERWORKER = VillagerProfessionImpl.get("minecraft:leatherworker"); - - VillagerProfession LIBRARIAN = VillagerProfessionImpl.get("minecraft:librarian"); - - VillagerProfession MASON = VillagerProfessionImpl.get("minecraft:mason"); - - VillagerProfession NITWIT = VillagerProfessionImpl.get("minecraft:nitwit"); - - VillagerProfession SHEPHERD = VillagerProfessionImpl.get("minecraft:shepherd"); - - VillagerProfession TOOLSMITH = VillagerProfessionImpl.get("minecraft:toolsmith"); - - VillagerProfession WEAPONSMITH = VillagerProfessionImpl.get("minecraft:weaponsmith"); -} diff --git a/src/autogenerated/java/net/minestom/server/entity/villager/VillagerTypes.java b/src/autogenerated/java/net/minestom/server/entity/villager/VillagerTypes.java deleted file mode 100644 index 681ce44c1d3..00000000000 --- a/src/autogenerated/java/net/minestom/server/entity/villager/VillagerTypes.java +++ /dev/null @@ -1,21 +0,0 @@ -package net.minestom.server.entity.villager; - -/** - * Code autogenerated, do not edit! - */ -@SuppressWarnings("unused") -interface VillagerTypes { - VillagerType DESERT = VillagerTypeImpl.get("minecraft:desert"); - - VillagerType JUNGLE = VillagerTypeImpl.get("minecraft:jungle"); - - VillagerType PLAINS = VillagerTypeImpl.get("minecraft:plains"); - - VillagerType SAVANNA = VillagerTypeImpl.get("minecraft:savanna"); - - VillagerType SNOW = VillagerTypeImpl.get("minecraft:snow"); - - VillagerType SWAMP = VillagerTypeImpl.get("minecraft:swamp"); - - VillagerType TAIGA = VillagerTypeImpl.get("minecraft:taiga"); -} diff --git a/src/autogenerated/java/net/minestom/server/featureflag/FeatureFlags.java b/src/autogenerated/java/net/minestom/server/featureflag/FeatureFlags.java deleted file mode 100644 index 1f92c8da724..00000000000 --- a/src/autogenerated/java/net/minestom/server/featureflag/FeatureFlags.java +++ /dev/null @@ -1,15 +0,0 @@ -package net.minestom.server.featureflag; - -/** - * Code autogenerated, do not edit! - */ -@SuppressWarnings("unused") -interface FeatureFlags { - FeatureFlag UPDATE_1_21 = FeatureFlagImpl.get("minecraft:update_1_21"); - - FeatureFlag BUNDLE = FeatureFlagImpl.get("minecraft:bundle"); - - FeatureFlag VANILLA = FeatureFlagImpl.get("minecraft:vanilla"); - - FeatureFlag TRADE_REBALANCE = FeatureFlagImpl.get("minecraft:trade_rebalance"); -} diff --git a/src/autogenerated/java/net/minestom/server/fluid/Fluids.java b/src/autogenerated/java/net/minestom/server/fluid/Fluids.java deleted file mode 100644 index 27157009e9e..00000000000 --- a/src/autogenerated/java/net/minestom/server/fluid/Fluids.java +++ /dev/null @@ -1,17 +0,0 @@ -package net.minestom.server.fluid; - -/** - * Code autogenerated, do not edit! - */ -@SuppressWarnings("unused") -interface Fluids { - Fluid EMPTY = FluidImpl.get("minecraft:empty"); - - Fluid FLOWING_WATER = FluidImpl.get("minecraft:flowing_water"); - - Fluid WATER = FluidImpl.get("minecraft:water"); - - Fluid FLOWING_LAVA = FluidImpl.get("minecraft:flowing_lava"); - - Fluid LAVA = FluidImpl.get("minecraft:lava"); -} diff --git a/src/main/java/net/minestom/server/entity/metadata/monster/zombie/ZombieVillagerMeta.java b/src/main/java/net/minestom/server/entity/metadata/monster/zombie/ZombieVillagerMeta.java index ea04af22fb9..66023cc1212 100644 --- a/src/main/java/net/minestom/server/entity/metadata/monster/zombie/ZombieVillagerMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/monster/zombie/ZombieVillagerMeta.java @@ -4,8 +4,6 @@ import net.minestom.server.entity.Metadata; import net.minestom.server.entity.MetadataHolder; import net.minestom.server.entity.metadata.villager.VillagerMeta; -import net.minestom.server.entity.villager.VillagerProfession; -import net.minestom.server.entity.villager.VillagerType; import org.jetbrains.annotations.NotNull; public class ZombieVillagerMeta extends ZombieMeta { @@ -27,15 +25,15 @@ public void setConverting(boolean value) { public VillagerMeta.VillagerData getVillagerData() { int[] data = super.metadata.getIndex(OFFSET + 1, null); if (data == null) { - return new VillagerMeta.VillagerData(VillagerType.PLAINS, VillagerProfession.NONE, VillagerMeta.Level.NOVICE); + return new VillagerMeta.VillagerData(VillagerMeta.Type.PLAINS, VillagerMeta.Profession.NONE, VillagerMeta.Level.NOVICE); } - return new VillagerMeta.VillagerData(VillagerType.fromId(data[0]), VillagerProfession.fromId(data[1]), VillagerMeta.Level.VALUES[data[2] - 1]); + return new VillagerMeta.VillagerData(VillagerMeta.Type.VALUES[data[0]], VillagerMeta.Profession.VALUES[data[1]], VillagerMeta.Level.VALUES[data[2] - 1]); } public void setVillagerData(VillagerMeta.VillagerData data) { super.metadata.setIndex(OFFSET + 1, Metadata.VillagerData( - data.getType().id(), - data.getProfession().id(), + data.getType().ordinal(), + data.getProfession().ordinal(), data.getLevel().ordinal() + 1 )); } diff --git a/src/main/java/net/minestom/server/entity/villager/VillagerProfession.java b/src/main/java/net/minestom/server/entity/villager/VillagerProfession.java deleted file mode 100644 index faf65662f88..00000000000 --- a/src/main/java/net/minestom/server/entity/villager/VillagerProfession.java +++ /dev/null @@ -1,42 +0,0 @@ -package net.minestom.server.entity.villager; - -import net.kyori.adventure.key.Key; -import net.minestom.server.registry.Registry; -import net.minestom.server.registry.StaticProtocolObject; -import net.minestom.server.utils.NamespaceID; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Collection; - -public interface VillagerProfession extends StaticProtocolObject, VillagerProfessions { - static @NotNull Collection<@NotNull VillagerProfession> values() { - return VillagerProfessionImpl.values(); - } - - static @Nullable VillagerProfession fromNamespaceId(@NotNull String namespaceID) { - return VillagerProfessionImpl.getSafe(namespaceID); - } - - static @Nullable VillagerProfession fromNamespaceId(@NotNull NamespaceID namespaceID) { - return fromNamespaceId(namespaceID.asString()); - } - - static @Nullable VillagerProfession fromId(int id) { - return VillagerProfessionImpl.getId(id); - } - - @Override - default @NotNull Key key() { - return StaticProtocolObject.super.key(); - } - - @Contract(pure = true) - Registry.VillagerProfession registry(); - - @Override - default @NotNull NamespaceID namespace() { - return registry().namespace(); - } -} diff --git a/src/main/java/net/minestom/server/entity/villager/VillagerProfessionImpl.java b/src/main/java/net/minestom/server/entity/villager/VillagerProfessionImpl.java deleted file mode 100644 index 338cbb39e3f..00000000000 --- a/src/main/java/net/minestom/server/entity/villager/VillagerProfessionImpl.java +++ /dev/null @@ -1,39 +0,0 @@ -package net.minestom.server.entity.villager; - -import net.minestom.server.registry.Registry; -import org.jetbrains.annotations.NotNull; - -import java.util.Collection; - -public record VillagerProfessionImpl(Registry.VillagerProfession registry, int id) implements VillagerProfession { - private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.VILLAGER_PROFESSION, VillagerProfessionImpl::createImpl); - - public VillagerProfessionImpl(Registry.VillagerProfession registry) { - this(registry, registry.id()); - } - - private static VillagerProfession createImpl(String namespace, Registry.Properties properties) { - return new VillagerProfessionImpl(Registry.villagerProfession(namespace, properties)); - } - - static VillagerProfession get(@NotNull String namespace) { - return CONTAINER.get(namespace); - } - - static VillagerProfession getSafe(@NotNull String namespace) { - return CONTAINER.getSafe(namespace); - } - - static VillagerProfession getId(int id) { - return CONTAINER.getId(id); - } - - static Collection values() { - return CONTAINER.values(); - } - - @Override - public String toString() { - return name(); - } -} diff --git a/src/main/java/net/minestom/server/entity/villager/VillagerType.java b/src/main/java/net/minestom/server/entity/villager/VillagerType.java deleted file mode 100644 index ac8fcfd4f21..00000000000 --- a/src/main/java/net/minestom/server/entity/villager/VillagerType.java +++ /dev/null @@ -1,43 +0,0 @@ -package net.minestom.server.entity.villager; - -import net.kyori.adventure.key.Key; -import net.minestom.server.registry.Registry; -import net.minestom.server.registry.StaticProtocolObject; -import net.minestom.server.utils.NamespaceID; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Collection; - -public sealed interface VillagerType extends StaticProtocolObject, VillagerTypes permits VillagerTypeImpl { - - static @NotNull Collection<@NotNull VillagerType> values() { - return VillagerTypeImpl.values(); - } - - static @Nullable VillagerType fromNamespaceId(@NotNull String namespaceID) { - return VillagerTypeImpl.getSafe(namespaceID); - } - - static @Nullable VillagerType fromNamespaceId(@NotNull NamespaceID namespaceID) { - return fromNamespaceId(namespaceID.asString()); - } - - static @Nullable VillagerType fromId(int id) { - return VillagerTypeImpl.getId(id); - } - - @Override - default @NotNull Key key() { - return StaticProtocolObject.super.key(); - } - - @Contract(pure = true) - Registry.VillagerType registry(); - - @Override - default @NotNull NamespaceID namespace() { - return registry().namespace(); - } -} diff --git a/src/main/java/net/minestom/server/entity/villager/VillagerTypeImpl.java b/src/main/java/net/minestom/server/entity/villager/VillagerTypeImpl.java deleted file mode 100644 index ec8af984f09..00000000000 --- a/src/main/java/net/minestom/server/entity/villager/VillagerTypeImpl.java +++ /dev/null @@ -1,39 +0,0 @@ -package net.minestom.server.entity.villager; - -import net.minestom.server.registry.Registry; -import org.jetbrains.annotations.NotNull; - -import java.util.Collection; - -public record VillagerTypeImpl(Registry.VillagerType registry, int id) implements VillagerType { - private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.VILLAGER_TYPES, VillagerTypeImpl::createImpl); - - public VillagerTypeImpl(Registry.VillagerType registry) { - this(registry, registry.id()); - } - - private static VillagerType createImpl(String namespace, Registry.Properties properties) { - return new VillagerTypeImpl(Registry.villagerType(namespace, properties)); - } - - static VillagerType get(@NotNull String namespace) { - return CONTAINER.get(namespace); - } - - static VillagerType getSafe(@NotNull String namespace) { - return CONTAINER.getSafe(namespace); - } - - static VillagerType getId(int id) { - return CONTAINER.getId(id); - } - - static Collection values() { - return CONTAINER.values(); - } - - @Override - public String toString() { - return name(); - } -} diff --git a/src/main/java/net/minestom/server/featureflag/FeatureFlag.java b/src/main/java/net/minestom/server/featureflag/FeatureFlag.java deleted file mode 100644 index 485d9a873bd..00000000000 --- a/src/main/java/net/minestom/server/featureflag/FeatureFlag.java +++ /dev/null @@ -1,39 +0,0 @@ -package net.minestom.server.featureflag; - -import net.minestom.server.registry.Registry; -import net.minestom.server.registry.StaticProtocolObject; -import net.minestom.server.utils.NamespaceID; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Collection; - -public sealed interface FeatureFlag extends StaticProtocolObject, FeatureFlags permits FeatureFlagImpl { - - /** - * Returns the entity registry. - * - * @return the entity registry or null if it was created with a builder - */ - @Contract(pure = true) - @Nullable - Registry.FeatureFlagEntry registry(); - - @Override - @NotNull - NamespaceID namespace(); - - static @NotNull Collection<@NotNull FeatureFlag> values() { - return FeatureFlagImpl.values(); - } - - static @Nullable FeatureFlag fromNamespaceId(@NotNull String namespaceID) { - return FeatureFlagImpl.getSafe(namespaceID); - } - - static @Nullable FeatureFlag fromNamespaceId(@NotNull NamespaceID namespaceID) { - return fromNamespaceId(namespaceID.asString()); - } - -} diff --git a/src/main/java/net/minestom/server/featureflag/FeatureFlagImpl.java b/src/main/java/net/minestom/server/featureflag/FeatureFlagImpl.java deleted file mode 100644 index e5aab62cbe6..00000000000 --- a/src/main/java/net/minestom/server/featureflag/FeatureFlagImpl.java +++ /dev/null @@ -1,33 +0,0 @@ -package net.minestom.server.featureflag; - -import net.minestom.server.registry.Registry; -import net.minestom.server.utils.NamespaceID; -import org.jetbrains.annotations.NotNull; - -import java.util.Collection; -import java.util.concurrent.atomic.AtomicInteger; - -public record FeatureFlagImpl(Registry.FeatureFlagEntry registry, NamespaceID namespace, int id) implements FeatureFlag { - private static final AtomicInteger INDEX = new AtomicInteger(); - private static final Registry.DynamicContainer CONTAINER = Registry.createDynamicContainer(Registry.Resource.FEATURE_FLAGS, FeatureFlagImpl::createImpl); - - private static FeatureFlagImpl createImpl(String namespace, Registry.Properties properties) { - return new FeatureFlagImpl(Registry.featureFlag(namespace, properties)); - } - - private FeatureFlagImpl(Registry.FeatureFlagEntry registry) { - this(registry, registry.namespace(), INDEX.getAndIncrement()); - } - - static Collection values() { - return CONTAINER.values(); - } - - public static FeatureFlag get(@NotNull String namespace) { - return CONTAINER.get(namespace); - } - - static FeatureFlag getSafe(@NotNull String namespace) { - return CONTAINER.getSafe(namespace); - } -} diff --git a/src/main/java/net/minestom/server/fluid/Fluid.java b/src/main/java/net/minestom/server/fluid/Fluid.java deleted file mode 100644 index c9e6bedf370..00000000000 --- a/src/main/java/net/minestom/server/fluid/Fluid.java +++ /dev/null @@ -1,37 +0,0 @@ -package net.minestom.server.fluid; - -import net.minestom.server.registry.Registry; -import net.minestom.server.registry.StaticProtocolObject; -import net.minestom.server.utils.NamespaceID; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Collection; - -public sealed interface Fluid extends StaticProtocolObject, Fluids permits FluidImpl { - /** - * Returns the entity registry. - * - * @return the entity registry or null if it was created with a builder - */ - @Contract(pure = true) - @Nullable - Registry.FluidEntry registry(); - - @Override - @NotNull - NamespaceID namespace(); - - static @NotNull Collection<@NotNull Fluid> values() { - return FluidImpl.values(); - } - - static @Nullable Fluid fromNamespaceId(@NotNull String namespaceID) { - return FluidImpl.getSafe(namespaceID); - } - - static @Nullable Fluid fromNamespaceId(@NotNull NamespaceID namespaceID) { - return fromNamespaceId(namespaceID.asString()); - } -} diff --git a/src/main/java/net/minestom/server/fluid/FluidImpl.java b/src/main/java/net/minestom/server/fluid/FluidImpl.java deleted file mode 100644 index 8066c423375..00000000000 --- a/src/main/java/net/minestom/server/fluid/FluidImpl.java +++ /dev/null @@ -1,34 +0,0 @@ -package net.minestom.server.fluid; - -import net.minestom.server.registry.Registry; -import net.minestom.server.utils.NamespaceID; -import org.jetbrains.annotations.NotNull; - -import java.util.Collection; -import java.util.concurrent.atomic.AtomicInteger; - -public record FluidImpl(Registry.FluidEntry registry, NamespaceID namespace, int id) implements Fluid { - - private static final AtomicInteger INDEX = new AtomicInteger(); - private static final Registry.DynamicContainer CONTAINER = Registry.createDynamicContainer(Registry.Resource.FLUIDS, FluidImpl::createImpl); - - private static FluidImpl createImpl(String namespace, Registry.Properties properties) { - return new FluidImpl(Registry.fluidEntry(namespace, properties)); - } - - private FluidImpl(Registry.FluidEntry registry) { - this(registry, registry.namespace(), INDEX.getAndIncrement()); - } - - static Collection values() { - return CONTAINER.values(); - } - - public static Fluid get(@NotNull String namespace) { - return CONTAINER.get(namespace); - } - - static Fluid getSafe(@NotNull String namespace) { - return CONTAINER.getSafe(namespace); - } -} diff --git a/src/main/java/net/minestom/server/item/metadata/BannerMeta.java b/src/main/java/net/minestom/server/item/metadata/BannerMeta.java deleted file mode 100644 index 9d0a70d06e1..00000000000 --- a/src/main/java/net/minestom/server/item/metadata/BannerMeta.java +++ /dev/null @@ -1,165 +0,0 @@ -package net.minestom.server.item.metadata; - -/** - * @author theEvilReaper - * @version 1.0.0 - * @since - **/ - -import net.kyori.adventure.text.Component; -import net.minestom.server.color.DyeColor; -import net.minestom.server.item.ItemMetaView; -import net.minestom.server.item.banner.BannerPattern; -import net.minestom.server.tag.Tag; -import net.minestom.server.tag.TagHandler; -import net.minestom.server.tag.TagReadable; -import net.minestom.server.tag.TagSerializer; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.Nullable; -import org.jetbrains.annotations.UnknownNullability; -import org.jglrxavpok.hephaistos.nbt.NBT; -import org.jglrxavpok.hephaistos.nbt.NBTCompound; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -/** - * Meta for all {@link net.minestom.server.item.Material#WHITE_BANNER} and {@link net.minestom.server.item.Material#SHIELD} items - * - * @param readable data - */ -// Microtus - Banner and Shield Meta -@ApiStatus.Experimental -public record BannerMeta(TagReadable readable) implements ItemMetaView { - - private static final String PATTERN_KEY = "Pattern"; - private static final String COLOR_KEY = "Color"; - - private static final Tag CUSTOM_NAME = Tag.Component("CustomName").path("BlockEntityTag"); - private static final Tag> PATTERNS = Tag.Structure("Patterns", - TagSerializer.fromCompound(Pattern::fromCompound, Pattern::asCompound)) - .path("BlockEntityTag").list().defaultValue(List.of()); - - - @Contract(value = "_, _ -> new", pure = true) - public static @NotNull Pattern from(@NotNull DyeColor color, @NotNull BannerPattern pattern) { - return new Pattern(color, pattern); - } - - /** - * Get name of the marker, unused by Minestom - * - * @return name of the marker - */ - public @Nullable Component getCustomName() { - return getTag(CUSTOM_NAME); - } - - /** - * Get patterns of the banner - * - * @return patterns of the banner - */ - public @NotNull List getPatterns() { - return getTag(PATTERNS); - } - - @Override - public @UnknownNullability T getTag(@NotNull Tag tag) { - return readable.getTag(tag); - } - - public record Builder(TagHandler tagHandler) implements ItemMetaView.Builder { - public Builder() { - this(TagHandler.newHandler()); - } - - /** - * Set name of the marker, unused by Minestom - * - * @param customName name of the marker - * @return this - */ - public @NotNull Builder customName(Component customName) { - setTag(CUSTOM_NAME, customName); - return this; - } - - /** - * Set the patterns of the banner - * - * @param patterns patterns of the banner - * @return this - */ - public @NotNull Builder patterns(@NotNull List patterns) { - setTag(PATTERNS, patterns); - return this; - } - - /** - * Add a pattern to the banner - * - * @param pattern pattern to add - * @return this - */ - public @NotNull Builder addPattern(Pattern pattern) { - var newList = new ArrayList<>(getTag(PATTERNS)); - newList.add(pattern); - return patterns(newList); - } - - /** - * Remove a pattern from the banner - * - * @param pattern pattern to remove - * @return this - */ - public @NotNull Builder removePattern(Pattern pattern) { - var newList = new ArrayList<>(getTag(PATTERNS)); - newList.remove(pattern); - return patterns(newList); - } - - /** - * Clears the underlying list which contains the pattern values. - * @return this - */ - public @NotNull Builder clearPatterns() { - return patterns(List.of()); - } - } - - public record Pattern(@NotNull DyeColor color, @NotNull BannerPattern pattern) { - - /** - * Retrieves a banner pattern from the given {@code compound}. - * - * @param compound The NBT connection, which should be a banner pattern. - * @return A new created banner pattern. - */ - public static @NotNull Pattern fromCompound(@NotNull NBTCompound compound) { - DyeColor color = compound.containsKey(COLOR_KEY) ? DyeColor.getValue(compound.getByte(COLOR_KEY)) : DyeColor.WHITE; - BannerPattern type; - if (compound.containsKey(PATTERN_KEY)) { - BannerPattern pattern = BannerPattern.fromIdentifier(compound.getString(PATTERN_KEY)); - type = pattern != null ? pattern : BannerPattern.BASE; - } else type = BannerPattern.BASE; - return new Pattern(color, type); - } - - /** - * Retrieves the {@link Pattern} as an {@link NBTCompound}. - * - * @return The banner pattern as a nbt compound. - */ - public @NotNull NBTCompound asCompound() { - return NBT.Compound(Map.of( - COLOR_KEY, NBT.Byte(color.ordinal()), - PATTERN_KEY, NBT.String(pattern.identifier()) - )); - } - } -} diff --git a/src/main/java/net/minestom/server/item/metadata/ShieldMeta.java b/src/main/java/net/minestom/server/item/metadata/ShieldMeta.java deleted file mode 100644 index 56a864253f2..00000000000 --- a/src/main/java/net/minestom/server/item/metadata/ShieldMeta.java +++ /dev/null @@ -1,131 +0,0 @@ -package net.minestom.server.item.metadata; - -import net.kyori.adventure.text.Component; -import net.minestom.server.color.DyeColor; -import net.minestom.server.item.ItemMetaView; -import net.minestom.server.tag.Tag; -import net.minestom.server.tag.TagHandler; -import net.minestom.server.tag.TagReadable; -import net.minestom.server.tag.TagSerializer; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.jetbrains.annotations.UnknownNullability; - -import java.util.ArrayList; -import java.util.List; - -// Microtus - Banner and Shield Meta -@ApiStatus.Experimental -public record ShieldMeta(@NotNull TagReadable readable) implements ItemMetaView { - - private static final String BASE_KEY = "Base"; - private static final String ENTITY_TAG = "BlockEntityTag"; - private static final Tag CUSTOM_NAME = Tag.Component("CustomName").path(ENTITY_TAG); - private static final Tag BASE_TAG = Tag.Integer(BASE_KEY).path(ENTITY_TAG); - private static final Tag> PATTERNS = Tag.Structure("Patterns", - TagSerializer.fromCompound(BannerMeta.Pattern::fromCompound, BannerMeta.Pattern::asCompound)) - .path(ENTITY_TAG).list().defaultValue(List.of()); - - /** - * Get base color of the shield - * - * @return the base color - */ - public @NotNull DyeColor getBaseColor() { - return DyeColor.getValue(getTag(BASE_TAG)); - } - - /** - * Get name of the marker, unused by Minestom - * - * @return name of the marker - */ - public @Nullable Component getCustomName() { - return getTag(CUSTOM_NAME); - } - - /** - * Get patterns of the shield - * - * @return patterns of the shield - */ - public @NotNull List getPatterns() { - return getTag(PATTERNS); - } - - @Override - public @UnknownNullability T getTag(@NotNull Tag tag) { - return readable.getTag(tag); - } - - public record Builder(@NotNull TagHandler tagHandler) implements ItemMetaView.Builder { - public Builder() { - this(TagHandler.newHandler()); - } - - /** - * Set the color which is used as base color for a shield. - * @param dyeColor the color to set - * @return the builder instance - */ - public @NotNull ShieldMeta.Builder baseColor(@NotNull DyeColor dyeColor) { - setTag(BASE_TAG, dyeColor.ordinal()); - return this; - } - - /** - * Set name of the marker, unused by Minestom - * - * @param customName name of the marker - * @return this - */ - public @NotNull ShieldMeta.Builder customName(@NotNull Component customName) { - setTag(CUSTOM_NAME, customName); - return this; - } - - /** - * Set the patterns of the shield - * - * @param patterns patterns of the shield - * @return this - */ - public @NotNull ShieldMeta.Builder patterns(@NotNull List patterns) { - setTag(PATTERNS, patterns); - return this; - } - - /** - * Add a pattern to the shield - * - * @param pattern pattern to add - * @return this - */ - public @NotNull ShieldMeta.Builder addPattern(BannerMeta.Pattern pattern) { - var newList = new ArrayList<>(getTag(PATTERNS)); - newList.add(pattern); - return patterns(newList); - } - - /** - * Remove a pattern from the shield - * - * @param pattern pattern to remove - * @return this - */ - public @NotNull ShieldMeta.Builder removePattern(BannerMeta.Pattern pattern) { - var newList = new ArrayList<>(getTag(PATTERNS)); - newList.remove(pattern); - return patterns(newList); - } - - /** - * Clears the underlying list which contains the pattern values. - * @return this - */ - public @NotNull ShieldMeta.Builder clearPatterns() { - return patterns(List.of()); - } - } -} diff --git a/src/main/java/net/minestom/server/network/packet/server/configuration/UpdateEnabledFeaturesPacket.java b/src/main/java/net/minestom/server/network/packet/server/configuration/UpdateEnabledFeaturesPacket.java index 226b347525f..d2cc2c52594 100644 --- a/src/main/java/net/minestom/server/network/packet/server/configuration/UpdateEnabledFeaturesPacket.java +++ b/src/main/java/net/minestom/server/network/packet/server/configuration/UpdateEnabledFeaturesPacket.java @@ -1,20 +1,20 @@ package net.minestom.server.network.packet.server.configuration; -import net.minestom.server.featureflag.FeatureFlag; import net.minestom.server.network.NetworkBuffer; import net.minestom.server.network.packet.server.ServerPacket; import net.minestom.server.network.packet.server.ServerPacketIdentifier; +import net.minestom.server.utils.NamespaceID; import org.jetbrains.annotations.NotNull; import java.util.Set; import static net.minestom.server.network.NetworkBuffer.STRING; -public record UpdateEnabledFeaturesPacket(@NotNull Set features) implements ServerPacket.Configuration { +public record UpdateEnabledFeaturesPacket(@NotNull Set features) implements ServerPacket.Configuration { public static final int MAX_FEATURES = 64; public UpdateEnabledFeaturesPacket(@NotNull NetworkBuffer buffer) { - this(Set.copyOf(buffer.readCollection((b) -> FeatureFlag.fromNamespaceId(b.read(STRING)), MAX_FEATURES))); + this(Set.copyOf(buffer.readCollection((b) -> NamespaceID.from(b.read(STRING)), MAX_FEATURES))); } @Override diff --git a/src/main/java/net/minestom/server/world/biomes/particle/BiomeOption.java b/src/main/java/net/minestom/server/world/biomes/particle/BiomeOption.java deleted file mode 100644 index 07ffda2ba5d..00000000000 --- a/src/main/java/net/minestom/server/world/biomes/particle/BiomeOption.java +++ /dev/null @@ -1,16 +0,0 @@ -package net.minestom.server.world.biomes.particle; - -import net.minestom.server.particle.Particle; -import org.jetbrains.annotations.NotNull; -import org.jglrxavpok.hephaistos.nbt.NBTCompound; - -/** - * Just a generic interface to hold data about biome particles - * @author TheMeinerLP - */ -public interface BiomeOption { - @NotNull - NBTCompound toNbt(); - @NotNull - Particle getType(); -} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/BlockOption.java b/src/main/java/net/minestom/server/world/biomes/particle/BlockOption.java deleted file mode 100644 index 117d9a1ec79..00000000000 --- a/src/main/java/net/minestom/server/world/biomes/particle/BlockOption.java +++ /dev/null @@ -1,32 +0,0 @@ -package net.minestom.server.world.biomes.particle; - -import net.minestom.server.instance.block.Block; -import net.minestom.server.particle.Particle; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; -import org.jglrxavpok.hephaistos.nbt.NBT; -import org.jglrxavpok.hephaistos.nbt.NBTCompound; - -import java.util.Map; - -@ApiStatus.Experimental -public record BlockOption(@NotNull Block block) implements BiomeOption { - - @Override - public @NotNull NBTCompound toNbt() { - return NBT.Compound(nbtCompound -> { - nbtCompound.setString("type", getType().namespace().toString()); - nbtCompound.setString("Name", block.name()); - Map propertiesMap = block.properties(); - if (!propertiesMap.isEmpty()) { - nbtCompound.set("Properties", NBT.Compound(p -> propertiesMap.forEach(p::setString))); - } - }); - } - - @Override - public @NotNull Particle getType() { - return Particle.BLOCK; - } - -} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/DefaultOption.java b/src/main/java/net/minestom/server/world/biomes/particle/DefaultOption.java deleted file mode 100644 index 1ddad4d7ea4..00000000000 --- a/src/main/java/net/minestom/server/world/biomes/particle/DefaultOption.java +++ /dev/null @@ -1,20 +0,0 @@ -package net.minestom.server.world.biomes.particle; - -import net.minestom.server.particle.Particle; -import org.jetbrains.annotations.NotNull; -import org.jglrxavpok.hephaistos.nbt.NBT; -import org.jglrxavpok.hephaistos.nbt.NBTCompound; - -import java.util.Map; - -public record DefaultOption(@NotNull Particle particle) implements BiomeOption { - @Override - public @NotNull NBTCompound toNbt() { - return NBT.Compound(Map.of("type", NBT.String(getType().namespace().toString()))); - } - - @Override - public @NotNull Particle getType() { - return particle; - } -} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/DustOption.java b/src/main/java/net/minestom/server/world/biomes/particle/DustOption.java deleted file mode 100644 index 0a84f495820..00000000000 --- a/src/main/java/net/minestom/server/world/biomes/particle/DustOption.java +++ /dev/null @@ -1,34 +0,0 @@ -package net.minestom.server.world.biomes.particle; - -import net.minestom.server.particle.Particle; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; -import org.jglrxavpok.hephaistos.nbt.NBT; -import org.jglrxavpok.hephaistos.nbt.NBTCompound; - -import java.util.Map; - -/** - * Particle effect which used based on the color values. - * @param red can between 0 and 1 and is divided by 255 - * @param green can between 0 and 1 and is divided by 255 - * @param blue can between 0 and 1 and is divided by 255 - * @param scale can between 0.01 to 4 - */ -@ApiStatus.Experimental -public record DustOption(float red, float green, float blue, float scale) implements BiomeOption { - @Override - public @NotNull NBTCompound toNbt() { - return NBT.Compound(Map.of( - "type", NBT.String(getType().namespace().toString()), - "Red", NBT.Float(red), - "Green", NBT.Float(green), - "Blue", NBT.Float(blue), - "Scale", NBT.Float(scale))); - } - - @Override - public @NotNull Particle getType() { - return Particle.DUST; - } -} diff --git a/src/main/java/net/minestom/server/world/biomes/particle/ItemOption.java b/src/main/java/net/minestom/server/world/biomes/particle/ItemOption.java deleted file mode 100644 index a977cd052c1..00000000000 --- a/src/main/java/net/minestom/server/world/biomes/particle/ItemOption.java +++ /dev/null @@ -1,27 +0,0 @@ -package net.minestom.server.world.biomes.particle; - -import net.minestom.server.item.ItemStack; -import net.minestom.server.particle.Particle; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; -import org.jglrxavpok.hephaistos.nbt.NBTCompound; - -/** - * Particle effect which used based on an item inside the biome. - * @param item to bes used - */ -@ApiStatus.Experimental -public record ItemOption(@NotNull ItemStack item) implements BiomeOption { - - @Override - public @NotNull NBTCompound toNbt() { - NBTCompound nbtCompound = item.meta().toNBT(); - return nbtCompound.modify(n -> n.setString("type", getType().namespace().toString())); - } - - @Override - public @NotNull Particle getType() { - return Particle.ITEM; - } - -} From c17b56bc5313a474e351e2a6add7aa660cc2a4c2 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Sun, 18 Aug 2024 14:19:04 +0200 Subject: [PATCH 75/93] Update from Upstream (#68) * Offer more control over LightingChunk invalidations (#2156) * Offer more control over LightingChunk invalidations * Respect freezeInvalidation on this other invalidate method * Rename to invalidateNeighborsSection and remove redundant null check * fix light invalidation issue * Fix Entity::getEffectLevel having two meanings when returning 0 (#2163) * add more command conditions * Add signum operator to Vec * Refactor lighting code, fix loaded chunks (#2164) * Switch to the new adventure domain (#2165) * fix: do not test block collision on entities without collision * Make PlayerProjectile extend Entity instead of LivingEntity * feat: initial conversion to adventure nbt. no tests, no anvil * chore: basic nbt reader/writer for protocol while waiting for adventure * feat: joinable server * fix: oops, health is before potion still * chore: rebase on adventure-nbt * feat: first version of a bunch of components * chore: delete all old metadata classes for now, may return compatibility later * chore: more components * chore: more components * chore: trying to fix nightmare loop * feat: functional components, but at what cost * chore: cleanup itemcomponenttype, update to datagen changes * feat: more components * feat: even more components (only 2 missing ones) * feat: first draft of cookies * feat: simplify sound events, fix update explosion packet * feat: generate RecipeType (for ids) * fix: do not send close inventory packet when opening a new inventory while one is open * feat: anvil reading, other minor fixes * feat: partial anvil writing, update tests (still many broken) * chore: 1.20.5, disable some failing tests to get a functional build * chore: cicd trigger * chore: update datagenerator * fix: anvil not loading locations properly * fix: particle packet reorder * fix: do not allow writing air in declare recipes packet (added ItemStack.STRICT_NETWORK_TYPE to represent this) * feat: initial ArgumentItemStack reader, other minor fixes * fix: light test and update eye height in view direction test * chore: cleanup anvil test * fix: dont oom reading item component, stub banner pattern component * fix: circular init :| * fix: correctly handle eating potions, time eating using ticks, default to correct drink/eat time from component, send damage event on living entity damage * fix: do not convert optchat metadata to chat * chore: rebase, add stack size 99 test case * chore: another stack size test * feat: block predicate impl & some more tests * feat: initial anvilloader writer implementation * fix: correctly read declared recipes * chore: generalize ItemComponent to DataComponent (item component defs are still in ItemComponent) * fix: update from lighting fix 35 rebase * chore: add PlayerAnvilInputEvent, other minor tweaks from self review * fix: sync position after sending first chunk * chore: start testing components, fix valueless components * chore: allow chunk subclasses to override heightmap generation * feat: first pass of standardizing dynamic registries * feat: add DynamicRegistry.Key and reference it instead of the underlying type. add wolf variant meta field * chore: cleanup & some component impl utility methods * chore: depend on published version of data, not local * chore: minor tweaks * chore: cleanup networkbuffer additions * chore: missing entity metas & extract shooter to abstractwindchargemeta * fix: correct handling of known packs exchange * chore: merge datacomponentmap and datacomponentpatch to simplify api. Preemptively diff with material prototype when constructing itemstack * chore: more tests for components * chore: one more * fix: setTimeUpdate transition from duration to ticks, renamed to avoid ambiguation with setTimeRate (#2067) * feat: LivingEntity fire overhaul (#2122) * feat: LivingEntity fire overhaul * chore: missed method change * feat: world border overhaul, turned into a record and handled by the instance (#2062) * feat: world border overhaul, turned into a record and handled by instance * chore: replace WorldBorder#defaultBorder() with a DEFAULT_BORDER constant * Pathfinding 1.20.5 (#2153) * pathfinding * mutablepoint fix in player * feat: cya later jitpack * chore: remove some weird internal/experimental annotations * Item usage duration (#2128) Fix build error Move item usage completed to a different event Add a way to check if the item usage has completed, or is aborted by the player Only process animation when the item use time is not instant Update javadoc Re-add Player#isEating Remove deprecated Player#callItemUpdateStateEvent Allow specifying item usage duration inside PlayerUseItemEvent * fix: fixes from merging #2128 * feat: improve particle api * feat: generate particle data names automatically * chore: make all impls records + inner classes of Particle * chore: minor cleanup, block display meta to use Block directly * fix: default zero use item time * Move static Entity lookup maps to EntityTracker (#2167) * Move static Entity lookup maps to EntityTracker * Specific method for changeUuid to keep thread-safety * Fix bug from not recording position on register * Exception on duplicate IDs in the EntityTracker * Oops, expected stateCondition to behave like assert * Didn't mean to make Entity::remove(boolean) public * More descriptive EntityView::register error * Warn when attempting to move untracked entity * chore: delete `Entity#setUuid` and `AsyncPlayerPreLoginEvent#setUuid` * chore: delete a deprecated Audience#sendMessage variant * chore: javadocs and remove experimental pose update flag * fix: fixes from rug pull * fix: tag escape * fix: inventory rebase fixes * Fix Attribute Read/Write due to initialization shenanagins (#2174) * Only consider online players for unregisterInstance (#2171) * Add new navigator generator & follower * Include ourself as a viewer when sending SWING_MAIN_ARM animation (#2173) * Include ourself as a viewer when sending SWING_MAIN_ARM animation * Added API annotations * fix: re-add deprecated Audience#sendMessage variant which was actually required * Fix ITEM_NAME component translation in SetSlotPacket (#2176) * Fix ITEM_NAME component translation in SetSlotPacket * Add test for item stack translation when automatic component translation is enabled * Fix the NBT representation of Unit (#2177) * Call UuidProvider in async (#2181) Co-authored-by: Spliterash * [RE] Update PlayerChangeHeldSlotEvent.java (#2179) * Update PlayerChangeHeldSlotEvent.java Slight changes in the docs since they were mis-leading.. Took me a while to realise what was wrong in my algorithm * Update src/main/java/net/minestom/server/event/player/PlayerChangeHeldSlotEvent.java Co-authored-by: Matz Hilven <48355802+MatzHilven@users.noreply.github.com> --------- Co-authored-by: Matz Hilven <48355802+MatzHilven@users.noreply.github.com> * fix: correctly account for global biome palette * fix: incorrect region metatable offset when writing * Add Instance::getPlayerByUuid because for convenience (#2190) * feat: hello, 1.21 * feat: new packets, new registries except stubbed out enchantments, other minor changes * chore: 1.21-pre2 * chore: start on enchantments * chore: start on enchant effect components * chore: protocol set * chore: start on effect types * feat: mostly functional enchants, needs cleanup * feat: add some ItemStack convenience methods * feat: minor improvements, 1.21 release * fix inventory packet for global translator * fix full light data is not sent (#2191) * fix full light data is not sent * remove fullLightCache * Add feature flags to AsyncPlayerConfigurationEvent * fix player health update animation (#2183) * fix projectile remove * Update Player.java (#2195) * Update Player.java * Update PlayerConnection.java * fix: deserialize `extra` correctly in component serializer * Fix add transaction * Fix events not triggering for bows, crossbows, etc. (#2199) * Fix item update for bow, crossbow, shield, trident, spyglass, goat horn, brush * fix: inverted vanilla exclusion * fix: nbt byte for `sections[].Y` in anvil chunk data (fixes #2207) * Drop eventnode listener ref on invalidate (#2212) * Fixed bug in LargeFramebuffer#preparePacket(int,int,int) (#2213) * Fix LivingEntity Damage Event Packet (#2209) * fix: correctly disconnect player if resource pack is not applied successfully (for required resource pack) * Ability to teleport player without teleport confirm (#2222) * optional teleport confirm * rename flag to shouldConfirm * oops, this change is no longer needed * fix last line formatting * fix: preserve handler in block placement rule neighbor updates * fix: do not overwrite default movement speed attribute * Revert "fix: do not overwrite default movement speed attribute" This reverts commit 66dc936cd6bb0acd62b810ce1e3cf048fbce8756. * fix: update sprinting movement speed modifier serverside to keep synced with client state * fix: concurrent region file creation * fix: adding an existing viewer to a scoreboard kicks them (#2231) * fix: DustColorTransition packet reading/writing (#2236) * fix: DustColorTransition packet reading/writing * chore: fix tests * Add Player#getCurrentItemUseTime (#2235) * Add Player#getCurrentItemUseTime * Use player ticks as reference instead of world age * Fix infinite recursion. (#2230) * chore: int flags potion constructor (#2238) * chore: send keepalive packets immediately, simplify PacketProcessor#process (#2218) * chore: send keepalive packets immediately, simplify PacketProcessor#process * chore: make latency volatile * Autogenerate Feature Flags (#2201) * Autogenerate Feature Flags (Won't work until MinestomDataGen 1.21-rev2 is released with datagen changes.) * Rewrite feature flag auto-generation, add example in demo. * Update data gen * Remove dead code and fix access modifier on FeatureFlagImpl * feat: Improvements to AttributeInstance API (#2221) * feat: method to compute the value of an AttributeInstance with a given base instead of its stored one, add return values to AttributeInstance#removeModifier and AttributeInstance#addModifier * chore: getValueWithBase -> applyModifiers * feat: Acquirable, ThreadDispatcher usage improvements (#2237) * feat: fewer casts needed when working with Acquirable, ThreadDispatcher now usable with non-Entity tickables, AcquirableSource for synchronizing items added to dispatcher * chore: rename AcquirableSource#getAcquirable -> AcquirableSource#acquirable, re-add getAcquirable to Entity with old signature, deprecate it * fix: incorrect camel case in item component nbt (fixes #2233) * Add material setter in builder * feat: ShapeImpl#collisionBoundingBoxes, ShapeImpl#occlusionBoundingBoxes + documentation (#2248) * Automatically update an entity's attributes when changing equipment (#2228) * Automatically update an entity's attributes when changing equipment * fix merge conflict * Update attributes for players when their items change * Add attribute tests * chore: add AlphaColor, convert Color to class, fix entity_effect particle (#2240) * chore: add AlphaColor, convert Color to class, fix entity_effect particle * chore: add `Particle.EntityEffect#withColor(RGBLike)`, `Color#withAlpha` --------- Co-authored-by: mworzala * fix: AttributeInstance#addModifier not refreshing cachedValue for new modifier values (#2234) * fix blunder * fix: use equals check for modifier difference when adding --------- Co-authored-by: mworzala * chore: add doc about kicking player during config * chore: enforce and document notnull chunk loader, add noop impl * Fix chunk lighting optimization (#2244) * Fix chunk lighting optimization * Apply requested changes * Add a few useful methods to Direction (#2254) * Add Block::original so it's easier to compare by block type (#2255) * Add Block::original so it's easier to compare by block type * Requested changes * fix: geyser keepalive incompatibility * Fix NullPointer when changing equipment before checking attributes * get back jmh/jcstress * Add getAndSetTag to TagWritable * Remove Instance/PlayerUtils * Move all flags to ServerFlag * MetadataHolder (#2263) * Move entity meta map to MetadataHolder * Fix biome sounds + particles (#2265) * fix biome sounds + particles * Fix tests * Call ItemUpdateStateEvent before clearing item use (#2258) * feat: allow changing the number of threads used by the server process ThreadDispatcher (#2268) * fix: optional world pos in lodestone tracker item component (fixes #2270) * chore: add cursor position to `PlayerBlockPlaceEvent` * fix: node followers using the speed attribute base value instead of value + modifiers * feat: thread safety for AttributeInstance (#2297) * feat: thread safety for AttributeInstance * fix: refreshCachedValue now takes the new baseValue rather than reading from the field internally * Remove cursor items from individual inventories (#2294) * Remove cursor items from individual inventories * Remove unused method and re-add but deprecate old cursor methods * Fix links and remove unused import * feat: add ability to clear modifiers from an AttributeInstance (#2296) * feat: add ability to clear modifiers from an AttributeInstance, as well as get all AttributeInstances from LivingEntity * chore: getAttributeInstances -> getAttributes, protect certain modifiers from being cleared by AttributeInstance#clearModifiers * fix: call refreshCachedValue properly * Make loyalty level a byte (#2300) * Remove static biome registry, simplify unit generation * fix attribute packet (#2305) * chore: bump data gen to fix light[level=0] emission value * chore: Remove a bunch of Experimental annotations * Direct writer for Adventure components (#2306) * feat: direct writer for adventure components * chore: tests and fixes to score & translatable * chore: explicitly use nbt serializer for reading so the dependency is obvious * fix: lower case click/hover action types * fix: Round up total sectors in region file * fix: send attribute base value not computed. * Apply microtus patches 1-20 (cherry picked from commit ab0874cf0515963d1f4037d3e606db241f03fadb) * Fix build grade * Add missing adventure nbt lib * Add missing dependencies * Remove old biome, banner, shield, particle, attribute system * Fix forward data generator * Disable stress tester for compile reasons * Remove old network stack * Remove no longer exists api form player * Fix forward bstats * Fix forward server flags * Fix forward terminal color converter * Fix forward inventory tests * Fix forward frog meta test * Update files like in microtus main (cherry picked from commit d3ad5aff721abd014bf338de544a64f8a653d0cd) * Apply better workflow (cherry picked from commit ccf63cb7de796596807e45ebb458184d4fbed4ae) * Move miss landed classes after patching source (cherry picked from commit 2f2dec233f123c1433fb2b8e28b84eefe34381b6) * Fix workflows for java 21 (cherry picked from commit b501f93097161841515695f11bf9ac29e3896c2d) * Fix workflows for java 21 (cherry picked from commit f35341a08bd4c0354cf9f40cc3243ebf74a0b76f) * [Chore] Update gradle to 8.7 (cherry picked from commit cf0f73caff61bb7843548b3e77a5bab4bfe905aa) * [Chore] Remove preview feature (cherry picked from commit ab6a351f9360b5458c7e0bf5b0c8c9b9fb9452cf) * [Bugfix] Improve version string for bstats (cherry picked from commit d63c883f64d02c133a3ea873b5a099526c0cfdc6) * Update README.md (cherry picked from commit 9fd02fd9de3fac3ae4902c2e01fcfac12aa9d563) * Update snapshot and release version (cherry picked from commit 18cfbade4d98b94596ead39f696ba34b0fe4fe5a) * [Chore] Replace e.printstacktrace with exception manager call or logger (cherry picked from commit c61f7c57ada380372c1c02ffc74c2928675fe8a9) * Create CNAME (cherry picked from commit 0a8f6dd081530583ffde47b411429351663440ae) * Bump snapshot version (#31) (cherry picked from commit 0c32b88086895d41e0cdc053bb1b5ab9d47f84a4) * Update build.gradle.kts (cherry picked from commit 4023e8ae4cd36057b6fb08dbb3d58616e730fed2) * Improve license usage (cherry picked from commit e7298d4157ce88eaa0b2adf041694573e24f6f5e) * Improve license usage (cherry picked from commit 9574b21d38f5e81cd2b875201f3d8a682371c68a) * [#30] Release 1.4.0 (cherry picked from commit fee81f4c740ad2efd3510a7aa672558c4d8fe37b) * [#30] Re-Release 1.4.1 (cherry picked from commit 994ecce8dcf0b8cac8f0bf3ed91980469ac489cb) * Go back to snapshot (cherry picked from commit 57b6303f9c93c275720060bed9928eb960c30956) * Ignore bstats file (cherry picked from commit e3271929b2d51804fb4c04d4733e3c1df9cebb40) * [#34] Better Notification System (#35) * [#34] Implement new notification system with tests * [#34] Update demo to use new notification system * [#34] Add deprecation text to old notification system * [#34] Improve javadocs and rename builder implementation * [#34] Improve javadocs and fix tests * [#34] Remove empty lines * [#34] Add package description (cherry picked from commit 29ec3fe2d5cbf86d38a3cf9434b8d40df7f92915) * Add bom (cherry picked from commit 7c692385f13c08ec67934a1ec46402b5e6750075) * Improve bom (cherry picked from commit f9b237435e03ad773229fd2fc209dac7da522ada) * Remove java version from bom (cherry picked from commit 772203bb6fa9baf9b02a989a40b2a467b89dfa51) * Change bom deployment (cherry picked from commit f41860257d043b992ec1849b3ad6d5eec8b206ad) * Change bom deployment (cherry picked from commit 37576d20b98b96d427fc26299ee453e4fddf8cc2) * [Feature] Improved Testing Lib (#42) * Deprecate env test * Improve environment * Create new environment annotation * Use new environment annotation (cherry picked from commit 3d93b94670b0577d92065dd6cc394845b7867634) * Add missing dependencies (cherry picked from commit e295f999dcaff67509180ddd5ee917dd95a5b8ea) * Add missing dependencies (cherry picked from commit 7765729a42047189ecdc67b78f5c4d4a2848cf94) * Improve release workflow (cherry picked from commit c2986743f111851134b7caa49bd253ebeaca32cf) * Improve release workflow (cherry picked from commit da01e8a1651c8a39ac337a2b4f30929359d74dfe) * Bump version (cherry picked from commit e715ad98da45fed83b79f7fb2a105a1d72b14001) * Update dependency com.google.code.gson:gson to v2.11.0 (cherry picked from commit c7095d62477365ccdcba0542f4944bf220d9831b) * Update dependency org.mockito:mockito-core to v5.12.0 (cherry picked from commit 77ccf9fdbe7aed8d77666c799dae5f4e5f05e487) * Update actions/cache action to v4 (cherry picked from commit 38ad8aafc87bfe8dbf12c765340ea010a7f32ee2) * Update gradle/wrapper-validation-action action to v3 (cherry picked from commit ad8489127b0882a32360eebbc55f524dfd6b8d39) * Update kotlin monorepo to v2 (cherry picked from commit af9be490b59a60b68bba12e042339b544bc9c08b) * [Chore] Update gradle to version 8.8 (#58) (cherry picked from commit 9373005a6b71905a33eff7a12f5267374c9b1e50) * Update CODEOWNERS (cherry picked from commit 026aa2780532ae8bcf275a914996f7e2513ce317) * Update CODEOWNERS (cherry picked from commit 5be4573758d3117233d8de8fc0ac06ee577581ef) * Update README.md (cherry picked from commit c90b7d583f564770f5358b931d3ae917fe0e5ce7) * Bump version to 1.5.0 * Add missing import * Add support for older as 1.21 minecraft worlds * Update BOM dependencies * Remove no longer needed classes * Fix forward compile issues --------- Co-authored-by: Samuel Co-authored-by: iam4722202468 Co-authored-by: mudkipdev Co-authored-by: iam Co-authored-by: felix <60808107+ItsFelix5@users.noreply.github.com> Co-authored-by: mworzala Co-authored-by: FluxCapacitor2 <31071265+FluxCapacitor2@users.noreply.github.com> Co-authored-by: DeidaraMC <117625071+DeidaraMC@users.noreply.github.com> Co-authored-by: TogAr2 <59421074+togar2@users.noreply.github.com> Co-authored-by: DeidaraMC Co-authored-by: GreatWyrm Co-authored-by: kubbi Co-authored-by: MelonHell <53826469+MelonHell@users.noreply.github.com> Co-authored-by: Spliterash Co-authored-by: unjoinable <135444615+unjoinable@users.noreply.github.com> Co-authored-by: Matz Hilven <48355802+MatzHilven@users.noreply.github.com> Co-authored-by: bea4dev Co-authored-by: bea4dev <34712108+bea4dev@users.noreply.github.com> Co-authored-by: Not Flamgop <76978462+flopgop@users.noreply.github.com> Co-authored-by: ItsAnnie Co-authored-by: ItsAnnie Co-authored-by: Steank Co-authored-by: themode Co-authored-by: Am Gone <67794767+Am-Gone@users.noreply.github.com> Co-authored-by: AmGone_ Co-authored-by: GoldenStack Co-authored-by: Matt Worzala <35708499+mworzala@users.noreply.github.com> Co-authored-by: Aeltumn Co-authored-by: OneLiteFeather Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Steffen Wonning --- .../codegen/MinestomCodeGenerator.java | 4 + .../entity/VillagerProfessionGenerator.java | 194 ++++++++++++++++++ .../codegen/entity/VillagerTypeGenerator.java | 151 ++++++++++++++ .../minestom/server/feature/FeatureFlags.java | 35 ++++ .../net/minestom/server/coordinate/Vec.java | 6 + .../net/minestom/server/entity/Entity.java | 20 ++ .../net/minestom/server/entity/Player.java | 2 +- 7 files changed, 411 insertions(+), 1 deletion(-) create mode 100644 code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java create mode 100644 code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java create mode 100644 src/autogenerated/java/net/minestom/server/feature/FeatureFlags.java diff --git a/code-generators/src/main/java/net/minestom/codegen/MinestomCodeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/MinestomCodeGenerator.java index c868029a0ec..2056bea9dbf 100644 --- a/code-generators/src/main/java/net/minestom/codegen/MinestomCodeGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/MinestomCodeGenerator.java @@ -43,4 +43,8 @@ protected static String toConstant(String namespace) { protected static String toConstant(String namespace) { return namespace.replace("minecraft:", "").toUpperCase(Locale.ROOT); } + + protected static String toConstant(String namespace) { + return namespace.replace("minecraft:", "").toUpperCase(Locale.ROOT); + } } diff --git a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java new file mode 100644 index 00000000000..9309c8ec68d --- /dev/null +++ b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java @@ -0,0 +1,194 @@ +package net.minestom.codegen.entity; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.squareup.javapoet.*; +import net.minestom.codegen.MinestomCodeGenerator; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import net.minestom.codegen.util.GenerationHelper; + +import javax.lang.model.element.Modifier; +import java.io.File; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.List; + +import static net.minestom.codegen.util.GenerationHelper.*; + +@ApiStatus.NonExtendable +@ApiStatus.Internal +public final class VillagerProfessionGenerator extends MinestomCodeGenerator { + + private static final String VILLAGER_PROFESSION_DATE = "villagerProfessionData"; + private static final Logger LOGGER = LoggerFactory.getLogger(VillagerProfessionGenerator.class); + private final InputStream villagerProfessionsFile; + private final File outputFolder; + + + public VillagerProfessionGenerator(@Nullable InputStream villagerProfessionsFile, @NotNull File outputFolder) { + this.villagerProfessionsFile = villagerProfessionsFile; + this.outputFolder = outputFolder; + } + + @Override + public void generate() { + if (villagerProfessionsFile == null) { + LOGGER.error("Failed to find villager_professions.json."); + LOGGER.error("Stopped code generation for villager professions."); + return; + } + if (!outputFolder.exists() && !outputFolder.mkdirs()) { + LOGGER.error("Output folder for code generation does not exist and could not be created."); + return; + } + // Important classes we use alot + ClassName rawVillagerProfessionDataClassName = ClassName.get("net.minestom.server.raw_data", "RawVillagerProfessionData"); + + JsonArray villagerProfessions = GSON.fromJson(new InputStreamReader(villagerProfessionsFile), JsonArray.class); + ClassName villagerProfessionClassName = ClassName.get("net.minestom.server.entity.metadata.villager", "VillagerProfession"); + + // Particle + TypeSpec.Builder villagerProfessionClass = TypeSpec.classBuilder(villagerProfessionClassName) + .addSuperinterface(KEYORI_ADVENTURE_KEY) + .addModifiers(Modifier.PUBLIC).addJavadoc("AUTOGENERATED by " + getClass().getSimpleName()); + villagerProfessionClass.addField( + FieldSpec.builder(NAMESPACE_ID_CLASS, "id") + .addModifiers(Modifier.PRIVATE, Modifier.FINAL).addAnnotation(NotNull.class).build() + ); + villagerProfessionClass.addField( + FieldSpec.builder(rawVillagerProfessionDataClassName, VILLAGER_PROFESSION_DATE) + .addModifiers(Modifier.PRIVATE, Modifier.VOLATILE) + .addAnnotation(NotNull.class) + .build() + ); + villagerProfessionClass.addMethod( + MethodSpec.constructorBuilder() + .addParameter(ParameterSpec.builder(NAMESPACE_ID_CLASS, "id").addAnnotation(NotNull.class).build()) + .addParameter(ParameterSpec.builder(rawVillagerProfessionDataClassName, VILLAGER_PROFESSION_DATE).addAnnotation(NotNull.class).build()) + .addStatement(VARIABLE_SETTER, "id") + .addStatement(VARIABLE_SETTER, VILLAGER_PROFESSION_DATE) + .addModifiers(Modifier.PROTECTED) + .build() + ); + // Override key method (adventure) + villagerProfessionClass.addMethod(GenerationHelper.ADVENTURE_KEY_METHOD); + // getId method + villagerProfessionClass.addMethod(GenerationHelper.ID_GETTER); + // getVillagerProfessionData method + villagerProfessionClass.addMethod( + MethodSpec.methodBuilder("getVillagerProfessionData") + .returns(rawVillagerProfessionDataClassName) + .addAnnotation(NotNull.class) + .addStatement("return this.villagerProfessionData") + .addModifiers(Modifier.PUBLIC, Modifier.FINAL) + .build() + ); + // setVillagerProfessionData method + villagerProfessionClass.addMethod( + MethodSpec.methodBuilder("setVillagerProfessionData") + .addParameter(ParameterSpec.builder(rawVillagerProfessionDataClassName, VILLAGER_PROFESSION_DATE).addAnnotation(NotNull.class).build()) + .addStatement("this.$L1 = $L1", VILLAGER_PROFESSION_DATE) + .addModifiers(Modifier.PUBLIC, Modifier.FINAL) + .build() + ); + // getNumericalId + villagerProfessionClass.addMethod( + MethodSpec.methodBuilder("getNumericalId") + .returns(TypeName.INT) + .addStatement("return $T.VILLAGER_PROFESSION_REGISTRY.getId(this)", REGISTRY_CLASS) + .addModifiers(Modifier.PUBLIC) + .build() + ); + // fromId Method + villagerProfessionClass.addMethod( + MethodSpec.methodBuilder("fromId") + .returns(villagerProfessionClassName) + .addAnnotation(Nullable.class) + .addParameter(TypeName.INT, "id") + .addStatement("return $T.VILLAGER_PROFESSION_REGISTRY.get((short) id)", REGISTRY_CLASS) + .addModifiers(Modifier.PUBLIC, Modifier.STATIC) + .build() + ); + // fromId Method + villagerProfessionClass.addMethod( + MethodSpec.methodBuilder("fromId") + .returns(villagerProfessionClassName) + .addAnnotation(NotNull.class) + .addParameter(ADVENTURE_KEY, "id") + .addStatement("return $T.VILLAGER_PROFESSION_REGISTRY.get(id)", REGISTRY_CLASS) + .addModifiers(Modifier.PUBLIC, Modifier.STATIC) + .build() + ); + // toString method + villagerProfessionClass.addMethod(GenerationHelper.TO_STRING); + // values method + villagerProfessionClass.addMethod( + MethodSpec.methodBuilder("values") + .addAnnotation(NotNull.class) + .returns(ParameterizedTypeName.get(ClassName.get(List.class), villagerProfessionClassName)) + .addStatement("return $T.VILLAGER_PROFESSION_REGISTRY.values()", REGISTRY_CLASS) + .addModifiers(Modifier.PUBLIC, Modifier.STATIC) + .build() + ); + CodeBlock.Builder staticBlock = CodeBlock.builder(); + // Use data + for (JsonElement vp : villagerProfessions) { + JsonObject villagerProfession = vp.getAsJsonObject(); + + String villagerProfessionName = villagerProfession.get("name").getAsString(); + JsonElement workSound = villagerProfession.get("workSound"); + if (workSound == null) { + villagerProfessionClass.addField( + FieldSpec.builder( + villagerProfessionClassName, + villagerProfessionName + ).initializer( + "new $T($T.from($S), new $T(() -> null))", + villagerProfessionClassName, + NAMESPACE_ID_CLASS, + villagerProfession.get("id").getAsString(), + + rawVillagerProfessionDataClassName + ).addModifiers(Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).build() + ); + } else { + villagerProfessionClass.addField( + FieldSpec.builder( + villagerProfessionClassName, + villagerProfessionName + ).initializer( + "new $T($T.from($S), new $T(() -> $T.SOUND_EVENT_REGISTRY.get($S)))", + villagerProfessionClassName, + NAMESPACE_ID_CLASS, + villagerProfession.get("id").getAsString(), + + rawVillagerProfessionDataClassName, + REGISTRY_CLASS, + workSound.getAsString() + ).addModifiers(Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).build() + ); + } + + // Add to static init. + staticBlock.addStatement("$T.VILLAGER_PROFESSION_REGISTRY.register($N)", REGISTRY_CLASS, villagerProfessionName); + } + + villagerProfessionClass.addStaticBlock(staticBlock.build()); + + // Write files to outputFolder + writeFiles( + List.of( + JavaFile.builder("net.minestom.server.entity.metadata.villager", villagerProfessionClass.build()) + .indent(DEFAULT_INDENT) + .skipJavaLangImports(true) + .build() + ), + outputFolder + ); + } +} diff --git a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java new file mode 100644 index 00000000000..0f59af765a7 --- /dev/null +++ b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java @@ -0,0 +1,151 @@ +package net.minestom.codegen.entity; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.squareup.javapoet.*; +import net.minestom.codegen.MinestomCodeGenerator; +import net.minestom.codegen.util.GenerationHelper; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.lang.model.element.Modifier; +import java.io.File; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.List; + +import static net.minestom.codegen.util.GenerationHelper.ADVENTURE_KEY; +import static net.minestom.codegen.util.GenerationHelper.TO_STRING; + +@ApiStatus.NonExtendable +@ApiStatus.Internal +public final class VillagerTypeGenerator extends MinestomCodeGenerator { + private static final Logger LOGGER = LoggerFactory.getLogger(VillagerTypeGenerator.class); + private final InputStream villagerTypesFile; + private final File outputFolder; + + public VillagerTypeGenerator(@Nullable InputStream villagerTypesFile, @NotNull File outputFolder) { + this.villagerTypesFile = villagerTypesFile; + this.outputFolder = outputFolder; + } + + @Override + public void generate() { + if (villagerTypesFile == null) { + LOGGER.error("Failed to find villager_types.json."); + LOGGER.error("Stopped code generation for villager types."); + return; + } + if (!outputFolder.exists() && !outputFolder.mkdirs()) { + LOGGER.error("Output folder for code generation does not exist and could not be created."); + return; + } + // Important classes we use alot + JsonArray villagerTypes = GSON.fromJson(new InputStreamReader(villagerTypesFile), JsonArray.class); + ClassName villagerTypeClassName = ClassName.get("net.minestom.server.entity.metadata.villager", "VillagerType"); + + // Particle + TypeSpec.Builder villagerTypeClass = TypeSpec.classBuilder(villagerTypeClassName) + .addSuperinterface(KEYORI_ADVENTURE_KEY) + .addModifiers(Modifier.PUBLIC).addJavadoc("AUTOGENERATED by " + getClass().getSimpleName()); + villagerTypeClass.addField( + FieldSpec.builder(NAMESPACE_ID_CLASS, "id") + .addModifiers(Modifier.PRIVATE, Modifier.FINAL).addAnnotation(NotNull.class).build() + ); + villagerTypeClass.addMethod( + MethodSpec.constructorBuilder() + .addParameter(ParameterSpec.builder(NAMESPACE_ID_CLASS, "id").addAnnotation(NotNull.class).build()) + .addStatement("this.id = id") + .addModifiers(Modifier.PROTECTED) + .build() + ); + // Override key method (adventure) + villagerTypeClass.addMethod(GenerationHelper.ID_GETTER); + // getId method + villagerTypeClass.addMethod( + MethodSpec.methodBuilder("getId") + .returns(NAMESPACE_ID_CLASS) + .addAnnotation(NotNull.class) + .addStatement("return this.id") + .addModifiers(Modifier.PUBLIC) + .build() + ); + // getNumericalId + villagerTypeClass.addMethod( + MethodSpec.methodBuilder("getNumericalId") + .returns(TypeName.INT) + .addStatement("return $T.VILLAGER_TYPE_REGISTRY.getId(this)", REGISTRY_CLASS) + .addModifiers(Modifier.PUBLIC) + .build() + ); + // fromId Method + villagerTypeClass.addMethod( + MethodSpec.methodBuilder("fromId") + .returns(villagerTypeClassName) + .addAnnotation(Nullable.class) + .addParameter(TypeName.INT, "id") + .addStatement("return $T.VILLAGER_TYPE_REGISTRY.get((short) id)", REGISTRY_CLASS) + .addModifiers(Modifier.PUBLIC, Modifier.STATIC) + .build() + ); + // fromId Method + villagerTypeClass.addMethod( + MethodSpec.methodBuilder("fromId") + .returns(villagerTypeClassName) + .addAnnotation(NotNull.class) + .addParameter(ADVENTURE_KEY, "id") + .addStatement("return $T.VILLAGER_TYPE_REGISTRY.get(id)", REGISTRY_CLASS) + .addModifiers(Modifier.PUBLIC, Modifier.STATIC) + .build() + ); + // toString method + villagerTypeClass.addMethod(TO_STRING); + // values method + villagerTypeClass.addMethod( + MethodSpec.methodBuilder("values") + .addAnnotation(NotNull.class) + .returns(ParameterizedTypeName.get(ClassName.get(List.class), villagerTypeClassName)) + .addStatement("return $T.VILLAGER_TYPE_REGISTRY.values()", REGISTRY_CLASS) + .addModifiers(Modifier.PUBLIC, Modifier.STATIC) + .build() + ); + CodeBlock.Builder staticBlock = CodeBlock.builder(); + // Use data + for (JsonElement vp : villagerTypes) { + JsonObject villagerProfession = vp.getAsJsonObject(); + + String villagerProfessionName = villagerProfession.get("name").getAsString(); + + villagerTypeClass.addField( + FieldSpec.builder( + villagerTypeClassName, + villagerProfessionName + ).initializer( + "new $T($T.from($S))", + villagerTypeClassName, + NAMESPACE_ID_CLASS, + villagerProfession.get("id").getAsString() + ).addModifiers(Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).build() + ); + // Add to static init. + staticBlock.addStatement("$T.VILLAGER_TYPE_REGISTRY.register($N)", REGISTRY_CLASS, villagerProfessionName); + } + + villagerTypeClass.addStaticBlock(staticBlock.build()); + + // Write files to outputFolder + writeFiles( + List.of( + JavaFile.builder("net.minestom.server.entity.metadata.villager", villagerTypeClass.build()) + .indent(DEFAULT_INDENT) + .skipJavaLangImports(true) + .build() + ), + outputFolder + ); + } +} diff --git a/src/autogenerated/java/net/minestom/server/feature/FeatureFlags.java b/src/autogenerated/java/net/minestom/server/feature/FeatureFlags.java new file mode 100644 index 00000000000..983bd307419 --- /dev/null +++ b/src/autogenerated/java/net/minestom/server/feature/FeatureFlags.java @@ -0,0 +1,35 @@ +package net.minestom.server.feature; + +import net.minestom.server.utils.NamespaceID; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * AUTOGENERATED by FeatureFlagGenerator + */ +public enum FeatureFlags { + UPDATE_1_21(NamespaceID.from("minecraft:update_1_21")), + + BUNDLE(NamespaceID.from("minecraft:bundle")), + + VANILLA(NamespaceID.from("minecraft:vanilla")), + + TRADE_REBALANCE(NamespaceID.from("minecraft:trade_rebalance")); + + private static final FeatureFlags[] VALUES = FeatureFlags.values(); + + private final NamespaceID feature; + + FeatureFlags(@NotNull NamespaceID feature) { + this.feature = feature; + } + + public @NotNull NamespaceID feature() { + return this.feature; + } + + @Nullable + public static FeatureFlags getValue(int id) { + return VALUES[id]; + } +} diff --git a/src/main/java/net/minestom/server/coordinate/Vec.java b/src/main/java/net/minestom/server/coordinate/Vec.java index 71dde7352f3..338a134c786 100644 --- a/src/main/java/net/minestom/server/coordinate/Vec.java +++ b/src/main/java/net/minestom/server/coordinate/Vec.java @@ -500,6 +500,12 @@ static Operator operator(@NotNull DoubleUnaryOperator operator) { Math.signum(z) ); + Operator SIGNUM = (x, y, z) -> new Vec( + Math.signum(x), + Math.signum(y), + Math.signum(z) + ); + @NotNull Vec apply(double x, double y, double z); } diff --git a/src/main/java/net/minestom/server/entity/Entity.java b/src/main/java/net/minestom/server/entity/Entity.java index cfc5358b92d..58a5f89abbc 100644 --- a/src/main/java/net/minestom/server/entity/Entity.java +++ b/src/main/java/net/minestom/server/entity/Entity.java @@ -1787,6 +1787,26 @@ protected void updateCollisions() { return acquirable; } + /** + * Acquires this entity. + * + * @param the type of object to be acquired + * @return the acquirable for this entity + * @deprecated It's preferred to use {@link AcquirableSource#acquirable()} instead, as it is overridden by + * subclasses + */ + @Deprecated + @ApiStatus.Experimental + public @NotNull Acquirable getAcquirable() { + return (Acquirable) acquirable; + } + + @ApiStatus.Experimental + @Override + public @NotNull Acquirable acquirable() { + return acquirable; + } + public enum Pose { STANDING, FALL_FLYING, diff --git a/src/main/java/net/minestom/server/entity/Player.java b/src/main/java/net/minestom/server/entity/Player.java index 4596404442b..e88d90de368 100644 --- a/src/main/java/net/minestom/server/entity/Player.java +++ b/src/main/java/net/minestom/server/entity/Player.java @@ -2529,7 +2529,7 @@ public void refresh(String locale, byte viewDistance, ChatMessageType chatMessag this.allowServerListings = allowServerListings; boolean isInPlayState = getPlayerConnection().getConnectionState() == ConnectionState.PLAY; - PlayerMeta playerMeta = getUnsafeEntityMeta(); + PlayerMeta playerMeta = getPlayerMeta(); if (isInPlayState) playerMeta.setNotifyAboutChanges(false); playerMeta.setDisplayedSkinParts(displayedSkinParts); playerMeta.setRightMainHand(this.mainHand == MainHand.RIGHT); From 26e4dae6ac5f912060a2c571194706144e71c03c Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Mon, 9 Sep 2024 21:59:51 +0200 Subject: [PATCH 76/93] Pull upstream (#73) * Fix entity position desync when spawned in an 8 block radius from world center (0,0,0) (#2299) * fix: entity spawn pos desync * Fix tests * Update API for swept entity <-> entity collisions (#2343) * Update API for swept entity <-> entity collisions * Move EntityCollisionResult to its own class (#2345) * Move EntityCollisionResult to its own class * Return directional information from entity collision (#2346) * fix entity collisions (#2348) * Ability to get collision shape position from PhysicsResult (#2355) * ability to get collision shape position from PhysicsResult * Coordinate limit to prevent potential overflow * fix some jcstress files * clear remaining hephaistos usage * Make BoundingBox/ShapeImpl records (#2371) * Use a single int for all block states (#2373) * Light cleanup (#2372) * record namespace (#2374) * Add EquipmentSlot.BODY (#2325) * Add EquipmentSlot.BODY * EntityEquipmentPacket should now have 7 entries * Simplify isHand check * Fix tests --------- Co-authored-by: Matt Worzala <35708499+mworzala@users.noreply.github.com> * unused cache * Implement Graph Cache in CommandManager (#2360) * update dependencies * Remove caffeine dependency from EventNode (#2375) * Remove mojang utils cache * fix team visibility (#2186) * Fix chunks not being refreshed when view distance updates (#2197) * Fix chunks not being refreshed when view distance updates * give more control of collisions to the entities colliding (#2350) * give more control of collisions to the entities colliding * Playsound exclude (#2381) * Add Instance::playSoundExcept * Uh... * fix: saturation not working in food item component (#2382) * fix missing inversion in DataComponentMap#diff handling for removed entries (#2359) * More Vec operator, more min/max methods * Remove no longer exists methods * Disable failed test * Improve AtomicReference handling * Fix test execution when loading chunk outside of the main thread * Improve AtomicReference handling in some tests --------- Co-authored-by: Am Gone <67794767+Am-Gone@users.noreply.github.com> Co-authored-by: iam Co-authored-by: Lorenz Wrobel <43410952+DasBabyPixel@users.noreply.github.com> Co-authored-by: themode Co-authored-by: TogAr2 <59421074+TogAr2@users.noreply.github.com> Co-authored-by: Matt Worzala <35708499+mworzala@users.noreply.github.com> Co-authored-by: Kerman <46640204+KermanIsPretty@users.noreply.github.com> Co-authored-by: bea4dev <34712108+bea4dev@users.noreply.github.com> Co-authored-by: GreatWyrm Co-authored-by: Samuel Co-authored-by: SLH <114884726+SLH335@users.noreply.github.com> Co-authored-by: Floweynt <50057682+Floweynt@users.noreply.github.com> Co-authored-by: theEvilReaper --- gradle/libs.versions.toml | 0 .../net/minestom/server/entity/Player.java | 38 ++++++++++++++----- 2 files changed, 29 insertions(+), 9 deletions(-) create mode 100644 gradle/libs.versions.toml diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/main/java/net/minestom/server/entity/Player.java b/src/main/java/net/minestom/server/entity/Player.java index e88d90de368..ef1696a5ea9 100644 --- a/src/main/java/net/minestom/server/entity/Player.java +++ b/src/main/java/net/minestom/server/entity/Player.java @@ -613,15 +613,6 @@ public void remove(boolean permanent) { if (permanent && playerConnection.isOnline()) kick(REMOVE_MESSAGE); } - @Override - public void updateOldViewer(@NotNull Player player) { - super.updateOldViewer(player); - // Team - if (this.getTeam() != null && this.getTeam().getMembers().size() == 1) {// If team only contains "this" player - player.sendPacket(this.getTeam().createTeamDestructionPacket()); - } - } - @Override public void sendPacketToViewersAndSelf(@NotNull SendablePacket packet) { sendPacket(packet); @@ -1651,6 +1642,7 @@ public boolean setGameMode(@NotNull GameMode gameMode) { // Make sure that the player is in the PLAY state and synchronize their flight speed. if (isActive()) { refreshAbilities(); + updateCollisions(); } return true; @@ -2384,6 +2376,12 @@ public void setLocale(@Nullable Locale locale) { return this.pointers; } + @Override + protected void updateCollisions() { + preventBlockPlacement = gameMode != GameMode.SPECTATOR; + collidesWithEntities = gameMode != GameMode.SPECTATOR; + } + protected void sendChunkUpdates(Chunk newChunk) { if (chunkUpdateLimitChecker.addToHistory(newChunk)) { final int newX = newChunk.getChunkX(); @@ -2520,6 +2518,7 @@ public void refresh(String locale, byte viewDistance, ChatMessageType chatMessag byte displayedSkinParts, MainHand mainHand, boolean enableTextFiltering, boolean allowServerListings) { this.locale = locale; // Clamp viewDistance to valid bounds + byte previousViewDistance = this.viewDistance; this.viewDistance = (byte) MathUtils.clamp(viewDistance, 2, 32); this.chatMessageType = chatMessageType; this.chatColors = chatColors; @@ -2528,6 +2527,27 @@ public void refresh(String locale, byte viewDistance, ChatMessageType chatMessag this.enableTextFiltering = enableTextFiltering; this.allowServerListings = allowServerListings; + // Check to see if we're in an instance first, as this method is called when first logging in since the client sends the Settings packet during configuration + if (instance != null) { + // Load/unload chunks if necessary due to view distance changes + if (previousViewDistance < this.viewDistance) { + // View distance expanded, send chunks + ChunkUtils.forChunksInRange(position.chunkX(), position.chunkZ(), this.viewDistance, (chunkX, chunkZ) -> { + if (Math.abs(chunkX - position.chunkX()) > previousViewDistance || Math.abs(chunkZ - position.chunkZ()) > previousViewDistance) { + chunkAdder.accept(chunkX, chunkZ); + } + }); + } else if (previousViewDistance > this.viewDistance) { + // View distance shrunk, unload chunks + ChunkUtils.forChunksInRange(position.chunkX(), position.chunkZ(), previousViewDistance, (chunkX, chunkZ) -> { + if (Math.abs(chunkX - position.chunkX()) > this.viewDistance || Math.abs(chunkZ - position.chunkZ()) > this.viewDistance) { + chunkRemover.accept(chunkX, chunkZ); + } + }); + } + // Else previous and current are equal, do nothing + } + boolean isInPlayState = getPlayerConnection().getConnectionState() == ConnectionState.PLAY; PlayerMeta playerMeta = getPlayerMeta(); if (isInPlayState) playerMeta.setNotifyAboutChanges(false); From 276f15539615e01c5601a4bd8168049a79f63695 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Sat, 14 Sep 2024 16:23:31 +0200 Subject: [PATCH 77/93] Fix update feature packet --- .../server/configuration/UpdateEnabledFeaturesPacket.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/minestom/server/network/packet/server/configuration/UpdateEnabledFeaturesPacket.java b/src/main/java/net/minestom/server/network/packet/server/configuration/UpdateEnabledFeaturesPacket.java index d2cc2c52594..a819d0af3d6 100644 --- a/src/main/java/net/minestom/server/network/packet/server/configuration/UpdateEnabledFeaturesPacket.java +++ b/src/main/java/net/minestom/server/network/packet/server/configuration/UpdateEnabledFeaturesPacket.java @@ -19,7 +19,7 @@ public UpdateEnabledFeaturesPacket(@NotNull NetworkBuffer buffer) { @Override public void write(@NotNull NetworkBuffer writer) { - writer.writeCollection(features, (b, feature) -> b.write(STRING, feature.namespace().toString())); + writer.writeCollection(features, (b, feature) -> b.write(STRING, feature.asString())); } @Override From 95291b8c0b94b2b99b27da4f8074511c082fe1ac Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Mon, 28 Oct 2024 12:39:39 +0100 Subject: [PATCH 78/93] Fix potential protocol mismatch and exploit --- .../java/net/minestom/server/entity/Player.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/net/minestom/server/entity/Player.java b/src/main/java/net/minestom/server/entity/Player.java index ef1696a5ea9..aa4c0d456f4 100644 --- a/src/main/java/net/minestom/server/entity/Player.java +++ b/src/main/java/net/minestom/server/entity/Player.java @@ -7,6 +7,7 @@ import net.kyori.adventure.identity.Identified; import net.kyori.adventure.identity.Identity; import net.kyori.adventure.inventory.Book; +import net.kyori.adventure.key.Key; import net.kyori.adventure.pointer.Pointers; import net.kyori.adventure.resource.ResourcePackCallback; import net.kyori.adventure.resource.ResourcePackInfo; @@ -905,8 +906,20 @@ public void sendMessage(final @NotNull Identity source, final @NotNull Component * * @param channel the message channel * @param data the message data + * @deprecated Use {@link #sendPluginMessage(Key, byte[])} instead. */ + @Deprecated(forRemoval = true, since = "1.5.0") public void sendPluginMessage(@NotNull String channel, byte @NotNull [] data) { + sendPluginMessage(Key.key(channel), data); + } + + /** + * Sends a plugin message to the player. + * + * @param channel the message channel + * @param data the message data + */ + public void sendPluginMessage(@NotNull Key channel, byte @NotNull [] data) { sendPacket(new PluginMessagePacket(channel, data)); } @@ -917,7 +930,9 @@ public void sendPluginMessage(@NotNull String channel, byte @NotNull [] data) { * * @param channel the message channel * @param message the message + * @deprecated Use {@link #sendPluginMessage(Key, byte[])} instead. */ + @Deprecated(forRemoval = true, since = "1.5.0") public void sendPluginMessage(@NotNull String channel, @NotNull String message) { sendPluginMessage(channel, message.getBytes(StandardCharsets.UTF_8)); } From 2f6ec4cd63046cc95f73f89c359a4c4af360ef43 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz Date: Thu, 31 Oct 2024 13:09:05 +0100 Subject: [PATCH 79/93] Remove obsolete attribute manager file --- .../net/minestom/server/entity/attribute/AttributeManager.java | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/main/java/net/minestom/server/entity/attribute/AttributeManager.java diff --git a/src/main/java/net/minestom/server/entity/attribute/AttributeManager.java b/src/main/java/net/minestom/server/entity/attribute/AttributeManager.java deleted file mode 100644 index e69de29bb2d..00000000000 From f905d42f902730c1668c06d77876913389f1761d Mon Sep 17 00:00:00 2001 From: Phillipp Glanz Date: Thu, 31 Oct 2024 13:27:25 +0100 Subject: [PATCH 80/93] Re-add fluid generation --- .../net/minestom/server/color/DyeColor.java | 5 +- .../java/net/minestom/server/fluid/Fluid.java | 62 ------------------- .../net/minestom/server/fluid/Fluids.java | 17 +++++ .../server/registry/FluidRegistries.java | 1 - .../java/net/minestom/server/fluid/Fluid.java | 37 +++++++++++ .../net/minestom/server/fluid/FluidImpl.java | 34 ++++++++++ 6 files changed, 90 insertions(+), 66 deletions(-) delete mode 100644 src/autogenerated/java/net/minestom/server/fluid/Fluid.java create mode 100644 src/autogenerated/java/net/minestom/server/fluid/Fluids.java create mode 100644 src/main/java/net/minestom/server/fluid/Fluid.java create mode 100644 src/main/java/net/minestom/server/fluid/FluidImpl.java diff --git a/src/autogenerated/java/net/minestom/server/color/DyeColor.java b/src/autogenerated/java/net/minestom/server/color/DyeColor.java index b5649ca07bd..4091cc1fa1b 100644 --- a/src/autogenerated/java/net/minestom/server/color/DyeColor.java +++ b/src/autogenerated/java/net/minestom/server/color/DyeColor.java @@ -46,7 +46,7 @@ public enum DyeColor implements RGBLike { public static final BinaryTagSerializer NBT_TYPE = BinaryTagSerializer.fromEnumStringable(DyeColor.class); - private static final DyeColor[] VALUES = DyeColor.values(); + private static final DyeColor[] VALUES = values(); private final Color textureDiffuseColor; @@ -95,8 +95,7 @@ public int mapColorId() { return this.mapColorId; } - @Nullable - public static DyeColor getValue(int id) { + public static @Nullable DyeColor getValue(int id) { return VALUES[id]; } } diff --git a/src/autogenerated/java/net/minestom/server/fluid/Fluid.java b/src/autogenerated/java/net/minestom/server/fluid/Fluid.java deleted file mode 100644 index e00575f9bbc..00000000000 --- a/src/autogenerated/java/net/minestom/server/fluid/Fluid.java +++ /dev/null @@ -1,62 +0,0 @@ -package net.minestom.server.fluid; - -import net.kyori.adventure.key.Key; -import net.kyori.adventure.key.Keyed; -import net.minestom.server.registry.FluidRegistries; -import net.minestom.server.utils.NamespaceID; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * AUTOGENERATED by FluidGenerator - */ -public enum Fluid implements Keyed { - EMPTY(NamespaceID.from("minecraft:empty")), - - FLOWING_WATER(NamespaceID.from("minecraft:flowing_water")), - - WATER(NamespaceID.from("minecraft:water")), - - FLOWING_LAVA(NamespaceID.from("minecraft:flowing_lava")), - - LAVA(NamespaceID.from("minecraft:lava")); - - private static final Fluid[] VALUES = values(); - - @NotNull - private final NamespaceID id; - - Fluid(@NotNull NamespaceID id) { - this.id = id; - FluidRegistries.fluids.put(id, this); - } - - @Override - @NotNull - public Key key() { - return this.id; - } - - public short getId() { - return (short) ordinal(); - } - - @NotNull - public NamespaceID getNamespaceID() { - return this.id; - } - - @NotNull - @Override - public String toString() { - return "[" + this.id + "]"; - } - - @Nullable - public static Fluid fromId(short id) { - if(id >= 0 && id < VALUES.length) { - return VALUES[id]; - } - return null; - } -} diff --git a/src/autogenerated/java/net/minestom/server/fluid/Fluids.java b/src/autogenerated/java/net/minestom/server/fluid/Fluids.java new file mode 100644 index 00000000000..27157009e9e --- /dev/null +++ b/src/autogenerated/java/net/minestom/server/fluid/Fluids.java @@ -0,0 +1,17 @@ +package net.minestom.server.fluid; + +/** + * Code autogenerated, do not edit! + */ +@SuppressWarnings("unused") +interface Fluids { + Fluid EMPTY = FluidImpl.get("minecraft:empty"); + + Fluid FLOWING_WATER = FluidImpl.get("minecraft:flowing_water"); + + Fluid WATER = FluidImpl.get("minecraft:water"); + + Fluid FLOWING_LAVA = FluidImpl.get("minecraft:flowing_lava"); + + Fluid LAVA = FluidImpl.get("minecraft:lava"); +} diff --git a/src/autogenerated/java/net/minestom/server/registry/FluidRegistries.java b/src/autogenerated/java/net/minestom/server/registry/FluidRegistries.java index f6e23118b11..08e92ebacdb 100644 --- a/src/autogenerated/java/net/minestom/server/registry/FluidRegistries.java +++ b/src/autogenerated/java/net/minestom/server/registry/FluidRegistries.java @@ -2,7 +2,6 @@ package net.minestom.server.registry; import net.kyori.adventure.key.Key; -import net.minestom.server.fluid.Fluid; import net.minestom.server.utils.NamespaceID; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/net/minestom/server/fluid/Fluid.java b/src/main/java/net/minestom/server/fluid/Fluid.java new file mode 100644 index 00000000000..c9e6bedf370 --- /dev/null +++ b/src/main/java/net/minestom/server/fluid/Fluid.java @@ -0,0 +1,37 @@ +package net.minestom.server.fluid; + +import net.minestom.server.registry.Registry; +import net.minestom.server.registry.StaticProtocolObject; +import net.minestom.server.utils.NamespaceID; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Collection; + +public sealed interface Fluid extends StaticProtocolObject, Fluids permits FluidImpl { + /** + * Returns the entity registry. + * + * @return the entity registry or null if it was created with a builder + */ + @Contract(pure = true) + @Nullable + Registry.FluidEntry registry(); + + @Override + @NotNull + NamespaceID namespace(); + + static @NotNull Collection<@NotNull Fluid> values() { + return FluidImpl.values(); + } + + static @Nullable Fluid fromNamespaceId(@NotNull String namespaceID) { + return FluidImpl.getSafe(namespaceID); + } + + static @Nullable Fluid fromNamespaceId(@NotNull NamespaceID namespaceID) { + return fromNamespaceId(namespaceID.asString()); + } +} diff --git a/src/main/java/net/minestom/server/fluid/FluidImpl.java b/src/main/java/net/minestom/server/fluid/FluidImpl.java new file mode 100644 index 00000000000..73a779322f9 --- /dev/null +++ b/src/main/java/net/minestom/server/fluid/FluidImpl.java @@ -0,0 +1,34 @@ +package net.minestom.server.fluid; + +import net.minestom.server.registry.Registry; +import net.minestom.server.utils.NamespaceID; +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; +import java.util.concurrent.atomic.AtomicInteger; + +public record FluidImpl(Registry.FluidEntry registry, NamespaceID namespace, int id) implements Fluid { + + private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.FLUIDS, FluidImpl::createImpl); + private static final AtomicInteger INDEX = new AtomicInteger(); + + private static FluidImpl createImpl(String namespace, Registry.Properties properties) { + return new FluidImpl(Registry.fluidEntry(namespace, properties)); + } + + private FluidImpl(Registry.FluidEntry registry) { + this(registry, registry.namespace(), INDEX.getAndIncrement()); + } + + static Collection values() { + return CONTAINER.values(); + } + + public static Fluid get(@NotNull String namespace) { + return CONTAINER.get(namespace); + } + + static Fluid getSafe(@NotNull String namespace) { + return CONTAINER.getSafe(namespace); + } +} From 1eb9593550152f75b13358745a43c4a4c521ac8d Mon Sep 17 00:00:00 2001 From: Phillipp Glanz Date: Thu, 31 Oct 2024 13:27:53 +0100 Subject: [PATCH 81/93] Remove old fluid registry --- .../server/registry/FluidRegistries.java | 44 ------------------- 1 file changed, 44 deletions(-) delete mode 100644 src/autogenerated/java/net/minestom/server/registry/FluidRegistries.java diff --git a/src/autogenerated/java/net/minestom/server/registry/FluidRegistries.java b/src/autogenerated/java/net/minestom/server/registry/FluidRegistries.java deleted file mode 100644 index 08e92ebacdb..00000000000 --- a/src/autogenerated/java/net/minestom/server/registry/FluidRegistries.java +++ /dev/null @@ -1,44 +0,0 @@ -// AUTOGENERATED by net.minestom.codegen.RegistriesGenerator -package net.minestom.server.registry; - -import net.kyori.adventure.key.Key; -import net.minestom.server.utils.NamespaceID; -import org.jetbrains.annotations.NotNull; - -import java.util.HashMap; - -/** - * AUTOGENERATED - */ -public final class FluidRegistries { - - /** - * Should only be used for internal code, please use the get* methods. - */ - @Deprecated - public static final HashMap fluids = new HashMap<>(); - - /** - * Returns the corresponding Fluid matching the given id. Returns 'EMPTY' if none match. - */ - @NotNull - public static Fluid getFluid(String id) { - return getFluid(NamespaceID.from(id)); - } - - /** - * Returns the corresponding Fluid matching the given id. Returns 'EMPTY' if none match. - */ - @NotNull - public static Fluid getFluid(NamespaceID id) { - return fluids.getOrDefault(id, Fluid.EMPTY); - } - - /** - * Returns the corresponding Fluid matching the given key. Returns 'EMPTY' if none match. - */ - @NotNull - public static Fluid getFluid(Key key) { - return getFluid(NamespaceID.from(key)); - } -} From a68ca3ed2ac2744de5386f9b421e743158c8e1a9 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz Date: Thu, 31 Oct 2024 13:30:21 +0100 Subject: [PATCH 82/93] Re-add villager profession and type generation and implementation --- .../entity/villager/VillagerProfessions.java | 37 ++++++++++++ .../server/entity/villager/VillagerTypes.java | 21 +++++++ .../monster/zombie/ZombieVillagerMeta.java | 10 ++-- .../metadata/villager/VillagerMeta.java | 57 +++++-------------- .../entity/villager/VillagerProfession.java | 42 ++++++++++++++ .../villager/VillagerProfessionImpl.java | 39 +++++++++++++ .../server/entity/villager/VillagerType.java | 43 ++++++++++++++ .../entity/villager/VillagerTypeImpl.java | 39 +++++++++++++ .../minestom/server/registry/Registry.java | 10 ++++ 9 files changed, 250 insertions(+), 48 deletions(-) create mode 100644 src/autogenerated/java/net/minestom/server/entity/villager/VillagerProfessions.java create mode 100644 src/autogenerated/java/net/minestom/server/entity/villager/VillagerTypes.java create mode 100644 src/main/java/net/minestom/server/entity/villager/VillagerProfession.java create mode 100644 src/main/java/net/minestom/server/entity/villager/VillagerProfessionImpl.java create mode 100644 src/main/java/net/minestom/server/entity/villager/VillagerType.java create mode 100644 src/main/java/net/minestom/server/entity/villager/VillagerTypeImpl.java diff --git a/src/autogenerated/java/net/minestom/server/entity/villager/VillagerProfessions.java b/src/autogenerated/java/net/minestom/server/entity/villager/VillagerProfessions.java new file mode 100644 index 00000000000..0f47b8b5050 --- /dev/null +++ b/src/autogenerated/java/net/minestom/server/entity/villager/VillagerProfessions.java @@ -0,0 +1,37 @@ +package net.minestom.server.entity.villager; + +/** + * Code autogenerated, do not edit! + */ +@SuppressWarnings("unused") +interface VillagerProfessions { + VillagerProfession NONE = VillagerProfessionImpl.get("minecraft:none"); + + VillagerProfession ARMORER = VillagerProfessionImpl.get("minecraft:armorer"); + + VillagerProfession BUTCHER = VillagerProfessionImpl.get("minecraft:butcher"); + + VillagerProfession CARTOGRAPHER = VillagerProfessionImpl.get("minecraft:cartographer"); + + VillagerProfession CLERIC = VillagerProfessionImpl.get("minecraft:cleric"); + + VillagerProfession FARMER = VillagerProfessionImpl.get("minecraft:farmer"); + + VillagerProfession FISHERMAN = VillagerProfessionImpl.get("minecraft:fisherman"); + + VillagerProfession FLETCHER = VillagerProfessionImpl.get("minecraft:fletcher"); + + VillagerProfession LEATHERWORKER = VillagerProfessionImpl.get("minecraft:leatherworker"); + + VillagerProfession LIBRARIAN = VillagerProfessionImpl.get("minecraft:librarian"); + + VillagerProfession MASON = VillagerProfessionImpl.get("minecraft:mason"); + + VillagerProfession NITWIT = VillagerProfessionImpl.get("minecraft:nitwit"); + + VillagerProfession SHEPHERD = VillagerProfessionImpl.get("minecraft:shepherd"); + + VillagerProfession TOOLSMITH = VillagerProfessionImpl.get("minecraft:toolsmith"); + + VillagerProfession WEAPONSMITH = VillagerProfessionImpl.get("minecraft:weaponsmith"); +} diff --git a/src/autogenerated/java/net/minestom/server/entity/villager/VillagerTypes.java b/src/autogenerated/java/net/minestom/server/entity/villager/VillagerTypes.java new file mode 100644 index 00000000000..681ce44c1d3 --- /dev/null +++ b/src/autogenerated/java/net/minestom/server/entity/villager/VillagerTypes.java @@ -0,0 +1,21 @@ +package net.minestom.server.entity.villager; + +/** + * Code autogenerated, do not edit! + */ +@SuppressWarnings("unused") +interface VillagerTypes { + VillagerType DESERT = VillagerTypeImpl.get("minecraft:desert"); + + VillagerType JUNGLE = VillagerTypeImpl.get("minecraft:jungle"); + + VillagerType PLAINS = VillagerTypeImpl.get("minecraft:plains"); + + VillagerType SAVANNA = VillagerTypeImpl.get("minecraft:savanna"); + + VillagerType SNOW = VillagerTypeImpl.get("minecraft:snow"); + + VillagerType SWAMP = VillagerTypeImpl.get("minecraft:swamp"); + + VillagerType TAIGA = VillagerTypeImpl.get("minecraft:taiga"); +} diff --git a/src/main/java/net/minestom/server/entity/metadata/monster/zombie/ZombieVillagerMeta.java b/src/main/java/net/minestom/server/entity/metadata/monster/zombie/ZombieVillagerMeta.java index 66023cc1212..ea04af22fb9 100644 --- a/src/main/java/net/minestom/server/entity/metadata/monster/zombie/ZombieVillagerMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/monster/zombie/ZombieVillagerMeta.java @@ -4,6 +4,8 @@ import net.minestom.server.entity.Metadata; import net.minestom.server.entity.MetadataHolder; import net.minestom.server.entity.metadata.villager.VillagerMeta; +import net.minestom.server.entity.villager.VillagerProfession; +import net.minestom.server.entity.villager.VillagerType; import org.jetbrains.annotations.NotNull; public class ZombieVillagerMeta extends ZombieMeta { @@ -25,15 +27,15 @@ public void setConverting(boolean value) { public VillagerMeta.VillagerData getVillagerData() { int[] data = super.metadata.getIndex(OFFSET + 1, null); if (data == null) { - return new VillagerMeta.VillagerData(VillagerMeta.Type.PLAINS, VillagerMeta.Profession.NONE, VillagerMeta.Level.NOVICE); + return new VillagerMeta.VillagerData(VillagerType.PLAINS, VillagerProfession.NONE, VillagerMeta.Level.NOVICE); } - return new VillagerMeta.VillagerData(VillagerMeta.Type.VALUES[data[0]], VillagerMeta.Profession.VALUES[data[1]], VillagerMeta.Level.VALUES[data[2] - 1]); + return new VillagerMeta.VillagerData(VillagerType.fromId(data[0]), VillagerProfession.fromId(data[1]), VillagerMeta.Level.VALUES[data[2] - 1]); } public void setVillagerData(VillagerMeta.VillagerData data) { super.metadata.setIndex(OFFSET + 1, Metadata.VillagerData( - data.getType().ordinal(), - data.getProfession().ordinal(), + data.getType().id(), + data.getProfession().id(), data.getLevel().ordinal() + 1 )); } diff --git a/src/main/java/net/minestom/server/entity/metadata/villager/VillagerMeta.java b/src/main/java/net/minestom/server/entity/metadata/villager/VillagerMeta.java index aa72c04c097..6fd0de565c7 100644 --- a/src/main/java/net/minestom/server/entity/metadata/villager/VillagerMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/villager/VillagerMeta.java @@ -2,6 +2,8 @@ import net.minestom.server.entity.Entity; import net.minestom.server.entity.Metadata; +import net.minestom.server.entity.villager.VillagerProfession; +import net.minestom.server.entity.villager.VillagerType; import net.minestom.server.entity.MetadataHolder; import org.jetbrains.annotations.NotNull; @@ -17,46 +19,46 @@ public VillagerMeta(@NotNull Entity entity, @NotNull MetadataHolder metadata) { public VillagerData getVillagerData() { int[] data = super.metadata.getIndex(OFFSET, null); if (data == null) { - return new VillagerData(Type.PLAINS, Profession.NONE, Level.NOVICE); + return new VillagerData(VillagerType.PLAINS, VillagerProfession.NONE, Level.NOVICE); } - return new VillagerData(Type.VALUES[data[0]], Profession.VALUES[data[1]], Level.VALUES[data[2] - 1]); + return new VillagerData(VillagerType.fromId(data[0]), VillagerProfession.fromId(data[1]), Level.VALUES[data[2] - 1]); } public void setVillagerData(@NotNull VillagerData data) { super.metadata.setIndex(OFFSET, Metadata.VillagerData( - data.type.ordinal(), - data.profession.ordinal(), + data.type.id(), + data.profession.id(), data.level.ordinal() + 1 )); } public static class VillagerData { - private Type type; - private Profession profession; + private VillagerType type; + private VillagerProfession profession; private Level level; - public VillagerData(@NotNull Type type, @NotNull Profession profession, @NotNull Level level) { + public VillagerData(@NotNull VillagerType type, @NotNull VillagerProfession profession, @NotNull Level level) { this.type = type; this.profession = profession; this.level = level; } @NotNull - public Type getType() { + public VillagerType getType() { return this.type; } - public void setType(@NotNull Type type) { + public void setType(@NotNull VillagerType type) { this.type = type; } @NotNull - public Profession getProfession() { + public VillagerProfession getProfession() { return this.profession; } - public void setProfession(@NotNull Profession profession) { + public void setProfession(@NotNull VillagerProfession profession) { this.profession = profession; } @@ -70,39 +72,6 @@ public void setLevel(@NotNull Level level) { } } - public enum Type { - DESERT, - JUNGLE, - PLAINS, - SAVANNA, - SNOW, - SWAMP, - TAIGA; - - public final static Type[] VALUES = values(); - } - - public enum Profession { - NONE, - ARMORER, - BUTCHER, - CARTOGRAPHER, - CLERIC, - FARMER, - FISHERMAN, - FLETCHER, - LEATHERWORKER, - LIBRARIAN, - NITWIT, - UNEMPLOYED, - MASON, - SHEPHERD, - TOOLSMITH, - WEAPONSMITH; - - public final static Profession[] VALUES = values(); - } - public enum Level { NOVICE, APPRENTICE, diff --git a/src/main/java/net/minestom/server/entity/villager/VillagerProfession.java b/src/main/java/net/minestom/server/entity/villager/VillagerProfession.java new file mode 100644 index 00000000000..faf65662f88 --- /dev/null +++ b/src/main/java/net/minestom/server/entity/villager/VillagerProfession.java @@ -0,0 +1,42 @@ +package net.minestom.server.entity.villager; + +import net.kyori.adventure.key.Key; +import net.minestom.server.registry.Registry; +import net.minestom.server.registry.StaticProtocolObject; +import net.minestom.server.utils.NamespaceID; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Collection; + +public interface VillagerProfession extends StaticProtocolObject, VillagerProfessions { + static @NotNull Collection<@NotNull VillagerProfession> values() { + return VillagerProfessionImpl.values(); + } + + static @Nullable VillagerProfession fromNamespaceId(@NotNull String namespaceID) { + return VillagerProfessionImpl.getSafe(namespaceID); + } + + static @Nullable VillagerProfession fromNamespaceId(@NotNull NamespaceID namespaceID) { + return fromNamespaceId(namespaceID.asString()); + } + + static @Nullable VillagerProfession fromId(int id) { + return VillagerProfessionImpl.getId(id); + } + + @Override + default @NotNull Key key() { + return StaticProtocolObject.super.key(); + } + + @Contract(pure = true) + Registry.VillagerProfession registry(); + + @Override + default @NotNull NamespaceID namespace() { + return registry().namespace(); + } +} diff --git a/src/main/java/net/minestom/server/entity/villager/VillagerProfessionImpl.java b/src/main/java/net/minestom/server/entity/villager/VillagerProfessionImpl.java new file mode 100644 index 00000000000..338cbb39e3f --- /dev/null +++ b/src/main/java/net/minestom/server/entity/villager/VillagerProfessionImpl.java @@ -0,0 +1,39 @@ +package net.minestom.server.entity.villager; + +import net.minestom.server.registry.Registry; +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; + +public record VillagerProfessionImpl(Registry.VillagerProfession registry, int id) implements VillagerProfession { + private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.VILLAGER_PROFESSION, VillagerProfessionImpl::createImpl); + + public VillagerProfessionImpl(Registry.VillagerProfession registry) { + this(registry, registry.id()); + } + + private static VillagerProfession createImpl(String namespace, Registry.Properties properties) { + return new VillagerProfessionImpl(Registry.villagerProfession(namespace, properties)); + } + + static VillagerProfession get(@NotNull String namespace) { + return CONTAINER.get(namespace); + } + + static VillagerProfession getSafe(@NotNull String namespace) { + return CONTAINER.getSafe(namespace); + } + + static VillagerProfession getId(int id) { + return CONTAINER.getId(id); + } + + static Collection values() { + return CONTAINER.values(); + } + + @Override + public String toString() { + return name(); + } +} diff --git a/src/main/java/net/minestom/server/entity/villager/VillagerType.java b/src/main/java/net/minestom/server/entity/villager/VillagerType.java new file mode 100644 index 00000000000..ac8fcfd4f21 --- /dev/null +++ b/src/main/java/net/minestom/server/entity/villager/VillagerType.java @@ -0,0 +1,43 @@ +package net.minestom.server.entity.villager; + +import net.kyori.adventure.key.Key; +import net.minestom.server.registry.Registry; +import net.minestom.server.registry.StaticProtocolObject; +import net.minestom.server.utils.NamespaceID; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Collection; + +public sealed interface VillagerType extends StaticProtocolObject, VillagerTypes permits VillagerTypeImpl { + + static @NotNull Collection<@NotNull VillagerType> values() { + return VillagerTypeImpl.values(); + } + + static @Nullable VillagerType fromNamespaceId(@NotNull String namespaceID) { + return VillagerTypeImpl.getSafe(namespaceID); + } + + static @Nullable VillagerType fromNamespaceId(@NotNull NamespaceID namespaceID) { + return fromNamespaceId(namespaceID.asString()); + } + + static @Nullable VillagerType fromId(int id) { + return VillagerTypeImpl.getId(id); + } + + @Override + default @NotNull Key key() { + return StaticProtocolObject.super.key(); + } + + @Contract(pure = true) + Registry.VillagerType registry(); + + @Override + default @NotNull NamespaceID namespace() { + return registry().namespace(); + } +} diff --git a/src/main/java/net/minestom/server/entity/villager/VillagerTypeImpl.java b/src/main/java/net/minestom/server/entity/villager/VillagerTypeImpl.java new file mode 100644 index 00000000000..ec8af984f09 --- /dev/null +++ b/src/main/java/net/minestom/server/entity/villager/VillagerTypeImpl.java @@ -0,0 +1,39 @@ +package net.minestom.server.entity.villager; + +import net.minestom.server.registry.Registry; +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; + +public record VillagerTypeImpl(Registry.VillagerType registry, int id) implements VillagerType { + private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.VILLAGER_TYPES, VillagerTypeImpl::createImpl); + + public VillagerTypeImpl(Registry.VillagerType registry) { + this(registry, registry.id()); + } + + private static VillagerType createImpl(String namespace, Registry.Properties properties) { + return new VillagerTypeImpl(Registry.villagerType(namespace, properties)); + } + + static VillagerType get(@NotNull String namespace) { + return CONTAINER.get(namespace); + } + + static VillagerType getSafe(@NotNull String namespace) { + return CONTAINER.getSafe(namespace); + } + + static VillagerType getId(int id) { + return CONTAINER.getId(id); + } + + static Collection values() { + return CONTAINER.values(); + } + + @Override + public String toString() { + return name(); + } +} diff --git a/src/main/java/net/minestom/server/registry/Registry.java b/src/main/java/net/minestom/server/registry/Registry.java index 3b332561031..249ff3d8a7a 100644 --- a/src/main/java/net/minestom/server/registry/Registry.java +++ b/src/main/java/net/minestom/server/registry/Registry.java @@ -135,6 +135,16 @@ public static FluidEntry fluidEntry(String namespace, @NotNull Properties main) return new FluidEntry(namespace, main, null); } + @ApiStatus.Internal + public static VillagerProfession villagerProfession(String namespace, @NotNull Properties main) { + return new VillagerProfession(namespace, main, null); + } + + @ApiStatus.Internal + public static VillagerType villagerType(String namespace, @NotNull Properties main) { + return new VillagerType(namespace, main, null); + } + @ApiStatus.Internal public static Map> load(Resource resource) { Map> map = new HashMap<>(); From 36c745a18363d26329d80a4db61d8fa9a2175f74 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz Date: Thu, 31 Oct 2024 13:44:43 +0100 Subject: [PATCH 83/93] Fix small compile issues and adding missing method --- src/main/java/net/minestom/server/entity/Player.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/net/minestom/server/entity/Player.java b/src/main/java/net/minestom/server/entity/Player.java index aa4c0d456f4..6dffdae6999 100644 --- a/src/main/java/net/minestom/server/entity/Player.java +++ b/src/main/java/net/minestom/server/entity/Player.java @@ -36,6 +36,7 @@ import net.minestom.server.effects.Effects; import net.minestom.server.entity.attribute.Attribute; import net.minestom.server.entity.damage.DamageType; +import net.minestom.server.entity.metadata.EntityMeta; import net.minestom.server.entity.metadata.LivingEntityMeta; import net.minestom.server.entity.metadata.PlayerMeta; import net.minestom.server.entity.vehicle.PlayerVehicleInformation; @@ -1063,6 +1064,10 @@ public void setHealth(float health) { return (PlayerMeta) super.getEntityMeta(); } + protected @NotNull EntityMeta getUnsafeEntityMeta() { + return super.getEntityMeta(); + } + /** * Gets the player additional hearts. * From e00148dd97aa3ef85c133549daf7dada7ccb29e7 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz Date: Thu, 31 Oct 2024 13:49:24 +0100 Subject: [PATCH 84/93] Remove obsolete code generators --- .../entity/VillagerProfessionGenerator.java | 194 ------------------ .../codegen/entity/VillagerTypeGenerator.java | 151 -------------- .../codegen/fluid/FluidGenerator.java | 141 ------------- 3 files changed, 486 deletions(-) delete mode 100644 code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java delete mode 100644 code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java delete mode 100644 code-generators/src/main/java/net/minestom/codegen/fluid/FluidGenerator.java diff --git a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java deleted file mode 100644 index 9309c8ec68d..00000000000 --- a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java +++ /dev/null @@ -1,194 +0,0 @@ -package net.minestom.codegen.entity; - -import com.google.gson.JsonArray; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.squareup.javapoet.*; -import net.minestom.codegen.MinestomCodeGenerator; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import net.minestom.codegen.util.GenerationHelper; - -import javax.lang.model.element.Modifier; -import java.io.File; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.List; - -import static net.minestom.codegen.util.GenerationHelper.*; - -@ApiStatus.NonExtendable -@ApiStatus.Internal -public final class VillagerProfessionGenerator extends MinestomCodeGenerator { - - private static final String VILLAGER_PROFESSION_DATE = "villagerProfessionData"; - private static final Logger LOGGER = LoggerFactory.getLogger(VillagerProfessionGenerator.class); - private final InputStream villagerProfessionsFile; - private final File outputFolder; - - - public VillagerProfessionGenerator(@Nullable InputStream villagerProfessionsFile, @NotNull File outputFolder) { - this.villagerProfessionsFile = villagerProfessionsFile; - this.outputFolder = outputFolder; - } - - @Override - public void generate() { - if (villagerProfessionsFile == null) { - LOGGER.error("Failed to find villager_professions.json."); - LOGGER.error("Stopped code generation for villager professions."); - return; - } - if (!outputFolder.exists() && !outputFolder.mkdirs()) { - LOGGER.error("Output folder for code generation does not exist and could not be created."); - return; - } - // Important classes we use alot - ClassName rawVillagerProfessionDataClassName = ClassName.get("net.minestom.server.raw_data", "RawVillagerProfessionData"); - - JsonArray villagerProfessions = GSON.fromJson(new InputStreamReader(villagerProfessionsFile), JsonArray.class); - ClassName villagerProfessionClassName = ClassName.get("net.minestom.server.entity.metadata.villager", "VillagerProfession"); - - // Particle - TypeSpec.Builder villagerProfessionClass = TypeSpec.classBuilder(villagerProfessionClassName) - .addSuperinterface(KEYORI_ADVENTURE_KEY) - .addModifiers(Modifier.PUBLIC).addJavadoc("AUTOGENERATED by " + getClass().getSimpleName()); - villagerProfessionClass.addField( - FieldSpec.builder(NAMESPACE_ID_CLASS, "id") - .addModifiers(Modifier.PRIVATE, Modifier.FINAL).addAnnotation(NotNull.class).build() - ); - villagerProfessionClass.addField( - FieldSpec.builder(rawVillagerProfessionDataClassName, VILLAGER_PROFESSION_DATE) - .addModifiers(Modifier.PRIVATE, Modifier.VOLATILE) - .addAnnotation(NotNull.class) - .build() - ); - villagerProfessionClass.addMethod( - MethodSpec.constructorBuilder() - .addParameter(ParameterSpec.builder(NAMESPACE_ID_CLASS, "id").addAnnotation(NotNull.class).build()) - .addParameter(ParameterSpec.builder(rawVillagerProfessionDataClassName, VILLAGER_PROFESSION_DATE).addAnnotation(NotNull.class).build()) - .addStatement(VARIABLE_SETTER, "id") - .addStatement(VARIABLE_SETTER, VILLAGER_PROFESSION_DATE) - .addModifiers(Modifier.PROTECTED) - .build() - ); - // Override key method (adventure) - villagerProfessionClass.addMethod(GenerationHelper.ADVENTURE_KEY_METHOD); - // getId method - villagerProfessionClass.addMethod(GenerationHelper.ID_GETTER); - // getVillagerProfessionData method - villagerProfessionClass.addMethod( - MethodSpec.methodBuilder("getVillagerProfessionData") - .returns(rawVillagerProfessionDataClassName) - .addAnnotation(NotNull.class) - .addStatement("return this.villagerProfessionData") - .addModifiers(Modifier.PUBLIC, Modifier.FINAL) - .build() - ); - // setVillagerProfessionData method - villagerProfessionClass.addMethod( - MethodSpec.methodBuilder("setVillagerProfessionData") - .addParameter(ParameterSpec.builder(rawVillagerProfessionDataClassName, VILLAGER_PROFESSION_DATE).addAnnotation(NotNull.class).build()) - .addStatement("this.$L1 = $L1", VILLAGER_PROFESSION_DATE) - .addModifiers(Modifier.PUBLIC, Modifier.FINAL) - .build() - ); - // getNumericalId - villagerProfessionClass.addMethod( - MethodSpec.methodBuilder("getNumericalId") - .returns(TypeName.INT) - .addStatement("return $T.VILLAGER_PROFESSION_REGISTRY.getId(this)", REGISTRY_CLASS) - .addModifiers(Modifier.PUBLIC) - .build() - ); - // fromId Method - villagerProfessionClass.addMethod( - MethodSpec.methodBuilder("fromId") - .returns(villagerProfessionClassName) - .addAnnotation(Nullable.class) - .addParameter(TypeName.INT, "id") - .addStatement("return $T.VILLAGER_PROFESSION_REGISTRY.get((short) id)", REGISTRY_CLASS) - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .build() - ); - // fromId Method - villagerProfessionClass.addMethod( - MethodSpec.methodBuilder("fromId") - .returns(villagerProfessionClassName) - .addAnnotation(NotNull.class) - .addParameter(ADVENTURE_KEY, "id") - .addStatement("return $T.VILLAGER_PROFESSION_REGISTRY.get(id)", REGISTRY_CLASS) - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .build() - ); - // toString method - villagerProfessionClass.addMethod(GenerationHelper.TO_STRING); - // values method - villagerProfessionClass.addMethod( - MethodSpec.methodBuilder("values") - .addAnnotation(NotNull.class) - .returns(ParameterizedTypeName.get(ClassName.get(List.class), villagerProfessionClassName)) - .addStatement("return $T.VILLAGER_PROFESSION_REGISTRY.values()", REGISTRY_CLASS) - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .build() - ); - CodeBlock.Builder staticBlock = CodeBlock.builder(); - // Use data - for (JsonElement vp : villagerProfessions) { - JsonObject villagerProfession = vp.getAsJsonObject(); - - String villagerProfessionName = villagerProfession.get("name").getAsString(); - JsonElement workSound = villagerProfession.get("workSound"); - if (workSound == null) { - villagerProfessionClass.addField( - FieldSpec.builder( - villagerProfessionClassName, - villagerProfessionName - ).initializer( - "new $T($T.from($S), new $T(() -> null))", - villagerProfessionClassName, - NAMESPACE_ID_CLASS, - villagerProfession.get("id").getAsString(), - - rawVillagerProfessionDataClassName - ).addModifiers(Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).build() - ); - } else { - villagerProfessionClass.addField( - FieldSpec.builder( - villagerProfessionClassName, - villagerProfessionName - ).initializer( - "new $T($T.from($S), new $T(() -> $T.SOUND_EVENT_REGISTRY.get($S)))", - villagerProfessionClassName, - NAMESPACE_ID_CLASS, - villagerProfession.get("id").getAsString(), - - rawVillagerProfessionDataClassName, - REGISTRY_CLASS, - workSound.getAsString() - ).addModifiers(Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).build() - ); - } - - // Add to static init. - staticBlock.addStatement("$T.VILLAGER_PROFESSION_REGISTRY.register($N)", REGISTRY_CLASS, villagerProfessionName); - } - - villagerProfessionClass.addStaticBlock(staticBlock.build()); - - // Write files to outputFolder - writeFiles( - List.of( - JavaFile.builder("net.minestom.server.entity.metadata.villager", villagerProfessionClass.build()) - .indent(DEFAULT_INDENT) - .skipJavaLangImports(true) - .build() - ), - outputFolder - ); - } -} diff --git a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java deleted file mode 100644 index 0f59af765a7..00000000000 --- a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java +++ /dev/null @@ -1,151 +0,0 @@ -package net.minestom.codegen.entity; - -import com.google.gson.JsonArray; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.squareup.javapoet.*; -import net.minestom.codegen.MinestomCodeGenerator; -import net.minestom.codegen.util.GenerationHelper; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.lang.model.element.Modifier; -import java.io.File; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.List; - -import static net.minestom.codegen.util.GenerationHelper.ADVENTURE_KEY; -import static net.minestom.codegen.util.GenerationHelper.TO_STRING; - -@ApiStatus.NonExtendable -@ApiStatus.Internal -public final class VillagerTypeGenerator extends MinestomCodeGenerator { - private static final Logger LOGGER = LoggerFactory.getLogger(VillagerTypeGenerator.class); - private final InputStream villagerTypesFile; - private final File outputFolder; - - public VillagerTypeGenerator(@Nullable InputStream villagerTypesFile, @NotNull File outputFolder) { - this.villagerTypesFile = villagerTypesFile; - this.outputFolder = outputFolder; - } - - @Override - public void generate() { - if (villagerTypesFile == null) { - LOGGER.error("Failed to find villager_types.json."); - LOGGER.error("Stopped code generation for villager types."); - return; - } - if (!outputFolder.exists() && !outputFolder.mkdirs()) { - LOGGER.error("Output folder for code generation does not exist and could not be created."); - return; - } - // Important classes we use alot - JsonArray villagerTypes = GSON.fromJson(new InputStreamReader(villagerTypesFile), JsonArray.class); - ClassName villagerTypeClassName = ClassName.get("net.minestom.server.entity.metadata.villager", "VillagerType"); - - // Particle - TypeSpec.Builder villagerTypeClass = TypeSpec.classBuilder(villagerTypeClassName) - .addSuperinterface(KEYORI_ADVENTURE_KEY) - .addModifiers(Modifier.PUBLIC).addJavadoc("AUTOGENERATED by " + getClass().getSimpleName()); - villagerTypeClass.addField( - FieldSpec.builder(NAMESPACE_ID_CLASS, "id") - .addModifiers(Modifier.PRIVATE, Modifier.FINAL).addAnnotation(NotNull.class).build() - ); - villagerTypeClass.addMethod( - MethodSpec.constructorBuilder() - .addParameter(ParameterSpec.builder(NAMESPACE_ID_CLASS, "id").addAnnotation(NotNull.class).build()) - .addStatement("this.id = id") - .addModifiers(Modifier.PROTECTED) - .build() - ); - // Override key method (adventure) - villagerTypeClass.addMethod(GenerationHelper.ID_GETTER); - // getId method - villagerTypeClass.addMethod( - MethodSpec.methodBuilder("getId") - .returns(NAMESPACE_ID_CLASS) - .addAnnotation(NotNull.class) - .addStatement("return this.id") - .addModifiers(Modifier.PUBLIC) - .build() - ); - // getNumericalId - villagerTypeClass.addMethod( - MethodSpec.methodBuilder("getNumericalId") - .returns(TypeName.INT) - .addStatement("return $T.VILLAGER_TYPE_REGISTRY.getId(this)", REGISTRY_CLASS) - .addModifiers(Modifier.PUBLIC) - .build() - ); - // fromId Method - villagerTypeClass.addMethod( - MethodSpec.methodBuilder("fromId") - .returns(villagerTypeClassName) - .addAnnotation(Nullable.class) - .addParameter(TypeName.INT, "id") - .addStatement("return $T.VILLAGER_TYPE_REGISTRY.get((short) id)", REGISTRY_CLASS) - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .build() - ); - // fromId Method - villagerTypeClass.addMethod( - MethodSpec.methodBuilder("fromId") - .returns(villagerTypeClassName) - .addAnnotation(NotNull.class) - .addParameter(ADVENTURE_KEY, "id") - .addStatement("return $T.VILLAGER_TYPE_REGISTRY.get(id)", REGISTRY_CLASS) - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .build() - ); - // toString method - villagerTypeClass.addMethod(TO_STRING); - // values method - villagerTypeClass.addMethod( - MethodSpec.methodBuilder("values") - .addAnnotation(NotNull.class) - .returns(ParameterizedTypeName.get(ClassName.get(List.class), villagerTypeClassName)) - .addStatement("return $T.VILLAGER_TYPE_REGISTRY.values()", REGISTRY_CLASS) - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .build() - ); - CodeBlock.Builder staticBlock = CodeBlock.builder(); - // Use data - for (JsonElement vp : villagerTypes) { - JsonObject villagerProfession = vp.getAsJsonObject(); - - String villagerProfessionName = villagerProfession.get("name").getAsString(); - - villagerTypeClass.addField( - FieldSpec.builder( - villagerTypeClassName, - villagerProfessionName - ).initializer( - "new $T($T.from($S))", - villagerTypeClassName, - NAMESPACE_ID_CLASS, - villagerProfession.get("id").getAsString() - ).addModifiers(Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).build() - ); - // Add to static init. - staticBlock.addStatement("$T.VILLAGER_TYPE_REGISTRY.register($N)", REGISTRY_CLASS, villagerProfessionName); - } - - villagerTypeClass.addStaticBlock(staticBlock.build()); - - // Write files to outputFolder - writeFiles( - List.of( - JavaFile.builder("net.minestom.server.entity.metadata.villager", villagerTypeClass.build()) - .indent(DEFAULT_INDENT) - .skipJavaLangImports(true) - .build() - ), - outputFolder - ); - } -} diff --git a/code-generators/src/main/java/net/minestom/codegen/fluid/FluidGenerator.java b/code-generators/src/main/java/net/minestom/codegen/fluid/FluidGenerator.java deleted file mode 100644 index 070a89138fb..00000000000 --- a/code-generators/src/main/java/net/minestom/codegen/fluid/FluidGenerator.java +++ /dev/null @@ -1,141 +0,0 @@ -package net.minestom.codegen.fluid; - -import com.google.gson.JsonObject; -import com.squareup.javapoet.*; -import net.minestom.codegen.MinestomCodeGenerator; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.lang.model.element.Modifier; -import java.io.File; -import java.io.InputStream; -import java.io.InputStreamReader; - -import static net.minestom.codegen.util.GenerationHelper.VARIABLE_SETTER; - -public final class FluidGenerator extends MinestomCodeGenerator { - private static final Logger LOGGER = LoggerFactory.getLogger(FluidGenerator.class); - private final InputStream fluidsFile; - private final File outputFolder; - - public FluidGenerator(@Nullable InputStream fluidsFile, @NotNull File outputFolder) { - this.fluidsFile = fluidsFile; - this.outputFolder = outputFolder; - } - - @Override - public void generate() { - if (fluidsFile == null) { - LOGGER.error("Failed to find fluids.json."); - LOGGER.error("Stopped code generation for fluids."); - return; - } - if (!outputFolder.exists() && !outputFolder.mkdirs()) { - LOGGER.error("Output folder for code generation does not exist and could not be created."); - return; - } - // Important classes we use alot - ClassName namespaceIDClassName = ClassName.get("net.minestom.server.utils", "NamespaceID"); - ClassName registriesClassName = ClassName.get("net.minestom.server.registry", "FluidRegistries"); - - JsonObject fluids = GSON.fromJson(new InputStreamReader(fluidsFile), JsonObject.class); - ClassName fluidClassName = ClassName.get("net.minestom.server.fluid", "Fluid"); - - // Particle - TypeSpec.Builder fluidClass = TypeSpec.enumBuilder(fluidClassName) - .addSuperinterface(ClassName.get("net.kyori.adventure.key", "Keyed")) - .addModifiers(Modifier.PUBLIC).addJavadoc("AUTOGENERATED by " + getClass().getSimpleName()); - - fluidClass.addField( - FieldSpec.builder(namespaceIDClassName, "id") - .addModifiers(PRIVATE_FINAL_MODIFIERS).addAnnotation(NotNull.class).build() - ); - // static field - fluidClass.addField( - FieldSpec.builder(ArrayTypeName.of(fluidClassName), "VALUES") - .addModifiers(Modifier.PRIVATE, Modifier.STATIC, Modifier.FINAL) - .initializer("values()") - .build() - ); - - fluidClass.addMethod( - MethodSpec.constructorBuilder() - .addParameter(ParameterSpec.builder(namespaceIDClassName, "id").addAnnotation(NotNull.class).build()) - .addStatement(VARIABLE_SETTER, "id") - .addStatement("$T.fluids.put(id, this)", registriesClassName) - .build() - ); - // Override key method (adventure) - fluidClass.addMethod( - MethodSpec.methodBuilder("key") - .returns(ClassName.get("net.kyori.adventure.key", "Key")) - .addAnnotation(Override.class) - .addAnnotation(NotNull.class) - .addStatement("return this.id") - .addModifiers(Modifier.PUBLIC) - .build() - ); - // getId method - fluidClass.addMethod( - MethodSpec.methodBuilder("getId") - .returns(TypeName.SHORT) - .addStatement("return (short) ordinal()") - .addModifiers(Modifier.PUBLIC) - .build() - ); - // getNamespaceID method - fluidClass.addMethod( - MethodSpec.methodBuilder("getNamespaceID") - .returns(namespaceIDClassName) - .addAnnotation(NotNull.class) - .addStatement("return this.id") - .addModifiers(Modifier.PUBLIC) - .build() - ); - // toString method - fluidClass.addMethod( - MethodSpec.methodBuilder("toString") - .addAnnotation(NotNull.class) - .addAnnotation(Override.class) - .returns(String.class) - // this resolves to [Namespace] - .addStatement("return \"[\" + this.id + \"]\"") - .addModifiers(Modifier.PUBLIC) - .build() - ); - - // fromId Method - fluidClass.addMethod( - MethodSpec.methodBuilder("fromId") - .returns(fluidClassName) - .addAnnotation(Nullable.class) - .addParameter(TypeName.SHORT, "id") - .beginControlFlow("if(id >= 0 && id < VALUES.length)") - .addStatement("return VALUES[id]") - .endControlFlow() - .addStatement("return null") - .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .build() - ); - - // Use data - fluids.entrySet().forEach(entry -> { - final String fluidName = entry.getKey(); - fluidClass.addEnumConstant(toConstant(fluidName), TypeSpec.anonymousClassBuilder( - "$T.from($S)", - namespaceIDClassName, - fluidName - ).build() - ); - }); - - // Write files to outputFolder - final JavaFile javaFile = JavaFile.builder("net.minestom.server.fluid", fluidClass.build()) - .indent(DEFAULT_INDENT) - .skipJavaLangImports(true) - .build(); - writeFile(javaFile, outputFolder); - } -} From ed1d32f5baf841f038f39867947f97faae9adb56 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz Date: Thu, 31 Oct 2024 13:49:42 +0100 Subject: [PATCH 85/93] Remove no longer needed tests --- .../server/command/ArgumentTypeTest.java | 8 ------ .../player/PlayerMovementIntegrationTest.java | 28 ------------------- 2 files changed, 36 deletions(-) diff --git a/src/test/java/net/minestom/server/command/ArgumentTypeTest.java b/src/test/java/net/minestom/server/command/ArgumentTypeTest.java index 7ca6ce421f6..b7450a6f89d 100644 --- a/src/test/java/net/minestom/server/command/ArgumentTypeTest.java +++ b/src/test/java/net/minestom/server/command/ArgumentTypeTest.java @@ -41,14 +41,6 @@ class ArgumentTypeTest { MinecraftServer.init(); } - @Test - void testArgumentEnchantment() { - var arg = ArgumentType.Enchantment("enchantment"); - assertInvalidArg(arg, "minecraft:invalid_enchantment"); - assertArg(arg, Enchantment.SWEEPING, Enchantment.SWEEPING.name()); - assertArg(arg, Enchantment.MENDING, Enchantment.MENDING.name()); - } - @Test void testArgumentEntityType() { var arg = ArgumentType.EntityType("entity_type"); diff --git a/src/test/java/net/minestom/server/entity/player/PlayerMovementIntegrationTest.java b/src/test/java/net/minestom/server/entity/player/PlayerMovementIntegrationTest.java index 0cfa87e6464..747b75ddc65 100644 --- a/src/test/java/net/minestom/server/entity/player/PlayerMovementIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/player/PlayerMovementIntegrationTest.java @@ -178,32 +178,4 @@ public void testSettingsViewDistanceExpansionAndShrink(Env env) { player.remove(); env.destroyInstance(instance); } - - @Test - public void testSettingsViewDistanceExpansionAndShrink(Env env) { - int startingViewDistance = 8; - byte endViewDistance = 12; - byte finalViewDistance = 10; - var instance = env.createFlatInstance(); - var connection = env.createConnection(); - Pos startingPlayerPos = new Pos(0, 42, 0); - var player = connection.connect(instance, startingPlayerPos).join(); - - int chunkDifference = ChunkUtils.getChunkCount(endViewDistance) - ChunkUtils.getChunkCount(startingViewDistance); - - // Preload chunks, otherwise our first tracker.assertCount call will fail randomly due to chunks being loaded off the main thread - ChunkUtils.forChunksInRange(0, 0, endViewDistance, instance::loadChunk); - - var tracker = connection.trackIncoming(ChunkDataPacket.class); - player.addPacketToQueue(new ClientSettingsPacket("en_US", endViewDistance, ChatMessageType.FULL, false, (byte) 0, Player.MainHand.RIGHT, false, true)); - player.interpretPacketQueue(); - tracker.assertCount(chunkDifference); - - var tracker1 = connection.trackIncoming(UnloadChunkPacket.class); - player.addPacketToQueue(new ClientSettingsPacket("en_US", finalViewDistance, ChatMessageType.FULL, false, (byte) 0, Player.MainHand.RIGHT, false, true)); - player.interpretPacketQueue(); - - int chunkDifference1 = ChunkUtils.getChunkCount(endViewDistance) - ChunkUtils.getChunkCount(finalViewDistance); - tracker1.assertCount(chunkDifference1); - } } From 40645d53652f5d8b3bc79d8837522363cc669db1 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz Date: Thu, 31 Oct 2024 13:51:08 +0100 Subject: [PATCH 86/93] Fix order of atomic int for fluid registry --- src/main/java/net/minestom/server/fluid/FluidImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/minestom/server/fluid/FluidImpl.java b/src/main/java/net/minestom/server/fluid/FluidImpl.java index 73a779322f9..330108fefc3 100644 --- a/src/main/java/net/minestom/server/fluid/FluidImpl.java +++ b/src/main/java/net/minestom/server/fluid/FluidImpl.java @@ -9,8 +9,8 @@ public record FluidImpl(Registry.FluidEntry registry, NamespaceID namespace, int id) implements Fluid { - private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.FLUIDS, FluidImpl::createImpl); private static final AtomicInteger INDEX = new AtomicInteger(); + private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.FLUIDS, FluidImpl::createImpl); private static FluidImpl createImpl(String namespace, Registry.Properties properties) { return new FluidImpl(Registry.fluidEntry(namespace, properties)); From 019c1110d9519b4caeaaa8cc3da6a3d09c1f4aa7 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz Date: Thu, 31 Oct 2024 13:51:46 +0100 Subject: [PATCH 87/93] Add missing import --- demo/src/main/java/net/minestom/demo/PlayerInit.java | 1 + 1 file changed, 1 insertion(+) diff --git a/demo/src/main/java/net/minestom/demo/PlayerInit.java b/demo/src/main/java/net/minestom/demo/PlayerInit.java index e2a713f288e..9311673fd6b 100644 --- a/demo/src/main/java/net/minestom/demo/PlayerInit.java +++ b/demo/src/main/java/net/minestom/demo/PlayerInit.java @@ -27,6 +27,7 @@ import net.minestom.server.event.player.PlayerBlockPlaceEvent; import net.minestom.server.event.player.PlayerDeathEvent; import net.minestom.server.event.player.PlayerDisconnectEvent; +import net.minestom.server.event.player.PlayerHandAnimationEvent; import net.minestom.server.event.player.PlayerPacketEvent; import net.minestom.server.event.player.PlayerPacketOutEvent; import net.minestom.server.event.player.PlayerSpawnEvent; From 9fe40521d27614e417eb3ea582b6d8a15ae9a73d Mon Sep 17 00:00:00 2001 From: Phillipp Glanz Date: Sun, 3 Nov 2024 20:21:50 +0100 Subject: [PATCH 88/93] Implement game tags and game events (cherry picked from commit 9e681c792f7588db2c8d77824b5010f6bc34b85d) --- .../java/net/minestom/codegen/Generators.java | 1 + .../net/minestom/server/game/GameEvents.java | 127 ++++++++++++++++++ .../net/minestom/server/game/GameEvent.java | 39 ++++++ .../minestom/server/game/GameEventImpl.java | 33 +++++ .../minestom/server/gamedata/tags/Tag.java | 5 +- .../minestom/server/registry/Registry.java | 10 ++ 6 files changed, 213 insertions(+), 2 deletions(-) create mode 100644 src/autogenerated/java/net/minestom/server/game/GameEvents.java create mode 100644 src/main/java/net/minestom/server/game/GameEvent.java create mode 100644 src/main/java/net/minestom/server/game/GameEventImpl.java diff --git a/code-generators/src/main/java/net/minestom/codegen/Generators.java b/code-generators/src/main/java/net/minestom/codegen/Generators.java index 148c4bf0763..93bb0553fb8 100644 --- a/code-generators/src/main/java/net/minestom/codegen/Generators.java +++ b/code-generators/src/main/java/net/minestom/codegen/Generators.java @@ -30,6 +30,7 @@ public static void main(String[] args) { // Static registries generator.generate(resource("blocks.json"), "net.minestom.server.instance.block", "Block", "BlockImpl", "Blocks"); generator.generate(resource("items.json"), "net.minestom.server.item", "Material", "MaterialImpl", "Materials"); + generator.generate(resource("game_events.json"), "net.minestom.server.game", "GameEvent", "GameEventImpl", "GameEvents"); generator.generate(resource("entities.json"), "net.minestom.server.entity", "EntityType", "EntityTypeImpl", "EntityTypes"); generator.generate(resource("potion_effects.json"), "net.minestom.server.potion", "PotionEffect", "PotionEffectImpl", "PotionEffects"); generator.generate(resource("potions.json"), "net.minestom.server.potion", "PotionType", "PotionTypeImpl", "PotionTypes"); diff --git a/src/autogenerated/java/net/minestom/server/game/GameEvents.java b/src/autogenerated/java/net/minestom/server/game/GameEvents.java new file mode 100644 index 00000000000..44e09b862d1 --- /dev/null +++ b/src/autogenerated/java/net/minestom/server/game/GameEvents.java @@ -0,0 +1,127 @@ +package net.minestom.server.game; + +/** + * Code autogenerated, do not edit! + */ +@SuppressWarnings("unused") +interface GameEvents { + GameEvent BLOCK_ACTIVATE = GameEventImpl.get("minecraft:block_activate"); + + GameEvent BLOCK_ATTACH = GameEventImpl.get("minecraft:block_attach"); + + GameEvent BLOCK_CHANGE = GameEventImpl.get("minecraft:block_change"); + + GameEvent BLOCK_CLOSE = GameEventImpl.get("minecraft:block_close"); + + GameEvent BLOCK_DEACTIVATE = GameEventImpl.get("minecraft:block_deactivate"); + + GameEvent BLOCK_DESTROY = GameEventImpl.get("minecraft:block_destroy"); + + GameEvent BLOCK_DETACH = GameEventImpl.get("minecraft:block_detach"); + + GameEvent BLOCK_OPEN = GameEventImpl.get("minecraft:block_open"); + + GameEvent BLOCK_PLACE = GameEventImpl.get("minecraft:block_place"); + + GameEvent CONTAINER_CLOSE = GameEventImpl.get("minecraft:container_close"); + + GameEvent CONTAINER_OPEN = GameEventImpl.get("minecraft:container_open"); + + GameEvent DRINK = GameEventImpl.get("minecraft:drink"); + + GameEvent EAT = GameEventImpl.get("minecraft:eat"); + + GameEvent ELYTRA_GLIDE = GameEventImpl.get("minecraft:elytra_glide"); + + GameEvent ENTITY_DAMAGE = GameEventImpl.get("minecraft:entity_damage"); + + GameEvent ENTITY_DIE = GameEventImpl.get("minecraft:entity_die"); + + GameEvent ENTITY_DISMOUNT = GameEventImpl.get("minecraft:entity_dismount"); + + GameEvent ENTITY_INTERACT = GameEventImpl.get("minecraft:entity_interact"); + + GameEvent ENTITY_MOUNT = GameEventImpl.get("minecraft:entity_mount"); + + GameEvent ENTITY_PLACE = GameEventImpl.get("minecraft:entity_place"); + + GameEvent ENTITY_ACTION = GameEventImpl.get("minecraft:entity_action"); + + GameEvent EQUIP = GameEventImpl.get("minecraft:equip"); + + GameEvent EXPLODE = GameEventImpl.get("minecraft:explode"); + + GameEvent FLAP = GameEventImpl.get("minecraft:flap"); + + GameEvent FLUID_PICKUP = GameEventImpl.get("minecraft:fluid_pickup"); + + GameEvent FLUID_PLACE = GameEventImpl.get("minecraft:fluid_place"); + + GameEvent HIT_GROUND = GameEventImpl.get("minecraft:hit_ground"); + + GameEvent INSTRUMENT_PLAY = GameEventImpl.get("minecraft:instrument_play"); + + GameEvent ITEM_INTERACT_FINISH = GameEventImpl.get("minecraft:item_interact_finish"); + + GameEvent ITEM_INTERACT_START = GameEventImpl.get("minecraft:item_interact_start"); + + GameEvent JUKEBOX_PLAY = GameEventImpl.get("minecraft:jukebox_play"); + + GameEvent JUKEBOX_STOP_PLAY = GameEventImpl.get("minecraft:jukebox_stop_play"); + + GameEvent LIGHTNING_STRIKE = GameEventImpl.get("minecraft:lightning_strike"); + + GameEvent NOTE_BLOCK_PLAY = GameEventImpl.get("minecraft:note_block_play"); + + GameEvent PRIME_FUSE = GameEventImpl.get("minecraft:prime_fuse"); + + GameEvent PROJECTILE_LAND = GameEventImpl.get("minecraft:projectile_land"); + + GameEvent PROJECTILE_SHOOT = GameEventImpl.get("minecraft:projectile_shoot"); + + GameEvent SCULK_SENSOR_TENDRILS_CLICKING = GameEventImpl.get("minecraft:sculk_sensor_tendrils_clicking"); + + GameEvent SHEAR = GameEventImpl.get("minecraft:shear"); + + GameEvent SHRIEK = GameEventImpl.get("minecraft:shriek"); + + GameEvent SPLASH = GameEventImpl.get("minecraft:splash"); + + GameEvent STEP = GameEventImpl.get("minecraft:step"); + + GameEvent SWIM = GameEventImpl.get("minecraft:swim"); + + GameEvent TELEPORT = GameEventImpl.get("minecraft:teleport"); + + GameEvent UNEQUIP = GameEventImpl.get("minecraft:unequip"); + + GameEvent RESONATE_1 = GameEventImpl.get("minecraft:resonate_1"); + + GameEvent RESONATE_2 = GameEventImpl.get("minecraft:resonate_2"); + + GameEvent RESONATE_3 = GameEventImpl.get("minecraft:resonate_3"); + + GameEvent RESONATE_4 = GameEventImpl.get("minecraft:resonate_4"); + + GameEvent RESONATE_5 = GameEventImpl.get("minecraft:resonate_5"); + + GameEvent RESONATE_6 = GameEventImpl.get("minecraft:resonate_6"); + + GameEvent RESONATE_7 = GameEventImpl.get("minecraft:resonate_7"); + + GameEvent RESONATE_8 = GameEventImpl.get("minecraft:resonate_8"); + + GameEvent RESONATE_9 = GameEventImpl.get("minecraft:resonate_9"); + + GameEvent RESONATE_10 = GameEventImpl.get("minecraft:resonate_10"); + + GameEvent RESONATE_11 = GameEventImpl.get("minecraft:resonate_11"); + + GameEvent RESONATE_12 = GameEventImpl.get("minecraft:resonate_12"); + + GameEvent RESONATE_13 = GameEventImpl.get("minecraft:resonate_13"); + + GameEvent RESONATE_14 = GameEventImpl.get("minecraft:resonate_14"); + + GameEvent RESONATE_15 = GameEventImpl.get("minecraft:resonate_15"); +} diff --git a/src/main/java/net/minestom/server/game/GameEvent.java b/src/main/java/net/minestom/server/game/GameEvent.java new file mode 100644 index 00000000000..182a2e39999 --- /dev/null +++ b/src/main/java/net/minestom/server/game/GameEvent.java @@ -0,0 +1,39 @@ +package net.minestom.server.game; + +import net.minestom.server.registry.Registry; +import net.minestom.server.registry.StaticProtocolObject; +import net.minestom.server.utils.NamespaceID; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Collection; + +public sealed interface GameEvent extends StaticProtocolObject permits GameEventImpl { + + /** + * Returns the entity registry. + * + * @return the entity registry or null if it was created with a builder + */ + @Contract(pure = true) + @Nullable + Registry.GameEventEntry registry(); + + @Override + @NotNull + NamespaceID namespace(); + + static @NotNull Collection<@NotNull GameEvent> values() { + return GameEventImpl.values(); + } + + static @Nullable GameEvent fromNamespaceId(@NotNull String namespaceID) { + return GameEventImpl.getSafe(namespaceID); + } + + static @Nullable GameEvent fromNamespaceId(@NotNull NamespaceID namespaceID) { + return fromNamespaceId(namespaceID.asString()); + } + +} \ No newline at end of file diff --git a/src/main/java/net/minestom/server/game/GameEventImpl.java b/src/main/java/net/minestom/server/game/GameEventImpl.java new file mode 100644 index 00000000000..0db6f44d6f8 --- /dev/null +++ b/src/main/java/net/minestom/server/game/GameEventImpl.java @@ -0,0 +1,33 @@ +package net.minestom.server.game; + +import net.minestom.server.registry.Registry; +import net.minestom.server.utils.NamespaceID; +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; +import java.util.concurrent.atomic.AtomicInteger; + +public record GameEventImpl(Registry.GameEventEntry registry, NamespaceID namespace, int id) implements GameEvent { + private static final AtomicInteger INDEX = new AtomicInteger(); + private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.GAMEPLAY_TAGS, GameEventImpl::createImpl); + + private static GameEventImpl createImpl(String namespace, Registry.Properties properties) { + return new GameEventImpl(Registry.gameEventEntry(namespace, properties)); + } + + private GameEventImpl(Registry.GameEventEntry registry) { + this(registry, registry.namespace(), INDEX.getAndIncrement()); + } + + static Collection values() { + return CONTAINER.values(); + } + + public static GameEvent get(@NotNull String namespace) { + return CONTAINER.get(namespace); + } + + static GameEvent getSafe(@NotNull String namespace) { + return CONTAINER.getSafe(namespace); + } +} diff --git a/src/main/java/net/minestom/server/gamedata/tags/Tag.java b/src/main/java/net/minestom/server/gamedata/tags/Tag.java index 32c73a947db..a90714daba7 100644 --- a/src/main/java/net/minestom/server/gamedata/tags/Tag.java +++ b/src/main/java/net/minestom/server/gamedata/tags/Tag.java @@ -5,6 +5,7 @@ import net.minestom.server.MinecraftServer; import net.minestom.server.entity.EntityType; import net.minestom.server.fluid.Fluid; +import net.minestom.server.game.GameEvent; import net.minestom.server.instance.block.Block; import net.minestom.server.item.Material; import net.minestom.server.registry.DynamicRegistry; @@ -96,8 +97,8 @@ public enum BasicType { name -> Objects.requireNonNull(Fluid.fromNamespaceId(name)).id()), ENTITY_TYPES("minecraft:entity_type", Registry.Resource.ENTITY_TYPE_TAGS, name -> Objects.requireNonNull(EntityType.fromNamespaceId(name)).id()), - /*GAME_EVENTS("minecraft:game_event", Registry.Resource.GAMEPLAY_TAGS, - name -> Objects.requireNonNull(Fluid.fromNamespaceId(name)).id());*/ + GAME_EVENTS("minecraft:game_event", Registry.Resource.GAMEPLAY_TAGS, + name -> Objects.requireNonNull(GameEvent.fromNamespaceId(name)).id()), SOUND_EVENTS("minecraft:sound_event", null, null), // Seems not to be included in server data POTION_EFFECTS("minecraft:sound_event", null, null), // Seems not to be included in server data diff --git a/src/main/java/net/minestom/server/registry/Registry.java b/src/main/java/net/minestom/server/registry/Registry.java index 249ff3d8a7a..30f2a558929 100644 --- a/src/main/java/net/minestom/server/registry/Registry.java +++ b/src/main/java/net/minestom/server/registry/Registry.java @@ -145,6 +145,10 @@ public static VillagerType villagerType(String namespace, @NotNull Properties ma return new VillagerType(namespace, main, null); } + public static GameEventEntry gameEventEntry(String namespace, Properties properties) { + return new GameEventEntry(namespace, properties, null); + } + @ApiStatus.Internal public static Map> load(Resource resource) { Map> map = new HashMap<>(); @@ -558,6 +562,12 @@ public boolean hasPrecipitation() { } } + public static final record GameEventEntry(NamespaceID namespace, Properties main, Properties custom) implements Entry { + public GameEventEntry(String namespace, Properties main, Properties custom) { + this(NamespaceID.from(namespace), main, custom); + } + } + public static final class MaterialEntry implements Entry { private final NamespaceID namespace; private final Properties main; From f3e4b49afae5a1153abda86e0b8cb4f989355b68 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz Date: Sun, 3 Nov 2024 21:41:40 +0100 Subject: [PATCH 89/93] Add documentation for game events (cherry picked from commit ef26c504d4d091af558a7000d320790be8035e27) --- .../net/minestom/server/game/GameEvent.java | 34 +++++++++++++++- .../minestom/server/game/GameEventImpl.java | 39 ++++++++++++++++++- .../server/registry/StaticProtocolObject.java | 28 +++++++++++++ 3 files changed, 98 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/minestom/server/game/GameEvent.java b/src/main/java/net/minestom/server/game/GameEvent.java index 182a2e39999..86ddb2a8d35 100644 --- a/src/main/java/net/minestom/server/game/GameEvent.java +++ b/src/main/java/net/minestom/server/game/GameEvent.java @@ -9,29 +9,59 @@ import java.util.Collection; +/** + * Represents a game event. + * Used for a wide variety of events, from weather to bed use to game mode to demo messages. + * + * @version 1.0.0 + * @since 1.6.0 + * @author themeinerlp + */ public sealed interface GameEvent extends StaticProtocolObject permits GameEventImpl { /** - * Returns the entity registry. + * Returns the game event registry. * - * @return the entity registry or null if it was created with a builder + * @return the game event registry or null if not found */ @Contract(pure = true) @Nullable Registry.GameEventEntry registry(); + /** + * Gets the namespace ID of this game event. + * + * @return the namespace ID + */ @Override @NotNull NamespaceID namespace(); + /** + * Gets the game events from the registry. + * + * @return the game events + */ static @NotNull Collection<@NotNull GameEvent> values() { return GameEventImpl.values(); } + /** + * Gets a game event by its namespace ID. + * + * @param namespaceID the namespace ID + * @return the game event or null if not found + */ static @Nullable GameEvent fromNamespaceId(@NotNull String namespaceID) { return GameEventImpl.getSafe(namespaceID); } + /** + * Gets a game event by its namespace ID. + * + * @param namespaceID the namespace ID + * @return the game event or null if not found + */ static @Nullable GameEvent fromNamespaceId(@NotNull NamespaceID namespaceID) { return fromNamespaceId(namespaceID.asString()); } diff --git a/src/main/java/net/minestom/server/game/GameEventImpl.java b/src/main/java/net/minestom/server/game/GameEventImpl.java index 0db6f44d6f8..2bddfd28f13 100644 --- a/src/main/java/net/minestom/server/game/GameEventImpl.java +++ b/src/main/java/net/minestom/server/game/GameEventImpl.java @@ -7,26 +7,63 @@ import java.util.Collection; import java.util.concurrent.atomic.AtomicInteger; -public record GameEventImpl(Registry.GameEventEntry registry, NamespaceID namespace, int id) implements GameEvent { +/** + * Represents a game event implementation. + * Used for a wide variety of events, from weather to bed use to game mode to demo messages. + * + * @version 1.0.0 + * @since 1.6.0 + * @author themeinerlp + */ +record GameEventImpl(Registry.GameEventEntry registry, NamespaceID namespace, int id) implements GameEvent { private static final AtomicInteger INDEX = new AtomicInteger(); private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.GAMEPLAY_TAGS, GameEventImpl::createImpl); + /** + * Creates a new {@link GameEventImpl} with the given namespace and properties. + * + * @param namespace the namespace + * @param properties the properties + * @return a new {@link GameEventImpl} + */ private static GameEventImpl createImpl(String namespace, Registry.Properties properties) { return new GameEventImpl(Registry.gameEventEntry(namespace, properties)); } + /** + * Creates a new {@link GameEventImpl} with the given registry. + * + * @param registry the registry + */ private GameEventImpl(Registry.GameEventEntry registry) { this(registry, registry.namespace(), INDEX.getAndIncrement()); } + /** + * Gets the game events from the registry. + * + * @return the game events + */ static Collection values() { return CONTAINER.values(); } + /** + * Gets a game event by its namespace ID. + * + * @param namespace the namespace ID + * @return the game event or null if not found + */ public static GameEvent get(@NotNull String namespace) { return CONTAINER.get(namespace); } + /** + * Gets a game event by its namespace ID. + * + * @param namespace the namespace ID + * @return the game event or null if not found + */ static GameEvent getSafe(@NotNull String namespace) { return CONTAINER.getSafe(namespace); } diff --git a/src/main/java/net/minestom/server/registry/StaticProtocolObject.java b/src/main/java/net/minestom/server/registry/StaticProtocolObject.java index a1dc1790aba..4ba895df31c 100644 --- a/src/main/java/net/minestom/server/registry/StaticProtocolObject.java +++ b/src/main/java/net/minestom/server/registry/StaticProtocolObject.java @@ -6,22 +6,50 @@ import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; +/** + * Represents a static protocol object. + * Used for objects which are not dynamic and are known at compile time. + * + * @version 1.0.0 + * @since 1.0.0 + * @author themeinerlp + */ public interface StaticProtocolObject extends ProtocolObject, Keyed { + /** + * Gets the namespace ID of this object. + * + * @return the namespace ID + */ @Contract(pure = true) @NotNull NamespaceID namespace(); + /** + * Gets the name of this object. + * + * @return the name + */ @Contract(pure = true) default @NotNull String name() { return namespace().asString(); } + /** + * Gets the key of this object. + * + * @return the key + */ @Override @Contract(pure = true) default @NotNull Key key() { return namespace(); } + /** + * Gets the ID of this object. + * + * @return the ID + */ @Contract(pure = true) int id(); } From d5e1720a4c84e6bf96a8fc19f60d49aecd667e1e Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Mon, 11 Nov 2024 09:31:26 +0100 Subject: [PATCH 90/93] Improve nullability for Minecraft Tags (cherry picked from commit 1b800ad98410a9747a575d7ae31747890d2c02db) --- .../minestom/server/gamedata/tags/Tag.java | 19 ++++++++++--------- .../packet/server/common/TagsPacket.java | 6 +++++- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/main/java/net/minestom/server/gamedata/tags/Tag.java b/src/main/java/net/minestom/server/gamedata/tags/Tag.java index a90714daba7..0255a51a38d 100644 --- a/src/main/java/net/minestom/server/gamedata/tags/Tag.java +++ b/src/main/java/net/minestom/server/gamedata/tags/Tag.java @@ -19,6 +19,7 @@ import java.util.Collections; import java.util.HashSet; import java.util.Objects; +import java.util.Optional; import java.util.Set; import java.util.function.Function; @@ -90,30 +91,30 @@ public NamespaceID getName() { public enum BasicType { BLOCKS("minecraft:block", Registry.Resource.BLOCK_TAGS, - name -> Objects.requireNonNull(Block.fromNamespaceId(name)).id()), + name -> Optional.ofNullable(Block.fromNamespaceId(name)).map(Block::id)), ITEMS("minecraft:item", Registry.Resource.ITEM_TAGS, - name -> Objects.requireNonNull(Material.fromNamespaceId(name)).id()), + name -> Optional.ofNullable(Material.fromNamespaceId(name)).map(Material::id)), FLUIDS("minecraft:fluid", Registry.Resource.FLUID_TAGS, - name -> Objects.requireNonNull(Fluid.fromNamespaceId(name)).id()), + name -> Optional.ofNullable(Fluid.fromNamespaceId(name)).map(Fluid::id)), ENTITY_TYPES("minecraft:entity_type", Registry.Resource.ENTITY_TYPE_TAGS, - name -> Objects.requireNonNull(EntityType.fromNamespaceId(name)).id()), + name -> Optional.ofNullable(EntityType.fromNamespaceId(name)).map(EntityType::id)), GAME_EVENTS("minecraft:game_event", Registry.Resource.GAMEPLAY_TAGS, - name -> Objects.requireNonNull(GameEvent.fromNamespaceId(name)).id()), + name -> Optional.ofNullable(EntityType.fromNamespaceId(name)).map(EntityType::id)), SOUND_EVENTS("minecraft:sound_event", null, null), // Seems not to be included in server data POTION_EFFECTS("minecraft:sound_event", null, null), // Seems not to be included in server data //todo this is cursed. it does not update as the registry changes. Fix later. ENCHANTMENTS("minecraft:enchantment", Registry.Resource.ENCHANTMENT_TAGS, - name -> MinecraftServer.getEnchantmentRegistry().getId(DynamicRegistry.Key.of(name))); + name -> Optional.of(DynamicRegistry.Key.of(name)).map(DynamicRegistry.Key::namespace).map(MinecraftServer.getEnchantmentRegistry()::getId)),; private final static BasicType[] VALUES = values(); private final String identifier; private final Registry.Resource resource; - private final Function function; + private final Function> function; BasicType(@NotNull String identifier, @Nullable Registry.Resource resource, - @Nullable Function function) { + @Nullable Function> function) { this.identifier = identifier; this.resource = resource; this.function = function; @@ -127,7 +128,7 @@ public Registry.Resource getResource() { return resource; } - public Function getFunction() { + public Function> getFunction() { return function; } diff --git a/src/main/java/net/minestom/server/network/packet/server/common/TagsPacket.java b/src/main/java/net/minestom/server/network/packet/server/common/TagsPacket.java index ec24448d05e..6b4315120d2 100644 --- a/src/main/java/net/minestom/server/network/packet/server/common/TagsPacket.java +++ b/src/main/java/net/minestom/server/network/packet/server/common/TagsPacket.java @@ -45,7 +45,11 @@ public void write(@NotNull NetworkBuffer writer) { final var values = tag.getValues(); writer.write(VAR_INT, values.size()); for (var name : values) { - writer.write(VAR_INT, type.getFunction().apply(name.asString())); + var applied = type.getFunction().apply(name.asString()); + if (applied.isEmpty()) { + continue; + } + writer.write(VAR_INT, applied.get()); } } } From d03076b0ed4d0d1f1b7cfe38ef9be7bbdc47f5eb Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Thu, 2 Jan 2025 16:44:52 +0100 Subject: [PATCH 91/93] Add better mapping for meta tags for client (cherry picked from commit 93ea3b9dafa392a9c4e3c81e9b31753c8d42bbab) --- src/main/java/net/minestom/server/game/GameEventImpl.java | 4 ++-- src/main/java/net/minestom/server/gamedata/tags/Tag.java | 5 ++++- src/main/java/net/minestom/server/registry/Registry.java | 4 +++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main/java/net/minestom/server/game/GameEventImpl.java b/src/main/java/net/minestom/server/game/GameEventImpl.java index 2bddfd28f13..e5ab9d437ab 100644 --- a/src/main/java/net/minestom/server/game/GameEventImpl.java +++ b/src/main/java/net/minestom/server/game/GameEventImpl.java @@ -17,7 +17,7 @@ */ record GameEventImpl(Registry.GameEventEntry registry, NamespaceID namespace, int id) implements GameEvent { private static final AtomicInteger INDEX = new AtomicInteger(); - private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.GAMEPLAY_TAGS, GameEventImpl::createImpl); + private static final Registry.Container CONTAINER = Registry.createStaticContainer(Registry.Resource.GAME_EVENTS, GameEventImpl::createImpl); /** * Creates a new {@link GameEventImpl} with the given namespace and properties. @@ -36,7 +36,7 @@ private static GameEventImpl createImpl(String namespace, Registry.Properties pr * @param registry the registry */ private GameEventImpl(Registry.GameEventEntry registry) { - this(registry, registry.namespace(), INDEX.getAndIncrement()); + this(registry, registry.namespace(), registry.main().getInt("id")); } /** diff --git a/src/main/java/net/minestom/server/gamedata/tags/Tag.java b/src/main/java/net/minestom/server/gamedata/tags/Tag.java index 0255a51a38d..5a0c7f552c0 100644 --- a/src/main/java/net/minestom/server/gamedata/tags/Tag.java +++ b/src/main/java/net/minestom/server/gamedata/tags/Tag.java @@ -12,6 +12,7 @@ import net.minestom.server.registry.ProtocolObject; import net.minestom.server.registry.Registry; import net.minestom.server.utils.NamespaceID; +import net.minestom.server.world.biome.Biome; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -96,10 +97,12 @@ public enum BasicType { name -> Optional.ofNullable(Material.fromNamespaceId(name)).map(Material::id)), FLUIDS("minecraft:fluid", Registry.Resource.FLUID_TAGS, name -> Optional.ofNullable(Fluid.fromNamespaceId(name)).map(Fluid::id)), + BIOMES("minecraft:worldgen/biome", Registry.Resource.BIOME_TAGS, + name -> Optional.of(DynamicRegistry.Key.of(name)).map(DynamicRegistry.Key::namespace).map(MinecraftServer.getBiomeRegistry()::getId)), ENTITY_TYPES("minecraft:entity_type", Registry.Resource.ENTITY_TYPE_TAGS, name -> Optional.ofNullable(EntityType.fromNamespaceId(name)).map(EntityType::id)), GAME_EVENTS("minecraft:game_event", Registry.Resource.GAMEPLAY_TAGS, - name -> Optional.ofNullable(EntityType.fromNamespaceId(name)).map(EntityType::id)), + name -> Optional.ofNullable(GameEvent.fromNamespaceId(name)).map(GameEvent::id)), SOUND_EVENTS("minecraft:sound_event", null, null), // Seems not to be included in server data POTION_EFFECTS("minecraft:sound_event", null, null), // Seems not to be included in server data diff --git a/src/main/java/net/minestom/server/registry/Registry.java b/src/main/java/net/minestom/server/registry/Registry.java index 30f2a558929..bf5e00f52d3 100644 --- a/src/main/java/net/minestom/server/registry/Registry.java +++ b/src/main/java/net/minestom/server/registry/Registry.java @@ -245,6 +245,8 @@ public enum Resource { ENTITY_TYPE_TAGS("tags/entity_type.json"), FLUID_TAGS("tags/fluid.json"), GAMEPLAY_TAGS("tags/game_event.json"), + GAME_EVENTS("game_events.json"), + BIOME_TAGS("tags/biome.json"), ITEM_TAGS("tags/item.json"), ENCHANTMENT_TAGS("tags/enchantment.json"), DIMENSION_TYPES("dimension_types.json"), @@ -562,7 +564,7 @@ public boolean hasPrecipitation() { } } - public static final record GameEventEntry(NamespaceID namespace, Properties main, Properties custom) implements Entry { + public record GameEventEntry(NamespaceID namespace, Properties main, Properties custom) implements Entry { public GameEventEntry(String namespace, Properties main, Properties custom) { this(NamespaceID.from(namespace), main, custom); } From 814d8dc663eec9bb97230071193193c47bf22ba1 Mon Sep 17 00:00:00 2001 From: theEvilReaper Date: Thu, 2 Jan 2025 21:58:08 +0100 Subject: [PATCH 92/93] Cleanup unused imports (cherry picked from commit 9389bdbc535edd598d24c69050c9df2150f6868a) --- src/main/java/net/minestom/server/gamedata/tags/Tag.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/net/minestom/server/gamedata/tags/Tag.java b/src/main/java/net/minestom/server/gamedata/tags/Tag.java index 5a0c7f552c0..22e9e149338 100644 --- a/src/main/java/net/minestom/server/gamedata/tags/Tag.java +++ b/src/main/java/net/minestom/server/gamedata/tags/Tag.java @@ -12,14 +12,12 @@ import net.minestom.server.registry.ProtocolObject; import net.minestom.server.registry.Registry; import net.minestom.server.utils.NamespaceID; -import net.minestom.server.world.biome.Biome; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.Collections; import java.util.HashSet; -import java.util.Objects; import java.util.Optional; import java.util.Set; import java.util.function.Function; From c81bd29f3e37de42120eac56fe3cda7e8f71c68a Mon Sep 17 00:00:00 2001 From: theEvilReaper Date: Thu, 2 Jan 2025 22:00:56 +0100 Subject: [PATCH 93/93] Rename some variables to improve readability of the code (cherry picked from commit 93932862bdb1bfdcb21b26f425d67c3929345e1c) --- build.gradle.kts | 1 - .../net/minestom/codegen/CodeExporter.class | Bin 0 -> 1808 bytes .../net/minestom/codegen/CodeGenerator.class | Bin 0 -> 7928 bytes .../minestom/codegen/ConstantsGenerator.class | Bin 0 -> 5499 bytes .../net/minestom/codegen/Generators.class | Bin 0 -> 5301 bytes .../codegen/MinestomCodeGenerator.class | Bin 0 -> 2469 bytes .../codegen/color/DyeColorGenerator.class | Bin 0 -> 12074 bytes .../codegen/particle/ParticleGenerator.class | Bin 0 -> 8160 bytes .../codegen/recipe/RecipeTypeGenerator.class | Bin 0 -> 9616 bytes .../codegen/util/GenerationHelper.class | Bin 0 -> 2594 bytes .../code-generators-1.5.0-SNAPSHOT.tar | Bin 0 -> 2008576 bytes .../code-generators-1.5.0-SNAPSHOT.zip | Bin 0 -> 1770040 bytes .../libs/code-generators-1.5.0-SNAPSHOT.jar | Bin 0 -> 26025 bytes code-generators/build/scripts/code-generators | 248 ++++++++++++++++++ .../build/scripts/code-generators.bat | 92 +++++++ .../stash-dir/CodeGenerator.class.uniqueId2 | Bin 0 -> 7478 bytes .../stash-dir/Generators.class.uniqueId0 | Bin 0 -> 5173 bytes .../RecipeTypeGenerator.class.uniqueId1 | Bin 0 -> 9605 bytes .../compileJava/previous-compilation-data.bin | Bin 0 -> 5604 bytes code-generators/build/tmp/jar/MANIFEST.MF | 2 + .../codegen/MinestomCodeGenerator.java | 8 - .../server/command/CommandManager.java | 12 - .../net/minestom/server/coordinate/Vec.java | 12 - .../net/minestom/server/entity/Entity.java | 45 ---- .../net/minestom/server/entity/Player.java | 72 +---- .../minestom/server/gamedata/tags/Tag.java | 17 +- .../minestom/server/instance/Instance.java | 11 - .../entity/EntityMetaIntegrationTest.java | 2 +- .../InstanceBlockIntegrationTest.java | 2 +- .../InstanceBlockPacketIntegrationTest.java | 2 +- .../anvil/AnvilLoaderIntegrationTest.java | 8 +- .../GeneratorForkConsumerIntegrationTest.java | 2 +- .../instance/generator/GeneratorTest.java | 9 +- .../light/LightParityIntegrationTest.java | 7 +- 34 files changed, 381 insertions(+), 171 deletions(-) create mode 100644 code-generators/build/classes/java/main/net/minestom/codegen/CodeExporter.class create mode 100644 code-generators/build/classes/java/main/net/minestom/codegen/CodeGenerator.class create mode 100644 code-generators/build/classes/java/main/net/minestom/codegen/ConstantsGenerator.class create mode 100644 code-generators/build/classes/java/main/net/minestom/codegen/Generators.class create mode 100644 code-generators/build/classes/java/main/net/minestom/codegen/MinestomCodeGenerator.class create mode 100644 code-generators/build/classes/java/main/net/minestom/codegen/color/DyeColorGenerator.class create mode 100644 code-generators/build/classes/java/main/net/minestom/codegen/particle/ParticleGenerator.class create mode 100644 code-generators/build/classes/java/main/net/minestom/codegen/recipe/RecipeTypeGenerator.class create mode 100644 code-generators/build/classes/java/main/net/minestom/codegen/util/GenerationHelper.class create mode 100644 code-generators/build/distributions/code-generators-1.5.0-SNAPSHOT.tar create mode 100644 code-generators/build/distributions/code-generators-1.5.0-SNAPSHOT.zip create mode 100644 code-generators/build/libs/code-generators-1.5.0-SNAPSHOT.jar create mode 100755 code-generators/build/scripts/code-generators create mode 100644 code-generators/build/scripts/code-generators.bat create mode 100644 code-generators/build/tmp/compileJava/compileTransaction/stash-dir/CodeGenerator.class.uniqueId2 create mode 100644 code-generators/build/tmp/compileJava/compileTransaction/stash-dir/Generators.class.uniqueId0 create mode 100644 code-generators/build/tmp/compileJava/compileTransaction/stash-dir/RecipeTypeGenerator.class.uniqueId1 create mode 100644 code-generators/build/tmp/compileJava/previous-compilation-data.bin create mode 100644 code-generators/build/tmp/jar/MANIFEST.MF diff --git a/build.gradle.kts b/build.gradle.kts index 7c34b0388d8..a0e99a51bab 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -116,7 +116,6 @@ dependencies { // Only here to ensure J9 module support for extensions and our classloaders testCompileOnly(libs.mockito.core) } - sonar { properties { property("sonar.projectKey", "OneLiteFeatherNET_Microtus") diff --git a/code-generators/build/classes/java/main/net/minestom/codegen/CodeExporter.class b/code-generators/build/classes/java/main/net/minestom/codegen/CodeExporter.class new file mode 100644 index 0000000000000000000000000000000000000000..7aa13cdb2e443cd16a5e8b726f5d507336bfa4cd GIT binary patch literal 1808 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 ipZxy^{>#xivfNLlfR$`d4!X~KaHo6u&e5w-P9Y z^pFPWi9<+8PY5ZLL@r85ZxBfDBq1R^A&vB6^3BZd-N`!fM}GN3r+weP{@#?g_nkg< zFA?qJgGs8RDG8dIqG>dpY3@;H*vaM{uRnXR=cvksOw+f!o*V99nzFv3a|Q{Tk)ULX zW>Si2xu?Qx!Sz%r^b6UX->dqSm))&A6*!?Elpx)4aQE)EE0|=5AM|HS`M&dyW;^`; zeibwen$2|9l_jTNT~xn4bb@{r*7y1OUKQ+^Npoplf@F%)G#`GQDaW6Y5f|fDO z=^atshM|->TJpUla&bBuD-MP5QaOd@BrT?u+M`uW zYa^*MSjuub0)(YS)}&~yu9ZNpb)Hp%)-z>m#uKQVTU6OA%)cWeMO772Bhx(lzB|O5 zIH+~BGD+)bO@cC$X)QWI=;rb&dnkIS(t0k_?D&1Ga-&wcQL8+kXidLr=UxiX7=R$+@SSUU`-gc znYgPnB^3;-AmbYUaw=oE1+}6BTeP5{Hl`WoaZjO`7qlB)Z^)81zDHMUFVnRZ)9QxDK4g3Qfh74dV!+ijk6_PAtNH zr=YskutJ$kIRrgv5)+zJ(37EJH=f$Gh@fkjW|c{6S0<^ zD+g&Tk7YCG|#F}Lm6oHPh-^R&6I_%KU;} zi^kg-iwk-^d?}OG=rLra48hXZPJIwBV%1fLfuK9#e=K2(csJU;8nK!`j0{(!&^d|(_2q}$a-W`< zq)!c#pi|gT+cm$SkD`3$(JH?e8>%6p^%KZ)Zomo0dHE@(rL~e)KyHy|L7%~1*9s{c z!snnqrpzAwg%o{}?n9{YiMmgX;O=tZ|G8!B4f;z=^LyQb@^r<=MeyJxxw*~{@<_;6 zkltOfpbg?{ST*AyB}Y%bmc61)I01~>jA0e@9et8%DM8=UN0(6`=pn4u zUZ;Tkjq~(}Oe<>TI%-fWA?RVOuU$sky89EjR-xhRPtkH%--Yf%bOyyf|D5TZS_bsV zmT`iD9|-y-YIOv{@%bd^*T_&c0t>&z3NaRn*cnt%UShw4E1LC?g$4Z~(iQ;_{Syk+ z<9N7Ub)O;pXI$`VdN=NRkg>vo{tCBRjH0r&zoT&DAlUmST)ocE_jM0DIF2jF>%W;c z*RmERyP!g+*9o1BjYdF8a2<-QJS-?L zL|ewEAWvnguVvTNAmSH19f@qK2n&XVR22aIN$f^N$HnpN^`8+OrzT0|nZfztfC>c9 zMokVys>X*kSD(Pqn@VUBIXyZwsCxYCyK!5OcXXc5)L1jN@fD0j1)qf|_gX!Np+@i` zL|FwO$|bl3wPQ*u4XEDwXb(Za^?D$}Aj8X2e72rqrn+9AFNt`0itBj=)53x?h*87K zIpI}qI8eR>SLOjTip5jS#H(SFSMlluuSxM*J%-GwOhT=Br-VH$jhX6-Xg1kdvV%vG z*KA+NYV5rce zf+M;mQH%~h=j2U&Ku6%zaKMF^D>_h-CmJN1p}2q&qn*}YJuwXpop_J=Q3qV(H45er zg&4fr&2WhYXjMd$A(SK1XlBJ7qqZ|TuJUjK5q-PK4eob}aVQ>EpANH9gQ#vee75KE z(G;!kVwe;40D>%)6=L_p$*PtNb#@>&>gu>JHx@94aRZnr>311n)zeO<=F(YJ&IUlz3uR{q4cTMJq6<*Wq&quJ-z~ z1)iqj8Q(jIc_XMSD8~P3jmL@a!b2Tr@Qc^@O>tKLS_VFs&jU4sH}PgGT=yXOra<@O zjrUHyjb`6X2|4Q|&8efi#%MuT20HQ!5CfG1<~gHO>zfNd8urXyJY()UDhP`X<)xRC@+_X z4RECfu998yYWWlcbZfwoIjLm70bC6X%7XOe(+p6uz>vI7ju_w>8hDm`wtTL9z5!mS zfg9yZBOljfni+JOr=)pWniCe9VW635 zo|Wb~7Mf?Ebeb2Wc_APaJI#wv@={bAZ862P&CRq5&vVfh^YAP2JD--(LTaK#v>l&s zI?#pJ08#jIG)(n$Bl`0gt)$x_cZyci{j`Q2!Z(9Q@e$@UzU<7Q2Ck<@G~Nbo!8e)9 zDa+T=x$M(_=~jv#PcYrKWIe@V=I=8Sp!lup5k)|clwogg0Xsi?5J8FDQ@QN zcrWlaS| literal 0 HcmV?d00001 diff --git a/code-generators/build/classes/java/main/net/minestom/codegen/MinestomCodeGenerator.class b/code-generators/build/classes/java/main/net/minestom/codegen/MinestomCodeGenerator.class new file mode 100644 index 0000000000000000000000000000000000000000..9cea3a04ec9f0b7318135e6d3f1eb0f55529e7cb GIT binary patch literal 2469 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

    _UD}0r?i*It1O|*at0d>C2>My4 z)*!gWzX$JDwsK`}KzQj6oN0g1*#G$H4uz}zx^xL|)*7LlvCAX-{gf*A?%SG&O=jie z(TT~SzTtjCx$jtXuwNBJY)$y{AEw$~u571f<$QU?4R)o?(Eq6F5c9KPW zwF@SXz5cAqZCO0A-OtL*)(xFJ(HWHm_0hBJUc*n>FtIZqDmiYbD`KO)$hiw`=5^OD zstqL^qIT|Gs-M|lD5d1wPtcpMc&_taR0X7>!=c51*;Js7&~Onq;FGhYkAtgC zpz3jXH-JM_-~&EFYQrv#N=3hY!iscrEN{dYD4i>FeNvS^dERj%&d%@YzEZN9AeS^#}6OdV5 z9+J~7aylUMgkbdeUX#YfXvj0fy^!ZjsPe!=rc8_P5bhNfey6o?4uUJZO%Z}3R zBA<-n^QbNl$W)6=1%&5RBf^2RL3vEhX>wkd$K?qoFXh$A^jT}cj11d{#N8My$~aM? zi7uu5_C>#UcNaOEzmKKbl$oQ8vla@ODwiQ2qAM0E%kodZ{y~T3wb%N?u1mSkNTp&- z!+NQbcL(J?@{}eQR4jj*PIZ+^oDk-eY)YZ?WB>nZa6_ka$y#x(StVp?OT0o2rRnc& z->kf#<`%;=`6j~3Ug*J}p}=;@n!KM0z$%*6j#U$ucXnQTDwB2x1K7=cwT89TdTdjl zJJ{MLw@Ej%(RZ+2gHHA{nPoeqKF-)ren8=~fhDtgxt$s19ekTo--7sD-}x$}bMGtA zI`_ST=9k!2BM11)Y>dA<`MV2^{PwU8yXBqiX?2##yW~#3k$}yH6%e)*qZ+x3Z9caE z(gXFuMS9sh$lm4}%E>-L2+M0riiC{8p3tU zAP9Q2u(pg33ZBPHs`YJx*YR9WARJi6cdB+*Poru-ui7sZ@x494y**9gVCV;m_@N>` z@jP}Z;p-^;RBgC1^y8ryi}>UcF2}f+o~F=?J$krlZxOFt!uoJi5zANb(*QfYsYSfj z(;RLHH-(!i+v`jCxy$&aBEA^z9LQE_imnZm9;VGPy_u>J$h$;C9PTA1>FcI_y ztBr?f4~^vTjNBvlvNHE3o|dQ_MiZ$|N*_mc((aZcY&BD&k4wJ{5Pw9U3+q8SCWBld z?(Iu5BBT7SdXap_WE`5@Pi<}CN{7P) zIXEk0)aN9}GHBSb^D6Na(A0mo{U6ovtlhYvu_lYFcnJDh!y2B`(4~QEx`D4@E8nhC zv0BvyUiAiB=YwL=#o`~AZ=f*2SL;e)!`Q5^4 z?)_nUmoqfE1Ej%mL*&R3RD(DIWypl&02S+$tiizCc#|5C2_AyVoRsb^ft;)WpvW| zA}KhVa;P2fQQIO96B1z1KjXP5R!J34dd5&-N!nhB>P^*SCxr~Z6fLuJNN-P zKsQ_~kFZ@M1_2D3O1%`=7Z+3Jto@!NtU;ryXBli>-iI)rlV{}F XhDO5ZbN2h2gc|$hqI^I;i160|fb%1% literal 0 HcmV?d00001 diff --git a/code-generators/build/classes/java/main/net/minestom/codegen/recipe/RecipeTypeGenerator.class b/code-generators/build/classes/java/main/net/minestom/codegen/recipe/RecipeTypeGenerator.class new file mode 100644 index 0000000000000000000000000000000000000000..8c5fc57fba883b32bd39980a484be806bc313ee9 GIT binary patch literal 9616 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 literal 0 HcmV?d00001 diff --git a/code-generators/build/classes/java/main/net/minestom/codegen/util/GenerationHelper.class b/code-generators/build/classes/java/main/net/minestom/codegen/util/GenerationHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..61569b078c0147b7246c6df8ab5ae7626409d34a GIT binary patch literal 2594 zcmb7G+fv(B6kW##Boif2WS9n$@2($Bt#W_bhhVn^-xSwBo!fs8$#~7vv8^vPczatD|M% z*p^Eyr4kc*GM}kOLp@2N)EASEUGWUt%NbUc%P<(OH3~XB7N)X3s;Uv#CP5nXLMIMM zS4->M%^K?#?Wnp_Fsz*6nqpnwY!V6?hV+XwFcq~tTCnQhrq+y8bqoBtDIjkCpRMB} zX$)OURogR5JZ0~i6_d~p+nvDU`q^}mD4U{3tCeWV_PA>s7QsKdkU-k8lY1Vwi^5%! zQc^a3N_;-ygeuh;S;9;5|1uUxAn~3HNKl{}R!i7r7`}i^^qARH1jp7GrjiQK1)>EV z;?qg94$)iwNPXasRB!(H0^fomPxAo2qjT#=)(>efAZ{LXqCh7!8X1kv1Al=1?u!)Z zDPD`0oSsVU05-5mD;Zl2VW!ed{C-mFK}H5q=mpmq!!c+N!5<}LRSv3tbR>q1WrX+ z72Yuj?^bb(p6zryx@~ literal 0 HcmV?d00001 diff --git a/code-generators/build/distributions/code-generators-1.5.0-SNAPSHOT.tar b/code-generators/build/distributions/code-generators-1.5.0-SNAPSHOT.tar new file mode 100644 index 0000000000000000000000000000000000000000..e31e74517dd9bed10e2aab3d49ab6b9ad87417f8 GIT binary patch literal 2008576 zcmeFY1F&U5mnM4a+I4OFo@?8-ZQHhO+qP}nwpG`5)zlx;Gd=y!boYBP6E9xGdl_*e zW1swTt({nzE5EhV$j;b=#>~Xl#L>Xn&e4g6ftH1qo<>PlKwe2)PMHqq|3spvXQpRk zVIiRZuj!xjfBZ|pz|6+Lz{bqP!1@=*z|6wN3Piy2e?s|xCd0+a*}xHqp8h|>{b%L> z+_?V?|NoM5qyKpPtt|}y_vgU>{qbjEVrKsT$N&F{De`||{QqMJt>s_y`HvGl13f(} zGxI;&{l7f3GP1HT{15j37stp%&&UEq@V{-7|M6@6*V6xw+rPXN2q+2=5F{i}Vy=Ie}&naIR6`k|BQkA7mSUC zt%;Mfoz1@i|8p}?{~7#`>HK%Y`!|*Tp}_~W`gZ@X`jWp5|HsVx$6Ne&4gal@%)h7< z`YS~2zwMf|M%D&SPARG}s>os}zrlgA51}y>zQh0}KWtiSzLlD7q=9RLNoGQu7g`;l zjI_6}MmL~Be)CD?<&QYkm+`#(_>kx6X$mGlsJh|U=yE#Sz1{ts$;tS7yv_3i5kE-7 z_?WLFEHnZNf-SOo>9lEYU89Glvg)SA1h-?)CFV0Ymz!2D3}+n9j2*ii^d+bhLp0)t z<&3q&SY-%Y@F7S=iCxp52es>P&0#V|>gc(664Fxta>(*>;e93gmcAj_-9|WMuQiY! zgUa59TThL(I{xasR!kSKkf&f8c7iB7Rc})I ze@>GpMSQ&}kl!7C4o<#%O9mgtTixNN&XVLM0a|E>WoIFNo<2Z5M7?5owQ9Kht+KnH z+pw%qY|-7%Lu-8jW5}GRIjK3K%&Eo1)Z$EQq5+#k2Ul?bJ)~i>a`zoN6(hRuH45Bg z+k)$s5`{rqq}KzBd%Ld_YV;#bWT0f5T2X`1x+r2;)`6}+UFo-)OLyH@TpedX&*8&X z7;5@)tUd=M*DEeJ6RrCbV%hd+ z7~p8{WO^zHrLkPlhSm&PG|AJN0Hul3si_j{7!)kWW@bwUR#&WI38@RL?GqVb=F~5h zvw)!y1hj-T1^xtaO4_~242w{yjf%X_5bY%gJ;FFQ=N9@?yzWrc z!hAEos@_@KW^Y1{mS=l1t~|}z6f09+Ay`+r*fTb?p@rsKu*DbS5!WqlXv>Ll5l?Xn z_Rs{JkcqY|D(z&IM@k%*cxCH@atATYgr7P72a-1{Zg?Vbtghgo^pkAG^_Pua(^omV zpK*bBBCsA_vSv~?o0>AVo|m%w^0t(7k0ms?l}aoDbXcQUX;g!*-Tn2iWHH@zk2Y(h z-4Q_;Co`+Q*%d)(B3knB!e6{i=}&I&C5Cp(JF_FmO<%3$j~-$QZl&a05-Q|E4}M6p zEjUrVTLZ}#3dVD)9haqIkOvGSAaH#1nceV#p?TpYYIpgbu0BLb%WXdT^#uzw!sPTj z!)MEs$dk@y-etrVN5K!iVyg|3z1h8=cmA~3;hpUgkMYcE5{oX;0UKrdePLwq%g@_l zw~xl2KdhcgZZQrJwFw62Nq|b8_mg6PJ41iZn;Ns$j)b*37{iRUGW^y;ccjnmeZtv> z)J(>_YiFVo2QTQggSB)6cn~A!i|l?G!-7Buz|&TJWelxO z7D*q>TI7M(S9o4o*l&=3-2ncv#17|7+or+*0kPr&0a5&WtL6V;SR>3W|L_9Wsl^2$(~krY5AmnW`8SO2X+ya+A4dkyU2%NgCTT zjAW2dY>CMxvGmoa*vxa!Evxi6J~U}0#7OS0IM#SvyhxsY6hD8Om)hn=CvtN<)ee<_%5+6_|_3rkBVe=sUfFj zyGnUiko5<@DG0t2TZRZiPsO`)P6<~6q}^naL*vnzC| zhc%$lD%7Jj14a;u;yDsm7Cl)}larLl1}vn^Go;f}mm~C~$+JJl_L%t`C)Nu-=0UmE zGwp!v5V;|IK+F#mOR-@#>J1d8(duY(iGawjN-<1Q_vGOm-N$(*G$0> zH=ZG-ARe12QF>aK)}^wJ8;(Y)S}WS;M$WM7<=3{a(}WsmW}>peiCL7?GkGpY!CR}%R~SOjBAI7KTmOhdi@8}&@_FE8 zwUDC|-adv+#JW{p2(jHX0UsB@gJrt7hly*VBCHZ?s zbLukhGoq#)0r8md^P#17Sc?+i$7@jKLOPbOj46pIEkIPt*N6~#MlRXXhRmevkVOwM z0=uXe{H{h!=zrvAWZWP*kqe0R1!F)BLm-bRqnx8Zf@+kB!Xdf~a5!0hmE4CYULtje zPIYb#3<#d{uOJ{D`Yk>|O}dd3R@h%MVrUk~BT1&DKN~6y3l0Jb9|##D~~TwqH^$8F~Rf!qi+ncxC1Zj{=jiROV>JW~=DHq&thzO@!O#-0`DD z4+(?k`DwANcMT#yOSv1V4SHI}5`>e7x=_RGXqE87D%DgRg*7!r{BjI_0_kK0pc}Nt z$n@GEemVX?fyHY5aCftPW_UPCj^tz7+Hm1^zeoK`c34duSoOFM+xwErFe7U($r&*GS zFMluKEv_GFawAdl21 zr@V6S&C{7rg7Ez5Q$8$lksdVUDZOtEExT|sc2!IMM6yHDz7#$BdDPhIjS)xTu53CO zmrR|tb>vC(YnhiV`b>DXK>n~8TP-dTp0D{i-pTWhfVc9{=#710tHsQ!JjrCKk+C%% zhOgpK>1EJ8rOw=u(R-5kmD>0Jph{{=c18KBH_zO@mUi+tZ6{D+V`*F9LiDInxGJk+fwy~nhN5(eBB;fLl>IC&@5-a5HZZm!-FB*So)3j06yjy zX&<-r-_xwKbk+alwljkZF%D4Q|@pyFi)?g{)g0jLg?{ zLCTFhMK%~b+O6>vht?FQpGAb`8^M9HLsOLP_??7B!Vj8KE{}CKRkY{Uhm9EBGb^mj^_y<=*!#2tR^3_&M?S~+@n)BWpPxvk#`@*l z6HL8%v!md*sOwHn0s zFIZQAh|4{OcbddTNI2Gn(K$VbQL?N{6`^IA>cx>7hORN?xGWCh5N+y{lZwnRwdF}v zsa1ud)Ams*)QdmI7d-3C5n>|E6-NNGLyHEK4oBr2`4B>^&B~IObjR(K6A5y1G25Jd z;|&H~rotLCYa!B31X);n7qVIulpk}toLaGct-e=VtTYLbO`qnZBvn0zG3;81RvJSQ zF4L(-rd*p`-=p$}ecygRhuoh9ERry2azYd4v>MwKA7bmmW4MbZ6*UoQ-XGeZl;7bt zbE8SGegW2VzXMY41m9&)`@P>YGS%|FK4z>~_S6pKzP_3AHaYqN)$E2O!b3+P^0%kT zpua-;mMFl|A<(OQex7`#$T?+iykY-_Uw2akd_sMJ%yBS|$SfN|@8Q~c<1ESPSK5tM zLNGKTy|UI+dV~HJpf<0tedvOIorI$HfSh_|$sLx|6M~nCD<~M*Ij#dp-@Wk!v2V3G zAkg%}cx&mzRbQ;gH5N(5caxotqq=$W2Bj_@K=@x9h zgkwQ6s7OyWInt1OMKw7>*8zdwSEd5?F1_pU56dy=CLs^Eecd{`-M=D_M~>=vL)hS( z4l`h>wjw0SH8uoPT^D=0t?_V%g;u(+s<;Ej20yjQ z?;`GcE0Nu^?fDKqy;I^`8@0LvQ zl035VN@rBMU#bD7PEl0_3oq68*I%(lX2^QgSSDpjO_|sFFpgy_%}#LF+}KVHsRiBe z*bTYx%|8f3<=Dmsi)A<4W*4l+d-1Xi4fZDNtLksPTdAf;JX%X=b1$5(v;j6-=5s&L zc!SMea)w`>-UQ(1PVbsN>xah(-dB9m0WK)5vASL_(!b}344q1D40G=uJ5gv6_t(7} zU#0X#RcQ-u5qZZtLvyPc%r&Uk4vs4E6VzYj+}i6-6ttSZeeMJ3A$ml|^-R&!&o-nyg~%BJc?QirJd$~UBf2I< zauYgR2yn^CjN}8MRO~yDU!I$r>2CLjPg2WK>qLq(e|;X65#A}&xaewW3agNmqanSU zb&&qPyr*$?SV*w}$?ERz=FENshUui81xOaeHzIM$p=p1}2yE3R%4X8jW~dwgO42Ta zjwU#bkX=Shi8`4MMX1btsJ)DX38=3t~qZ#P0fp?UO{DA^F$ zBgt#&Luys%4KBTO-2}2_sMj?y=3g4-K%^&_g>kho;40f39dqbsRjLig%`TNVU2=o$ z{7Pw9Vx>jL{P;YglebWJh!YNCiD43WTX&~{7p|}F2m@CYX-VFqJ#^5{3^LwsKj-VZ3>P!p5E)fv>q!5B1a6riqjgNiz9cWf_G zYg2XI$=)EmhTj6Y^*ik-X%g+)qp0hH_4V0Au(dyy#NF8Q(xRm%s}R!>3gS!ERr4JN zrFEeT45@}ZKzCD#+_k7};hmPifIG#E1qYSEuNX+A+B5wXu)Nq>iAfB?qE(w2s?jzz z*Gy59%$R%yvKc7&aA*o8GXu494q1nG87VS3o9bYfiO%8??2X6=kvNU71cUwca(lz< zG3M?-Gm3w)vOy$+?&YdHMzl`3$x@~~Q9RgC&=b29hD)3$-g7(4IqLHwph!N152YU- zSY;z|v3b^O3D!mPxbqHmC%RNpHS^V${`FP7+z&{|!1_GOp>I+eey-6|OHc`AA7;v5 z@l^WQQxC$Tr%K&aDA`_({eYrNF38VwotZ|3wI$8C%0DR<@Qq7JXt4vxnq8TrCn`&L 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�NIN88g**R?NK zZa#ha52N{8^UMYHAoPSjNS!g@wtvt&$4gGPBL^-mG}C^W!D@gK`Nss(8lB)IKJRY7 zntKWl<>!UcD6a)gVQ|b83a7!!iu|g_gG@;B=A~nT`lpCr2qIKrEcsdnb>M^D)1k{4V-%=pe=72}) zcvruy&z~NBPq60pf&pAg*fUzie%pl>rZ|ar z2u^2x;ub$Do6=s&O)9HxWyh3OKao54`737aM3se%*Zb4O6q)@NbNt@-CE{Qh)DZ0n z;{I|*S2vfJvTs{GiDZ#gwcrToWJrxU;88jX)sN>#&qv#@SDTMP{xm&-WTSs-MG$Vu zkeYHtqIC4^8W#EM349epV5M;kf575VOB31(!Q!=a8NF7%y#cNtw}Bjk7vt@ zP?OVZBZ}yJe)IW)K+yS|EXA)AI2lyGHm>rnv%;ZmEdld1M68y3_xW#g0><+d-C02n zpPJY!0sjPzJiX{N2KP*^;DH|ox6_xQ!qdI`e%UIT-h4{6?H{oC#R`NjLa_KPIJ;hT zD-y#9$sEiS<)W^*l3FYBk)Hstnkx^5*(XWIw~wN8JB3+z{gW81$~l4)ei*FHpLVUA zR;_idMI!W^6r*$KwD&bpuXn-w`#bI#LPeD09-Kn^@&NvQJKdm(qv@PWdE**!4{{wz zzyn}U4xy__=H zs=-~+l5OLXf8N21I8(J-7}xuODx%9oUafCxxCOH%D)F7q81~9d7DS_0e_Sw*-hb&)tAM z0etf3?n4EEGcgV-9>Yr4)Wr7Ht3d-z8$Pwu!JyXJwV7vp)$yCIKE}i}9pKz{>Ww4f zgrUtj?bB(Shn}5#ByeHRa*G=2$tqhADus;aFr^HG^Upy_1sfV1#h2!tJ)B=i26m}W z$0l11t6Jc9z;F^J`~8;V;3!)Vx4!k+T2UoSOW(x7(0sAxO&IG^3_O*Wj=6myYF`ZT zFuO4q{VjPz`!Vu#5{)<PsI|1GSmqG!V6>IKRrGLpC@7(wuBpypt=8B&^=Y|2YT>fFaA0Am zTxL{u_y-O=phcO+1}dSLYAuG{M%ub+(S~cZLfPAJE~FJR30pVm807(D*z$ZN1v$zf zoNUk8#HkFpDzVWi^LTJj2e21|!60p2x!6Qa@AU0F(3RwBP0b*{bgxt%50|#Oo5fy} zG6LQU_(mSR;uWycJ6F{aMtrx88U`dZWj!{vu8!Q+%6@V{JiwpedppcZHWOXP zTVe-C?*7$w%x}Nijn-VTpB40o*IOex?4|ZnldGJqC0?$W-@4n4bX^02JvFBJj9)yp zh@)G9M>`LvofVPp$B+r$x9WHmiQFs4?fw3IkQKJukSBDnELuUv)!gqftg7jNxUE>8 zaDd;ZqAM}Ux3}Cuy!lDEpp0=H2Ll|Fkf}BB@n@BIy}FS*>@}IOf@M|b3r0K|!c(03 zMwbVlGNGjp&Z<%hLqeF5Kbcb_liuG1tRdiq%to>=l3)sf*H zRdb;uN{+kWz0cXD>^<6^)alO+uz)q!6EV+0;5mQk4Mtf_k8^EM^=ezms14S=olqgI zc3V?rgxH{3&4q+#D`EQfBKTZ@UDcR$3#ogwo+RV!q z?Orrtz_zHjbyvo@0FnwGwVA`f*BspFP7?)>v8cawRL02up!0gpwrc;6Z=oFbBW4MR zReP=|=2azv8o5cnvUreHux3byXm8+i@eC0Bf_s^$YFB~dkRcxSTcYh)^=f;msF+uQ z9c?Hb8I6uK5Tb%RiKxle;Db==(|kRdT1=MZBP7w4jz9wvm9I!fou$fQeG8+-1yrcm zIUoXEMc{OlW(lwyO&?A1jA^|g5pUJ7-I|6EXwknVo2c#eo=P6MD46IZt7+RiZuq%i z5c)`Fy&mQdkEHQ^>#B@#0p$OoV8AcAJ3!4#S@^}^LcsW~_)vnJ=Muljqk}Y99-=rw z4F8)1!InuomO5x^w5;|BCO-|~)kLWKqrrl1t~b6rZ1Mn4^!p4$tc~nSJ31-DcbO-o zWSic~CSqV|-Dw6!>&QJrS{mX=JTd-`Afno~iFk+KfG*mhVf#8Y*OaOLjm8wQ=Ln_^ znb=dx`Kn~}4byrXIy4C(i`Cw9!_V)Zg@fijAk|1ehL1h>#=m8wQ{=pqGV%@8YV6wh zd?QYg+#X8uuV35I{lDoUx5dG|0J2m(9?`(*u{^` z&mW_Ij(h7g9~nSI4-Po&^DufLyN1tP6d7_p02tAbn zLsK5ls&)=?KiYk1Q0N6smPQ(EMgD+?z*RhwmjlNY6Zg>ufJjv@%C(esA3Eg63!q0w zTfY+2&0(B1keojD3%T_cjG;g9d~DrmzVVK-xsv43?f(6B-T7nO_CkJ{$UXOR2xb)i zXD)p2aWapi>lCW4LQf3ZzI`jjs0ca3hfb($QT|JKHZi;}Z$Er0BM+*uM5Lh|QFt*B z3xDT0b@ls+b6Lcn?isr-P4p#GjM|ut5)_OQ0NuS&f~!5m@I6G4>)`6gZ;qD}!&KTM zL@g=8PE6q^1~?jH1yN~pTfuHBUKuGfW`L6PWwAl&U$rxD_0i01k%|DZRBX}Ix)sg| z{-G6C$-XaS9FbFTq!t9m`Z&gYU-B6vr|c-@o+d*5i$_7u^y{WkCTO z%j{;HPg$WQ(eM#DQ#XPZ(&r~?V2Y$MX~}|f4$UWVWTtRLwfk?!T~^4PrOMT%9%osvsZ zcz2lq_B&3(5}U%G6Xpfup{ybM>rMj(^~>DXz;(^v7g~WZ9V-8~htQ#N0F3*Gmk;!g zF0}qz&uTwh;~!Cn7g~wHgjAPWi75Z+!FSr|1T#aVl|WIemyk=>!~Ve$XNb`~%2Uf1 zb_4GFv?qi3=WV_+ch$AqTJ@}j7LX2}q%SsC>-FizTku9z7es89wflyZTJz`5cAYT%P9 zz(5g9S=}`;@Y-=F^Wv`-DoVhFX~h$oiADBFauzBDa~k|*DyeR!kF~1C=2^SbzzFxh z5qBD(zz7^O@Q;XG^p7V(fp-+C6tHW4L_B>&u;Kd5af35LvX`*om3)Qj-;;)c-NXu^ zK~m%HQJI~Ku@TX(tJ_&dQnN==dkZb$3ZYr=nZ@f#blx&Y*c##hut5TLGaJ+V8)3p4 z-830GD(bCbr(U#8#Ka_l6+)5^9^d%4LXgx5%YhXV+sORIsh6T$+EnKe+banaO-loS3Hm-n=f7hA zhv*L!sUZl^Z}?w`m65#P|H?+sIN;t)Hl>0saqsFfvL+; zY}FDGoM)X1B2rqGG_>K*%sC<;oa=B!{acn=kWciRo&QAv|Lc#=Y0%_Gxl^~9ty+sd zYh#JIfw`x#{XgVYM(UMWYdmz|Z$!ZWe?u&=WhwGkm(FRQ!e+VCHe9F9EV49*t4i?K zZc!s8a`(UxxEu5XnlDf0g|Q9?C2bE*2&6d`PTM~1S2B917}z(7dQavJJvkM;(`qej z5T3iq?Mrk_2Q=e1v(}M9df*~@t2W7c?9r!HQyE`q*u)eN68EI9ij84H5;}E!Til+h zc+bpD5z!h;Rw-eCIYR?KD^5#^D&DeFYf<=DtvN^7Ct!X>e1ZA>`R_$^Xe_D!W=z{y z(uCm5HosZE$GtME9o&+3Y^!GfNP-xg8?Y#|tg87OB#2qF$*-3=6-OHoLQ=D)fTE|!MD8va~k?yj&8 zb>)W|?63NP`a|9Np^hs5Q2UpB2Bu!22F+DDK+?48A5{ms!5?luLaxfue|iO8>Y%yC z<{{`vngvmR#n2Bi>#rD=2o&qpp@9h^KE%1dV$_Ft1{77`0Wlj)m51cDVIW<#mR)?} zNcuSF1v*u{j>05_b$KLTNjwC`ihL&*7>7dFj4M-d5?>(pL&p*BO zny}K>y8f!#u)+#!+S}Q~hGw8`<_ArZY5csPRea>v-6*b%EM?7t6P~9ZEsDyvm+K-W z+m#^|qCc7lRc+ZtHjswBxMDqMC2APUc`|86+|P?QVslI6bA* zsNbmnJpEVIp%F3Sz)|JJu+wAqb~?vb0%FM)V88X4yQ#$m)m+2Qc|BzCem)#8+tlFm zRCSqq7*%nYdw@sJV0*jaX191d>Pt6cl{L1xISq`i>fc3tFU-Fy2wm95G%379$l>!g zb$T3b=%+2{hdKzkYhak+AKMxlOhvz4KkqI$zN~nEIzTbrFRzU1=qOmQ?iYC7+;V%u zMBHE-)Nk`FZE#G9UcIQq)$xVJSnf7}jAxF^^OV-rm-^b0O3Ub37a0AcN3Xy}wXeqy ztudMC>6W}b_Zs8m*2W~+OyKnSXK1Me7=_HC*~X3{D}9V3x)N}YUrXjBE}_l)i`@%s z-uP0G-o+QE(xwVFwb~$c`@J*^4Pn~GAAcf$K>Oc~lTW-&ylt!7n|YhPvtqt53oXTs zw?02z+|)L|FJ#S^F1U^k18%Ooi#F%zf55bc6Vu*J+J^{-KN!`!$9Rx(

    gi~;+leJ(8o>5V-utugWM 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
    & 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 +c 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�p(V74f1IiHJ;$6F!CyvWa3;kb1KM0}! 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 z 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

    jBrk8&9YFG+zzB3Suj=L&iU@nz@%J-G=5)`F`I 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

    ItIB)@I<)$`DjgfTQsy~kFmXq_*B}IpG}@ik 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%0AJ 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

    FBw* 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
      Wu(OrN2?Fd&+fmu4#x` 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%0A5aezKcsr07M8>?4d)j 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%0D~Eo7WuVIgk#Di=r+m%z3~LS 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 CR$$8j literal 0 HcmV?d00001 diff --git a/code-generators/build/distributions/code-generators-1.5.0-SNAPSHOT.zip b/code-generators/build/distributions/code-generators-1.5.0-SNAPSHOT.zip new file mode 100644 index 0000000000000000000000000000000000000000..17746b595c8a908cdcf226f18ffffdbadaf1cb24 GIT binary patch literal 1770040 zcma%hLy#s63}xHXwr$&Sab z5EK+pVy=-U(0>B*Kiz*q@Shpk8Jp0Vnb?{*8aUfII?*xFv(YosDa#2dC`-tzFn|In z{2#+f{@>x&7KZ;@3ZH4#;00YEpb8TppuhirDgN(8(pwrh26q|N(@!^&x3{O+0B##? zHe3IfZcM%Ge7kJn@cGQnq3&58QzMTSsR^Q zWmlqCg%ZbpoMJ%DBC(bpv~lL6uC>;@h z4wO5IaNW|}m4VpVIYAK_KGU6=wmrV@Z11dE+n&5G>hubf4;yfwoC@5S~omf zrP+vYa)YwAxFF!IFnGoCBKr=(zGI~nLX{>|x8GM02@HBVkQxDN)N;~HvyJBe)f;48 zYIg|&XZ)0F(>6spn%$W)Gq8!V8?&}k@8vik$N&uX;0=?+a*Jd*lxO3$$24Fq?9_QWiwSXCX)Gdt-wdv>>*&mxLn|wJ>C>jhBu#|!p zZJi-gtQEos0ROw0(05kFVJV7*lH~l1ibbrfAFuUE&36D?d$n1Fz;1Y3BxcbK1m=cE z>7jbL9o_AFv*p}iS5NFD>i>ONdr3vczzSj=VyzNewGyKdsPuyLh@pujOXUOYc4kjw z6r+9DQr0S>*4~(&uAz4>&8(kzvQG({8_F!LdKEBOY%qk}F(T}7t#QApm``^e`RJ*4 zcZ2LS80|kV3@YJamCBT1A4wo_jC}&dn)F-J@w(_cyzBt+ioiq5}i?dLK>p7GjM&N zG_UVV&i_H7?}6@xlc+mzMUrM6QQ-(Td*mbS(RAs_vF1rf{pTP!_7(CYR9hFRfj;)f z#(1b)HjB9kTp^b?E0?|{;_ry7r9p$CvC|NJLUQl$4p$1ef#jze9|A7^Ur~8&bySJu z{KCz=$!55u8=2qi5^VXvGFOX?O6y6LD&`Rpnvq$3zsl(h&*V|%ZL000VRu%^GCldA zQOBJu$trt>u4}f+a<}^m7jw4EYO0I{xMfY(C5lKlHwzQap<8GX8fwPZx|^&ft9zmY zYaa)~)7jNb=@#}wlu(zXI36=`0$uA4P(4pJESJrbfY!`x#OK8PBPi+NKRMR_N>?Nm zeF_I%WEC2?s_jw7q(sO6a3*)^xQt=Mm^podk1~$vF4!+0@j2yGy`m8WGr(M))0xrR zbd``;rpr#TiR{HAg9iK>NcQ4#n%_+1?&4A%|v zduh;M91Z#>elgKI*U~K|>vn)Ayn&2hyG^{R(1du@*k#$}^-W{^K!_`N?J}M(KOodu zOK#%7aDwp$)!a7S9(N8<^HRRMIk-Z34~fZGvVZ{o+V<@YI~H(4j^U= z7l{}+T2hV7@A)Ooe@kUNH>8St;r`C9zVXBMEgp&OpMqe%hJxf+l2p@3=wt_ZeE`+A z9l%8~p)#B}hiZs0`q4FGAMwD&!MaMizlNkLd+88U`Cvm6*(Kx#;1@(n>Q<}V_rD$_ ze13D@X*XAfU>8b}w6djRWj2oY+wudLU!Py57&*#Rr^n3!$fh#;?#@+W9YS`fxMA%9 zg+_tu+UHF{D&B+cVf)7=1U3oZSD3oq2xOp&(&s?mqSvf&l8ao9)C&<6%qeLlnm*W@ z!Sfo;nK6kXx=XZSzCt=<5H{%rYUtQJ+3hA4J_D+mK#7B>$jXuitp?tz4d@Oouf!dJ z#GzSCa*RDK&`qmStlcpm!X-#xc#VJ6qW{?QdR|>iHQtgCWR>vtjL$+_BfsQK8kTRT zQc+?N8^ipSX!h-=e?si9650}6N&*)vZMJWRnx=bhP`Iag78|_5t|4w|{A;5%Wo_EH zRaKHWV<|gPj4q%C=sbFqKK9Ip6RoQxdus^KZmY(5;N$A236+jJ_J^kX#tdIo@h9M` zSrm(oClpHJMp&pYbkWvS@jxn+Do{&aqp@6%rFUi*N#iw5haOffx|9E-bkLs!gtAC} zUg52uO~6T_#Yz0vm}{ALh)E^Mnw9?EC;#w#GHVG~bb>hp(m7KaprAkQEl5VRen$`? ziQPDJbXOR#ph)sas7pmX0#;j~MvgCB73ZYr?7*5cNJ6E3F_mX{2S)eROFw|b-aKN8 zvy%jPwnQl8E{>L|4u43(6lGR-G-;|SEMDu+J0fk{uH!; zT~ROnrg)N?SzzVF;I5KBee6hKe&wCV8}|>aTmpjq(U68eSeIA!E-Y3+dDi zBay3`IOC2Rik^0Ny$m@h0|Lly}<{cx8_m|v}W(ztCvB&8Rb%&+w1k>(P2xv_OZ>X79*G3EnyENWcOsB+7 zAu!@(oEP_!cVBc2(6hR)!QQIkqqn$Gn>8mZXcMJVvNAT%j9)3@lXW8Sj}{(I*4h73 z&EF#iD>*tkH-tTT6OPOIEsLgZ+t(#!YQ#Q_S6X&0HFCw@Gncz=2}f034h(O=ow=VF zb|n>`#+K-*v&M~ThS`nGnt*)@US>jq{a3BW zcJsn2CXx?*)WL&}9RG$u?l6IibvODJU_OFN`SqfS9p1*wmo&JxDXp5iEAG|LG*((KTtncPX1#m;TjKat(S9e5~3X_$DPP#KFwcVaJ(gET;V& zyHf017Q4OanZn0#!t0v<6L#7T5iF^1NrCN z=^Y?u*@J>#$;mFhDZ3@DMGmr<>fmKtUscf8%x61#QNohmsP{O&rx|dZK6aYU0PCZC z7w+1cIQN9mVY~IBKg?H5(0INq$$ig5Cez$bPwY*Um4T^pCnE*gD>YdFSM={jEtxk& zEr`_Wj*6zvI8}m-hO7>A{+S_0`C)Z?E4WziFQ5y#W7R5wyVqbFsIV3xo&P*Bs{m;& zX%qu4dz8wtc6rZ5@5|P)$lUftu{iG2&kH``!nWN4qfxFU+)G{4JiBfuBB33dnV6aPL6VXY~M8|9)dZxXt-ER~%_QUTB zDU?qaj4p}E!f6Qkv?XgJ1^@7Z#Ly$MEV((}TmYXZSCxOS^}%qw)(@2Z!52jNHiX}J z9>SZSxoPRKPr$53^K}{FxX&;Bv5oUHXz4nPjAU?>5XQB1s-REgGmUD1g^;n*2T86^ z`8dakeb?cq->#hoxHrF7=#(o%%tSpp|MmXL$3E@&PvzBEB_U>3!tR=7m3RLS)Pjb} z2A``)pRCZlyRcke!%2+9IqcBXCV*Gai6u!KZYnPc9-gbQU%}cS!fMrR0IhJ{{0LH|5VluNd9@A zz>Agp?>tEh3Dbz?%^dxL!T}y5gKg^2Q1qQVjwqj)ea~RcDwMT^m}rU=fVW2i15Hp1|uYe%x(&()^)kuY&8_Ns)}k#kB+#%#5rMTU*JF zZHR|4gDJ;pqW!Bb62nL79}l)Q@}goD6_)&%1;X8TINW$CMcV6(kKvfrp1Fb)BW;Tm$#o!yMd^?% z-ad^0m}*=dKp(_s;*fst$#jS&QMFoS+ zNK_pg0>`ey=n3Tq+gj=I#Ed2f1f$$>72T{o2QTMrj713F9cPTk9bLbu!Nb*|2$>_` z+9_%U#pi8ZEc7!8e)*3Zzs(X$QLasivq#$ODmT!kO_Ybeb1&lK>Q(~BshiN-d(-Dh zU1);CV4UhMoIi~vAUpT9YC6xukmPg$P}KcdMz6wM9P}qo3>@2eprNbywygA);%tg z`0MTF*3^?r;rH1S#pm?ytuLCS#*-pUSFnaT1EU;OGK=$WS?h|Eh~ptM(Op#gV+v7B zEPnGmI~h|i8DhJvy3A0)NaJJV#hVj(6vQfqTe@Fcidn$eHABf`lN^gBsS;_EqG6gz zsnKtr%zxQNWaoJ4uxVTwB`Ct*!t{gn7`&#XNu5>SoP-qAC0job5SS(@=WZTBbiT2( zvvMUwTDqRxLuSrCjDRe8k+3d!Mrr+wexdg8sFvQ5Ec@ga#? z#dwQ@Oxv{*D>A=>s8-ri*nf!&3s-Fre8CEs-Q=@`{zw+<2w85tE2f^B4T%6JH6z&1 zRWQ>oRw_EuyXMmg-EsHzEQ;P*HtxvrZEJ)cYV}~3aNvF#&DYdW1B}Ha4~ZiS{mqbJ zqB0UtiG%*`c5PT*cKRH`qd&VFWRm)2Y7`~`y!lVr zC(=60HLXa>r_{T-#F)^5E;7Db!gJ3d!Hs!OL^Q=S8grJDyLndV#Prp24!tsN|9KDR zM$)mS(00F$<}<9y-3vD{G3eDxO>noAow%B1PC^Ox6xW1G`%&$kdk${Euvl_eje1ij z4pd~m3>E#TYi2foU?agq7b80r>SLsgymbTgXu6J$F;RuIr@1Q*fh`wYgPk2X6gb3l z6_@KI!-Oz|AjfEm`&yvGP|6*q(CUo{NF;=5IF(YA=Xkam3%OzUX^o!zul*4iEb{2V zj3R`G<%FV*UYwJ+Ms2wjy zxEQv)#Y%uB-#j73g}8CT^LVU!#OAVba2Zx3fd%bc=_{Pq(rE2XPa~r#Xcet*7kt3Q z&qx*3ZXwco30Lg1AQB$NFyyXd-e-dJ1q$AxuRbVaVPRI5sZGN(SDa!+SQo(&@tCZK z{_un)V4(Toa0hc|>d&p}%EEK7NLFRnszSba#9$G%MT)j>#PIVmL8xTJ2ygdi-suox zzSOYu77q7%T*F#Crk4LWN-;m<$K6>Sc$EcWsGlk8UNZqH$zuW@L*EcQB-f8E3b z!;*&i0R~2kt^Sck`#^poKTjE^1LQqCI@P89xT<}+u{m8xVf9gGYaEuF8| zewBj8iTpyMMv_;!R zosD+Ph(Nv|kxZZRd&EqnUM>2B6n(e0Ak1OH1aC7J#L5(*eO@NhEn9KBb*dv#VQlfJ zONvNuGyR71vDu^4Gc4k{DWQ0cs+o#`VLU(&610AWi3LIaP=nRYN!>=%EKC5WnmT9> zZk;++HH^myanmmb5^AHzL|oP4Gvk96d0NYa=zu7+uPHrvUP(+1t@5lGhw2)As)KBz zoWL=nz9uoo=eam@G7e^29b#%+?+3}Xpz?r2J*{IzR;<(t5Tc{jlc*v)vvCzKOQ)VI zO2)r6spT)%=C)g~@XKk*+913HvUqx6J_OygO)K5W>w!j^piMxRRxQvzvv}8PYjM1z zaf7|{LXg1^;3Ka86w63+m+uRops0$2O$GdkBU{LFf3!G(22hD$&E9c)k z*+;7+BT$8RiUa2LpQ31sqx=@}p0jaY*kBd&4={RX0JRElA!xnN$y7Mwx)ZRPHe7@} zV{}#d?|2(37`Z53^AYE+e1qpQCv-KR7X63MZ z85gEMF1h=;5LfY~;v!7>?``of_eFwJ}XK_Qr2akCi-1G8}l(V@lOxfKU(a9*@%NEheZl{e$ z3-K5-L>tn1yi2=%UJ77tTU{^o5!&K-Hh$XoT-K0i!8byU0ruo1GZB!hP=6QW>0TC~ z4Yr{yLs_1zoGQ!C11+phSVrk zkx<{SVx7+f4|`M?-e7vEq!;ezlVCZ8SGw3j8(*RX1#dfwEt>j4!z48&#di??wtFnbTdyNuw5hs_yau&3d;QM zRuboy4*q)G-L7lb_>J#SFAz9AuU3dVj-f0d6#~uaQM6l&a@oe?Ik{Abx70Hqo4oOQ4DFI0h5DxhVzNZD=+;P2>B*{u3sP*F~ z<$Y_~w4QPO?}4u`H|%TMy#VH@F%m4?Y>xrG=3^apI121rXB#7O*BA0`#Sr%>$Hja6ECUVkWDo~(5M#W5^Cn^iLU7OzsIWwvYt zHW~3ZjU-iL)Z6;Ph-8MrG_O}yQ85`!S4>lLMSnpr&f*@5W#1Wsy-ED|^K^N6D?)d{ zoUA^D7T4~GZ=Kl{rpH^xy0|tdja>OroQ~$tw00>K)L6a)@glrnoh}R}iNI(sNZ)KgJ6hgB`;gGs3t#`bB8oTxUecW~#Hn zHvb)^fs|M;>4I5uM@c309M#1UXFz(vGTh95#XQtO)XEe;V_rvChm1d*&YFE&vEmPQ z(L^Dmr-Qv_b3=VwnF;4GdANgJ0Z>*&3jTODSgwa>OF0>9V5*FMZ=7i9VYG)&7!U^f zx+|C|$pNg1szZEaIuxW3(mN~vOsYqTMw}@-#VhmiYtCfvzY*Edn@#^|rFvs@%8oRw zS5r7Yx=B?C&6u`p*W2mUt$lLCuciE<0g9zueIK<Ys-4HWj@;gP3Iu-5xgav9wje zX8D@Ad=huiiN$V@fnek`w^mIRi77zEqZr2C83Os8gp7*}2KwvMNAU_yL zUo48m?aa0G6P{LQo9f135VlUIQH{UAhJ}#=tebE1^=&i0VWWlRQmX#Zga^g36m_)v za=&2;aN}5~&HZS_;h7JyiIK(>b16z~x-rsb=wp;7HBE{oghp)@0n}gVq zjZD(sJ1|V2r&#oK(jDr3iS|#e0EfGI+Y4d|qMx*01E}+ji`+Dt942;ExJ8JL^_v3a zz7)0rhp4;Sfmy|3E4d)ggE5eRlQB~t%GhxcbEUy-_XTY*4E9l~13HLQL*%A0G?Y@~ zA8@apO)veXa7}rqdc!j$+5|VOm>?}?Y%3pHr1;#k65VMAkGFR# z$=IPWRNW)tc@~}VnmV00^;RGf&PRJ%+SJ+>vl<~Ln|-1O8f0{blgNY6bU`*giMr^>uZg-{Xi#ibMrT*{nek zIKOXpnRs6*q1J&H3nWgIXH_7C8|157Ty2Fdm%=6$kF&S~kAnUjc2@MKqV%6oIAPgW ztM`6`a{2aF@pS@=%Qd6S4DYUC`{TNsX}D^3mn++L<<}YC7@5BzKnm-B)4II*QSvRh z5Bw;rt`te=h&QLG=CJZ6Z<+{I+$p`L59Do54?1;+G>lFc+E-9&S@98J$&4@7>LTsz z^*mm&&tl&ox2NKqt8K)@-X) zcQ7$$^;K{Nal4{STs|n|Bc!x*$3B86u^>AOYxV5B#p!S=Q;j8XWOe3NH7?MJ@=a^`tc51cU7= zYD6%dtl+eXUsLf~`i(uhcD7_cJ2sd=!FjhxAqWf)<* zu9CikI|jJN>n&4Q;xpIYvkWw{nh+<1a-(ZyHknaP<{@c%Z%2uuT}!^I@IF`I-p3Nm ziKjDdR#>!* z6Sedk1&?+oL6yT)imM$==bK8()G z$80y9$m*tfbSiWHZnT1?s@6p_MfJBtc13f=quhSZpz%=-7+}P=C1gRjBR#u{g>@`= z03G)K*Q5o3piuB^1PmG1M}4Gnn-cX?jxB06FfLe=YaVIjZqE)x8=$ebE<}7a)}4xf zJqms*#_TVu;uT#L=9+^dP-|AzL6s&EX2lVi!-DLZ_bFZ6lP&b`a5Zy4m+& zD(3M4#9HlCRSt|yS7#p;!DL1*BIT;(V2W16z4W5Z2%>xcNFC9jchD>~VuAwaxHphX z#CnuEz>bAw_8#2*T>W5RT%frAgSM%pfMJ-sKc-x8$d;Fp3iMb}8^9Jpcg6`hjVzsd z3g0^A7;frN&%|d8L^dehCR2k3kts&ktSM|0`(7f&=%pK=?uu8tf;&SnxW0pz(cXon z+wSTiY7%Rx(ELu>JtLz3AQJ#pqGT8>y;5_jIrR2Kr*z|tmh&{hplgMdpndp>qgz^S zQvHY$LAx>_jvpv6}y(C>gc;e<+S3lkkpNupsO`$ zOC`2O8O(I!lbGG8Q;l`fZv%1HtL-pJQt1?XnNpm!D@!&=))$ij;Fy^3h@;^nsl~7d zU>og!;qjmmr1#NA5dynQxxKGKuiF$aAVU4D ztkkr$$N}_9>RMZcy{&M1OJf9Anlyp;7Iyk$+ExJ?R;+Q>w$5Rc^&Y7fN|&*m=5Bhbc?YF6if1z&B((T>$J}DiFpUQ|G1&5rsXv z$qw@fRw)(EkzAVN_M7CzLUH$RXC{uTeO|#&oj&NM2ewtt;R|53qRJ`M=MGGjzj`^; zz|NzME8=e%=93ebb!PK62}!1L%IKz!s}E%927`kPd1oSQkx%6~6;j_4kh~ESF$g*i zDy@l1LE6S6z~0`y4dy=hH~DFH)j}7khWA**x~C25{`%W$mu`)7pvTRIKeP2}A9F`> ze9;g2OM3?0%e8e^Y9U1Wkqqd+&i9rPfE>jEVo_~rGr=;@PRryf1D#u^e`Hkf_(cTy8EC^~~Zz}I6W@(suTi(T;Ww<`3z!RSr_z8;yk0_DJ4?5(H%l+0wsUE%ZOF4P zPqEW&eEag>X7FlsB&d|@8}pb(#`h_+=Rkg4r%?>e?wfEHEmO1cJC+n7zU=M1%Y5wr z4j5=ioKtR&qaV=sVZCNqb5L<)RuZVk0-PcVwSPYb1W*?}$&lX=UJBz&NBnvOBJc$g zYL3J1WQ4NN*vO{;eFQ|z;`nx!Sohe7G7I5pBI5!MhNr}^>LyIr?)N?NQ0Uac3oY$>u?ZOe~d8JSg61!UPZ??!(< zXy30*d0rRzoDYbsxiZYd?DS)+m*$pMbQt=QnKOC;g9u!X9J*CPS`Qx!7%tkK zHx(58jpJ81Z4j^aD(Aj6>FXr$nj3rGwfp1MlF_Tro#5+gFZLA2&-%kDj#2tCxYV~( zp#g}}w2IOU14N5S$udg@YaN6)JCrJF_>;ccOOq00WUt=ix1=j?lfDW~wrw14&n(HA z+QvEXSV>=-+fv&h|8_n(ZC%I@ETc*R8YfsZm=h9Gr}kQrv~mOk@(gieABB1)*?W+W z4&q_`x@Gl*xrgXg4QwUdmJZU*kV*%o+2Ig`UG!{&TSWiuB(x^OJ8I4-)g3F6ahe-=|(r>KgpG-Nt3N{+}m%C<;$o{xO?ONyP zpZeE}UapPMoa%Nx@=ZRs41q2FTr$g7MCrm05MkCfwNDSqvLI=c{{6@g93}cIPe?*Q zL<_}B&c7vy&q198igAGGcr0i*5>8nKoOm#I(1G|pI$7?E@q;%60%=0n2#8B@2aJJE(GHg@Bh*Wh7B-8 z@*cyhybL@a1b4Q9-acHo&tST=@%SiI@ez89)$sQZc0^WU?ogzsDGwmy3eS-r^%6p{y7FUZ?ws$}CJq_v@*`JS<)pv4zS@2f0n; zQm*(}(kcx53wRYW3f{+;bT;ASJCDO<*<)obzagSnGg>=n13 zUq3xW>m3exek5*{8~-Ge%DCR>bfcV=@PYD@O;-GCkWeMw)B=TJ{q08xkn%}g`0u)o zDM-d1sF+D0r=H|5v!C_*f6u5+l+uJLDWlxp;*zAt_BLZ1p9J-u+23788)2G%UIyIy zz*^0{rby9c{m)7T?)+x6_kYWt(t-+-qDmTK&VMCxiSYOL0{cOM@eqN48-9K*X}(_f zcB4u%74SI^YyF@u20*3Bz!EITGW*#9#>w%2#+ITJv#g23>Bu~dQ4`Bq7Z)HC`}5)8 z{)88A#!BK^IUKi2)Yw+sQA{c*``d8-6dj}tyA%x}*&+U9bq1mR z3B+n{2(k3QoXQtgN1}5upcEOYkW*bz?@M8@pM;VpQ!*Fk!jIphrBcX3O~C zZiNP0w_}10uX4WOBe5||4okf2K)_X#vovY0dX{hO(bzLa8TMU^cibC?^cj2Vn8{o` z7XddRxNeS!CEF-uqIkq(IMr%Bk4o)uH{expjl-B}%^v?5TaVw=*9o$zK(x!VYMl-)8HaX~@9A_F`#qSoa<^ z(V55GX44W!l|xJDSC@Jbtk#LUy8E+w4YaF|OKMa|QQhe#{f=Sd)VRi5OujoJ}QBwoC(>R+o zA@PZ1!^a(cIDfme_Dfw>7E@o&!L4-9K+`JaBp|kN2n5t(w$30AvtwPR_*!E>$|V%U zXqbbNovj41$(!qX+<@!!yEGBs+Hzwt)0%B&Q}SF|Ju%#%mNO_kBO_6pAFhS*+ovb` zO6?Fb-%%x1v5a5(E=`u zba{_?gLN5Bb1rz@i@(A)*^!79RNQ@SuEdvc;RGXT@@ z+(%SH8uyCrVcXkbS{RAL4UTgby$$=$k+vypvYveB-A7EQOg0uYf*}kO{Bp6NfJw!1 zu8|`lY>x94w1TH)U#7JVJ86Ej{hlU-$Ke9Hc9yRE;~LyM_m1MK=ipEm0R)wgnkuRZZabq?6WGssj=;XAwqDu~5-Q`$#`I3h?w*R@I!d=^*n;KwEmAvO& zgN-hYY_?8^ADTxAB>t*{%-|Oe7vEoc^&iz(Pq=)xNjqvXls23hy|h((%y2R9l82fW z+j`O&Gcz45+Gu7=oMd@EUBZE_5(1%luBav=iRO%xcudBvo6EgDLEGbIN&SIe_%t+q zT!waO;q=!dWyMg%&m4XN z<6fVL(z=2cTf*&r;5IFweRv=!5fX(WO(c9Q zEEM(~mmpP9k0K+kL_o>xy*6@@pf;@GGNo%P0Y#cnE-r$2V^`z4`=6YqF~9(T3T|bG za4bi4S;yzvce~S|rt@`LT8AZF#{RSLxm>s!@q~`w$0xXCe6(PAb@evksi^-e8+}MH zWmd1bmzC9@+C1T1OlCvt$Cze$JhrB&NJlnG{TlXA$6GCq_pxaLUXv742x$O+xhO^!eKmw{=rD`WbHLLX*G=i&gRaE%!S^uS4BSi*mtrT?@}0 zVePp-ahCV6i1zBn=v6xJJ}0!hf1o)uP(Cg&hHETPNp@L%mtxu*F|*!nk%R8gAWExK zm6!>m{1NRC1ecms;W_%xOVzAE(Q=fCVNj(u^%&&27%D(H1$^lQb-2oLm`y8-;<7Nx zq!G3g1|D<<+DI}4IInj@JEw!4q^3%g_51h?b+=d&t4bS?QmjDqjBNI-iB4FX=|Y*= z#S%|82H~`++-40V7uzRUJ=3Yljz`ndjIJu%KifSKpuQ(=YgH-JCaHo%mHDo(B{#;; z^|`Nlp>OX#?vq$*lPI_I;}sD*=Akzb7dRj&Dl$8d1yJe<>n>U{#w_i&P{s3*X#bu( zmR@+9ZO?{nxp{s?#)>O_wu?IiX86RYWk+P6S#rN~fFaV`&qFNx9tI8iq1Tw1?^kLQ zW8QiU0NNIPMP&oTZzZh17i5FFcS^OlnZ3F zbDL8wn$6@bH?ncniDik*TEf#*d7M!fnR3TBy?)29z^&_mkGP}KfG-%LWmoyk5|~Wq z(^X+#=#k=1LK+K43;yPsICAvR|5$2CP84k8ek5_9YsKbENykukZlv}_XLKxqm6*zf zHkTn*T7@rOWh$23rY_O&>d#xM$Scdsv}|3K7Yba?m#R6L6tt3GfN+D9=yE(wlrMJ# zIKT=Mmd<(o9KczzZV1^$WgJZiI@QFL$?&`+U1_AeX7quM#uVtUiyMinsL?j_P0-bz z70OqIJxS4!(1k*I4&*V9+@d3oxRMU&57K{r-cSSQvu-j=9Z2LFY;Ydsu%mRVxKl zDF#yB_d1jlu`*%H;n^}R9*wXFSGIJcQ>vJ)G;vbl;%oG+rE255!CluTsmzUW`^&i4 zzM$}ua)bmUi(DZ(q4rlNz&Bp1wd`V;kyD8|R~D86pz?rxuVy-jW$eo*^g z{2)z==}LOMj1?t%U+g;~ey#%0wV?9f0e%=Wn{2z&c(ros%^v&~Z$Q_OHu^W_;CjD< z4*}Ofb#Vt5*Ra#KG0S;O(esOal=<8h(S&`jpk#e7A$-&CH4wXb{4)N(ZpJCb@^X5Z zJAE|yzdLa(-F>bfjJxMOczv!NUrR4M1la3nxyiFoBz-!2YgwzdDm5dRkP~=gHJF25 z2A(nXQ;x1#Oxc^j-&4T5--x2wJLg;-pyGaD?G$sLJE+r-!90aOlm$iszAIzC!)?$} z<}8WD&_Tw=#Gr0>VN^>@i^)8-LP4O2e%S*ko?jAUBJQ&ie;L8R6aETfH**mBf;=gw zhi9i<_!O!udQV1YBYWrFp*>uc3p<#Nas9_Xf2`m0{&^z&i8k$*rm{`+r$&8e-?wVA zL|nZfxVJejA3ID=Xt^-A6bPa8U0xRxSVvSw48OK0WL9H*cWNYNTShscWGlcmBEb(O3)OugN$?iLdZ~7`AyW*|i0G+Q|MuZO<31M+_)9+zY*4tJpO2u>!d2!w# zv5-Wg9gKjBUn=Bj#dlDy(G3(J^60kjT22`XEL{6;I3@ICN=; zPnvi$p|srKm0tQ&)C>VyMSAhDL&mxvK2g!choe}nrlmy6T^y`;%L=>_h?MPe5xS46 z&ZK`AS!{jLjzM5HNtj`KPZe;NiTW*`n#C;G9 zei_F5ekuWU5^Syh9~AjtW)W8c;3>Zpq0T>bgpF!L+mJ4}GxGQzV-c`SqlFTYjPcH3 zag0)kq@1M1NJ79&(F-x9y0xB~lRZ2=X{+%vv)|^TwZ6epa=L*nF{Cga&=j`opC9Yt zgY!|kwG2&dX&SW?zlW&%rY}=hS0hQ9{CIti6{5|5 z$*Pis^tnZ(D`EPuO8%H6?arD=*~2rb#R#F%!=H{x#Ya(8)TGXpArUI+WRRcZE+$@@ zKS^t5OtzKB;TEcyz-?U^HpbYy0CzbmR!y^|(&~VPvI{OsYH=FcC=D$r=B9}fs*y9D zr-)dKLC`e3y}pNzp^}N1l$sEJ{^ZPKcA?qX82Vx=n7=!$An$m>X+{TkXASz(Oftv) z=6aMFF2a|T=2WEmCR%jZRNT}qGP}zH>My3))5{kuU{yV9@eDKStk9r*M_*1#; zgOp1$%qL!S5t`blhWfxi>r0#(5zH%bhfEeqTSt5+8+cGvOcSa_yA=w$gZO!u#Q&W& zEX)q$vPBdmw75<*(llGsG>w^gO$&@j^;F42H~SWLEYRj&d754bd8KU1PK)%}tD~q+ z%8^XjGR-M@`L_l_Oc=1U0<`J)kMbq0K%ckOtAv4Fy8w^cVJDoZR4I54%Q!17CXPsD zgzmaX$}2#9hsM+*0E3?r-m)PXrv7=*W6n<2glbVO!cc5{YH6Q)6h7nNDwvp;_GE~b zt2kxS^#?_7<5L|vY+%c5AzJ!pQFr5)geEiUq0EK64aU?oyF4~pQIcfQic{@C&b~4%j&0i( zcXtaRxVu||TVuf;60~t>+=7JQ7J^G4IKi!vpp83(#`1!jbnJfvzr0kDCv78osT_9zVX1y zybv13UC)z7A_$Bj%%?BVAje|zf&^mdY)(<*LU(rzoDATMo=bm50SzZ9)O%lWon87K zMvEOfLU(61%4K5RrvgJeiKP;5#7cap)UdAN_cT_9mgR%Yf!SU2N#332?tu4WOKU|w6L@=(Uav7Aph)LW3l}#6h*IZbN$7H|l89j_%ItB!6 ztJHSw6&Dq=bBVM=8W{tZtSy%v^}w?S=Ci5P<)8L3R{$nMJ4XGMA@aC;EUQGA#p)Rb z(rr*`70Y|0I}#c80%LC$XA6BN8CtKo#!Sy=67Q*=H@a?}5d*C7D>Fu0LzeoE;8!^6 zP`~b9BmwM4s0C^fzJ(3RooQQa)?!L*>+L~leiZ*Gag4Wq&1d#jj?xO7tEO$@%Ji*S za-9K5wlD2uv@&gvn+8#3Sm6##p&%Ae< z$bEITf;?5o#4ikrBdi5-86-oc$Y)_R#ImKnXqI^oxKQe}!vI-d{mCE)AhsP&}ux(16LiU;L0&;E7cd-e-^D0r^ z%R;^gsZXRR0gnh5#eMscOn8*U?ztVrzSCaA5&Ow~nB!_;+ASk-jYYzVq}xEx*Mpx` zUJKhLoQ-5+`)r2L5`iuQAvX8zEK$TTf>%#`WoQXe;;DRBthBbbk-jm%(Tw4pgXBca zMbs2c%C=TW;N9$9=-uF5fndrMJR2<(CDv<1bSjAJ{lPm`xZ>T7^4jA@=tc}!0seVX zr-7>}Ky5<75Yo?Zr*vj_W*`@6nsgI+-M!H3lDL|@XEK#h7xRCtno z03>!KZ1!yEZQ#p2=_YlM1`!46ZkjRNd7Y`BIm=>!cY*+zSNL5`fJm<01Q+sohF`t`#KwC@ zbe&by01DpUlLUT7ooIR~eXyqq+++oA7y`FP>l1HYr^Rc8Ie%8oDj4pY}lt8jaR;rm}DdG z#~WFT7QI`SV&=1N7rXRAFy7Rsig~}Bc_96J_JHE=N;MCVox?vd2h{p(ywON-aI_e| z5t{i=%m1qM?3|qxtsGpe{-4l{f!3lf(Nm>?WduPyJ&86 zN<*4bwy&6ImV=2_7<>VHDrWbnq92Q|zYSuIf*2p+A2qXc*fJ5|QH=Pemd8X^=RJPj z-BfkJLuyvz;4hi#?UWOm}(i_24-oJ%n&#oE?*>f`n@JZX zT#WgODE*eMSvlj6&O>PyB7t$w6%*7WhkPsToEu;iqV%AlTQrQG#}F;;;VRaaVKxRG zyi}^=Qgjur)M?+uk0l&xxAvMxGD>f4yrAPw*uYepn1*!}CuJ}LOz@Z+E71fvS?@DX z*BA2kl*6fE7bB!JD z{2l3}4l)p_LUgCj?kqidaum07}vJj!0Rp-i?S633DnHTUvDSnC2{RaTLpW-cy_5*#_#Z4O=OTQRh*nhGNq_y+rSU zDB<2~I>-joQ1gJaV=;Xetwl)4XF_hXUYJuLTw{`(ZJ>t&stvj~7S`Z&W%K-dxC3|> zI9KbL8w1;gQh?tBTkK0oOmRPim!sQI@MCshVLn2w+D;wEIX3H>0j#Pxhx(B=ug_RG z(#N4~d0C?pWzk5)F~y53QBFGEc%nTGU&3%y!*=~%e@}dyDL4HYG1gbH<@M5jGCKV2c%Autx4J-lD;T_Vo##7t!JhQTnYLnGfsI)oo_}iA`9@Dd!P=UVce=ad_g_^um_x`jG5jj zmjQJ2e$Btbnnji|Nqby zQ-)p!08+!4z|l6~59BS(wrCdU-!@yg*)O}KkcfW-{fr2FkX7BXkv+q_`eeovGfURx z?EQ{0t)0}XTICD)(14$0uVL?~=mK8a6|Dh@)HH}v33MhCv>5dFvRhPtm)P8_-rBiX z{gY(Z9Gw}dATAu-dxqc8ssCmB`aciaJ}&hxNVzj+wVRxW2$7&QqJe+ z0bRJK1X~aQz3f}8j~KLlj1&&mq`x5<^zpJY-45~c&Qz1=1@v5x4*=Q{j6y}kGInS3 zSuL#0l|>3~`FnO|VM=V4>16~5L?IMb#wbEkf=MJDdjk3RpA6V@vuViYlG!Z3LRg^! z+;g+Dd;k|zEcdC@2sLA|EljeHAIs+VAi(ZE)Au{F;wkIt6PFQ8Uq)S3N~R@0abI5h ze(f?uKd@|rKR}Ny^hXmYvx_SHdTC7*$@-%peg=9uI0n^Z5)XqWSV3Uy3TY5Nkpt}U zFbiudUtV4lFoK@4ZK5l&;Mr@;)V>2vb$fI+i^ZoBnyVpOVo*cPUW7Gc)*N8>dHrZl z+xq|q{K7YM;Tfm9;afF#K13$ADKYYgHLf#+)|p1Y0+Ttn@)*xsw3&dsE*c9Rnvu$E z{+Pj%{Y*>DyC1hxEEZyU%`rRSIt;W3PL!4Slb#$F4NYG^7%4Cq_lqmf-&_<9^M4{I z^<0l75VZuo5wegIkw6Ak&4yw19IP;I%o^p5Ub% z%+2dCV9x8&>zFTDa|$k7p$6T7IMJ`iTV3EJ2z;$B*J&(5H3VIGOVfb7$Al2qP_15F z+7ifIgU-h?IblP_@a;G%HbUEAWO`7`M7#_E0xwEups`tw=~reVy`C^%9reCzrUpRL zvvW@7&q){}DI5mY4(l(vTh2*xHof_6vevRp@N0z)dt{0%$SvqHT;nn6gxM{$`|y`! z=jw$M!-kU;>60yYr$H(LOv&7tZ5>k?kjp|2rEX0W!m}q(9|zAL^}Kp)8IMkrKcc*B z=7e?~&ReiS9|!o8mgny2)4PsL7c28FpX@jD&PjRZSv&w7zC@s3_Qa-R_Q%(p01HEDZF#J$Fl>es^kMHn#pvEIK*n=DBA&s% zx=f))aLh;ZRTFBhq8TR{TsA2FsA!iLy2>OnmJ=&#v-^jzD|T|Ftc?+?gDXBM$Qs#m zcD|o;#)|sVmbum*a+d1jWJSAH?(2Y@!)AV$QqI;sWv10eyO>I+aY06-O;1ovrv?7681;i!l?`<||_L#=IR@@*S6) zhBv!4#9PM8MgwEx@LyvTQma?Nr}Q~V2}x)CQ%LG}c8Fyj-2>tIV(jMAfbizSoU8Se zD3nokjsze4aYb)k*`ExaeF)^~_VUZP6Z1MP+GQa^RYz)u=6w7yend5@Q?(VJWuG^VFw@XQw(P_o%$4 zeb23l@Q8DdY>k3v5t*%EHw+Io)jPS|OI)<4NA&k`F((`2bFDmn{!nAT)aqH?iLG%t zi5pS`Q8V>UJ@Y3$+VGzl)i!6E`r#kLI;=LCxkX7?ibyoyhjpZ$1w0_0xE2i&$Bm_t zc#mFz=3VZX?m@3kuQ&7iB7>}jp|l=g%9lxJT(>-W+D~g}bZgT2*|&P~<~=dCEd*DM z7$ZMR;U4tRP)U)GqLJ=@CYRNS|Kw{KrLRJD;%+DtA{Vlk*6A?hm z#8_@22!zMu*dnIlxpfRqNli4$XH3_fP<9eHCv1t;Hy&(}!db-4>Ji+Dt8F3S<4n%B zu`=3nOV`z^b3yl$->S80Z4!6glEW0Vw=z_4HWy4uWRY1~5rOa51W;O@PslqBpIbDP zMNH*Jzw>QLGNf-&E>hhX8IVW~tGf$JLMtogkUIEO`e^}tG~x5PUVV7`ovaa>{ZRJ2 zC0f>ZPO=E<5W#6dCmLJ76QkFCfcxaUxL6X%U_ zy-JZ#l)RhHQ#H@5EQW*2Yo>k@J;+jlkCC)7!Ob*v`gN42Yhga+55R~bqr>S)J|UCn z5v(Gt1x-(TN!d*&vlDqgWe@I(yMTu?0z_A@UzrCRoZ%!l*DLerdYn6poSq z3-~LJ``)I<;*Vu+48vJ4zZ}9tid}SU509IOi$@Wl>u5^dKna0r+1+%0Qs~a>I=6@@ zb?U4#cvZd7!8tH6F5-IRDF#nB|4W-r#Ll64Ly6j4P%uN_gE_Vk7L$icbZOvYa>@jf z3gdtf{zwA@xB6^1NA$8_6dwdRld=fNLM&u7LOKYt?jSl{NZG;Xb5EO2dp?kjTFHjF zH2)af1zy9%Mf5UwbMK#Pw}tQy$F09{txGd896`5v$AF#R?cE49;VqrCX{f39CZl}D zAJ2fVqsf#V5hVynV#YR8TBkH-=t@eIL#?qfe`{#8-#}|)LZb5qhF{3AQVe?_iKC@ns?B&se=_Fkv2AS#>5ONo7?QH(C(gdodPO*+Ul^Akmex z{zvjf%sC^+6_{dD{v$ctZ+GW~Q;5=WZ)))dWJvayR`bwTai18jocBtlNYMqvO&A1@ zHvh1IN6F>7^B1x&3pezYT{|ST`oX=ts(5qJ`GwOrrk!?D&nl~+%GGdd$LwgPuf zQFV32%L0J9X4FlM$ai?L5&f^ciAEX$Ur+ZIfBqacdKiuwxZ4@CAqc1K7^`uni|yoK ziKZYh*?b1n#Qd~7Zw%8-)b`JBjI6=m_#%G$lj7_s;{>V^!hSrG0PYp?Z1;+; zT6-`;)Qwili*kY$^AweCtcEuhYtA&@v3zfE^ufU1fmn(SE2(2c z6KA@vKYdNVZwlGJuyr#FgdfF;XvMx>773h9=zGKzj@?o)4}4WsPA|-d+kv&~3w;`!N`zo&Vh9 zE9^S5a$qHTtd6tAHE!YQ-Zt=N{^Ay)WBUVtdvf<|oP#P1oo6hje+s-7$oZc1^{q8V z$KKO2F!TLAyZX;ZqNjlX!Pu7^+IM~-Ke(2IdQ!LdiJrzD;|uu$HAG?Jfy`*V$p-tm zmZj6TO+-(R1KUJTb)vC9n-y`^5N1SO5-n*|V@Yj4g(^Vt%%JWkYyv8zyBOV}b4|0zb7^*2rPbS=1eYHW@&jLcONf)zF&7N0SJ`I z@Xg%Sh(amTB2u1A#3`*Xs0~n6kh9gD&$}}*?w>8Eu^{}gG^3Bn1^5ynfZa!+&8jb1u zTwV9KO(Y)%Lg5^H;f`JReXc+7`}UX~?lEXD`2eD2F5NGr+`-&iww?7~$Th`!8NCsG(x;C&$96<> zmerh#y%V$_)UqMpTD0CEe)7rbotFfSQ=Ggv%NNAPiy_{Rgt zZWcSZ)|KvW4zhS3hDS|vAN_)J@>Fb}82&mtX;MPg+KC7UhldIW$Mid4S2=GNXE)G) zPfEsW8)?zW5j}~b12}s;UJSHg_8jLcfn(Nu7il8U9H8^noZlsH1+l&jLIwecdj@MW zLF-&|Lgf>zD*n~}*Uq?#rxN;F6+{%Ob4HfljTVyTiHk5?C5aDr!YIOy~O1t2W* z1Pic5NA0L$OO9Q0p5?@nOY3}6G1j2;nTl05G*K$$#gQ_n136l_f1a(0=~vL@78MA~ zjtt6^U)^7oi5IwxQ~n^!y2$ek2JTHbSL))Pl)G~1us(h!2&NmRU?jKB`fL|&rqH;i zIjk*M@lNFe9bK%l-#x9HlA_3CsV@`DUGmYsMG}|6#65)06xQA>cYm$Kh9~>}g*!Vl zl}EZoq4}dwV6*Bl_Q1Nh z$1BbFx@ib-gtQC7v9Jtw`c$r7ieoc4bM9!!D)ofK$+7dqT>Dv&MXZx6zt2H9RFPWS zq8^npLF&J@U_xeGnXJx#OMJo$xC%XG#=m+{5vsee);;aGQlS4q*VX#+z=EN>Q)mJ^A7#tUgt2skz!? zg4la#?5KR7ole~KJ;hP+=x5YK2RS#U(>U#<@G2DPsw39LY2DN_;B)ALYW*y_qpjJ( zn4bEPE-HQ93Dn<6K4i1vso)70a$uJmKz%pmcpmk02zwc4OLY~upu+d%SO%+a=&+1M zYoP5y>dR3eO?l!D{xs^N@VJA8kVxSr1{vMPM`(vQ@26XVe)j;q%6?c3*y;w>G{t$L z@0^}OjG$V^I;)-JanLm!*h0*cFey~Jpd zysifjSN>F_6}>aSboS$9b$nMB_Jpf?(!PpIq135>xe;zbgODa94itArka ziCE>B(eG;o1KMG$6P4oXoa|2#VpTk^AE|HpR`W|Rl(Kq{Q4$zi26N1#>N%4dWz|S* zg*i=-K1$)__R!jgw4qt^;w1FG79*20k=dw0p(Cw(CYRqMIL@hr>!H*%%b%04TuUoS z3ez-(X}z?#LtPS!9wi#=x}8O;@N<>Sc|_Dufkz-h{QFJ-|98WKJCcI?N4fuhH2YV5 z0sea{2xj@4E&>0D@UNNy{OQ>9zp~NqEU^D#k@0K(`rTC$|HZWb?^55d-hXWy@aGjj z{4bga{2Jh|GTVQmv!eX_qTBz7`mY53{zOF~`2Upq``yi;{L6^eQT|q8=2xI!#cBSG z@%Z;Zertmvf@>iT+`OH5eB}z%a?`eWxk$$BZ{*2T2e?agOzgKhY`Uado=PN*yjIn_J06SO9KQH000OG0O_1#S!)~#_7pw{ z07@YV05kvq0Ap`tWi4lAZe?;|bZ>HVEio=NE-)=qPC-ypNKaHRY-wUIWMOn+Eio=K zF)ea-H!f;na(uc4P+UQ~Ejoj{YjAgW2rj|h-Q6wdWN>#0?ry=IFhJ1Y?jg7&xCfFq z-2dEL_ni0YP1UZc-PL=#=j(5+Z>{dFt^^B*2LK=;0m4kg3;@s%4B$T>WaykFHoj6&zRti%*ky_ICPyKy+ zlD|Mf^4In9hCkoOP*brVq<-(v89(!waNPR~9>&bZ=g?86(qMpL1nK~ZYat5F0zVXr7t7z|?@ z95gGI{o49BW45?zZSVkb@}c$E&~Y#M+>;)Hov2ltR(ECg-xF$9uQ2>0EC5hW007`Z z7r@=k+riD%%*NK%#>(4^-O^5TK1##Ark_v5PGYE(2@){aYb%5OZM z+OL0da2Vr<*lFq)Q591QF)6+h-(2ne{ONIq*b(oWZ#F;OwY2wr=!1Wc@nzJ?{>h_S zqOW}4lo*=$R$$lV@v>9L!K;|;bO32=&Pq6lRn<F%T50?rC&(P%t?q_XDm;IYiR2b2iny!`yqE;@o%;UlyCbA1UM+FWx>O zzpE{&p-&}pR#>@)k1G0bb!~Iwmt{}%^r1=$^}ci#IlZKqRMl>5G2i`Rn%U#_(MO~x z^}jmGe4g5nia_?wb2OS4L=5CUIb!g*bl6unPa&OGitVro7 z3uuWWikg-k3s--|1E5#L@9yf}b#)!)2j}MshX0(wZuD1AaK-cW_8q7U7{LM+!T{oz z*VS*S*Z=fZSE3Z(GXWrsRMirMxmGJ&MoGkjr+QpIsHI>BzKLOy9PYv8|CR&B7&s zm(2})zBUZGqiYkBSk(PUPaIpOdebyM4i-p(g*fK2x_P{Yl%rK2-Na@Rv86T%sdR3r z%Q%m%%*5Hvs4%70%#x&q9H$tE&pSP`q$RTgP^wPlga(Ns#B?*VIS|{v78*z(nV1br za9gAwqV>dQTIeT;b@ViTaURDy{W=}uEQh7qgkTl{(lcya^qtdXW01}wg&VlGgj>N2 zWH(vWA!)~O{fc05;|0gc)k|vM_`X~_g1>G+^|>eLZGnI ztU-h4li)2SWhJGEqnrsL)|=;AJlgMUsz=Xk@FtK|`5o#w2oQ=b;hU$5wLE-&rxRh( zx5>Xa!wf+jUC72P9@8*4Wcs-(ntz-RPNw?|zkZgIsM?vSLm|- zJ|yZrK z<&17@P7x6%!gIV)1SLC=bd>hw8Z8Wbf!Ky>o1;BgarPY!C-wGByYRVp-e!03YTIT( zqidzA*=_sYW;Rsw@_TIAw^(cNrKr{U&wQGJ*(!e-uD;sb$eA1!o-h`cl5CrfFwU%h@vs+&*CS*5f{rCKW37Mrefax z+j=FL3nQL0{|Ef<%UZ;qDQF5^PE+X8qC&rIoqZgv|FfF4hnni@6H}8)D(s5NEKQ12 zY>d^~&6-sRD6n*?ifJucO7FG6)bg=7JaOsZ>o(!4fCbO%?>sm2d*5-DG~Dz z+dfciySchupwLrh@Gfu&AtkfsYZ#PRt zWHZoo%0f1T)UkLzE}?K6dcDS7zkAnY!1CD>LF(UT%wpbhbL7xd=+`!Z8SxALVseEn zFNy~Sq-gfDAT|l6I69(XPg((>j$ovsQ;zFcECDZK9Fq)>&$msP;#|g3W1$p+EBmSh z#swA2MAn8U`35yn?dJFP-{*{LVDt@?<5H9Z*#u@_w1Nh#I*C-ZJ-T6qlscb2C{TxV zS7%CB_XfB&?y|^!Be?9 zhkg<>EC%mzppJW{30(o~OH00{aQg8Z@62O^fpmlJyCO2h50iSiaY|pt>h^m#g`K!1 zNYWFtDsjG8sCz1yO0ZfMQ|4#fwb*-qA+Sf*ml=_0;r6(TX|#=fc{1PP}j4$Z-;_%+>#1bl2k3Pq;{I zDqfB9x*U5K%2u+befqWhgcCd!Qm3Nc{@&U1J^6_izFb8x9}YL5q6q7U!^R{UcIT-%{qC%IN=7SbWX}f^Al#~C7qniE3o|VJxr!8ullVg zOto(6{q1W#2L2TIS3-55X@q^@&*VJFXp-AKb9wKFhYN?d3FnaAXqYY@=(0VtxKI(&&Hm(ZfkFv zMcC8-9))YMj1zG5<+KctJrqkCS=EApxDmflBlgW*koxe>mt>Nl$T3vVdCms6UnRPY z)OGG6d%~zjGWBNKD$$o5bby++9rObK-=VaVy14}hMRNiCe^k1!gR`@RosFlNyQiD2 zjn^Ax{|8k03noyuMnk;(sH$-lkF|xc(K&*_nT-Q66iar}Rf+E5&~PY@DSXKkKL1x) zcITt3;}x~d3x~M_M?o+xeBP!bO5Txwx*y^cK^ksPK#XRrURC>Q($p z$BV4fPka09^{-L1z%`RjA^fp87~)j8GT^Q|t>EYRTB)3G3VD3tDhPcJMPl-l7*~pM zEp_N+V@9P zhs|9^lPZJNHkQU@#S)zlg{w5VO9r^w?>&e0 zo?FB8I&}sxi$B`a$NpphFsmb(183(=YKFVxRBvhrsP5hyuLBHcqnSUcKQy3dvUO86?}1Uf3+CnhuWG)vfc*V-qnuzgq0PZ&VH$z0e0E_J6c8ggi0Zh~#hd zCGePj{gNU4Um{QWB`#8tMbp~fxyvmx6^C2Cper&zr`;c@OpI|CL6$n{!yTecjuX4N z`TFQKS9hv)naz*Vlue1@OV@mAb%+zY-wX7U(ueiLnhF@>I9}cKE|{E?9v5GHqn<)* zew?eDsXuIxoue{;>X8OX{&xE}^fxz&;=iZkkm7p&S9<`!Sr8e30!>E;ZyT5Y5?XyK zUVELH^`ia#)TQUVB46m%noWihJ4;1Q21L$I%_VSHo0L<8X){z;VxBKJ`e}jR5IU(O z*!7l$!_MoN9m@O2Ls#`5pCA4`Umtu9&iU@cWO`~QYxwv2?DHpqf6Y%TClyaOTPuGl zPBr&+=ucb6{uKtf{Tg z+Ea>J*>!8{g0&3oMOz%Q6^jTYrdk&aKIvahJvzV@!-F+qvF!ffuC4!CvwgANqXp#Q*W?~tijXB1gzSH&@*aK}aewq5k%b9|LB8WR)J+-wXCrRX9VQ=)Z;(Q8D<_A(wwF};WHtkWRP&S>acEo zGR`=8_Spm+y_8Ag16yWyJvrx*<4*4mK|iCI;p{bvx<=QBK2%M+o)ah7Yk~=p3j%Mq zK1HAIz2C!;MLOOsvPu|b+aeX0q*?-VE+22sUAau$&enS>>xM-~CKuMlM@Vphw^x;6 zHrw%ZWTp4)SZa{K@BpoZGD8EyWh+H;C#iKeST*@TN3ybjCaLrcWybenaT4s*MR@ae zOmaAl7{iB2md4cVL6*tqe~CfPl1`_4_0C?q*i6H+EgZ~=X8?4Rnns>%I9VupCZ^{ZGn^C zEaNp_Ol%ch8jSs92x5`k;dO!uX^{0J{8TWq#}fP;24?8-(2Gzc${*#EYcLKx*w`8$ zv%}e8O@Y1MEXdZit;QFu-yWaBD`3ol5MBmk(|(E@7h5OGmv2&^flUC*?hH8YCW15V z*|Brc>8V+3Fe@P2l}?A^+}hx)QL_Ip%{ge3J-9VJ5q+dpDa(hH zY`D(8u@0N7t@+BW8?B@!EJy^cHVsepyv8p*S&M;@8BuRy2~;L>K9*{b3sQ@{E%{tj z1FStZjGRat)pSYm6%UpP!sHRNZLF5&a~H(8;@GXvRn{2L+?W zQ-oJhL-2`s3*u?b(YrDu2*nYJPXGpf%g05_QAWJ2h#;Jj?_dM>&0`7vG9v=p7e?zc zSo@zbrD5w>?gmv?Ey*buRS{8%7>?2-HpPccFVZW(w#&^q$={?N2A%$SM#8!4I*xJO3v6Qiwed2 z%+S^!2sz0b24|GR2l{05K8B>V;Zom{-j7HX;Y&GLSCBvxY|2eU?kELB1kF>#ZF7c@ zFX<#T18h%MqXxi681sA+TB4NSj^mgjvsop-DqCBNe5jhs9;Eh$lK7@kDDk*?#k%Ct zW7R7E(eoR=2tpy$ksQ)=!XU}X7MHg>lEgEOQiLyY_N$~NW6l0*4^;|vv!s=qaKOhy za4ePj$fM*$7WP}{b4yDSu4qmIvG@w*k_3n5m&4sowr2FWi<&n;nkXvW)*yGfx) zt)ku`fT-}zuicWaHYg|oI0J@qC9-3r4K*Ggi^pYQ#$b|7oW0uxSsI-@af{+M*Eg}W z=AzR$l#*za@UbOOLn??)oINm{SIQUwM14ytMUystY2_~Ff5(zEMx-EwU^nLqvd#X) zlDdCIvsXO$S}2!;Kbd@S9%a6&=9&qvjp<}3ehd-wC#5Ml1LR>OK5i-*wo9KgyP%Er zQ0)Ks6u|zvBFb>=%hR-|v8_g4nPAK-!Dml?{EJ4i2G8v^o?Ic0;!C`@1S{>r2qEI!u>@XHG7GuZe|p>fQ$y8Zvj({R%$?^$mrq*S;tCc;TCv!g|JcMN4z3 zQQp75D|)2Vuso>TJ((_fpY48Nq9MCPu{WXNKz6L%t9W(weBRH>9mS@xqDw}lwChx8 zY|%@4xrEEGA~ij)nbYBV-oyxVCsjj6-G%<+wZlhF_KkL=y(}?F4FM_!gF^|jqp1#ya zIS82!2=(kC@>LKZ$(^96`8Eg0kbD3+TCKp%RK1plvD^`~r`&ZqjuxY|r--N^n(Q7p zhkZ{9A}ui|>0t0F(h*OO$rwm0e2C8gaB14D=ZybSWD0$89<4x1P3h4<)p)K~=FGne zBk!TFlDm*#GaeVw=uFrbs<^IdUps@okEs-XLPJ!wncl+1*XOf|J|yAV6uWopO2 zXD3xg%86iQ&ANReCeRda$A6UHg?6kSwf!nUo!#o(vuJJ7N^~}yTX6K3aaUP3OSml$ zD4v%JZ5sQJ3A^o|vWHC?rFTj|8^4Y-)8LZ+ufMUL##3}~IQQ;a(5mtxWW9dCA%Bl^ zh0W|4vwsO_PrFOVXxup-5oHQH+yC{jDPS?U_@L6Gy%LK59d$!)S-@qmqzv=79fLw3 zt9s6#3Jv{=+n@Otv~GV>%e&mvBO;V2Hfhub3$pYI|3qqMY4sy^V|U8=bEu)e z>CMwFrj$qO<{f%HD3CYkS&4ZOonO|aR7mg@NI)PF>`v%xv_Ws0R=4`@{nPl80&oWg zlCMmQq!V@BnMq3vLMo32YXKOBKfo+8v#p4v;)&~b+XJ)#RdES$l|Pc6_)Bx~#2GYY zB$&bJyEGw+b;H8=w9HA;*&Ngo_+Z7W6p1!h$M4tqGQ&ysc-a4`dPVEe*L+PGpqEzJ zG++b3I42FR@qZPi{PUJajaYiv|5f))AQL6(d1T33H(n_zSVhC&-c&{m8?Emes=&7-LC=-C_CA zWkqO>lf207eLxb?CcZ=&7tv-wHrKf+B{M9^toc_!5k#a3AWUUU-0~i1u^V`J;SJY> z9V9~9I=OtZTF!bbC``k$G$#rx<`ES8G*LkL<7N+65gp4)!rN}*C~0lzAP`g`RUKl9 z7JJ_L^uiT*{sKudV1$Y#$+>))Lh-}cGK$9-)Oy5JE_v06#Usq_`BOyDqtsc54O*tw z(_Q(KaA+%H5FO0*1dgp%Pt%Th*-Dh4jr#z2K#e>xH>4!Vg3={qJMo3TmHTa@ z_RSwatH=(QXwe@LWC01pmuMB;(HO{~@W*#ln0_Nk{zQT%XLXr+;iCHP_@Cm1nyx1d zUoOMQ(?y!@R}BMY0x3Igkvx-!WF3vqAEyes*`7Sm2ipbfHi>g-42`aFiD?~E%vInV z5?_9$Q1npp$H_QRvw4MEC%st1uj$ho;-+NrAP4S$U_gSDVCPQu<$0{oh?7fB;3uqE zcOFc)l8c@ben`i^*b>Y(7YeKWP`DSEq9+^5PpswRBw7B*o*+7(1o}Bb31b*?HL^n! za@xulQ*l7%0nqPl`Bpa>SufAa{i6u>TL~GnExhl#uMF-@q6iqu8kV}Yl`3+yEesd4 zu#>xFJhnEz>zXn=H;G~p)@^?)UE9x7(!6afFj($!{+C%9n>MvrD(A68aQl`861Eo` zf3c=MwR*fMB&e3Tb;-$qYx!K~mu7Qw@J%JDFnSelfD2qYrR{lavTsB)A8@^Tw15iM zn>FvbNrv3epM47*+p{f>L*k5(NhG8|*4|LoKFm!n48Q$>SOk#hi-5}&o^t9^u$Or` zmQDj!12o@|q)a*=YijU3nIx)>zk>oPf2V+tP5ndL$EtQLOe}kkS0=6TNt_c?^z!JJ6xVE-Ef_LpTeGQvt80Kc^`l=Lj6>chgk_l@pibTY%d29+?J)yxN0zJrhE|@GxYOs7+5=NPVkJ$c^YnT!sIDpK~ z(9I`tm4+gXGDaQQw*OLwmuu})=ZnAx^7EJjKpB9Lq*_x7r6w`!hd(K*XDXmPnR<7h z8l6d~>}Y%mI}&vlB#UAxkmD_5{>(Jmr>ERuSJ@+adUT6KK%sQL(e z@l16c01F_~kyg@)qkYPa+1~iYTq+It1z`FX8`iD!Q|k;eHkEh^?f48Zo3*92HNE7y ziLFY6n%3SCK@CbYJeF1h?Z(>n{NSVHh%9Vb==$>Zb`6HZUq!FoBO*d{ca$CPrj(t< z_`z)l)tCL<5}+zDkDcG}43(umd$c4j1t$xBg;3S=>|@Hpd^vWL|;Q*=!0HuvtLW^-}kQ1ebHcTr0TdNYbM5W zczp3bbr~>o718@Y@$)H4uWs141W!sPDWmRa2t!h?X%iI_dPGfyYsH885h zI#1@bl1kPF0i? z^I=RH_IH%{`pFOcIC+t>guKik(&BNjE`V)H0Y<;SEavdQqoxwdz`#yzn(EWueETws zD=%bOxH_rR+qk5~+{>t-&*O4s8C-ceH$%ue@QqU2VQ&d_c;?@aJ^&t`VZg&~L@|G> z8WZ!sM43!e0~pdSRDwCC?uV0DkhqFaB|bbV;FCGr{P6$&1?3diyiICJzFDSjV@NDbdiiA@fg{O=AO|BF9zV7Q3e3YElSd709Shn> z)FdZUJ~B>J^9myc&NI8`hfzm80yy3u<%D)r>ZmdMJ{-u-E&(G9AOf~61pM(-3az@AVb1;e`(w}lN5-XN@hu5tSQ^M?p z%?XN&?{wEUh!f%q!|b^!3AQKdAf9XJ?X}Vdq$<`AFOOEVaQ47iIaAHw$`jIoQd19y zKe84dxuT(tjEYUACDmNFzg)*9YGg)APO69i$Lz!uXSHTem$x6xsrr!jBT$Bl5PJt@ zT#{W3r^?jEc2efYO=;5k83Y$x>6Hv<;i#!8UQVZ$LkOBt6982}s=w04H%Eb#y;GPy z)y3icr($i(anRLZr4Fnw>iuh3R_~&Lcr$bH)D=k$qg%}OJ%IJoO|9#OVHhd-j~iTc z6GR9M_(T_HQul;^E&YTlZFg8=M2(l17z;I9TO+^h^saA=o23~sDNNi48l374AC78Y z`uo}vPWP+Qcu7E()Vl5kRY+yuZOhfCAcw)15DKF_Ixr((ZcX-dY2^pDn&-7ayN3p_ zCi!!LC9Q!$>%&l5lV-B_Ot&t=@6%1cqpeb7q zFsy;*)K7N5R045`x(*bPZwzr31p9vc`_Uzu4&pbM=(pKVf9y}2d?b!+fVHI(Dz+{6 z5md%83LtGLt^(^_Li}Qv-z;xM@e=}Z4$*2vi`Hw|M6!hg3G&Pyj;;>EsuT+Lk^;wLV3}? zjX|Mv)GG;u7-asQFp2DErH%YFRN^sESXN-Gk~*f(t|TPIV> zG|WMYq_U2 z)nK7*E#&Ff4A(aaRfZ2it|t3!_J6BML0lZ2;RlNVHGbg|S2174_@V5A_x!g|(29(= zH!%?_I~o68{P(Bh3iY?;WQ`E$WcylRS{@j9&QHm(g<7ENfi-f z&~S~SKsD!iAL!6d&<=SPrO3xO1-!UbZHaZ=yNTc@b$LsG<7~ZMP~p7k_d1zmp^CDD z3pui;Hs~NYXex0d4LC$(%R$qJZ=BC-g)P0f4LD?A?Z!xspz+!~TTUs#-JS(m(&5hu)&H}L6-TEzj30@8k``I&pm2?B3_#J z)C5!}3xy8IG;bzn7!U>gIy?D_DcqsTVf2|P==VRDq+j*J%p{{~aU!5ZE*zNIoM^+oY+Je;MZy42+5P+MYM%$lg`1n80cJga z93Q0wgahlHFOyIE7Zd8VZTdTJqTefXnWLVJDvMXY6X)1QvnP)#X*ENvNIw1QlMG11 z2__U@m!ETsuuwR`s4kbKkATi1vN#&7VZP8*8Sd27kbs&>_>uhc?|T>tym{n1XvyNf za)n&Uv#)=FRYA&u%8|*7QN1o^Q2g5Dqr*1^pdZX-9@ONtMg8sN?f;@dIr#|uCJUPm z!)W4M78~(*9_?Mms41ZiLThNM_b{}Oeeyz>iYpYVVus*@mH1MBRdv_$K$XR&Bve@x zu`79`0{AxzBw_dLFmlkq@PLK9GRND$FzD~HMm4Bv(7+Lkzuqj#%_}i4H%JB=zgB=f z4YY_HvGCeEzl>SZ!Z`z1p)7x3`H2J;eQHn4LXjnK{*Dc5wxaj< z8OKsP_`F&r{tD)Q`r7K`*XtRYd7J!c$-A){Bdp20Kf|^EeZQ%hr8VLOIxLO`=mFTF zhEGR_wB;N?7M4D$!efUHMu|C{;Wre*cd&K8)(`hs22`4>)+g)(x^UL~J`Gw<&+s4s zu~6ROeI(b+2uLYkY7o_lINbNBJCR3*NHIU8WG|vNiu1=Gw(lSkzsccVBt90Gd;%ZR z5zC(*)+e%Xtx`Q~X9GkVb$+F)aE7dpR8aX<1S4VMOe_{K{k+qhEi3?Sge54L5IdKPzNF%sU>QQgxCZtiP>+&B5 z(5VpexZF)&%1QtqdU_w^-DXj&hJm;)uHE$AM|OgY5xawXIudzLmC>3-{i*YZ7@WyU+1zs`j3vpW09&NCPhqw%DN#7`J1*zdx-Df1gy9Jo47w( zUqFa2{6VA%AplRgFKARMOWk%hj?g1#VV~k-EPl5;9YDhF@SFv zzyTot$slyS)d{>VMU_T*3?1pub@01z$}ayv)1)6jOTd5(K?(8kOaZ5tuLWu?k<dLT+p1*mU5$nN{r2r>X{abs<$Ukw zW9!#5s)P8xXoB`Dp^fIKBfj^k5dN2u&wAH;zubNGbd^$NQ^h8M zpI1Y8(kPdqI|-Yu5Spa2fc;TMLi8P!Z#JSqr!N$2lH)Yuj9g_BYzTZSkyV<`aqm+$ z>O&GJVxj(F8JHI3{ksqObeCF3EH-FisO%<*A!$!>L=&o}r4qNw%u<@4@O|e=zldJl zVCuk+d0T%wT9(}gjQ2F@{)v0~Dl%iLCGpUVw-&i=arI42*_%uP{p2?<3$pF+sZW_7 z8N_)sWZtCLF3r-~-Gj7|y}t}y4hA^F+w093|4p?=aNrpK_pH* z=kuQfjsfRR#`VGY!nk9oaE2&%q?+?@;=5QJw#3RT0b2mJZ%cNgGe_V^zBVS0yb05p zFhx6-?-o}vE_!2?+JrL(pG=agfS>$YK1bk6Zsf{KrjE))#mDk{@?Ms1z70Kpw2LbJ zKhmN+HvQ+b8>&>2maz{N1eHn48%owgWIF_oFGVsdKqz~6XJ~6VS_#6aa@ zzp2Po1&P9)r)J&M4MxEe_BbU#j;!=>X1<5wjEpvS;mNUXU&VSv=i3Z`w*Dm-sMyEYLk6Ig0$G+s1B~QPK3%0q_%JRw{&*qtPV4F4 zJEFCslRyRY^QTd+6j1vacuNi52zf4H!S(|{;f2etYNB{y-^MUiSwkg=H-8fs;0Si0 z7q+&y%7VO0#sMY(;kVFQf4|YU4CN=pCar8U!6>DgGx0#ifXKe58jDofpjA%oIk(1z z#PxjI82Q5FXl?WR;C*I+z3|&%LB~9|c9!eM7w?E=*dYiIw)Ry8?dkCeB{C5EEMvTQ z+a8wy*=+>VNM48%O+sE+5xiL@>u~nh_5~uF2J8g5zm+SUWkK6dR@3h@%j46*Y_yr= z*$T-bcm{^Qtwm_gr%~$Q*}3tZKQm>W5`!9dLn>=+~ywz*3@uo2mz^n!I@pj zp^$grrQPb*9;qeIB@RrWCvL@9g~loiR>4V|v=Wyyg|I%m$bfEuSMPA!n+Fzw{#PTc+&6lun=b6y8`t z>2i#kvZY{MAZRDqHk*ioE=c^yj-?wTD}sllu9b(T<8*80>FF(Reom5ZuzdUtr^WVN zvo5Zi0D&K*YAGLL3=kSpfia!qToXRITENyqeT2Ep_QiQwmy|X|C6oXuOGSs610)C4 zU@S6SKl*3|kef`o4`6EAi-OSr3Py^JL7xo*t(wDV#ErSyAe`W02Zl9*hiTohB)t(u zbHc^H_gZWh$%kLqJ;`g$bR2{9s zn22@dg8HMzz8!}Z-6d+aCQ-J+UC`)tvQRAn2w>$HVk&=Ox2kZN`|jxqmMH#-y4foJ zUf1U8Fv#IK?}$4UrU%Q{N?^QMOOdcQ5VUJ44>VQ(Ddd?3UU5b8F1is}hu_%+llUw6 z`qbNDxEE|BfY}Z01U%D1878>-*bn;pj~G}O;ESH`)~y892-fBH5Xe9Q^Pec38*CRy z++6e+3a~wQ5x#_y7gVV!rx-^r@!p64;YhuAV|Iw1mrkd42bBC4_DN(IToE-fw`o-;rU!E$eT^n&@Q2N{5uK(hEfM( zCD1BV!07^5hd(r*IleYSt~=-TGk^_6({C!()(q0Lk4UE9jg7ecZFgs+q2j9C$)V_a z7269NYOSgN?$U%fre*qgV%<$s4$tua?+v7ZYT-i;gDcyHaKr1g_&5YXc=zsAdH0F= z3KAZotA)6~e|B)w(c1|$m;5!xt$peyKaz>pcG`nA&< z+Fqum4&u39@~3RLas)r%C8IQQ>=3hzfE-9yaw5bE@L^s9X5Yc0B$rlvqUa9H4WM&j z5~39OqUF7JYw}%EKGc4;acY+t=%fGb7-0faPF@It238POY@dGB?ztUTMdOk{b4-aW zT(s{qxjvRV_P~o~LI|hY^IL$TtRrzcA-V7?mZby{IQeqH@Q_pD*)kWR73U`UGIEn%?pjPP#pp`tPf{-FOk6cphDUT+!$x1o8SHr4*bAD=e z&lp<@9ZQ-LCo*-|u?Jy6W$x%!R|_34Y(i&2J=C&CaA7K$;zyPtC6UBzYuYaik&QgK zr*ZUhgh)xU5(h@fl&n=n3~GT)7qO@93TgRJyG`P;Z5W9BiDY z8|S=5-H>5cjMT!{19dH%6Kqd|1F@>ML8gln86uu{y*fzBZlWrV434TJbMnD%BrprP zGdaQ&=2otWq0jC|fvDI;+d()>C`(xlr76!_s&GXD1zJAdx3G{ohsw^@CSw(Yn_U-m8<5+C=rmnwIk3N&z%8kyGb;@(kI@JB!#}w z9>mqTqUWH^ZE4=wpF9dcVpv32d4TTAy`9G&OFow&RhCTVL&7pbdf}-)+yKvZ z?ovogD)o4d+17jP!=H&1dsWN;LVzmYJbwe>Q$-DGOMLbd8AH$x0!69;?MWXxU^4H@zwCrR9NUDm8Qj+r#2&)=JG=7@pn=_+U!#o zR3zL_{0{#L4pH}~Mlg9myjEIp(`H}#V%BY$*3@Eo3(ZeFq;ZQ867{^we$f)05BqYk z{(6*5sDZHse$iZ#57lKq%V$j!&{!t0ebFCTd?WC;J)Dkv)A)oq3h@YN8Q=gHI#ib9 zkx48pDDr?{ppB75z?JbJ~E3qd?#Sjg{0GCpg{n%n1u{?s}b3U+8{GAL2NS(r(JB(R)Te z!>D=L9A1Rk$Zh6BXFw{vZxF${*&~udi+7vIa?c~*f7nC{b>KdPsTv0mXJ*NGKOlkmjpjajE|XnLKgI7 z@wplv(gE*Gq)M=~H64Ix0UEJ!47p7Be%kaC?x(9tb=a3tlM5QU**>PNrY-A-jkVLF zGq1r}ebgYgO<)o<1P@wC8_F+p@6p>>m73U34T;rNhhc}BmzRkK^a(C?+A$Usdji7-Rv6Q+=sT++Oe@uU*gPzW)2VfU?pBxmF# zO(f+%4b^QjmQn{%DyjxW=8?QNvH0V^l+k&3yH>ks9xi(9;Epe$=GxLK?s0j+V}Gn zI5OY=rk^1ffGU|nY_)S*%dH>Q3|?&$C9J75bw@Ay$VHSFjW_|fT%zPE1jaXcQX!HT_- z*=@JVqB648?n_R=2FEgc-Y&cJqiP0>e3x-NxyL1|Q)&iJS6=ugi2G8NX!)YX;y|17 z!=@eEGC0?tH=*pF(k~+9d_FCFwTt9 z;K6W5YX2ckp18E~XGJ#S=p8q&T(Bx|Qb*7UEvC=D@L zOI5Ul^=s0s_)}kwqcmYh<-I;nyK3gMwRqebaQ%GJVTTHP+tO%&e!8Pgi7IiE;kLhXrKUE3 zMb(8{CxfW-{WMV52Ew9Ax7#3zX8a-{iw&$}^oi=(7SB9`YK?)pj@zvplap$UZb>3g>0-|jBa3QbC z=C?LMv}_R=y;o%D0fZjiBcUqUxJ8X7xP<_tZ!zys+plm`WAp7&Lzxe3m&((2wflBS zs*CKqOc)Olgmk|8jj&W%xV}pkGEmj#Deyp5%*l_S74Sfq0N%i5>rO3X_8NE*vp@B3S) z20i+|YIUTiwGPdcys}LnZ-ApHW=)wcTK7*$)klRMmp&Y5i6-fA(S90;Q^L1~9qW## zJ3f!A2~c}htDk7)OOreEX#AprV+`AAXyVfsF5sXcY&!TdJ5qsE#$`H4qg6lUZPH4k zctny#v7=8nz}uOP(}1IH^Yv%1|C2(ZES3Z;*zkQh3Y}ihew3hn+?--@%)LOmVwz6< zXcq^8tU1~jd!eOYmvjH?B*kKAJjqL5s1ePsT0{}-U5SVaS`VA0B=0?`D{?4l_H^H? z6tkiOqXGopy!|13SKY^EZ-P=(&>&O`i~~~nwM?iW+NJvpBDxBk3D~flIn^Sw27Yye zl8LzJJKjMHN5EWbnuFp4OZc%Qx4KjbV(|QF%^AFiLPp`vDqjen;{3!;z*Bq+&b2|N zG)k!bn8@e*#h4aV9w*#8g97Ojpe~4IkiFxwRKA8AK~H0ki=q&T9lR@oFGkwNM#iG7c#fom|`T4k?7} zk4lCUF-B@>ztUoLBYb{%Sw*y(&|j^HO#K{#8%rd<{(rWFCiBM2R{+ed`UtNgf~Ya!MLA0GBQlH^U4!fCp-wS+u1$h zq@hxeldON3k4Wg2aC+LoAE=Uo5Wwc%UDq87B&(?DC5Es)aeX&{sR~s`XHTWMd6i5r zaR@}92PKz81GHz6UVhQ=ovLmi*qLAJug#+ZG{&;JACha<&TNhE3-lSUO0i538>LQt zrxariGSAs;hEofDtC-*HB3Eirn-ghp$Ly}%yBZXG_*u;aT6_Fj#mpZu*GUxSd2|pa z@WPsGvjQ0g9QEIKsgeM&x5V4to@v}+;lxkE8)v8dDYyX@Lo#bqY%Eb@B?U*3kj?S zC>)S(24c(Z(TE=$_hSl5CX8yb+n)I99Zh{sZC)jce+mh22eNqAK1P0yAvRkflzD;{a zl>ATxW;-`!DeA=A1lX_O(e{*ZmW+M?>6e^=P32#!3>3I=r?6bopg`k}3kLB+o7Y?r zm%BIcmN&ysJRZC;!Y!uQ8LIOL!>lbo5#9J-8(b8hg0%rmTZ*9uri+=?GYlZSlIXWr z3x+>9BF%EN3NL?~2xUlONzf+VK_P~zQpJHxi*V=~SmopXzz?)m)_{7>lgkVVqi8)6 zMNlGiWlaFW!yiuD{27y+oQ7_qRe8w(sQw;~Z)fQaUE6EPSGc(Ub*hI00f`@OOsRSfq3EUsC)r2ow{SrGkl0cDpEL=pODdniE z8Elk&UQ68}x%Yt0jTW`CeZY9n~j;xE14sY)w0B7H365Q)!FH>W+_EIbwHz;w0 zouKYXNkqz)L`o;2S$zPv%;Ngg6bI|MKj#0=zhC#4O8dVrPv>whpxfPL_+!AVs}u5w z2-Da87UG-IcOC3Rh@8GgN}R4y1-Rx<{uopUIU!n#3rJD^Xbi)nB1wTE@}gk0LdP82 zwHbHiqJ2cMGE#X2HA$5)(nC>t`D+@=H%h6js4&2|p~7W-8po1dPyTBUdpNgFM z(i^=D`~9-I&LQ)tD-Ah^+-}kkZ-8e6Z-sa6CT{{x0~7!ivU5aQX7Qozg>Kn9<1_wsHbe?od1WbuZ)T_=GGnDp~Wfg?(R_Bt!Qy~ z_ramKyF+nzcPQ>sT#L)#I_PP?bMCq8-k(`-vfm_YYj&QU*SoMKsL3nZCaYAdRg!JY z;pwdrJmJT7%K&XaW%`|Vw@EA6!d=k1r-1dPk?nHr>QjsqhC=$MSzCqpj9DfkvRop+=3n^)+{0# zt6kG{2JToCao8~*2{w626YJjqlY-sv^ygWCb~MSn4#C4JwoG)M?LS>W#HsUAN7`B7 zI0Y6BrGnD`JRpu=N18|Gb&Y|d4%0TU_tob16g9HM3asnlqXJPKKU|C}Gn*)kDzQi; ze3(Cs#zVt7igC)-V0T$c5-4_YejO{R!QI<$*ZMh+o$D9&}^=}>Y^Nm80O9vR`D zR%)!_U<6vi&)C=+!bll`y=7rMZb9@W3A2;R6ZUrBJ#{n8OOHy}!KpmRj^(@is=nk6EGdcg#L7?ZoJfJ7RaYBfS z+NiT1kevq7B8^JuPVbU==nET}c?>mR&qj4L4Gmp(r4Ec=Mp82E;J9T(HI9OoHMCB= zm^~mm!{zj|eYfhy2SP8l{7;ZphIHR|gSe~O>l$wLVWC_E&7JjCnCfK(vQX z80+p!F34yEX)?z_jNvmRIQ2-3BuQ(OK**Vi+*3`MWhWsQB2dsTouy3$oHC|Px5?!a zBNu2g{e+l4p0F&@cIN-xcfer?Y^3B|hz9G~Ud?}T?D=z(X*Ca0jg_KC(4V`u0D-~eWtl6IDBaUFMV+vcnoV7y83 zURD$!x9Y6>MC0=QcIm?j_}7KIiqP?Dk6Nq*`w8ZX{hZ%rC^mI?zy>)_O(e z{>QHlNH~!=xh4hHPsk@I3c?5>zn&ra`zik&PXJhGl^vZN1IoM~fO>h-p ze?yj8DXQL=RvmOO$!6jTd;K&1MTfutDz${NCsri*ALtE%pU?Q-n5wGBsAc9t0Q5AH zb6pg5>c)*@ld`{vvWuEGDwAN}9&1ZDULr_Uf)5^)3aU_ko%4>2UNu589BKD#ja4XC z4X+nQBwUjduFN!k9B3UDlxJ20K}?_RxC#&0qo zs*T3-=Fi!{X#QXUvcHh{hn!ah*heqNG>6_peVX@taP%#LdhvQdvjIzAu9ADGLk|P- zENb-hp@~9_J~LSf1JkP``#hQV2$h6^0k*Obkie}ny#e{P8KUC~GM23g&yj^0qKiz` zfWBZy{Z|D@!#FQDy!1<}o>TN= z(V?BJy*U0zNP%wMUa+IwLe?eveglM1?#P_qA%Q3r)wEz+9kXSgYW)KAte)_US54g$ zFczHt{UxAZOXVW!rgwaoWP&dxvlAaoc3bg=b$HZUz!bZ#$5iG357f<<9^ODG%u&@sQ|xKE;wJc%{iv z`X&vpG#1AA^E;LU70 zB>Dm6U(gV*vQNNNSX0zop$DLZcNst|J7F47J95%BTd++Sq0gygFN3E@JuyN!R@-`I znrO*}?ke}>?LY7x7F~^Iv|UD-2{K}S zVUsxE%)cLbooOT#M!unXm$#k;Q9#e0b*jAMF z0pl$EzNa6&L<>p^()YQP994f$EzJ>>SLfK_UwG7QSytzi)S0x1(;E3o!a{gjS}ZTC zT^s}9^%(rRo`7J0T$AbV#3Ee}*KR@@A1QxYO~b{eRM9#>kTbPXXsj?4JZGk{{|6kY zoy4QY?xtdzqwuz!+N3Vs3R|Z)cvmc7-tgn*^1^`A|5>5ZN5jGSex2E%*Hvz3$?Zlp zd8~v1bqda+veuv?I63Pu4sH8F|NZq@;xl*~CuO=tyr-+^tm(Qkh2Qsb{ntd^-QHC{ zyW|J<%WnE|ub;M0=eo~ZqP;7*MnR%X;ljH>cg(rN98(Cc`K#ZHge}*YM*?Bz$9#?B zF{XGXx1H_6d*|~TiQ8iJWY%!+I~TfrjKCYu2kVEs|MJ@<*r?v8%V07ULs;M99L29g zbUEm3e4!@Py_voTA4wqB9CRg~23~JbDxjsSrkPsg;&~lE_h6j5wKubiKhGPaOZq7F zuH0DH*%vxuAZO(N48kX9hxGw28UPcZUcCRfM96f%l@`2&n z^f_kvR;wH9&m30yE`{{YUNcVDD(u%#a$u)c*?B8Q)ft^zNb)F)MDv(XIzCLRuS*q! zL)|4pMO_|z@=9(V?Q(?#%|GbH;uGfdxgS04m&CAvn%T-Y?wEg>ZIwwm8c-sj9$B!yA!rfiDhC; zs41a88wg9#z9OAX(4t5WnfVE*I_4mPV;8QenWf%4AR&{z zS0DNyzX87_cz2K)V0cdDM>DWut)+=M-Re|2>lFdd>zx{m%Da{+y zTBA~)&-GC-dg;;3GOI9&({p@_?L_tpQoKBE)8TrPxx3IkZPu;DS-Jm~&*@E{3d&1l zXY6d5!*bb24aze(iSszG*}vqbik_+eM!IP>#38}gcYrDybXIbd$hnv~=e%n3^SKsi zI{OhWcUEP88TaoFm9I6)}fv%{QOjeDMLk3aA>Vx}8&s3d7JZpvVhd(>v2#l%v0ncrU`1_@8sd|2&s)pLt8$ke{0w-6 zB%5-FZ{faG?>3uCU5)Qs=p`tFQ5||3t}B6$ynI>ZgLpV##RcnaIWTmUMxz*WSo{)- zU;d&OwY9dQi|B5=ay`_9I_19GwjpU%KNBT{5F^%AV1*XPN^pY-KOLS#$n(ng{*%j< zdh$!bYi$D|V7dJFLRX?K#k zuO$&Ad8D_YluF2wdffN|ib;|GPGN(gFdbpri3MfSy4`|U7UgIDXO`p|Z$+YO*$8m< zs-`on^2YsiT{L0) z<#L15Expk^_M@hoPrHGfTJ^l*$jmPelJfBO=2N9eJ4s6ljhwrVq@~_t-Q=}%1h{TP zszQ~?XN=EmEcS8u>$02ZjHj%SN%?#pv6v>UUl?712v|T#stU3g>a0xRRq;to`=&iN z(X6VWsL-Zb`c*MQjP)ji=(FF!DU&2$lPlq_$8S8@c%@t0D}Fo=1m~?fc}>zSDTg1J zWKjo@Gow?5;C2sEXXCRniLM!cL`Es1LnTiQG9h{;kcC+R0WU<0Iz`-;#pfSbl#j=r zLizT^M3^2b&INKylyO_7JJ88gkGB>Ar2aCkdrS(7IP?iAV}*}z@(@49_Q;9im2l&c zP0!87$ob7Vi)-)?CPyc_u8Lk4UAUnPY*YpmzmI%f7NqhhlX=hNl)lI`4UkKt0JW*B zwV#4LOA>ajpKMBPlBeoi6`Y5rJ$oDWJ93&IJ<1I1KRUEMmzmQ_`&0&W>($qLBik?9 zy*(wHU0#qwy=$l{awZB589i6}nSQ#hhat*=g-L3E6480sxq6`<--PD?;(pk#-wXas zezxfl@}Rv>EN)j37OXG)^L|Fud@pRAmbQ2JfCa_%f;ca<(LKO~)O9MdV+9A`OpRYy8Av%=7WEKd}7z#Y-WZ{dy3Uat0AF>@$Zl z7sW%sWiZkuVBWcdX&HE=h4Z9?1Q;?7JFbURnvR9jor z-aSowwgt0y|E}eyIRKGCl=CHzG#Bx%CQY(ZtHYE*D*ppL{5vz6s{?^|a8t=3H6W@m zi4ng2r+$Ey*2A&gq^vqb6+o*Z0h;k&1%ddc+;h_9^wbJS9f+oHwq^J$@)BK=&VhcWAGp1C>N;P9mD|A1w%!i;8?$1@z`n6I{#l+Wdp{h_LS1fi7aRh7x)RKN$V&j1(A@O#I z`|%e%yf+vGvM9K}ezlIJojSc)gF1YBOdQPcd(ggN(lsppK1V@lIs?7wXO7=*eKc0h z40;$j`3-MT7XJ;VE;Py?P=6JTM{#F;5M`AhGa9z_q$z_a)ZP!bYsFLXx>jC_rV)=x z+iGcVN|uiBfKh6pSvrE3<%*4(>roNi{W4hn_z|nD1P1!1;6x4ntT)iPUi(DwfJOYfV`YV=9<5h}BY;Mzpo0PRM8`DZ z>}`Z7EXleLn>g!9#Z)3^HK0E1ikvXNLlg-kODsVKse%_cDLfBR@l>W^wuYkM_7(Ik z|AP-!V6p?46Y&`GWqAgCl=t68M){?xs&1C5#EJ2t0g0GI#mU3ZC?g z$?P1|I|DdMb2V+OAFBc@+9Hp3o>O-nxLBpy1H506p?No^p!0;A@f0pV9=ppz4i;Ec$kOf%&VX19(8-f(!;xH z{mbGjrkC$?f0n__crnWH8Wyja$9NiQnBb1OgaEvr;&SnKsOc;9=_^XO>A^O;KdhF+ zT2rNLf?W>m1&>;Fr2{jFo>8o5FO!k274{6WTqEP*@;I-1LT-ctHz3tT5a!C>Ru`>vfZeLt_QncL)Lo7hbJ_Jzdg8SIE<>K2$_Gt zN+)mIa?2c}p}r#s6mMe^Z%B-354{Hwh+_rbCf{0UQgMy6NG5g~d7PiyWOS@e-5qukLgj=zI@tnSUoy9&2IYI-?U28++x`gQzdr}Kp#M%Fi z4mT>5n)zmkc4A$3ggwGvn4IUm-k%_urtN z+_WM5w;-c9b!K$O9KA7Vna*jVB7KT~jHhZZJ+m6TkOUyG=$%{N&b`SN$7*)#C|sd@#x*4>7VtWwziunUt0^UzM`yd zF4uCsSm>MjahVw#H*?1C%qvCK6xBCaj|n&ZozzzdIK(_X3Ko>4GED0C1W+Wr2#oHw zTYUnFTc%sF@^ze^rg|UU{!MUH95jPjYU=Kgu)Z$^wCOTAzP5}q{-Fo0@hkl`=I7at z+*D)o)t(2}iQR2)k5oW$JXdpTONl*dhT+|4@8Sgmgd~L2k34w_TsN0oO!D^}Hwy%o zj@-FbaT`V>%AwvgdkSd%pUojrI^2y4*Ege7is&R*@k-h9Mc!q8MA-#{XtbE09TAU< znYhr4Y{|=|;(&WBp^=W7*(P_tm73M!pRWHK^OB=SA=l$>pF1$9M9K7}4^#CnN0)-7 zc>#<`;rGc&6;N>YIY)q^vuKGP@w0GnnL}~ildpx;8 z$A?Ys((51^xgug8XGEpogEGg*H`Lzr?K11DjDV*^bM4!uji})Mgl^ccbB2l0E&$_O z94@WQnI__PgDu8f;&f`#`5A@E)`Xah&C4~6S0ti{vuXJ%ch%(Kt$XTsJioU`!OY!* z*D>&J#IwX{!Dxp;{@?JO|DXg2@$FfK_00I5O7mQWbnZydi2-{EaB!n^$$Id(XXjB9t~d3A4gT} z4sHWqo`vrxXSydN1iefhyLs*-%XAq2(x-|!7VeTR2_iP89X*>76^hnY_TPNWOBo_z zeU6^>O|vM3?OP9##((5;>Uyf2HGmX%e zy(OTBN4~UAcGajjNq$1|fW9W1SQ>cPLL6D>>y1uK{N?h8)0r330pDay6)KRB+LDbW z&+1*@_K{3GO%C|DM!;4Fq}YwZ@4(Vm(rqdsA>By8wU zRG(BXhNz|*3d;3{zUPjfFBSEpBGYi@J9Z85WxZdzzZjS~#hc~GPURf7TK0T=bQ2f7 z8}qM&b~4R&H;0l5*`rhX*o9`6jNvATB{Y6#1RqA{=%(xJ;N@93G!#BKq=m0p-6&x$ zx{9#zjSU;ZNzm$Hg6DpeKt*2D%JQZN^YS#9#Mh%s4^yw|fcWyfI?s)@=;hz7!|O3E zhf7zzK+&T`opv`4D0p%Z7CzZIBQ@+LIqGQq9@>Sc?Tn+%m8aTK-LA0`E2~pl2ow$? z4fQKSH=P0sI(*>`x5PSVx(J$PbB-}cl9AJ|qRuxobRFPy$0(XFp1 zG7y-ZcX+y}+^s;|!bY|hKOOR!NsR|LZf7@Qkf@9#4+_N*3O~dp~PnnNE45Pmx z=Z?kUlJvxHHBT~Ovl?$n#1I7>`Wo+7+{$FGQ~7VZ+eiLTnJ@xk(3-ec>y21!!XnoT zX}HTBd%VDv&bEm=_&K!~_rH5)6=++2V6gG?HNZnU`3y!bU<5o~U{5M0z_SK)qpZA{ zR&KVoZt<2iU{J`SXgP#5*RS^91FugB+L%^E6G>qTt|Q!u_}$sDgmoFf>**YX0nw-p ztSh4R3@uF2uVVggq>j-u^-i9r^6+pn?x7qSkmJWR{84)ASZm>L1|z>yco|mk&}rc+ zuFG?M-3du|bz>TK^0rkCdBf>(8GPoASs%x!yTmIHf5)V@8lE8U!ogPF9P2JV_DzQ|1c?C2o4Oa6 z`n0K9rWbwDKvm(NpjPk$&h^|y7}->)=xMXHRz*M4!qr{(|J_@?tCt(HiL|D*_Sps~ za#d8zy+XkkP#cv}l}5Qu$a5cR95O9QOl;HR%8%QZZzJQeaq^6SZiv~-3;SmD)vb2o z^FTsUJk=e%9E;0(s3XPk;3z77kuUTR=054wLrke7ligA$frKO(Iy+uaxjAE~1y&Ef z4YPVT4m$<=eVjtejWeiCwQNbvjnsM#P?TShwf0O1b`@BWEVV!f(_t6H#uog#{4W!R#U=NwX( zV7_@YG2-blfsk?)Gw=yE9IKKrI?n9ekG?U9LJaY*aGwjb?7cGSg^dd~xKQZ9krW2o zBD*VR>!Uo6D#pRHUPaHiICCC9a%^)j?{_#Fo0Uox5%g^VKw}pCYut0WTWk8}!k8MU zeISuBQpCwQ*0@dgekShe^>(6F-Xv0(I&Q%FU)IT3vN_rb&0&v80k8{AE*Vo#{8BpR`>EXvOr;?JJ3z$0j!+z1h?I7-b-p|gPN)7i!>LVt z4O3#h`9S2y#JZ23agcnTlme=bYU1Pqbjl^ z2f&7V>tMy+6wo3DoSbpo6!w@Os7TuFWLW29K5w<4A3+hdqD?xSI7saqMos&M1t?r2 zx{$8@>mBjAJS$Nt zL?l!-7{5KArGb~34_K1~TK7ry7WCV}27V$pBPKm)#)4S?Ctu<939EXmTd_^NB;$AgC?1dOQ2S)HCBU5Zu)V0jSzc*xw)NZX z%z^xmaIYWl2hT_S)Bm5gaEo_#3C^>heM|Bq%dTEsqgt~N@S+{cwZsD@%YGKsoB^G7 z+N|qd++LdE(?URC^vjv(-i`}mHlOqe9-nN@p5pEmKpqkPdUI1rZLp4BEdoCXf5*5F z?A|5sx85W!w{6RQozh+G{$UR6j-z;kL6$TQH+ZWiCCq*H)Ubb~|47 zEAZC;*BKL&`^c*`NR~3K5hiPNa9JjAz=69hH7V)8AH`ngKT?=tUZ z_@T}`e^8dP@yOdhxv0TJf2<#;ZI0d)rm|-=B8`ANvY?{hJTa;elwA*<2x~bbKMb%E zbwu8k&XQf^%C-07X$gip6gtLRW!rN~1{zf^MZ-R4UET*;<~QMQVt z%z@X$VJ^p?Y}M@0lQ2=V7BOG7ZSjhw_7$R!^}G9jhrM->HO8=haiHl>g`|F zh0W6t+CiuGzb_6^T5Anr)q!P89iv&YH8qJHmVTTjV_w&(Zx2y6PLBblVBpjeuZ0Cp z1>#zXrb8;|na;;lkRPb5ZYa3mt#T2?gg-Tv={-G-_ATYiz)tw6hN1G_%B$z9>UQQX zuea2c;m7+>PfL$W_?A>}0yA6f+V=e)20fgSbEY))m;O!%k0bx>3t8)rO!a!F4K`K= zA{XOB2YuEd0N;?PgyGK|P@KkskLEctb3Z&4mp~*Ts!(Sl zOHtBOe1+IZldG(9p%RcpSSm~pY~??kdS-2>6{V)pS#qqrUm{BEFS!?}H+yl4d7<^| zTu`G(^sUCPp)|g{m~0Z6Shvk=lg%UTT=&u$-K)!K+wDY~vqiph%(l3=-6$0khl4mu1ho3CDgg)`e zXfC~8p}FgHX3V{-wbk(b0aqQ?RJi2)La+KE{;*b~MyS)0iEZckv#$CG zLe2WaS8t?cAn=L(uwp#mOv+K6uysjIvE#upqNcR(skXe7O1gGi!rsgltuR_}FcSIL z4_a^0sbWMhHEdExZu9mRogTccaMALj0QGT)WXI!c9iqub92GxnhhEB1)|=a8Tsa3} z{M)C7iUZSfhGIfS;hcHbfCrOEvms|lyUt&8u&Kn-v~+#XpS7@ljWM-wE`_G#Nm%g# zURZOgjClh!T5yi;*5MQyKQ5a+dBls;}M zH6FiG04d2?nqnS*mFHA8Y{Hohm|qsoyUp_WQz{)&0KSFEf9rfG zNJ!Qie(&1?6`kcbD>S!kl`WuDba$Nbg#_zzBR3RvhYtvZ?+50%M~BR+w*9JV!Y`bE zU|zlcK?QYd!ktugl4QE-E}x3CmPjaztLj-g?soqKJ2!VpfY!FGm`#E*-+WJ$qKal)s;hWv7_C< zj-&_ohTUj+9D6txx6bHP^N^S$P)1jmYxQQc6)kvBvZ*LZIMZc10#8ob1x(HX?a$OH zqN(Ox6c4{SyKQixsvOZWgA4s6ejrGKWs%BK#ZsK_nF$U&&+`tlL2vc4%VSj4OJlZ1 zL1v{09jI&BK-Krhy-Hmy;lu}HmiqB$sSdiE>fGTe?B2KCj-0z)u+FD9EPi8Lgg|{v z@0b)_pUrtnmzuqV9MyE409+X3OR7%1i~0F%2(LRHRC5ZLNT*C=8!CKbeoE2o&ySZMP|gEn50YF_pNxtyp-V2|;Xkj&Ab)>8q6cAiDNMS;#*F^UlT2|7E~swlz|-jM=WrA@ zrDbT|9P}p%YhPM^HO4iQXZq8`f>N8H>?i^)Nh2?=WTd8K?G7#@eTQiJ>V9`ZY-98FoL6A)? zmLu}g)`7WhzX*4&f51GBN2?ceo!4SoZLhhqKgbi9)0B-Vz|dPIk}DkF>#K*U{do3} zCy#m#^Kj1L?qMY9HEDXBSl_#Ve&QeH>oj?0&@15k?@EZVttZAgqrThY?Va$GL$A-< z{FVkMDF5Xgr+$@UTf!amE(b(YFD04p^0MbX@2%WMQ`OuY*G)ZnUYCBFsWq4up7x*Y z74-Oidyz|wJu&h!WXpTKrw&KU&HZ!&yD4nKL?zs`P5UsWf1#;>PvZT>J>E?E&;6i} z;K8m|>1urg1C_tIg$g+-zz}jpMrG+-DBQd(>zisi{7T?ocNxCd`SDxTL_vkdAXA^k zdyW!yL?z$p%K_Aj(evP@-7RwR_jW79_g#;6`z`n*^*xnq{pG!HBNgSE^980Q5Ra22TWvDX1M`$lC9p4v^-Z-I-s( z>5VFJ$sXu82oyUFgga8*veT&Ar$BUn7a0$PuHEJ-I(HvLz*UGCLk*S|oZaau)n{t$ zTeYeaLy$#bNaiJZ;Xhr8{#-g<4kqN!%fIgn8Y=kY)<945v6|5@0hP-xg;_0nE@sm) zP3&hN&H{^u8*E@pAyO@VYi9Cb=y&8qtyl{XPf{@eeoB*m0W!Zb8ywq}3`f4~rdV6P zb~?bqkaRH)^qW^;nHN+frI}?uFhS>Y+b3nNf8(YZ?^sFQtph5Z8Y#?% zGky%?t0DV{bx8bDbQY&PyRXT?tKZo(Xb?#KSC-3!y?mfo{#HR9=kO*OJb8q8(1`f2 z0=f@{TzZpxQv=?I>i)k9ge>@8GEO#uHF2Drvsu>;yc%XA3?b>p6zb;aNJEG0?>R&C zRcJ^(R^;R(j@q|!s(61UP3i|oAcP=%6sc4%J9g74H56aF#1|l{;#+f0DI`D&<9yo9 zQfA}h;=}q=`DcLD{rt?14)Ypj!A>wEBh=DuD2IlzS6Dln82i_xQB|JF@9Y9lk#y6ux&Jyh}c*2w_-vA7zH%GgLN$T@EB$7t2B&G~7 z)+%N9=8E~1Sq8(=xj3&~zc8VCq@TR`5dzjZ)<+d~J@uHL@ez`6kN6rEN3QzEzwuxn>f~ z<6!9bW$!o4cDzyHgtqyaUJ9*K;ek&-nms{9K7RW>YR_|B^IgYlk;PZMXovolN;sk( zqmwZ3$!rmq)^=!fw-QrU+&r`ASymP?6YFnL0h*y`xU*DEWk;7>*xi54POOG}2YH;~jt-90zDA%dK~=t&mO`RJREPVN1ZaePzS?$0#kB zmm0dS+2Sex>iAS7ETIp=oCgy7r5lUj=myCHbbF&VBB#mWR7?Sk6v!&kMc$1jUZYh9 zBf%qN_zLi&U%fe|WFa$cLLPSN zK78;l$buU`u=eknp4 z)^DY-dC^8O`erZAo2ZXTBVIx7#7t4l`lcO}fK&9Yp1dMyVSON;iFS{*2!I!8sw}VUVAXQHKiEU$rGuZ|mY%7zih=Rsx@Ki(Xl$H# z*^`qbn2Q^iQBnjEfpF6K`UfGxmwdK}gM^iI@npD_wtg?{Z_nM>?3>-=???6INTEC; ztfHL$5!6)fn5?uY(i=;z(sDDcTNuKj>DX{I?!52siHG>w-UG%`pC@|(eQk_3)Tmoc zD}m5bgk^1I^Htz$UxQ$fau6k&)<(nEq7;u#V`>Znw|wJ*HLRWp5C(sC`VuS^RY}@I zIGnIN$kX`mwA0fyBo5azSHOc!Tr8}t5k6U*f}=mnY_xl*7ZuTwG;>!XplRW7b#V{8 zxlw|1_~V@e`a|n$6ZedQhS~Y`^X~(K*YixzzvLp|f}R3Yp%9rOReKbAN^)2K0RA&> zge~uDKhX<@F`ys1-b(2-+ZGG-Q}FL6dEA?kpKk|LPFI>Zvq6AecI&)=Kiu+g;b$Vr z<&)fMG%I3Gs;DgKEG?VU%e1(lIqtuMHeNL&8*+{NiG0+oMg9aA;NgU8a>or30-x+s zpfMj_N56CZ2o?lT4+4S^3f>mPOY7TA(0XY(^LGkpGC$vPAU^=Im!MFoV#StTe_yI` zte80d{YM+i_#sZ-U#bCrsrHMjaDH5}j0Fk4Qyl<;kqT)g3`(@>;C7O~C|{|VCP7^d z5&DY?mBSI}64Z{^I*0cY1^yc*k$|ISG-^C-prcd<0fRBr!P68~+Dch(Y0Y}ub|ktO z_>%l$p-IK$t(-#c@< zvbZMSSH_y0i$<@0B6dV2K4 zh&sYCSP@@x?_Mr=A5OT5M0uFNY0WTpyO~4I4^#XU!ffzQNwapv9^RKi zDMZuoK%=Vq5`2=%r2QjdcNIX4;H+z~nR`}G;3vKr{C+c!pLh8`O3v^<|K#sR(X}sK zd(9@3>zLq}>|Dim@uMn2`nU8=S^B1B)IoS$VDY2`R27ZJZ{-58iBlDN*c+&swFH}m zh1CaVWU@`trhey$t{d=*>M3!L&9^pMQD$>Hd^Qx+Eo??HScG*nPW*PMIQSm#7OSJ; zNSv5fu;LnhWAdx!?Eqh`$FE%6mqFqq&SU$K*}tFMX%ppZrRun_sVes2TGNl2YYgho zO)~5JSN?C{52*k5m7~VU0~8f>0Kk0;0Qd|50L<)7ERF14?f&=Gt#iUL=XIWk+*(Jg znh2f5bDonI-O@v$l&_)`G)D61woDovdhd@AeG(L0kh&D(5lRu^Z|6uv@9%e4b&-zI zU6`=oJR#W|^3fa27aF}c@D=x)JbvF3N?0GcwxU1qS@-?8a8k}G(FC2F@npseagQN{ zw?Mc?8ANE5Ek!fEJjHN!!O*n_AN%o< zk(#VCyEH$Z=U_&Zm>JmQA2Uc>CKiQtFj{-x>ZwD5s!y@|^Eg{L469JxA9b1KfXV9$ z7AUqXThV^rRsO%~?SsyT-GUe>yzmP(APTY$KENv6w22`_yf+ZjD#;PlDnWn?u{$Y| z8Hhd(vU_l?B0O=d?b>Fk^)&X~mSJ=wc`RBVy=spi)|fB8g7dDxgLqoe9W3F_XhasW3qeLt`=z$2<+F@Gx-*3Bj|t6l>( z5ZTlpi$$Vm)R^{BG&;g=8DCRBBjhStwM9F0TuiH|W`^b6^6T?CuH>U_|FPt4JN#}s zQM54Ty&TJ^XRiv0P%Jub!;%Xv))e%E^yM#jqIjY|6VqJqN}nYMZ_xe!8k9`wsP5{# zVkN%#g_fL>%jyp|S_U&@!GjJ-Du+4p`ZybBOEKXQFdhXhc^W~X{D#|VfZKSS*0Zcx zL|iv|^qPwm>G#mx=$fDlX6k$-!vk3A1#`N|I%SLJ@~ibO@hw6>=PySc6bH{-frUN(quSfSIXW#WNbm7*QjpW6&|QtTwK)^Z8+^JJubC|0pauk|5f%X87X zGuw_Kh*6~*#2hiPSRuQj;PY;z`euTNRJ}z4X42;Y1d75v(PMX9lM&EMm6%9s05%W*Bw!cq6ic>7+bDJSQ5L3x6MFNw}q~r)Hy>zAw zm8M)X`l$B%F-=0baaCrY0w#BB^v%hR{?r%KFC3ATBq4BKDz6yRBA;^Q%)-#+LcQmj zTb>v9Sc9O1rk!zt70tqTaW}zDPbSu z+3e8)vSCt@A%ng7GMWSzl2Kwq-+C9fm$udi4*Q=7n>-<0N=|*J+OgO1+jQnJn)SO#x)i`W#JHL*T~Quam5s%JPpy{ zqI_Qqm-6Job*NS+8U}rrjYzT;z=b`_ZffQpZs9l5Ys1XMq^ufCx#BqH?r%*CNhdXV z@~!;K2vkR7K<5Uw=b%rLe3AmWk`r@!xGZ4iw@5L%Gz{rQDSt%cp|EtKwD5Sl6!*rH z;k(eiB@lX_+iR8)_6V-O&_=~b>qre96~NkH2c~{)^lNKxjn0xwfE|+8^V$W$n$Xg# zg4q$*ghG16@G9Lzg6K7=u={L}rVy=JQjYF?dN!=f?SZkw((i@EJkb5kmqGTVoEZFC z1Jkbbu?wC4Dqr}VlU~iwG*ox(9a#J6s&F0XtTae?X7IhQvrsisD2+H2 zIfIhHxT`|3SC<0!QJ*zGrkf5seZ4K>*@#~dLTlMe)I6x_afq-OZ^VP=??7fIy{K@1 z1snOeU-FxpxC~h_VYA|@+56Bn#E$@^h!HcBgVwA;XL%L$uZRxB7PY5UxO6*HOfjiw z#8L?Cw%TZ+q7JGp{Fi0;34YI-R+Uj9w0=ij&fY~u(lKJ86NpIV!I7Cj!2;)yZY zgHPU-qJWouXV~qg*y^<%GU!l!3&W@%TZ^P)`b{(($a649o(>dH>lR0rJwpsnk1brQ zuUPmM?8>HYGgK>_ywGs(ssvT~%S&wgLB0QHrg?+Cl%Kz8Y6`SbpzoAyg~M%4QTSM{ z4hZI`paxmF@1Dwk9CEJvlVn74pMC{>w0JKa#~B-%Md4Gy!m*y~a}*-QP#Re3`=dKC zenkU%f1tB$UodZw=Wf$jMu!kncN+nc%QQBYS6Gv?746rGUkfFv?os2zw|<(fW!~K! zdk%}pH!~Y~wT7akjq5syQ47D}oH1>px`ltYY+Cb1{ur}&(kthG=d^V{P^au5f;LQT zI&pH&>gEg+6mEAO)_3S~5a{)C-r-hSdNr>JX_L`PWOcErum$;D3$n3Y3iPw7R;{^O z6l#a;BmdI%(Dv|w^bqV3L@O)IpdHVML-Zy>WS)yQ5bwlQ#A}4(c{#9D3UH~x2Uc(l zfI^f9YE@stz--7JjVp!EO@F5Hdt9l<*)cKJ5Dy0*^fz4pa3PHSXdaRnv;-EUOcicq z)t++K)tXWteS2`)U^+!c+FfgajY`f}(M-4Z3oa+unR241q5@W*UhgVpA8B;;r$1i} zkv{&JNZ*IUb~SEORCf>i26v4-B|fhU`2ewZ^6=vP*rHb%5eQ#?3N$;qUikCiil`po*9lfIQ>uCErC-=v~b_0pS4dzi>i zUf&r7KS>(@gvfpV9w(+?G0IF`Z=Ta^&MWVtHp6Av*Fp&?yzNZdSh#V%KwXlHacFH7Q5@XI|B?#~^RFt1f;ow3(< zxgFyj^nQ~~mx6{%f;l_;^a}-PJWv{NL%v|WV>?JXZK6aXsxF!or(Cc&Ka~%|qbuxZ zlrEz7q4wk8+Yy3jDv5nf*(aaZ;`1fUhc-c}`J*4gNKe%XWMZFu8n*=ObR#`&Tku^7 z3p6FH3LWLf-P{*!@pgFycaVcYWV?3Oj8R~3M9>+hueo4>Yn1!JUD~N{ksqJ7^G-eLJLvNLkF8X1 zS9!eJhSV^~VX)q&cTC?}4NcvKQaX()B6|8`yFhx*5mm*Mtl3ClK2un606#1tU1NGJ zDg7>MWt=X#$b~@3vT1CZ|9g_m?ZZIBc?s`jq1Hlh0xay_TmC>_A!}8SM|R<8h>2XI zUtG!VL?rqZW4)?(V=|X@qsifDJVX%-Dkr|Y5hw}%+eG%XY_~?WVk1LCTW;|N_2n6b zn|JXP4K4fZnBlMgBIBKdGzq#d;iqlewmEIvwrxC(>7KT2d)m{sZQFMDv~7L!+jlo& z-~IlmjH-;P$dhr;$;^9iX1!MU(ZCV!Sw}wJs+h?8ct$J{NJoB4?&F6Nli*iVocyMV3+<=}<1{o8KaUx!5FysZal?wPCZKM>FyCf;2*79a& zUYwOAhBdT(c4|Auz}b{=n67+A86iCMV;rNLQjgn>tb&_K1UVay!Y>{ z?7Z$wEKD3sw4|ME3HEqjp1`eBFo@?XaUZkfD}iGuvL@T+DIFQLjjA{Cpp-gY5nNjJ zggXnVC|i0`gK5Z1q((l-QiI_euG=l^-^kdB`C1ens}+kxQ-{ftQ+&n*i<8IoP(ws^ z?cC|slnLnGl(cVIeMj~ZUa%)lrT=8bXa2zQu-@gFK`moNLIciY z=4bsDfF#<=CB8bm%^zd_E?-{wOpf32B_M0P+E39_x2UbZ5(^#Bj877IUmgH&Gftzq zkZ!7c9IRd|n)DQenPdH`Cedj@y?Y`hJL}ZoV>ESEJN1l;9;)Emgcm7S*FIIPw2X$I z`4KlV`A=Huo`bK!xXJVVU6YQ+2edbx;iNXL>XmC&Ce7xk5aN1o;sf5{bLYFDdzZF9 z!u#EBf4fS!mfxI6zUeCm-sd01dtA{7t*`{A?p7jSDT~+h6zdW2-7Cwtb#!pOE3y?`95A)38&>1kT<DiTA7P@Y^ z+BKf6&+vR%WJQ@}JwH(&*7R!I5|+L?jPzS5$o}MmYbYDTo1t~mOD`^J+_^jta#;#j zq4@?Os1HA>Kva+0QGa(dS>AdTXHU{DWpt1PcFF(fQ=hQ;U^J75B=Eydf(q~+_e=Hb zN!+4xxj}NUTcA5e-9{7`RGuEF2Bp9Z`u1sXy$jTTNAJVg39kxmp*p-f+Np;*TKxFD zD@JQ5m`($EFe$Fdl5Ceq2$J{A%SsAjT`aDIic>y2rPu(UtNsP*6=}skwyv{XPqVLc z1a?s-T-n5$hAAj7e4o+eVZVoC?h#Q?D_GjB8Rw{oN+Uz8&A3FX_Ee)E!$x9{ZHoJ2A_;$1eA%3}Y1G{3@PQj^Ev7M9mMT1bMTq`mV2y->s| za6AXj#MXLOFvLcTb?IoW?KfRBC6}kMNZ^MvW9VcDK?R<4te_mXyvjGgpC#8bX{0E8 zsqTYMnt4732PY3)G-aMXFdS1ZNrpyoD5Fw60CK;DC4uvX(XVcq)EnhoBh#uFvgMx6 z94aaZ!L^TXZ3#^?(0BOYs3?%_s9gX?Kw=*?#fMKgIMG(wAh5;3(brP$?M9L){g~3{ zVNh%d9y-G`L{+7@dLZ-l`;x2<&YTIpdAQGDf!4frCw>GH{8<&QT~v89fw>HAM0qn1 z^1dK5GY>O?-gzsA4<4$130)P`f{E@-$QlEJ%}U>c!^IPC)&ba^c6a2lIA) z@{JIbKlOBSxN+$QB!q=ptOHH{gXxon$}{H*E?d64_wCy#=7CT?BW6AiUGA#m`>uKLXRHVfpU(^*jQzPqD)pqZSjOHQrhsmFRf>rI zx#zn`$x552#Ir{Xg%i@sNXajp6TOTdrG`t8TSRzA>Q=>B4~G4lu{mz0l0Mc)%ux@w zBt$5O7=cYJ%#PZ8wj0rHCNf=r(IbZqtbrqh-?&yk@YH0B#-s_fk8p&%Un!EatyMS> zeY~bbQ*uxu&N$--UkscWML52zQpkY~1{Mlg84On0EG7N}%$RJUIscCc7ThgNPLuC@ zrl?K_592-89FU(&A=voKTvS&!2IC7|i6?TP{9??}@X?m6dJejWMW<+*^n*`->!a^C zb9Mtt6|cXc{yYAJ(e1APi2wk!qyYd3|119FYVB%m{=Z{S`Wp@#Qm8&Nn&6(f(01G0 zj=7Zy;JjG~iAL^NQ4n*9)Dg@SHZhCC7BGfIg7?(>I|iR0cRz3IUP!Z}zHJ3DdWv9nE=Y4jZ;!8qpJpqJl0r{g z#*ANzunh!yjvBIvKkw}E%x1pczFMA%wl#LPLhfBt=5nz$Ugv0`(<<1%Cm97{yCJS) z^Kh3&_~c*hnlSx*etM|i-a4*aZ}+@D>Uclw+!dxZeRrXw%P2(Vt?d6Cpz}?)@C>!U z7R(XweYx~wI{W@o?jE6s9pd$t2G85Gc#UvO#VNgtx{GMnO7eg2GeMbD@xvT?ZzDH> z4A&wNk9<$7m|0o+5ycF%U9<8o|0JJz0cMSQA;bL0T|3In>~>CnFGtp9c<+fVUN_hj z>!hFHpFBb08fEd%U%kbk`eHo7^Atb`ZvaCH|6#sW8*!pESr>7@l~ckHaZNrf7hGre zB7Vd-pp=AKFVlG+%yh5VXajP)MjswX?pL>;bswFDzGHYmtw0vx0=L^q?q5dR*Il;I zex?PVH%+5Rk$Uk&Zyxk+UCMcD6$SJSq>oG@j^}a)C=Bjya|S;t*6OB9d~{4k!qp}s zIrdFbKsg=$v5?aXl;*5!cfy%*`0#AqC|~UtZLLZIxq#i>rU z#`tx>Wu6i~VJlV*M5)E^(P#tsxmD5*oV=ogM=WuQWJ1po%9 zhAKY$d(iT~#EPX~=e8s}3iCy79I3Y%h`S4Rt~<3e#6zQee9U=6=NwpsJ>lTE%Xx^s zGmwEZ=ge5m+3#~8;5@c6pX@ZTR1*mVsYSs8P^ksKtvX_zUSg-{)6{9wd_jxT3IJ8Q zLu==Niz?~|$fqK+Da2e~LdgwvYF%4`-gb---}QM0Dp88GYiBvS-ETh)7E7i~`=8{B>ln#UKD?#JXE6_xNM4v-V{cC%6dC~3J#mgCWY zNQtRvlqagS$={h&w_6fpX@3Ef)zl9h0KzKGG*rr3ol`VzRK3MBlupHcH`ye|R?IGh>lMi(ke6d5Q-AU*Y6G^Fk zFPeA{pwh7PPRm|*xL>Ev2GV~DiTv%=B8NWd49(Vq?f6(j?w)?YU9K?1@#>7lWh}TX z`{su~^_~V3DA^gjzG9> zJ2WqVG{g5C!irh-k;lPwRu6LA#o-!Q!EZEH|4)iZCiOe4JExg?iMQLD4Pq3e8Bjmm zQtKjmAL3(W>zFGuwKO2%L_Fis%epgb%B!SEsHzD0{mS>3$LHziW7v4&emVmWsGOgw>%jq9jH+)5l-ysmY>>pecCLcgYibeG-GMNU1f&rp#xm|n{eHO2dTb{V}1j2#*k2qza7 zU;mH5vJxyg)~?@*j28j^6!c%y`B3}O!5sysD`7{gj&Gw7_3*C}8G-lvG5Y0C6W?UD-w@y$9HeCOM=r_*)?b{~#DsKgp;TzlVj6C={u9_Pr3UGPcz!sN zeLBZ*;SM%p#P?O$4mqwNZ(=>OnDPy&<#Hg#@&fqj#rZb0Cxry%^YJ4o4-zVH(7zN$ zKd8^v(7iW=Mx7O%TX<5qdg@*rJ9jY30=H6k$_NJ_`#};n|MDOl4xKt^;?c13rE;!N z?{=j4HAJM`Ljt1p$Ux=Dy56HSjumu!3hX{8nGS{$`icBiDMXNrLa4#;#J#7?s{y+j z(P7MZ35vkePncL!q&#KT!!At;Dr#{$S;`nYmy!Z%Kyo<>&Q@-dbv3V_0-`z6vNsJ^ z`ekXPEm*u}j1=5syZ7!8iAXgb>{}~FVNjRhz1ZbgJ&2M9YO7y|5Die2bPSSt#gHV( zRZl=)n5j(0xl@tlbfx{=(nO*dtY=+AquI7?`bq? zw^|~A5xJQ_Dw;iJMt!!VEs8AnWx=1W0ctRmgA|#32rn5~5CyGRA1i!Z29#X#IVWoH z+0*VhN<5yve@g}v1eK2{@_?6o z|K%PgC;wXTbhx!FzuR=LJXUW};fbYNq zQBxV}{{`^ii~o!8nYX<5H$~689A*Q|sZtC&5E{vFfTjNIkl)qxxK^b%FFMTC zqj#KdYCcm^dEqvQ5Rm?l!Zs(;N{uiLT;j*by)zgP@PZW+1$#OLeLuoa(WcmR)GjNa z418MOMw-5l&KPc>fJi_gg9C<6d2h*PIxlEBLDW;IC7cY_9@jxU>z*Mx<#R-ka|{@x zp--u>n3T&h`HcoXaJ`8lKmuR$6|T@obDtbE(_I)#9x7?`qdkc?$T8bjM+`xq$oSka*3@O+O}_{(fDNU zHam#(W9by|Wj0wQSq2P;T>!*qaOUI(;?u$B0NqCI0Jc#3bHS0*m*~AM-Nx84}yvmH_X5GSTYA$xtNFKImEzFYYJ= zzn=j&^x|+drn%LgZ%2@sX90*%J=PK+_51JV z^j1sQHMqfu-D1YII{8}?<{~{u8U~^p6gZE}1mAtnPZM1wJp|g1(Qp9#5DqjgQNCkW}G|+{5zPI&j)n zA0@k*UK!;qX;Z=XlLLEK&w;A~Y(+=y6&Uaf7{>4ZLd8YQv2M(x&=O2>A{X&=wA;&$ zR-neCpB1cS!sJ4F7z+8`KEV726!#9Y5?sWzAh zZ4_Gh9ME>&t6TYTexVJCOm$)j4C@dOKu*E0Uynp2vz!eQ#aT=vX{}me$VK^RiIXxM zLt~x`G$hKzwaL^V{ymPOdm!jPt*O0lNAmvLPekMe<--930Im@M0L*`WqN$sUtE0W4 zi>tA#wTr8@>3}*7t0Kkvh_qG%CbpevO2;_L1d#c~$>T7}kZ4Iw$vM>R%

      ~knh8SoDyiVsqadiqz9hb;P{BBd>fQ- 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

      QGm&={LV{qS^_09EjZSqz4 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

      3xoqlHn63tWBZS4Kx}`Rz-K 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

      T;{!H#JUL3L;sB5$VlH806D~vxLELR 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

      {ez}inupY@Cuj&(3{ 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
      T0`iKk2zB4CXH<2dp8&kH?M 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�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

      YC4rk7STngb2GxgKPMVt#0 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≫hUP1eyzR(^7;RoCMHoOjj7JzL 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 literal 0 HcmV?d00001 diff --git a/code-generators/build/scripts/code-generators b/code-generators/build/scripts/code-generators new file mode 100755 index 00000000000..5b28c1d873a --- /dev/null +++ b/code-generators/build/scripts/code-generators @@ -0,0 +1,248 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# code-generators start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh code-generators +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and CODE_GENERATORS_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}.." > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/lib/code-generators-1.5.0-SNAPSHOT.jar:$APP_HOME/lib/data-1.21-rv7.jar:$APP_HOME/lib/annotations-24.1.0.jar:$APP_HOME/lib/logback-classic-1.4.5.jar:$APP_HOME/lib/slf4j-api-2.0.7.jar:$APP_HOME/lib/gson-2.11.0.jar:$APP_HOME/lib/javapoet-1.13.0.jar:$APP_HOME/lib/logback-core-1.4.5.jar:$APP_HOME/lib/error_prone_annotations-2.27.0.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and CODE_GENERATORS_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and CODE_GENERATORS_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + -classpath "$CLASSPATH" \ + net.minestom.codegen.Generators \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $CODE_GENERATORS_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/code-generators/build/scripts/code-generators.bat b/code-generators/build/scripts/code-generators.bat new file mode 100644 index 00000000000..54ed1e7349d --- /dev/null +++ b/code-generators/build/scripts/code-generators.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem code-generators startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME%.. + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and CODE_GENERATORS_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\lib\code-generators-1.5.0-SNAPSHOT.jar;%APP_HOME%\lib\data-1.21-rv7.jar;%APP_HOME%\lib\annotations-24.1.0.jar;%APP_HOME%\lib\logback-classic-1.4.5.jar;%APP_HOME%\lib\slf4j-api-2.0.7.jar;%APP_HOME%\lib\gson-2.11.0.jar;%APP_HOME%\lib\javapoet-1.13.0.jar;%APP_HOME%\lib\logback-core-1.4.5.jar;%APP_HOME%\lib\error_prone_annotations-2.27.0.jar + + +@rem Execute code-generators +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %CODE_GENERATORS_OPTS% -classpath "%CLASSPATH%" net.minestom.codegen.Generators %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable CODE_GENERATORS_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%CODE_GENERATORS_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/code-generators/build/tmp/compileJava/compileTransaction/stash-dir/CodeGenerator.class.uniqueId2 b/code-generators/build/tmp/compileJava/compileTransaction/stash-dir/CodeGenerator.class.uniqueId2 new file mode 100644 index 0000000000000000000000000000000000000000..75f35e7e633d8f3d705f23d34bc80b955ad2aed8 GIT binary patch literal 7478 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 Ak^lez literal 0 HcmV?d00001 diff --git a/code-generators/build/tmp/compileJava/compileTransaction/stash-dir/Generators.class.uniqueId0 b/code-generators/build/tmp/compileJava/compileTransaction/stash-dir/Generators.class.uniqueId0 new file mode 100644 index 0000000000000000000000000000000000000000..4c4e72935a1cdd8f1b74d1f7ba21232c3ee3a87c GIT binary patch literal 5173 zcmb_gcYGAb6@E_=+;ALiM6aR_ZKA-&-^y~j>3b`q!eLh{Y*?%hc`{6~KIL#KV;&g*a9%-c(sFI*&| zJ=_wf3aX4zRe~naM5gH{tU)W4v7Fx2p{^4u?K4f>VLP_Ji>Y#TUHc>wG$}^$1Wl#{ z(-KGdsjTg&yzgdHX}4STDkrs1Im)wq*UN*u?a;n`Ek~GSo9p$a@|m7ZCsJ*0Z?Ezi z1x;m|eSO~QRoiQJ_?FkJ{F)v&)2+N+lW985h>=WCHO+)wW0{#ID9>{}rdg}oibfyx zJ=^JRtZR?aY^H>HVY{hTJEP(>i{@%KXU1qgQ$tzP({9G~QhSF~vwkQzB4{DgwC*9* zX%^&@C-SZnM=Ta6XbIIY2~XwS0WYnX>dM&@m^X=TVY zW=VlhdjPjIOKpNy>RbuLTE|(%Xf;!+tUsPg+c}jwV*VW)%Bd2U>X~K)?>l|GiJV$R z%i^?(YGahVlGL2#`F1*^QisEb5~=H$rbh20k!!WcwOZsRrd4GPZFZf!Z#jOxMAR0D zN=JAY@{L;5MlEVP)3Pgw>Mpt&r){)D$9N~aEyg$ur=Y8uCU<4rbbny0z@9K-lTlSC z^U51kUeY%9rB%|b7SxOiY|@N^T9_u8$Nkw{M$kS~y&>~j`F@?PYng5?Dle^p@wNNE zA$9G7+L+?DudXt@dTFJjPhGgEcW^=;SbR6RZDK#@0H zSI`zL7Ss(74jaZ6!zZW*eWMf!H1@%fQWQE*fHe>kDa*k0U{PSY1JjFiASegZix|Y9 z8BInPaJnNY=$`Y+1;{KCGzcX}_4<}UgiO#aDAA??JLB6>1zAV>3o7pTV@KtjcJipl2ZfMW#s3JN^D4PK9eq5S!1gqDvs+cn@9D&Yl8 zE6QnwTgZO0uwKv|sH!~?yPy}rmI4_leF>scfS~YYI6Hcj_VM>;0kqW774lst*%wC7j!SuXC4FL_oLMr5>kf|<#eCrkFxR{(}HqA z%ObXjv!Dy;Le1a`T=+1=N0jNF7ZdbR`WRe|&bsT=5N;I*|DVlNx6V&6&Fr?b%F!7g z<-w<}5Sx>(mq9>2gYfQ+7y~Chhg~xYLU1l2ng;SS9GHcTthu=TqrIqdIj zXErZDn+2-$Jil8Lk^umd4(x7oW~C%)i9dtE_dS4(?>YEa=xTtH}r|X!{KkHwuEj-@(+A zZl04Q4b!CvqKVg?1hrk0^k!%ly z3i=Bi)o2Jn@!ybS153!X5&LYxJms5rbud&3sX1J3X!> z;#mov&2yOMWUYP-0Z!WTkK2A<;d)xUshc4wnm5K@+TuKq=f`+Kf*0xmVOnuUY0g-A z^ss77J4eE)VNX673F5q%m&CXx!Ap4=j2Juhv|4G5RYT~KU=F4zrrNL>8iS1R#=7yt z7E@I-oQ5TBnAZ*tWV@7iOqV2*(dMSDjL8q^5Ule1Y*@Lp4Hj&vrRZ}nXa6Pz9m5T$}Z?0C$?DC8#B_4B@GRzwWW7np8fE3e*C5S ztAO!~mSTjiz=sH2?ezx*JXPTtUm}QkIj9sU#{UWRXNk|?p@LW77q9V~;9C6~EZ~*A z3e+TC&2<5D#r;@U3E7XH4g(>6l$I^=?Lv}ny) zS~^TCMrc)stPAKh!_+WBYdd5rpw|!6h7sD>AvXu~)?vD8gtm2nwediM+yzwbmQ8Z6 zY#pX+8sv2vI3N$nC&;4)xLyOtWrw^$KG^`B8n9$qD%ooQI{^A+R=NgwiU#s>K%SIC z26&nVo-Us$pDmwjfahu8cKJeir+l#iUaEnY%U8-*%hwvH$omZNAq||B=jF&SeWXEtT$7)apO&9Bs&i5$;~J{x^|Y3E z0@ws4h&!D*epcIz>7Hkev=~C2R;F*Lw_S}20uyhyfEZGGKUe6ow zUhu}k7Fuc~U}s2iju+iWF&!l?*+x?kvrR_mX5ONi@pc>jw(`}W;&|H4O}v-p{TCFV B@^1hD literal 0 HcmV?d00001 diff --git a/code-generators/build/tmp/compileJava/compileTransaction/stash-dir/RecipeTypeGenerator.class.uniqueId1 b/code-generators/build/tmp/compileJava/compileTransaction/stash-dir/RecipeTypeGenerator.class.uniqueId1 new file mode 100644 index 0000000000000000000000000000000000000000..d8c359edd83419380ba3de4c8696bedd2c31c125 GIT binary patch literal 9605 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 JPA;J3e*kneaMl0- literal 0 HcmV?d00001 diff --git a/code-generators/build/tmp/compileJava/previous-compilation-data.bin b/code-generators/build/tmp/compileJava/previous-compilation-data.bin new file mode 100644 index 0000000000000000000000000000000000000000..447b89b46fd20d9bbe0d25713838b4e7de4dc436 GIT binary patch literal 5604 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 literal 0 HcmV?d00001 diff --git a/code-generators/build/tmp/jar/MANIFEST.MF b/code-generators/build/tmp/jar/MANIFEST.MF new file mode 100644 index 00000000000..59499bce4a2 --- /dev/null +++ b/code-generators/build/tmp/jar/MANIFEST.MF @@ -0,0 +1,2 @@ +Manifest-Version: 1.0 + diff --git a/code-generators/src/main/java/net/minestom/codegen/MinestomCodeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/MinestomCodeGenerator.java index 2056bea9dbf..e9429b548b6 100644 --- a/code-generators/src/main/java/net/minestom/codegen/MinestomCodeGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/MinestomCodeGenerator.java @@ -36,14 +36,6 @@ protected MinestomCodeGenerator() { } - protected static String toConstant(String namespace) { - return namespace.replace("minecraft:", "").toUpperCase(Locale.ROOT); - } - - protected static String toConstant(String namespace) { - return namespace.replace("minecraft:", "").toUpperCase(Locale.ROOT); - } - protected static String toConstant(String namespace) { return namespace.replace("minecraft:", "").toUpperCase(Locale.ROOT); } diff --git a/src/main/java/net/minestom/server/command/CommandManager.java b/src/main/java/net/minestom/server/command/CommandManager.java index cdb5fd232d7..bcb140f5a35 100644 --- a/src/main/java/net/minestom/server/command/CommandManager.java +++ b/src/main/java/net/minestom/server/command/CommandManager.java @@ -60,18 +60,6 @@ public synchronized void register(@NotNull Command command) { invalidateGraphCache(); } - /** - * Register multiple {@link Command}s. - * - * @param commands the array of commands - * @throws IllegalStateException if a command with the same name already exists - */ - public synchronized void register(@NotNull Command... commands) { - for (Command command : commands) { - register(command); - } - } - /** * Removes a command from the currently registered commands. * Does nothing if the command was not registered before diff --git a/src/main/java/net/minestom/server/coordinate/Vec.java b/src/main/java/net/minestom/server/coordinate/Vec.java index 338a134c786..5d92c2e34ca 100644 --- a/src/main/java/net/minestom/server/coordinate/Vec.java +++ b/src/main/java/net/minestom/server/coordinate/Vec.java @@ -494,18 +494,6 @@ static Operator operator(@NotNull DoubleUnaryOperator operator) { return (x, y, z) -> new Vec(operator.applyAsDouble(x), operator.applyAsDouble(y), operator.applyAsDouble(z)); } - Operator SIGNUM = (x, y, z) -> new Vec( - Math.signum(x), - Math.signum(y), - Math.signum(z) - ); - - Operator SIGNUM = (x, y, z) -> new Vec( - Math.signum(x), - Math.signum(y), - Math.signum(z) - ); - @NotNull Vec apply(double x, double y, double z); } diff --git a/src/main/java/net/minestom/server/entity/Entity.java b/src/main/java/net/minestom/server/entity/Entity.java index 58a5f89abbc..0b9744a216a 100644 --- a/src/main/java/net/minestom/server/entity/Entity.java +++ b/src/main/java/net/minestom/server/entity/Entity.java @@ -293,12 +293,7 @@ public void editEntityMeta(Class metaClass, Co @MagicConstant(flagsFromClass = RelativeFlags.class) int flags, boolean shouldConfirm) { Check.stateCondition(instance == null, "You need to use Entity#setInstance before teleporting an entity!"); - - EntityTeleportEvent event = new EntityTeleportEvent(this, position, flags); - EventDispatcher.call(event); - final Pos globalPosition = PositionUtils.getPositionWithRelativeFlags(this.position, position, flags); - final Runnable endCallback = () -> { this.previousPosition = this.position; this.position = globalPosition; @@ -1767,46 +1762,6 @@ protected void updateCollisions() { return acquirable; } - /** - * Acquires this entity. - * - * @param the type of object to be acquired - * @return the acquirable for this entity - * @deprecated It's preferred to use {@link AcquirableSource#acquirable()} instead, as it is overridden by - * subclasses - */ - @Deprecated - @ApiStatus.Experimental - public @NotNull Acquirable getAcquirable() { - return (Acquirable) acquirable; - } - - @ApiStatus.Experimental - @Override - public @NotNull Acquirable acquirable() { - return acquirable; - } - - /** - * Acquires this entity. - * - * @param the type of object to be acquired - * @return the acquirable for this entity - * @deprecated It's preferred to use {@link AcquirableSource#acquirable()} instead, as it is overridden by - * subclasses - */ - @Deprecated - @ApiStatus.Experimental - public @NotNull Acquirable getAcquirable() { - return (Acquirable) acquirable; - } - - @ApiStatus.Experimental - @Override - public @NotNull Acquirable acquirable() { - return acquirable; - } - public enum Pose { STANDING, FALL_FLYING, diff --git a/src/main/java/net/minestom/server/entity/Player.java b/src/main/java/net/minestom/server/entity/Player.java index 6dffdae6999..d834b46270d 100644 --- a/src/main/java/net/minestom/server/entity/Player.java +++ b/src/main/java/net/minestom/server/entity/Player.java @@ -99,8 +99,7 @@ import net.minestom.server.utils.time.TimeUnit; import net.minestom.server.utils.validate.Check; import net.minestom.server.world.DimensionType; -import org.jctools.queues.MessagePassingQueue; -import org.jctools.queues.MpscUnboundedXaddArrayQueue; +import org.jctools.queues.MpscArrayQueue; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -177,7 +176,7 @@ public class Player extends LivingEntity implements CommandSender, Localizable, private final AtomicInteger teleportId = new AtomicInteger(); private int receivedTeleportId; - private final MessagePassingQueue packets = new MpscUnboundedXaddArrayQueue<>(32); + private final MpscArrayQueue packets = new MpscArrayQueue<>(ServerFlag.PLAYER_PACKET_QUEUE_SIZE); private final boolean levelFlat; private final PlayerSettings settings; private float exp; @@ -2139,15 +2138,14 @@ protected void refreshAbilities() { * @param packet the packet to add in the queue */ public void addPacketToQueue(@NotNull ClientPacket packet) { - this.packets.offer(packet); + final boolean success = packets.offer(packet); + if (!success) { + kick(Component.text("Too Many Packets", NamedTextColor.RED)); + } } @ApiStatus.Internal public void interpretPacketQueue() { - if (this.packets.size() >= ServerFlag.PLAYER_PACKET_QUEUE_SIZE) { - kick(Component.text("Too Many Packets", NamedTextColor.RED)); - return; - } final PacketListenerManager manager = MinecraftServer.getPacketListenerManager(); // This method is NOT thread-safe this.packets.drain(packet -> manager.processClientPacket(packet, playerConnection), ServerFlag.PLAYER_PACKET_PER_TICK); @@ -2303,63 +2301,13 @@ protected void showPlayer(@NotNull PlayerConnection connection) { } @Override - public @NotNull ItemStack getItemInMainHand() { - return inventory.getItemInMainHand(); - } - - @Override - public void setItemInMainHand(@NotNull ItemStack itemStack) { - inventory.setItemInMainHand(itemStack); - } - - @Override - public @NotNull ItemStack getItemInOffHand() { - return inventory.getItemInOffHand(); - } - - @Override - public void setItemInOffHand(@NotNull ItemStack itemStack) { - inventory.setItemInOffHand(itemStack); - } - - @Override - public @NotNull ItemStack getHelmet() { - return inventory.getHelmet(); - } - - @Override - public void setHelmet(@NotNull ItemStack itemStack) { - inventory.setHelmet(itemStack); - } - - @Override - public @NotNull ItemStack getChestplate() { - return inventory.getChestplate(); - } - - @Override - public void setChestplate(@NotNull ItemStack itemStack) { - inventory.setChestplate(itemStack); - } - - @Override - public @NotNull ItemStack getLeggings() { - return inventory.getLeggings(); - } - - @Override - public void setLeggings(@NotNull ItemStack itemStack) { - inventory.setLeggings(itemStack); - } - - @Override - public @NotNull ItemStack getBoots() { - return inventory.getBoots(); + public @NotNull ItemStack getEquipment(@NotNull EquipmentSlot slot) { + return inventory.getEquipment(slot); } @Override - public void setBoots(@NotNull ItemStack itemStack) { - inventory.setBoots(itemStack); + public void setEquipment(@NotNull EquipmentSlot slot, @NotNull ItemStack itemStack) { + inventory.setEquipment(slot, itemStack); } @Override diff --git a/src/main/java/net/minestom/server/gamedata/tags/Tag.java b/src/main/java/net/minestom/server/gamedata/tags/Tag.java index 22e9e149338..2984ffd0243 100644 --- a/src/main/java/net/minestom/server/gamedata/tags/Tag.java +++ b/src/main/java/net/minestom/server/gamedata/tags/Tag.java @@ -90,25 +90,24 @@ public NamespaceID getName() { public enum BasicType { BLOCKS("minecraft:block", Registry.Resource.BLOCK_TAGS, - name -> Optional.ofNullable(Block.fromNamespaceId(name)).map(Block::id)), + blockName -> Optional.ofNullable(Block.fromNamespaceId(blockName)).map(Block::id)), ITEMS("minecraft:item", Registry.Resource.ITEM_TAGS, - name -> Optional.ofNullable(Material.fromNamespaceId(name)).map(Material::id)), + itemName -> Optional.ofNullable(Material.fromNamespaceId(itemName)).map(Material::id)), FLUIDS("minecraft:fluid", Registry.Resource.FLUID_TAGS, - name -> Optional.ofNullable(Fluid.fromNamespaceId(name)).map(Fluid::id)), + fluidName -> Optional.ofNullable(Fluid.fromNamespaceId(fluidName)).map(Fluid::id)), BIOMES("minecraft:worldgen/biome", Registry.Resource.BIOME_TAGS, - name -> Optional.of(DynamicRegistry.Key.of(name)).map(DynamicRegistry.Key::namespace).map(MinecraftServer.getBiomeRegistry()::getId)), + biomeName -> Optional.of(DynamicRegistry.Key.of(biomeName)).map(DynamicRegistry.Key::namespace).map(MinecraftServer.getBiomeRegistry()::getId)), ENTITY_TYPES("minecraft:entity_type", Registry.Resource.ENTITY_TYPE_TAGS, - name -> Optional.ofNullable(EntityType.fromNamespaceId(name)).map(EntityType::id)), + entityName -> Optional.ofNullable(EntityType.fromNamespaceId(entityName)).map(EntityType::id)), GAME_EVENTS("minecraft:game_event", Registry.Resource.GAMEPLAY_TAGS, - name -> Optional.ofNullable(GameEvent.fromNamespaceId(name)).map(GameEvent::id)), + eventName -> Optional.ofNullable(GameEvent.fromNamespaceId(eventName)).map(GameEvent::id)), SOUND_EVENTS("minecraft:sound_event", null, null), // Seems not to be included in server data POTION_EFFECTS("minecraft:sound_event", null, null), // Seems not to be included in server data - //todo this is cursed. it does not update as the registry changes. Fix later. ENCHANTMENTS("minecraft:enchantment", Registry.Resource.ENCHANTMENT_TAGS, - name -> Optional.of(DynamicRegistry.Key.of(name)).map(DynamicRegistry.Key::namespace).map(MinecraftServer.getEnchantmentRegistry()::getId)),; + enchName -> Optional.of(DynamicRegistry.Key.of(enchName)).map(DynamicRegistry.Key::namespace).map(MinecraftServer.getEnchantmentRegistry()::getId)),; - private final static BasicType[] VALUES = values(); + private static final BasicType[] VALUES = values(); private final String identifier; private final Registry.Resource resource; private final Function> function; diff --git a/src/main/java/net/minestom/server/instance/Instance.java b/src/main/java/net/minestom/server/instance/Instance.java index aa00594ec50..cb05bee3566 100644 --- a/src/main/java/net/minestom/server/instance/Instance.java +++ b/src/main/java/net/minestom/server/instance/Instance.java @@ -477,17 +477,6 @@ public boolean setWorldSpawnPosition(@NotNull Pos spawnPosition, boolean sendPac } //Microtus end - integrate world spawn position - /** - * Sets the age of this instance in tick. It will send the age to all players. - * Will send new age to all players in the instance, unaffected by {@link #getTimeSynchronizationTicks()} - * - * @param worldAge the age of this instance in tick - */ - public void setWorldAge(long worldAge) { - this.worldAge = worldAge; - PacketUtils.sendGroupedPacket(getPlayers(), createTimePacket()); - } - /** * Gets the current time in the instance (sun/moon). * diff --git a/src/test/java/net/minestom/server/entity/EntityMetaIntegrationTest.java b/src/test/java/net/minestom/server/entity/EntityMetaIntegrationTest.java index ed4e7c01d73..e27102317a8 100644 --- a/src/test/java/net/minestom/server/entity/EntityMetaIntegrationTest.java +++ b/src/test/java/net/minestom/server/entity/EntityMetaIntegrationTest.java @@ -1,9 +1,9 @@ package net.minestom.server.entity; import net.kyori.adventure.text.Component; -import net.minestom.testing.Env; import net.minestom.server.coordinate.Pos; import net.minestom.server.network.packet.server.play.EntityMetaDataPacket; +import net.minestom.testing.Env; import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/src/test/java/net/minestom/server/instance/InstanceBlockIntegrationTest.java b/src/test/java/net/minestom/server/instance/InstanceBlockIntegrationTest.java index c9306d1f4a4..ae7dad49c2f 100644 --- a/src/test/java/net/minestom/server/instance/InstanceBlockIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/InstanceBlockIntegrationTest.java @@ -1,11 +1,11 @@ package net.minestom.server.instance; -import net.minestom.testing.Env; import net.minestom.server.coordinate.Vec; import net.minestom.server.instance.block.Block; import net.minestom.server.instance.block.SuspiciousGravelBlockHandler; import net.minestom.server.instance.block.rule.BlockPlacementRule; import net.minestom.server.tag.Tag; +import net.minestom.testing.Env; import net.minestom.testing.extension.MicrotusExtension; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/src/test/java/net/minestom/server/instance/InstanceBlockPacketIntegrationTest.java b/src/test/java/net/minestom/server/instance/InstanceBlockPacketIntegrationTest.java index c82c6e0353e..971de66af5d 100644 --- a/src/test/java/net/minestom/server/instance/InstanceBlockPacketIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/InstanceBlockPacketIntegrationTest.java @@ -2,7 +2,6 @@ import net.kyori.adventure.nbt.CompoundBinaryTag; import net.kyori.adventure.nbt.TagStringIOExt; -import net.minestom.testing.Env; import net.minestom.server.coordinate.Pos; import net.minestom.server.coordinate.Vec; import net.minestom.server.instance.block.Block; @@ -11,6 +10,7 @@ import net.minestom.server.network.packet.server.play.BlockEntityDataPacket; import net.minestom.server.tag.Tag; import net.minestom.server.utils.NamespaceID; +import net.minestom.testing.Env; import net.minestom.testing.extension.MicrotusExtension; import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.Test; diff --git a/src/test/java/net/minestom/server/instance/anvil/AnvilLoaderIntegrationTest.java b/src/test/java/net/minestom/server/instance/anvil/AnvilLoaderIntegrationTest.java index dd4f72e0627..efc1dc606d6 100644 --- a/src/test/java/net/minestom/server/instance/anvil/AnvilLoaderIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/anvil/AnvilLoaderIntegrationTest.java @@ -15,7 +15,11 @@ import org.junit.jupiter.api.extension.ExtendWith; import java.io.IOException; -import java.nio.file.*; +import java.nio.file.FileVisitResult; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.SimpleFileVisitor; +import java.nio.file.StandardCopyOption; import java.nio.file.attribute.BasicFileAttributes; import java.util.concurrent.atomic.AtomicReference; import java.util.function.Consumer; @@ -24,7 +28,7 @@ import static org.junit.jupiter.api.Assertions.assertNull; @ExtendWith(MicrotusExtension.class) -class AnvilLoaderIntegrationTest { +public class AnvilLoaderIntegrationTest { private static final Path testRoot = Path.of("src", "test", "resources", "net", "minestom", "server", "instance"); diff --git a/src/test/java/net/minestom/server/instance/generator/GeneratorForkConsumerIntegrationTest.java b/src/test/java/net/minestom/server/instance/generator/GeneratorForkConsumerIntegrationTest.java index 5bed80e72e9..c1447794ac1 100644 --- a/src/test/java/net/minestom/server/instance/generator/GeneratorForkConsumerIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/generator/GeneratorForkConsumerIntegrationTest.java @@ -1,8 +1,8 @@ package net.minestom.server.instance.generator; -import net.minestom.testing.Env; import net.minestom.server.coordinate.Point; import net.minestom.server.instance.block.Block; +import net.minestom.testing.Env; import net.minestom.testing.extension.MicrotusExtension; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; diff --git a/src/test/java/net/minestom/server/instance/generator/GeneratorTest.java b/src/test/java/net/minestom/server/instance/generator/GeneratorTest.java index 78008fd73b5..cb8c4ad1682 100644 --- a/src/test/java/net/minestom/server/instance/generator/GeneratorTest.java +++ b/src/test/java/net/minestom/server/instance/generator/GeneratorTest.java @@ -23,10 +23,11 @@ import static org.junit.jupiter.api.Assertions.*; class GeneratorTest { + @Test void unitSize() { - assertDoesNotThrow(() -> dummyUnit(Vec.ZERO, new Vec(16))); - assertDoesNotThrow(() -> dummyUnit(new Vec(16), new Vec(32))); + assertDoesNotThrow(() -> dummyUnit(Vec.ZERO, Vec.SECTION)); + assertDoesNotThrow(() -> dummyUnit(Vec.SECTION, new Vec(32))); assertThrows(IllegalArgumentException.class, () -> dummyUnit(new Vec(15), Vec.ZERO)); assertThrows(IllegalArgumentException.class, () -> dummyUnit(new Vec(15), new Vec(32))); assertThrows(IllegalArgumentException.class, () -> dummyUnit(new Vec(15), new Vec(31))); @@ -300,7 +301,7 @@ void chunkFillHeightOneOff() { } @Test - public void sectionFill() { + void sectionFill() { GenSection section = new GenSection(); var chunkUnit = GeneratorImpl.section(null, section, -1, -1, 0); Generator generator = chunk -> chunk.modifier().fill(Block.STONE); @@ -310,7 +311,7 @@ public void sectionFill() { } @Test - public void testForkAcrossBorders() { + void testForkAcrossBorders() { final int minSection = -4; final int maxSection = 4; diff --git a/src/test/java/net/minestom/server/instance/light/LightParityIntegrationTest.java b/src/test/java/net/minestom/server/instance/light/LightParityIntegrationTest.java index 51cf8b9d5f4..92d2fe1bc52 100644 --- a/src/test/java/net/minestom/server/instance/light/LightParityIntegrationTest.java +++ b/src/test/java/net/minestom/server/instance/light/LightParityIntegrationTest.java @@ -17,7 +17,12 @@ import java.net.URISyntaxException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.UUID; import java.util.concurrent.CompletableFuture; import static org.junit.jupiter.api.Assertions.assertEquals;

      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

    Pzmv0fneLVPAi8M+5WwWF|<{Q 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�UU_P+^~peFwGue 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%0AZ48RJP=wf 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 z%0D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