From 368d0ab917696f75a016505fdcaa2ce9e7232532 Mon Sep 17 00:00:00 2001 From: Gabriel Harris-Rouquette Date: Fri, 10 Oct 2025 19:02:45 -0400 Subject: [PATCH 01/13] feat(minecraft): update towards 25w41a Introduced updates to reflect changes in Minecraft's codebase, particularly around permissions, world rules, and API adaptations. Adjusted permission levels to integrate with new PermissionLevel and PermissionSet systems while incorporating various minor fixes and deprecations. See: https://minecraft.wiki/w/Java_Edition_25w41a --- SpongeAPI | 2 +- .../vanilla/generator/GeneratorMain.java | 3 +- gradle.properties | 2 +- .../commands/CommandSourceStackAccessor.java | 3 +- .../server/MinecraftServerAccessor.java | 2 - .../monster/ZombifiedPiglinAccessor.java | 4 +- .../world/entity/player/PlayerAccessor.java | 3 +- .../world/level/BaseCommandBlockAccessor.java | 3 +- .../common/launch/Lifecycle.java | 3 +- .../spongepowered/common/SpongeLifecycle.java | 3 +- .../dispatcher/SpongeNodePermissionCache.java | 3 +- .../manager/SpongeCommandCauseFactory.java | 8 +- .../provider/entity/ZombifiedPiglinData.java | 2 +- .../provider/world/WorldPropertiesData.java | 3 +- .../entity/player/LoginPermissions.java | 4 +- .../merchant/TradeOfferGeneratorWrapper.java | 4 +- .../server/ServerConsoleSystemSubject.java | 17 +-- .../SpongeServerScopedServiceProvider.java | 5 +- .../server/permission/OpLevelCollection.java | 21 ++-- .../permission/SpongePermissionService.java | 15 +-- .../server/permission/SpongePermissions.java | 7 +- .../server/permission/UserSubject.java | 18 +-- .../spongepowered/common/util/Constants.java | 7 +- .../world/biome/SpongeBiomeBuilder.java | 6 +- .../ambient/SpongeParticleConfigFactory.java | 2 +- .../ambient/SpongeSoundConfigFactory.java | 4 +- .../server/MinecraftServerMixin_API.java | 11 +- .../server/level/ServerLevelMixin_API.java | 1 + .../nautilus/AbstractNautilusMixin_API.java} | 36 +++--- .../animal/nautilus/NautilusMixin_API.java | 32 ++++++ .../nautilus/ZombieNautilusMixin_API.java | 32 ++++++ .../VillagerTrades_ItemListingMixin_API.java | 8 +- .../AmbientAdditionsSettingsMixin_API.java | 8 +- .../biome/AmbientMoodSettingsMixin_API.java | 16 ++- .../AmbientParticleSettingsMixin_API.java | 8 +- .../entity/CommandBlockEntityMixin_API.java | 12 +- .../commands/CommandSourceStackMixin.java | 108 +++++++++--------- .../core/server/MinecraftServerMixin.java | 2 +- .../ReloadableServerResourcesMixin.java | 19 ++- .../mixin/core/server/WorldLoaderMixin.java | 9 +- .../commands/DifficultyCommandMixin.java | 4 +- .../core/server/level/ServerLevelMixin.java | 87 ++++++++++++++ .../core/world/BaseCommandBlockMixin.java | 27 +---- .../core/world/entity/LivingEntityMixin.java | 9 +- .../entity/monster/ZombifiedPiglinMixin.java | 6 +- .../core/world/entity/player/PlayerMixin.java | 13 ++- .../entity/player/PlayerMixin_Attack.java | 36 +++--- .../vehicle/MinecartCommandBlockMixin.java | 5 +- ...CommandBlock_MinecartCommandBaseMixin.java | 31 ++++- .../entity/vehicle/MinecartTNTMixin.java | 4 +- .../mixin/core/world/level/LevelMixin.java | 89 --------------- .../block/entity/CommandBlockEntityMixin.java | 14 ++- .../entity/CommandBlockEntity_Mixin.java | 28 +++++ .../level/storage/PrimaryLevelDataMixin.java | 4 +- .../BlockableEventLoopMixin_Tracker.java | 13 ++- src/mixins/resources/mixins.sponge.api.json | 5 +- src/mixins/resources/mixins.sponge.core.json | 1 - ...eloadableServerResourcesMixin_Vanilla.java | 13 ++- 58 files changed, 516 insertions(+), 329 deletions(-) rename src/mixins/java/org/spongepowered/common/mixin/{core/server/commands/GameRuleCommandMixin.java => api/minecraft/world/entity/animal/nautilus/AbstractNautilusMixin_API.java} (52%) create mode 100644 src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/nautilus/NautilusMixin_API.java create mode 100644 src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/nautilus/ZombieNautilusMixin_API.java diff --git a/SpongeAPI b/SpongeAPI index a0493bdb270..c315763d065 160000 --- a/SpongeAPI +++ b/SpongeAPI @@ -1 +1 @@ -Subproject commit a0493bdb27098185d001b1c43bbd7a3f0e3cdd02 +Subproject commit c315763d06548b6a3f13b837ce9a28e7b581f871 diff --git a/generator/src/main/java/org/spongepowered/vanilla/generator/GeneratorMain.java b/generator/src/main/java/org/spongepowered/vanilla/generator/GeneratorMain.java index 2978e69c86e..3da6cc3f97d 100644 --- a/generator/src/main/java/org/spongepowered/vanilla/generator/GeneratorMain.java +++ b/generator/src/main/java/org/spongepowered/vanilla/generator/GeneratorMain.java @@ -42,6 +42,7 @@ import net.minecraft.server.packs.repository.ServerPacksSource; import net.minecraft.server.packs.resources.CloseableResourceManager; import net.minecraft.server.packs.resources.MultiPackResourceManager; +import net.minecraft.server.permissions.LevelBasedPermissionSet; import net.minecraft.tags.TagLoader; import net.minecraft.world.level.WorldDataConfiguration; import org.spongepowered.vanilla.generator.item.ItemRegistries; @@ -151,7 +152,7 @@ private static Pair loadVanill pendingTags, packRepository.getRequestedFeatureFlags(), CommandSelection.ALL, - 2, // functionPermissionLevel + LevelBasedPermissionSet.ALL_PERMISSIONS, // functionPermissionLevel Util.backgroundExecutor(), // prepareExecutor Runnable::run // applyExecutor ).whenComplete((result, ex) -> { diff --git a/gradle.properties b/gradle.properties index 009b19b0151..0730178be65 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ mixinConfigs=mixins.sponge.accessors.json,mixins.sponge.api.json,mixins.sponge.c mixins.sponge.entityactivation.json,mixins.sponge.exploit.json,mixins.sponge.inventory.json,mixins.sponge.movementcheck.json,\ mixins.sponge.tracker.json,mixins.sponge.ipforward.json,mixins.sponge.optimization.json,mixins.sponge.test.json -minecraftVersion=1.21.10 +minecraftVersion=25w41a recommendedVersion=0-SNAPSHOT org.gradle.dependency.verification.console=verbose diff --git a/src/accessors/java/org/spongepowered/common/accessor/commands/CommandSourceStackAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/commands/CommandSourceStackAccessor.java index f138e5b446f..c4ad6b45358 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/commands/CommandSourceStackAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/commands/CommandSourceStackAccessor.java @@ -32,6 +32,7 @@ import net.minecraft.network.chat.Component; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.permissions.PermissionSet; import net.minecraft.util.TaskChainer; import net.minecraft.world.entity.Entity; import net.minecraft.world.phys.Vec2; @@ -50,7 +51,7 @@ public interface CommandSourceStackAccessor { final Vec3 $$1, final Vec2 $$2, final ServerLevel $$3, - final int $$4, + final PermissionSet $$4, final String $$5, final Component $$6, final MinecraftServer $$7, @Nullable final Entity $$8, diff --git a/src/accessors/java/org/spongepowered/common/accessor/server/MinecraftServerAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/server/MinecraftServerAccessor.java index a6d7e9e6127..cb25acec6a2 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/server/MinecraftServerAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/server/MinecraftServerAccessor.java @@ -61,8 +61,6 @@ public interface MinecraftServerAccessor { @Accessor("nextTickTimeNanos") void accessor$nextTickTimeNanos(final long nextTickTime); - @Invoker("isSpawningMonsters") boolean invoker$isSpawningMonsters(); - @Invoker("setupDebugLevel") void invoker$setupDebugLevel(final WorldData serverConfiguration); @Invoker("forceDifficulty") void invoker$forceDifficulty(); diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/ZombifiedPiglinAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/ZombifiedPiglinAccessor.java index 4ab6bb3e630..644030a22c0 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/ZombifiedPiglinAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/ZombifiedPiglinAccessor.java @@ -31,7 +31,7 @@ @Mixin(ZombifiedPiglin.class) public interface ZombifiedPiglinAccessor { - @Accessor("remainingPersistentAngerTime") int accessor$remainingPersistentAngerTime(); + @Accessor("persistentAngerEndTime") long accessor$remainingPersistentAngerTime(); - @Accessor("remainingPersistentAngerTime") void accessor$remainingPersistentAngerTime(final int remainingPersistentAngerTime); + @Accessor("persistentAngerEndTime") void accessor$remainingPersistentAngerTime(final long remainingPersistentAngerTime); } diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/player/PlayerAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/player/PlayerAccessor.java index b865b4bcd36..b419f06bf7b 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/player/PlayerAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/player/PlayerAccessor.java @@ -25,6 +25,7 @@ package org.spongepowered.common.accessor.world.entity.player; import net.minecraft.network.syncher.EntityDataAccessor; +import net.minecraft.server.permissions.PermissionSet; import net.minecraft.world.entity.player.Player; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; @@ -51,7 +52,7 @@ public interface PlayerAccessor { @Accessor("DATA_SHOULDER_PARROT_RIGHT") static EntityDataAccessor accessor$DATA_SHOULDER_RIGHT() { throw new UntransformedAccessorError(); } - @Invoker("getPermissionLevel") int invoker$getPermissionLevel(); + @Invoker("permissions") PermissionSet invoker$permissions(); @Accessor("sleepCounter") void accessor$sleepCounter(final int sleepCounter); diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/level/BaseCommandBlockAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/level/BaseCommandBlockAccessor.java index 0ac83b2a8c0..9b527e7d30c 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/level/BaseCommandBlockAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/level/BaseCommandBlockAccessor.java @@ -25,6 +25,7 @@ package org.spongepowered.common.accessor.world.level; import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.BaseCommandBlock; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; @@ -41,6 +42,6 @@ public interface BaseCommandBlockAccessor { @Accessor("command") void accessor$command(final String command); - @Invoker("createSource") BaseCommandBlock.CloseableCommandBlockSource invoker$createSource(); + @Invoker("createSource") BaseCommandBlock.CloseableCommandBlockSource invoker$createSource(ServerLevel level); } diff --git a/src/launch/java/org/spongepowered/common/launch/Lifecycle.java b/src/launch/java/org/spongepowered/common/launch/Lifecycle.java index 01229128bde..20d0d6de404 100644 --- a/src/launch/java/org/spongepowered/common/launch/Lifecycle.java +++ b/src/launch/java/org/spongepowered/common/launch/Lifecycle.java @@ -26,6 +26,7 @@ import com.google.inject.Injector; import net.minecraft.server.packs.resources.ResourceManager; +import net.minecraft.server.permissions.PermissionLevel; import net.minecraft.world.level.WorldDataConfiguration; import org.spongepowered.api.Client; import org.spongepowered.api.Engine; @@ -66,7 +67,7 @@ public interface Lifecycle { void establishGameServices(); - void establishServerServices(ResourceManager resourceManager, int functionsPermissionLevel); + void establishServerServices(ResourceManager resourceManager, PermissionLevel functionsPermissionLevel); void establishServerFeatures(); diff --git a/src/main/java/org/spongepowered/common/SpongeLifecycle.java b/src/main/java/org/spongepowered/common/SpongeLifecycle.java index d88fd56cfe5..fbe98f3abe1 100644 --- a/src/main/java/org/spongepowered/common/SpongeLifecycle.java +++ b/src/main/java/org/spongepowered/common/SpongeLifecycle.java @@ -31,6 +31,7 @@ import net.minecraft.core.Registry; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.server.packs.resources.ResourceManager; +import net.minecraft.server.permissions.PermissionLevel; import net.minecraft.world.flag.FeatureFlagSet; import net.minecraft.world.level.WorldDataConfiguration; import org.checkerframework.checker.nullness.qual.Nullable; @@ -174,7 +175,7 @@ public void establishGameServices() { } @Override - public void establishServerServices(final ResourceManager resourceManager, final int functionsPermissionLevel) { + public void establishServerServices(final ResourceManager resourceManager, final PermissionLevel functionsPermissionLevel) { final SpongeServerScopedServiceProvider serviceProvider = new SpongeServerScopedServiceProvider(this.game, this.injector, functionsPermissionLevel); serviceProvider.init(); ((ResourceManagerBridge) resourceManager).bridge$services(serviceProvider); diff --git a/src/main/java/org/spongepowered/common/command/brigadier/dispatcher/SpongeNodePermissionCache.java b/src/main/java/org/spongepowered/common/command/brigadier/dispatcher/SpongeNodePermissionCache.java index e8072a9dcf4..f85eae9e1b0 100644 --- a/src/main/java/org/spongepowered/common/command/brigadier/dispatcher/SpongeNodePermissionCache.java +++ b/src/main/java/org/spongepowered/common/command/brigadier/dispatcher/SpongeNodePermissionCache.java @@ -27,6 +27,7 @@ import com.mojang.brigadier.tree.CommandNode; import com.mojang.brigadier.tree.RootCommandNode; import net.minecraft.commands.CommandSourceStack; +import net.minecraft.server.permissions.PermissionLevel; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.api.Sponge; import org.spongepowered.api.command.CommandCause; @@ -65,7 +66,7 @@ public static boolean canUse( && ((CommandSourceStackBridge) source).bridge$getCommandSource() instanceof ServerPlayer) { // If the entity is a player, then we should try to add it anyway. final String permission = supplier.get(); - SpongePermissions.registerPermission(Sponge.server().serviceProvider().permissionService(), permission, 0); + SpongePermissions.registerPermission(Sponge.server().serviceProvider().permissionService(), permission, PermissionLevel.ALL); return ((CommandCause) source).hasPermission(permission); } return result; diff --git a/src/main/java/org/spongepowered/common/command/manager/SpongeCommandCauseFactory.java b/src/main/java/org/spongepowered/common/command/manager/SpongeCommandCauseFactory.java index a22773569cf..7e1ea641a09 100644 --- a/src/main/java/org/spongepowered/common/command/manager/SpongeCommandCauseFactory.java +++ b/src/main/java/org/spongepowered/common/command/manager/SpongeCommandCauseFactory.java @@ -28,6 +28,8 @@ import net.minecraft.commands.CommandSourceStack; import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.permissions.LevelBasedPermissionSet; +import net.minecraft.server.permissions.PermissionLevel; import net.minecraft.world.level.Level; import net.minecraft.world.phys.Vec2; import net.minecraft.world.phys.Vec3; @@ -58,9 +60,9 @@ public final class SpongeCommandCauseFactory implements CommandCause.Factory { final CommandSource iCommandSource = cause.first(CommandSource.class).orElseGet(() -> SpongeCommon.game().systemSubject()); final CommandSourceStack commandSource; - if (iCommandSource instanceof CommandSourceProviderBridge) { + if (iCommandSource instanceof CommandSourceProviderBridge cspb) { // We know about this one so we can create it using the factory method on the source. - commandSource = ((CommandSourceProviderBridge) iCommandSource).bridge$getCommandSource(cause); + commandSource = cspb.bridge$getCommandSource(cause); } else { // try to create a command cause from the given ICommandSource, but as Mojang did not see fit to // put any identifying characteristics on the object, we have to go it alone... @@ -88,7 +90,7 @@ public final class SpongeCommandCauseFactory implements CommandCause.Factory { context.get(EventContextKeys.LOCATION).map(x -> (ServerLevel) x.world()) .orElseGet(() -> locatable == null ? SpongeCommon.server().getLevel(Level.OVERWORLD) : (ServerLevel) locatable.serverLocation().world()), - 4, + LevelBasedPermissionSet.forLevel(PermissionLevel.OWNERS), name, displayName, SpongeCommon.server(), diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/ZombifiedPiglinData.java b/src/main/java/org/spongepowered/common/data/provider/entity/ZombifiedPiglinData.java index d0867fcdd3c..5f188d08b21 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/ZombifiedPiglinData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/ZombifiedPiglinData.java @@ -42,7 +42,7 @@ public static void register(final DataProviderRegistrator registrator) { .create(Keys.ANGER_LEVEL) .get(ZombifiedPiglinAccessor::accessor$remainingPersistentAngerTime) .set(ZombifiedPiglinAccessor::accessor$remainingPersistentAngerTime) - .resetOnDelete(400 + new SplittableRandom().nextInt(400)); + .resetOnDelete(() -> (long)(400 + new SplittableRandom().nextInt(400))); } // @formatter:on } diff --git a/src/main/java/org/spongepowered/common/data/provider/world/WorldPropertiesData.java b/src/main/java/org/spongepowered/common/data/provider/world/WorldPropertiesData.java index 2969efd9ec0..a7cc3be36db 100644 --- a/src/main/java/org/spongepowered/common/data/provider/world/WorldPropertiesData.java +++ b/src/main/java/org/spongepowered/common/data/provider/world/WorldPropertiesData.java @@ -25,6 +25,7 @@ package org.spongepowered.common.data.provider.world; import net.minecraft.core.GlobalPos; +import net.minecraft.world.level.GameRules; import net.minecraft.world.level.GameType; import net.minecraft.world.level.dimension.DimensionType; import net.minecraft.world.level.storage.LevelData; @@ -87,7 +88,7 @@ public static void register(final DataProviderRegistrator registrator) { .create(Keys.WORLD_TYPE) .get(h -> (WorldType) (Object) h.bridge$dimensionType()) .create(Keys.PVP) - .get(h -> h.bridge$pvp().orElseGet(() -> SpongeCommon.server().isPvpAllowed())) + .get(h -> h.bridge$pvp().orElseGet(() -> SpongeCommon.server().getWorldData().getGameRules().getBoolean(GameRules.RULE_PVP))) .create(Keys.SERIALIZATION_BEHAVIOR) .get(h -> h.bridge$serializationBehavior().orElse(SerializationBehavior.AUTOMATIC)) .create(Keys.VIEW_DISTANCE) diff --git a/src/main/java/org/spongepowered/common/entity/player/LoginPermissions.java b/src/main/java/org/spongepowered/common/entity/player/LoginPermissions.java index ba9b7cfbcb6..89687b2a5a9 100644 --- a/src/main/java/org/spongepowered/common/entity/player/LoginPermissions.java +++ b/src/main/java/org/spongepowered/common/entity/player/LoginPermissions.java @@ -24,9 +24,11 @@ */ package org.spongepowered.common.entity.player; +import net.minecraft.server.permissions.PermissionLevel; + public final class LoginPermissions { - public static final int BYPASS_WHITELIST_LEVEL = 1; + public static final PermissionLevel BYPASS_WHITELIST_LEVEL = PermissionLevel.MODERATORS; public static final String BYPASS_WHITELIST_PERMISSION = "minecraft.login.bypass-whitelist"; diff --git a/src/main/java/org/spongepowered/common/item/merchant/TradeOfferGeneratorWrapper.java b/src/main/java/org/spongepowered/common/item/merchant/TradeOfferGeneratorWrapper.java index c5368a64499..916b7f1dfee 100644 --- a/src/main/java/org/spongepowered/common/item/merchant/TradeOfferGeneratorWrapper.java +++ b/src/main/java/org/spongepowered/common/item/merchant/TradeOfferGeneratorWrapper.java @@ -24,6 +24,7 @@ */ package org.spongepowered.common.item.merchant; +import net.minecraft.server.level.ServerLevel; import net.minecraft.util.RandomSource; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.npc.VillagerTrades; @@ -44,7 +45,7 @@ public TradeOfferGeneratorWrapper(final TradeOfferGenerator generator) { } @Override - public MerchantOffer getOffer(final Entity trader, final RandomSource rand) { + public MerchantOffer getOffer(final ServerLevel level, final Entity trader, final RandomSource rand) { return (MerchantOffer) this.generator.apply((org.spongepowered.api.entity.Entity) trader, (RandomProvider.Source) rand); } @@ -80,4 +81,5 @@ public String toString() { .add("generator=" + this.generator) .toString(); } + } diff --git a/src/main/java/org/spongepowered/common/server/ServerConsoleSystemSubject.java b/src/main/java/org/spongepowered/common/server/ServerConsoleSystemSubject.java index 2b3e2cf0fc9..397af351916 100644 --- a/src/main/java/org/spongepowered/common/server/ServerConsoleSystemSubject.java +++ b/src/main/java/org/spongepowered/common/server/ServerConsoleSystemSubject.java @@ -29,6 +29,7 @@ import net.kyori.adventure.text.Component; import net.minecraft.commands.CommandSource; import net.minecraft.commands.CommandSourceStack; +import net.minecraft.server.permissions.LevelBasedPermissionSet; import net.minecraft.world.level.Level; import net.minecraft.world.phys.Vec2; import net.minecraft.world.phys.Vec3; @@ -59,14 +60,14 @@ public void sendMessage(final @NonNull Identity identity, final @NonNull Compone @Override public CommandSourceStack bridge$getCommandSource(final Cause cause) { return new CommandSourceStack(this, - Vec3.ZERO, - Vec2.ZERO, - SpongeCommon.server().getLevel(Level.OVERWORLD), - 4, - "System Subject", - net.minecraft.network.chat.Component.literal("System Subject"), - SpongeCommon.server(), - null); + Vec3.ZERO, + Vec2.ZERO, + SpongeCommon.server().getLevel(Level.OVERWORLD), + LevelBasedPermissionSet.OWNER, + "System Subject", + net.minecraft.network.chat.Component.literal("System Subject"), + SpongeCommon.server(), + null); } @Override diff --git a/src/main/java/org/spongepowered/common/service/server/SpongeServerScopedServiceProvider.java b/src/main/java/org/spongepowered/common/service/server/SpongeServerScopedServiceProvider.java index 6babf671566..ad153385623 100644 --- a/src/main/java/org/spongepowered/common/service/server/SpongeServerScopedServiceProvider.java +++ b/src/main/java/org/spongepowered/common/service/server/SpongeServerScopedServiceProvider.java @@ -27,6 +27,7 @@ import com.google.common.collect.ImmutableList; import com.google.inject.Injector; import io.leangen.geantyref.TypeToken; +import net.minecraft.server.permissions.PermissionLevel; import org.checkerframework.checker.nullness.qual.NonNull; import org.spongepowered.api.Game; import org.spongepowered.api.Server; @@ -51,9 +52,9 @@ public final class SpongeServerScopedServiceProvider extends SpongeServiceProvider implements ServiceProvider.ServerScoped { - private final int functionsPermissionLevel; + private final PermissionLevel functionsPermissionLevel; - public SpongeServerScopedServiceProvider(final Game game, final Injector injector, final int functionsPermissionLevel) { + public SpongeServerScopedServiceProvider(final Game game, final Injector injector, final PermissionLevel functionsPermissionLevel) { super(game, injector); this.functionsPermissionLevel = functionsPermissionLevel; } diff --git a/src/main/java/org/spongepowered/common/service/server/permission/OpLevelCollection.java b/src/main/java/org/spongepowered/common/service/server/permission/OpLevelCollection.java index 0994d18d9ba..15b2c5bd086 100644 --- a/src/main/java/org/spongepowered/common/service/server/permission/OpLevelCollection.java +++ b/src/main/java/org/spongepowered/common/service/server/permission/OpLevelCollection.java @@ -26,6 +26,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import net.minecraft.server.permissions.PermissionLevel; import org.spongepowered.api.service.context.Context; import org.spongepowered.api.service.permission.PermissionService; import org.spongepowered.api.service.permission.Subject; @@ -45,8 +46,8 @@ public class OpLevelCollection extends SpongeSubjectCollection { public OpLevelCollection(final SpongePermissionService service) { super(PermissionService.SUBJECTS_GROUP, service); final ImmutableMap.Builder build = ImmutableMap.builder(); - for (int i = 0; i <= 4; ++i) { - build.put("op_" + i, new OpLevelSubject(service, i)); // TODO: Add subject data + for (var level : PermissionLevel.values()) { + build.put("op_" + level.ordinal(), new OpLevelSubject(service, level)); // TODO: Add subject data } this.levels = build.build(); } @@ -74,10 +75,10 @@ public Collection loadedSubjects() { public static class OpLevelSubject extends SpongeSubject { private final SpongePermissionService service; - private final int level; + private final PermissionLevel level; private final MemorySubjectData data; - public OpLevelSubject(final SpongePermissionService service, final int level) { + public OpLevelSubject(final SpongePermissionService service, final PermissionLevel level) { this.service = service; this.level = level; this.data = new GlobalMemorySubjectData(this) { @@ -87,23 +88,27 @@ public List parents(final Set contexts) { if (!contexts.isEmpty()) { return Collections.emptyList(); } - if (level == 0) { + if (level == PermissionLevel.ALL) { return super.parents(contexts); } else { - return ImmutableList.builder().add(service.getGroupForOpLevel(level - 1).asSubjectReference()).addAll(super.parents(contexts)).build(); + if (level == PermissionLevel.ALL) { + return ImmutableList.builder().add(service.getGroupForOpLevel(level).asSubjectReference()).addAll(super.parents(contexts)).build(); + } + var lesser = PermissionLevel.values()[level.ordinal() - 1]; + return ImmutableList.builder().add(service.getGroupForOpLevel(lesser).asSubjectReference()).addAll(super.parents(contexts)).build(); } } }; SpongePermissions.populateNonCommandPermissions(this.data, (permLevel, name) -> level == permLevel); } - public int opLevel() { + public PermissionLevel opLevel() { return this.level; } @Override public String identifier() { - return "op_" + this.level; + return "op_" + this.level.ordinal(); } @Override diff --git a/src/main/java/org/spongepowered/common/service/server/permission/SpongePermissionService.java b/src/main/java/org/spongepowered/common/service/server/permission/SpongePermissionService.java index b31e2b0a85e..de2b0702280 100644 --- a/src/main/java/org/spongepowered/common/service/server/permission/SpongePermissionService.java +++ b/src/main/java/org/spongepowered/common/service/server/permission/SpongePermissionService.java @@ -28,6 +28,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.inject.Singleton; +import net.minecraft.server.permissions.PermissionLevel; import net.minecraft.server.players.ServerOpList; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.api.Game; @@ -67,7 +68,7 @@ public final class SpongePermissionService implements PermissionService { private final SpongeSubjectCollection defaultCollection; private final SpongeSubject defaultData; - public SpongePermissionService(final Game game, final int functionsPermissionLevel) { + public SpongePermissionService(final Game game, final PermissionLevel functionsPermissionLevel) { this.game = game; this.subjects.put(SpongePermissionService.SUBJECTS_DEFAULT, (this.defaultCollection = this.newCollection(SpongePermissionService.SUBJECTS_DEFAULT))); this.subjects.put(PermissionService.SUBJECTS_USER, new UserCollection(this)); @@ -75,11 +76,11 @@ public SpongePermissionService(final Game game, final int functionsPermissionLev this.subjects.put(PermissionService.SUBJECTS_COMMAND_BLOCK, new DataFactoryCollection( PermissionService.SUBJECTS_COMMAND_BLOCK, this, - s -> new FixedParentMemorySubjectData(s, this.getGroupForOpLevel(2).asSubjectReference()))); + s -> new FixedParentMemorySubjectData(s, this.getGroupForOpLevel(PermissionLevel.GAMEMASTERS).asSubjectReference()))); this.subjects.put(PermissionService.SUBJECTS_SYSTEM, new DataFactoryCollection( PermissionService.SUBJECTS_SYSTEM, this, - s -> new FixedParentMemorySubjectData(s, this.getGroupForOpLevel(4).asSubjectReference()) + s -> new FixedParentMemorySubjectData(s, this.getGroupForOpLevel(PermissionLevel.ALL).asSubjectReference()) // , s -> { // if (s.equals("Server")) { // return SpongeImpl.game().getServer().getConsole(); @@ -101,12 +102,12 @@ static ServerOpList getOps() { return SpongeCommon.server().getPlayerList().getOps(); } - static int getServerOpLevel() { - return SpongeCommon.server().operatorUserPermissionLevel(); + static PermissionLevel getServerOpLevel() { + return SpongeCommon.server().operatorUserPermissions().level(); } - public Subject getGroupForOpLevel(final int level) { - return this.groupSubjects().get("op_" + level); + public Subject getGroupForOpLevel(final PermissionLevel level) { + return this.groupSubjects().get("op_" + level.ordinal()); } @Override diff --git a/src/main/java/org/spongepowered/common/service/server/permission/SpongePermissions.java b/src/main/java/org/spongepowered/common/service/server/permission/SpongePermissions.java index 814e55910d2..5c092b38864 100644 --- a/src/main/java/org/spongepowered/common/service/server/permission/SpongePermissions.java +++ b/src/main/java/org/spongepowered/common/service/server/permission/SpongePermissions.java @@ -24,6 +24,7 @@ */ package org.spongepowered.common.service.server.permission; +import net.minecraft.server.permissions.PermissionLevel; import org.spongepowered.api.service.permission.PermissionService; import org.spongepowered.api.service.permission.SubjectData; import org.spongepowered.api.util.Tristate; @@ -41,7 +42,7 @@ public final class SpongePermissions { private SpongePermissions() { } - public static void populateNonCommandPermissions(final SubjectData data, final BiFunction testPermission) { + public static void populateNonCommandPermissions(final SubjectData data, final BiFunction testPermission) { if (testPermission.apply(Constants.Permissions.COMMAND_BLOCK_LEVEL, Constants.Command.COMMAND_BLOCK_COMMAND)) { data.setPermission(SubjectData.GLOBAL_CONTEXT, Constants.Permissions.COMMAND_BLOCK_PERMISSION, Tristate.TRUE); } @@ -56,9 +57,9 @@ public static void populateNonCommandPermissions(final SubjectData data, final B } } - public static void registerPermission(final PermissionService service, final String permissionNode, final int opLevel) { + public static void registerPermission(final PermissionService service, final String permissionNode, final PermissionLevel opLevel) { if (SpongePermissions.REGISTERED_PERMISSIONS.add(permissionNode)) { - if (opLevel == 0) { + if (opLevel == PermissionLevel.ALL) { // register as a default permission service.defaults() .transientSubjectData() diff --git a/src/main/java/org/spongepowered/common/service/server/permission/UserSubject.java b/src/main/java/org/spongepowered/common/service/server/permission/UserSubject.java index 6dc24539697..de5b085e69c 100644 --- a/src/main/java/org/spongepowered/common/service/server/permission/UserSubject.java +++ b/src/main/java/org/spongepowered/common/service/server/permission/UserSubject.java @@ -25,6 +25,8 @@ package org.spongepowered.common.service.server.permission; import com.mojang.authlib.GameProfile; +import net.minecraft.server.permissions.LevelBasedPermissionSet; +import net.minecraft.server.permissions.PermissionLevel; import net.minecraft.server.players.NameAndId; import net.minecraft.server.players.ServerOpListEntry; import org.spongepowered.api.Sponge; @@ -59,18 +61,18 @@ public SubjectReference parent() { @Override public void setParent(final SubjectReference parent) { - final int opLevel; + final PermissionLevel opLevel; if (parent == null) { - opLevel = 0; + opLevel = PermissionLevel.ALL; } else { if (!(parent.resolve().join() instanceof OpLevelCollection.OpLevelSubject)) { return; } opLevel = ((OpLevelCollection.OpLevelSubject) parent).opLevel(); } - if (opLevel > 0) { + if (opLevel.isEqualOrHigherThan(PermissionLevel.ALL)) { // TODO: Should bypassesPlayerLimit be true or false? - SpongePermissionService.getOps().add(new ServerOpListEntry(UserSubject.this.nameAndId, opLevel, false)); + SpongePermissionService.getOps().add(new ServerOpListEntry(UserSubject.this.nameAndId, LevelBasedPermissionSet.forLevel(opLevel), false)); } else { SpongePermissionService.getOps().remove(UserSubject.this.nameAndId); } @@ -99,16 +101,16 @@ public Optional associatedObject() { return Sponge.server().player(this.player.id()); } - int getOpLevel() { + PermissionLevel getOpLevel() { Preconditions.checkState(Sponge.isServerAvailable(), "Server is not available!"); // Query op level from server ops list based on player's game profile final ServerOpListEntry entry = SpongePermissionService.getOps().get(this.nameAndId); if (entry == null) { // Take care of singleplayer commands -- unless an op level is specified, this player follows global rules - return SpongeCommon.server().getPlayerList().isOp(this.nameAndId) ? SpongeCommon.server().operatorUserPermissionLevel() : 0; + return SpongeCommon.server().getPlayerList().isOp(this.nameAndId) ? SpongeCommon.server().operatorUserPermissions().level() : PermissionLevel.ALL; } else { - return entry.getLevel(); + return entry.permissions().level(); } } @@ -136,7 +138,7 @@ public Tristate permissionValue(final String permission, final Cause cause) { if (ret == Tristate.UNDEFINED) { ret = this.dataPermissionValue(this.collection.getService().defaults().subjectData(), permission); } - if (ret == Tristate.UNDEFINED && this.getOpLevel() >= SpongePermissionService.getServerOpLevel()) { + if (ret == Tristate.UNDEFINED && this.getOpLevel().compareTo(SpongePermissionService.getServerOpLevel()) >= 0) { ret = Tristate.TRUE; } return ret; diff --git a/src/main/java/org/spongepowered/common/util/Constants.java b/src/main/java/org/spongepowered/common/util/Constants.java index fc0c2e5c025..b6504b202a4 100644 --- a/src/main/java/org/spongepowered/common/util/Constants.java +++ b/src/main/java/org/spongepowered/common/util/Constants.java @@ -42,6 +42,7 @@ import net.minecraft.nbt.ListTag; import net.minecraft.server.level.ChunkLevel; import net.minecraft.server.level.FullChunkStatus; +import net.minecraft.server.permissions.PermissionLevel; import net.minecraft.world.inventory.ClickType; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; @@ -397,11 +398,11 @@ public static final class Permissions { public static final String SELECTOR_PERMISSION = "minecraft.selector"; public static final String COMMAND_BLOCK_PERMISSION = "minecraft.commandblock"; - public static final int COMMAND_BLOCK_LEVEL = 2; - public static final int SELECTOR_LEVEL = 2; + public static final PermissionLevel COMMAND_BLOCK_LEVEL = PermissionLevel.GAMEMASTERS; + public static final PermissionLevel SELECTOR_LEVEL = PermissionLevel.GAMEMASTERS; public static final String SPONGE_HELP_PERMISSION = "sponge.command.help"; public static final String DEBUG_HOVER_STACKTRACE = "sponge.debug.hover-stacktrace"; - public static final int SPONGE_HELP_LEVEL = 0; + public static final PermissionLevel SPONGE_HELP_LEVEL = PermissionLevel.ALL; } /** diff --git a/src/main/java/org/spongepowered/common/world/biome/SpongeBiomeBuilder.java b/src/main/java/org/spongepowered/common/world/biome/SpongeBiomeBuilder.java index d7729837bc5..179d1ced86d 100644 --- a/src/main/java/org/spongepowered/common/world/biome/SpongeBiomeBuilder.java +++ b/src/main/java/org/spongepowered/common/world/biome/SpongeBiomeBuilder.java @@ -125,10 +125,10 @@ public Biome build() { .grassColorModifier((BiomeSpecialEffects.GrassColorModifier) (Object) grassColorModifier); foliageColor.ifPresent(c -> effectsBuilder.foliageColorOverride(c.rgb())); grassColor.ifPresent(c -> effectsBuilder.grassColorOverride(c.rgb())); - particleSettings.ifPresent(ps -> effectsBuilder.ambientParticle((AmbientParticleSettings) ps)); + particleSettings.ifPresent(ps -> effectsBuilder.ambientParticle((AmbientParticleSettings) (Object) ps)); ambientSound.ifPresent(s -> effectsBuilder.ambientLoopSound(Holder.direct((SoundEvent) (Object) s))); - ambientMood.ifPresent(m -> effectsBuilder.ambientMoodSound((net.minecraft.world.level.biome.AmbientMoodSettings) m)); - additionalSound.ifPresent(s -> effectsBuilder.ambientAdditionsSound((AmbientAdditionsSettings) s)); + ambientMood.ifPresent(m -> effectsBuilder.ambientMoodSound((net.minecraft.world.level.biome.AmbientMoodSettings) (Object) m)); + additionalSound.ifPresent(s -> effectsBuilder.ambientAdditionsSound((AmbientAdditionsSettings) (Object) s)); backgroundMusic.ifPresent(m -> effectsBuilder.backgroundMusic((Music) (Object) m)); final MobSpawnSettings.Builder spawnerBuilder = new MobSpawnSettings.Builder() diff --git a/src/main/java/org/spongepowered/common/world/biome/ambient/SpongeParticleConfigFactory.java b/src/main/java/org/spongepowered/common/world/biome/ambient/SpongeParticleConfigFactory.java index 104cd5051ec..fb9455c541e 100644 --- a/src/main/java/org/spongepowered/common/world/biome/ambient/SpongeParticleConfigFactory.java +++ b/src/main/java/org/spongepowered/common/world/biome/ambient/SpongeParticleConfigFactory.java @@ -33,6 +33,6 @@ public class SpongeParticleConfigFactory implements ParticleConfig.Factory { @Override public ParticleConfig of(final ParticleType type, final float probability) { - return (ParticleConfig) new AmbientParticleSettings(((ParticleOptions) type), probability); + return (ParticleConfig) (Object) new AmbientParticleSettings(((ParticleOptions) type), probability); } } diff --git a/src/main/java/org/spongepowered/common/world/biome/ambient/SpongeSoundConfigFactory.java b/src/main/java/org/spongepowered/common/world/biome/ambient/SpongeSoundConfigFactory.java index 99964b0f271..6d69000d327 100644 --- a/src/main/java/org/spongepowered/common/world/biome/ambient/SpongeSoundConfigFactory.java +++ b/src/main/java/org/spongepowered/common/world/biome/ambient/SpongeSoundConfigFactory.java @@ -36,12 +36,12 @@ public class SpongeSoundConfigFactory implements SoundConfig.Factory { @Override public SoundConfig.Mood ofAmbientMood(final SoundType sound, final int tickDelay, final int searchRadius, final double distanceModifier) { - return (SoundConfig.Mood) new AmbientMoodSettings(Holder.direct((SoundEvent) (Object) sound), tickDelay, searchRadius, distanceModifier); + return (SoundConfig.Mood) (Object) new AmbientMoodSettings(Holder.direct((SoundEvent) (Object) sound), tickDelay, searchRadius, distanceModifier); } @Override public SoundConfig.Additional ofAdditional(final SoundType sound, final double tickChance) { - return (SoundConfig.Additional) new AmbientAdditionsSettings(Holder.direct((SoundEvent) (Object) sound), tickChance); + return (SoundConfig.Additional) (Object) new AmbientAdditionsSettings(Holder.direct((SoundEvent) (Object) sound), tickChance); } @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/MinecraftServerMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/MinecraftServerMixin_API.java index b56db122407..c03cfdee411 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/MinecraftServerMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/MinecraftServerMixin_API.java @@ -125,9 +125,6 @@ public abstract class MinecraftServerMixin_API implements SpongeServer, SpongeRe @Shadow public abstract void shadow$halt(boolean p_71263_1_); @Shadow public abstract void shadow$setPlayerIdleTimeout(int p_143006_1_); @Shadow public abstract boolean shadow$isHardcore(); - @Shadow public abstract boolean shadow$isPvpAllowed(); - @Shadow public abstract boolean shadow$isCommandBlockEnabled(); - @Shadow protected abstract boolean shadow$isSpawningMonsters(); @Shadow public abstract Commands shadow$getCommands(); @Shadow public abstract PackRepository shadow$getPackRepository(); @Shadow public abstract net.minecraft.server.packs.resources.ResourceManager shadow$getResourceManager(); @@ -251,17 +248,17 @@ public boolean isGameModeEnforced() { @Override public boolean isPVPEnabled() { - return this.shadow$isPvpAllowed(); + return this.worldData.getGameRules().getBoolean(GameRules.RULE_PVP); } @Override public boolean areCommandBlocksEnabled() { - return this.shadow$isCommandBlockEnabled(); + return this.worldData.getGameRules().getBoolean(GameRules.RULE_COMMAND_BLOCKS_ENABLED); } @Override public boolean isMonsterSpawnsEnabled() { - return this.shadow$isSpawningMonsters(); + return this.worldData.getGameRules().getBoolean(GameRules.RULE_SPAWN_MONSTERS); } @Override @@ -274,7 +271,7 @@ public boolean isAnimalSpawnsEnabled() { */ @Override public boolean isMultiWorldEnabled() { - return this.isSingleplayer() || ((Object) this instanceof DedicatedServer ds) && ds.getGameRules().getBoolean(GameRules.RULE_ALLOW_NETHER); + return this.isSingleplayer() || ((Object) this instanceof DedicatedServer ds) && ds.getWorldData().getGameRules().getBoolean(GameRules.RULE_ALLOW_NETHER); } @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/level/ServerLevelMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/level/ServerLevelMixin_API.java index 9adc9c0b625..1972c935181 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/level/ServerLevelMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/level/ServerLevelMixin_API.java @@ -336,6 +336,7 @@ public ChunkLayout chunkLayout() { return this.api$chunkLayout; } + @SuppressWarnings("deprecation") @Override public WorldBorder setBorder(final WorldBorder border) { diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/server/commands/GameRuleCommandMixin.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/nautilus/AbstractNautilusMixin_API.java similarity index 52% rename from src/mixins/java/org/spongepowered/common/mixin/core/server/commands/GameRuleCommandMixin.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/nautilus/AbstractNautilusMixin_API.java index 06440f66c08..017fc3a1fac 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/server/commands/GameRuleCommandMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/nautilus/AbstractNautilusMixin_API.java @@ -22,27 +22,29 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.core.server.commands; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.nautilus; -import com.mojang.brigadier.context.CommandContext; -import net.minecraft.commands.CommandSourceStack; -import net.minecraft.server.MinecraftServer; -import net.minecraft.server.commands.GameRuleCommand; -import net.minecraft.world.level.GameRules; +import net.minecraft.world.entity.animal.nautilus.AbstractNautilus; +import org.spongepowered.api.data.Keys; +import org.spongepowered.api.data.value.Value; +import org.spongepowered.api.entity.living.animal.NautilusLike; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; +import org.spongepowered.common.mixin.api.minecraft.world.entity.TamableAnimalMixin_API; -@Mixin(GameRuleCommand.class) -public abstract class GameRuleCommandMixin { +import java.util.Set; - @Redirect(method = "setRule", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/MinecraftServer;getGameRules()Lnet/minecraft/world/level/GameRules;")) - private static GameRules impl$usePerWorldGameRules(final MinecraftServer server, final CommandContext context) { - return context.getSource().getLevel().getGameRules(); - } +@Mixin(AbstractNautilus.class) +public abstract class AbstractNautilusMixin_API extends TamableAnimalMixin_API implements NautilusLike { + + @Override + protected Set> api$getVanillaValues() { + final Set> values = super.api$getVanillaValues(); + + values.add(this.requireValue(Keys.MAX_HEALTH).asImmutable()); + values.add(this.requireValue(Keys.IS_TAMED).asImmutable()); + + this.getValue(Keys.OWNER).map(Value::asImmutable).ifPresent(values::add); - @Redirect(method = "queryRule", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/MinecraftServer;getGameRules()Lnet/minecraft/world/level/GameRules;")) - private static GameRules impl$usePerWorldGameRules(final MinecraftServer server, final CommandSourceStack source) { - return source.getLevel().getGameRules(); + return values; } } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/nautilus/NautilusMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/nautilus/NautilusMixin_API.java new file mode 100644 index 00000000000..6d7055a6163 --- /dev/null +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/nautilus/NautilusMixin_API.java @@ -0,0 +1,32 @@ +/* + * This file is part of Sponge, licensed under the MIT License (MIT). + * + * Copyright (c) SpongePowered + * Copyright (c) contributors + * + * 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. + */ +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.nautilus; + +import org.spongepowered.api.entity.living.animal.Nautilus; +import org.spongepowered.asm.mixin.Mixin; + +@Mixin(net.minecraft.world.entity.animal.nautilus.Nautilus.class) +public abstract class NautilusMixin_API extends AbstractNautilusMixin_API implements Nautilus { +} diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/nautilus/ZombieNautilusMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/nautilus/ZombieNautilusMixin_API.java new file mode 100644 index 00000000000..d01987a1957 --- /dev/null +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/nautilus/ZombieNautilusMixin_API.java @@ -0,0 +1,32 @@ +/* + * This file is part of Sponge, licensed under the MIT License (MIT). + * + * Copyright (c) SpongePowered + * Copyright (c) contributors + * + * 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. + */ +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.nautilus; + +import org.spongepowered.api.entity.living.animal.ZombieNautilus; +import org.spongepowered.asm.mixin.Mixin; + +@Mixin(net.minecraft.world.entity.animal.nautilus.ZombieNautilus.class) +public abstract class ZombieNautilusMixin_API extends AbstractNautilusMixin_API implements ZombieNautilus { +} diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/VillagerTrades_ItemListingMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/VillagerTrades_ItemListingMixin_API.java index 9bbed6e93d7..aa40f796fab 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/VillagerTrades_ItemListingMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/VillagerTrades_ItemListingMixin_API.java @@ -24,6 +24,7 @@ */ package org.spongepowered.common.mixin.api.minecraft.world.entity.npc; +import net.minecraft.server.level.ServerLevel; import net.minecraft.util.RandomSource; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.npc.VillagerTrades; @@ -39,12 +40,15 @@ public interface VillagerTrades_ItemListingMixin_API extends TradeOfferGenerator { // @formatter:off - @Shadow @Nullable MerchantOffer shadow$getOffer(Entity entity, RandomSource random); + @Shadow @Nullable MerchantOffer shadow$getOffer(ServerLevel level, Entity entity, RandomSource random); // @formatter:on @Override default TradeOffer apply(final org.spongepowered.api.entity.Entity merchant, final RandomProvider.Source random) { - return (TradeOffer) this.shadow$getOffer((Entity) merchant, (RandomSource) random); + if (merchant.world() instanceof ServerLevel sl) { + return (TradeOffer) this.shadow$getOffer(sl, (Entity) merchant, (RandomSource) random); + } + throw new IllegalStateException("The merchant is not in a server world!"); } } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/biome/AmbientAdditionsSettingsMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/biome/AmbientAdditionsSettingsMixin_API.java index 5aecb500911..6aa511b938c 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/biome/AmbientAdditionsSettingsMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/biome/AmbientAdditionsSettingsMixin_API.java @@ -30,10 +30,14 @@ import org.spongepowered.api.effect.sound.SoundType; import org.spongepowered.api.world.biome.ambient.SoundConfig; import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Implements; +import org.spongepowered.asm.mixin.Interface; +import org.spongepowered.asm.mixin.Intrinsic; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @Mixin(AmbientAdditionsSettings.class) +@Implements(@Interface(iface = SoundConfig.Additional.class, prefix = "api$")) public abstract class AmbientAdditionsSettingsMixin_API implements SoundConfig.Additional { // @formatter:off @@ -46,8 +50,8 @@ public SoundType sound() { return (SoundType) (Object) this.soundEvent.value(); } - @Override - public double tickChance() { + @Intrinsic + public double api$tickChance() { return this.tickChance; } } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/biome/AmbientMoodSettingsMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/biome/AmbientMoodSettingsMixin_API.java index 4b93d6398b0..fb02cb60796 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/biome/AmbientMoodSettingsMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/biome/AmbientMoodSettingsMixin_API.java @@ -30,10 +30,14 @@ import org.spongepowered.api.effect.sound.SoundType; import org.spongepowered.api.world.biome.ambient.SoundConfig; import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Implements; +import org.spongepowered.asm.mixin.Interface; +import org.spongepowered.asm.mixin.Intrinsic; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @Mixin(AmbientMoodSettings.class) +@Implements(@Interface(iface = SoundConfig.Mood.class, prefix = "api$")) public abstract class AmbientMoodSettingsMixin_API implements SoundConfig.Mood { // @formatter:off @@ -48,18 +52,18 @@ public SoundType sound() { return (SoundType) (Object) this.soundEvent.value(); } - @Override - public int tickDelay() { + @Intrinsic + public int api$tickDelay() { return this.tickDelay; } - @Override - public int searchRadius() { + @Intrinsic + public int api$searchRadius() { return this.blockSearchExtent; } - @Override - public double distanceModifier() { + @Intrinsic + public double api$distanceModifier() { return this.soundPositionOffset; } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/biome/AmbientParticleSettingsMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/biome/AmbientParticleSettingsMixin_API.java index f5cf1b58c32..3190132e2e9 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/biome/AmbientParticleSettingsMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/biome/AmbientParticleSettingsMixin_API.java @@ -28,10 +28,14 @@ import org.spongepowered.api.effect.particle.ParticleType; import org.spongepowered.api.world.biome.ambient.ParticleConfig; import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Implements; +import org.spongepowered.asm.mixin.Interface; +import org.spongepowered.asm.mixin.Intrinsic; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @Mixin(AmbientParticleSettings.class) +@Implements(@Interface(iface = ParticleConfig.class, prefix = "api$")) public abstract class AmbientParticleSettingsMixin_API implements ParticleConfig { // @formatter:off @@ -39,8 +43,8 @@ public abstract class AmbientParticleSettingsMixin_API implements ParticleConfig @Shadow @Final private net.minecraft.core.particles.ParticleOptions options; // @formatter:on - @Override - public float probability() { + @Intrinsic + public float api$probability() { return this.probability; } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/block/entity/CommandBlockEntityMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/block/entity/CommandBlockEntityMixin_API.java index 367285e8f68..848ed9d0a87 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/block/entity/CommandBlockEntityMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/block/entity/CommandBlockEntityMixin_API.java @@ -28,6 +28,7 @@ import net.kyori.adventure.identity.Identity; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; +import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.BaseCommandBlock; import net.minecraft.world.level.block.entity.CommandBlockEntity; import org.checkerframework.checker.nullness.qual.NonNull; @@ -51,7 +52,10 @@ public abstract class CommandBlockEntityMixin_API extends BlockEntityMixin_API i @Override public void execute() { - this.shadow$getCommandBlock().performCommand(this.level); + if (!(this.level instanceof ServerLevel sl)) { + return; + } + this.shadow$getCommandBlock().performCommand(sl); } @Override @@ -93,7 +97,11 @@ public String identifier() { @SuppressWarnings({"UnstableApiUsage", "deprecation"}) @Override public void sendMessage(final @NonNull Identity identity, final @NonNull Component message, final @NonNull MessageType type) { - final var source = ((BaseCommandBlockAccessor) this.shadow$getCommandBlock()).invoker$createSource(); + final var block = this.shadow$getCommandBlock(); + if (!(this.level instanceof ServerLevel sl)) { + return; + } + final var source = ((BaseCommandBlockAccessor) block).invoker$createSource(sl); if (source == null) { return; } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/commands/CommandSourceStackMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/commands/CommandSourceStackMixin.java index 1a54021147e..a27740e9733 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/commands/CommandSourceStackMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/commands/CommandSourceStackMixin.java @@ -32,6 +32,7 @@ import net.minecraft.network.chat.Component; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.permissions.PermissionSet; import net.minecraft.util.TaskChainer; import net.minecraft.world.entity.Entity; import net.minecraft.world.phys.Vec2; @@ -54,6 +55,7 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import org.spongepowered.common.SpongeCommon; import org.spongepowered.common.accessor.commands.CommandSourceStackAccessor; import org.spongepowered.common.accessor.world.entity.player.PlayerAccessor; import org.spongepowered.common.bridge.commands.CommandSourceBridge; @@ -68,11 +70,12 @@ public abstract class CommandSourceStackMixin implements CommandSourceStackBridge { + //@formatter:off @Shadow @Final private CommandSource source; @Shadow @Final @Mutable private Vec3 worldPosition; @Shadow @Final @Mutable private Vec2 rotation; @Shadow @Final @Mutable private ServerLevel level; - @Shadow @Final @Mutable private int permissionLevel; + @Shadow @Final @Mutable private PermissionSet permissions; @Shadow @Final private Component displayName; @Shadow @Final private String textName; @@ -85,33 +88,35 @@ public abstract class CommandSourceStackMixin implements CommandSourceStackBridg @Shadow @Final private CommandSigningContext signingContext; @Shadow @Final private TaskChainer chatMessageChainer; + //@formatter:on + private Cause impl$cause; @Nullable private Supplier impl$potentialPermissionNode = null; private @Nullable PermissionService impl$permissionService; - @Inject(method = "(Lnet/minecraft/commands/CommandSource;Lnet/minecraft/world/phys/Vec3;Lnet/minecraft/world/phys/Vec2;Lnet/minecraft/server/level/ServerLevel;ILjava/lang/String;Lnet/minecraft/network/chat/Component;Lnet/minecraft/server/MinecraftServer;Lnet/minecraft/world/entity/Entity;ZLnet/minecraft/commands/CommandResultCallback;Lnet/minecraft/commands/arguments/EntityAnchorArgument$Anchor;Lnet/minecraft/commands/CommandSigningContext;Lnet/minecraft/util/TaskChainer;)V", - at = @At("RETURN")) + @Inject(method = "(Lnet/minecraft/commands/CommandSource;Lnet/minecraft/world/phys/Vec3;Lnet/minecraft/world/phys/Vec2;Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/server/permissions/PermissionSet;Ljava/lang/String;Lnet/minecraft/network/chat/Component;Lnet/minecraft/server/MinecraftServer;Lnet/minecraft/world/entity/Entity;ZLnet/minecraft/commands/CommandResultCallback;Lnet/minecraft/commands/arguments/EntityAnchorArgument$Anchor;Lnet/minecraft/commands/CommandSigningContext;Lnet/minecraft/util/TaskChainer;)V", + at = @At("RETURN")) private void impl$setCauseOnConstruction( - final CommandSource $$0, - final Vec3 $$1, - final Vec2 $$2, - final ServerLevel $$3, - final int $$4, - final String $$5, - final Component $$6, - final MinecraftServer $$7, - final Entity $$8, - final boolean $$9, - final CommandResultCallback $$10, - final EntityAnchorArgument.Anchor $$11, - final CommandSigningContext $$12, - final TaskChainer $$13, - final CallbackInfo ci + final CommandSource $$0, + final Vec3 $$1, + final Vec2 $$2, + final ServerLevel $$3, + final PermissionSet permissionLevel, + final String $$5, + final Component $$6, + final MinecraftServer $$7, + final Entity $$8, + final boolean $$9, + final CommandResultCallback $$10, + final EntityAnchorArgument.Anchor $$11, + final CommandSigningContext $$12, + final TaskChainer $$13, + final CallbackInfo ci ) { this.impl$cause = PhaseTracker.getInstance().currentCause(); final EventContext context = this.impl$cause.context(); - context.get(EventContextKeys.LOCATION).ifPresent(x ->{ + context.get(EventContextKeys.LOCATION).ifPresent(x -> { this.worldPosition = VecHelper.toVanillaVector3d(x.position()); this.level = (ServerLevel) x.world(); }); @@ -119,11 +124,25 @@ public abstract class CommandSourceStackMixin implements CommandSourceStackBridg context.get(EventContextKeys.ROTATION).ifPresent(x -> this.rotation = new Vec2((float) x.x(), (float) x.y())); context.get(EventContextKeys.SUBJECT).ifPresent(x -> { if (x instanceof PlayerAccessor pa) { - this.permissionLevel = pa.invoker$getPermissionLevel(); + this.permissions = pa.invoker$permissions(); } else if (x instanceof MinecraftServer ms && !ms.isSingleplayer()) { - this.permissionLevel = 4; + this.permissions = PermissionSet.ALL_PERMISSIONS; } }); + this.permissions = (incoming) -> { + if (this.impl$potentialPermissionNode != null) { + final var opLevel = SpongeCommon.server().operatorUserPermissions().level(); + final String perm = this.impl$potentialPermissionNode.get(); + // This will register the permission with the first op level we retrieve. + if (this.impl$permissionService != null) { + SpongePermissions.registerPermission(this.impl$permissionService, perm, opLevel); + } else if (Sponge.isServerAvailable()) { + SpongePermissions.registerPermission(Sponge.server().serviceProvider().permissionService(), perm, opLevel); + } + return ((CommandCause) this).hasPermission(perm); + } + return permissionLevel.hasPermission(incoming); + }; } /* @@ -132,15 +151,15 @@ public abstract class CommandSourceStackMixin implements CommandSourceStackBridg * FIRST. That way, we don't overwrite any changes we then need to make. */ @Inject(method = { - "withEntity", - "withPosition", - "withRotation(Lnet/minecraft/world/phys/Vec2;)Lnet/minecraft/commands/CommandSourceStack;", - "withCallback(Lnet/minecraft/commands/CommandResultCallback;)Lnet/minecraft/commands/CommandSourceStack;", - "withSuppressedOutput", - "withPermission", - "withMaximumPermission", - "withAnchor", - "withLevel" + "withEntity", + "withPosition", + "withRotation(Lnet/minecraft/world/phys/Vec2;)Lnet/minecraft/commands/CommandSourceStack;", + "withCallback(Lnet/minecraft/commands/CommandResultCallback;)Lnet/minecraft/commands/CommandSourceStack;", + "withSuppressedOutput", + "withPermission", + "withMaximumPermission", + "withAnchor", + "withLevel" }, at = @At("RETURN")) private void impl$copyPermissionOnCopy(final CallbackInfoReturnable cir) { if (cir.getReturnValue() != (Object) this) { @@ -154,8 +173,8 @@ public abstract class CommandSourceStackMixin implements CommandSourceStackBridg @Override public CommandCause bridge$withCurrentCause() { // Cause is set in ctor. - final CommandCause instance = (CommandCause) CommandSourceStackAccessor.invoker$new(this.source, this.worldPosition, this.rotation, this.level, this.permissionLevel, - this.textName, this.displayName, this.server, this.entity, this.silent, this.resultCallback, this.anchor, this.signingContext, this.chatMessageChainer); + final CommandCause instance = (CommandCause) CommandSourceStackAccessor.invoker$new(this.source, this.worldPosition, this.rotation, this.level, this.permissions, + this.textName, this.displayName, this.server, this.entity, this.silent, this.resultCallback, this.anchor, this.signingContext, this.chatMessageChainer); ((CommandSourceStackBridge) instance).bridge$permissionService(this.impl$permissionService); return instance; } @@ -174,9 +193,9 @@ public abstract class CommandSourceStackMixin implements CommandSourceStackBridg private void impl$updateCauseOnWithWorld(final ServerLevel serverWorld, final CallbackInfoReturnable cir) { if (cir.getReturnValue() != (Object) this) { final ServerLocation location = this.impl$cause.context().get(EventContextKeys.LOCATION) - .map(x -> ServerLocation.of((org.spongepowered.api.world.server.ServerWorld) serverWorld, x.position())) - .orElseGet(() -> ServerLocation.of((org.spongepowered.api.world.server.ServerWorld) serverWorld, - VecHelper.toVector3d(cir.getReturnValue().getPosition()))); + .map(x -> ServerLocation.of((org.spongepowered.api.world.server.ServerWorld) serverWorld, x.position())) + .orElseGet(() -> ServerLocation.of((org.spongepowered.api.world.server.ServerWorld) serverWorld, + VecHelper.toVector3d(cir.getReturnValue().getPosition()))); ((CommandSourceStackBridge) cir.getReturnValue()).bridge$setCause(this.impl$applyToCause(EventContextKeys.LOCATION, location)); } } @@ -186,8 +205,8 @@ public abstract class CommandSourceStackMixin implements CommandSourceStackBridg if (cir.getReturnValue() != (Object) this) { final org.spongepowered.math.vector.Vector3d position = VecHelper.toVector3d(pos); final ServerLocation location = this.impl$cause.context().get(EventContextKeys.LOCATION) - .map(x -> ServerLocation.of(x.world(), position)) - .orElseGet(() -> ServerLocation.of((org.spongepowered.api.world.server.ServerWorld) cir.getReturnValue().getLevel(), position)); + .map(x -> ServerLocation.of(x.world(), position)) + .orElseGet(() -> ServerLocation.of((org.spongepowered.api.world.server.ServerWorld) cir.getReturnValue().getLevel(), position)); ((CommandSourceStackBridge) cir.getReturnValue()).bridge$setCause(this.impl$applyToCause(EventContextKeys.LOCATION, location)); } } @@ -200,21 +219,6 @@ public abstract class CommandSourceStackMixin implements CommandSourceStackBridg } } - @Inject(method = "hasPermission", at = @At(value = "HEAD"), cancellable = true) - private void impl$checkPermission(final int opLevel, final CallbackInfoReturnable cir) { - if (this.impl$potentialPermissionNode != null) { - final String perm = this.impl$potentialPermissionNode.get(); - // This will register the permission with the first op level we retrieve. - if (this.impl$permissionService != null) { - SpongePermissions.registerPermission(this.impl$permissionService, perm, opLevel); - } else if (Sponge.isServerAvailable()) { - SpongePermissions.registerPermission(Sponge.server().serviceProvider().permissionService(), perm, opLevel); - } - cir.setReturnValue(((CommandCause) this).hasPermission(perm)); - } - // fall through to the op level check if we haven't set a permission node. - } - @Override public void bridge$setPotentialPermissionNode(final @Nullable Supplier permission) { this.impl$potentialPermissionNode = permission; diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/server/MinecraftServerMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/server/MinecraftServerMixin.java index a854ee810ec..3d1b37ee9be 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/server/MinecraftServerMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/server/MinecraftServerMixin.java @@ -231,7 +231,7 @@ public Subject subject() { target = "(Lnet/minecraft/server/MinecraftServer;Ljava/util/concurrent/Executor;Lnet/minecraft/world/level/storage/LevelStorageSource$LevelStorageAccess;Lnet/minecraft/world/level/storage/ServerLevelData;Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/world/level/dimension/LevelStem;ZJLjava/util/List;ZLnet/minecraft/world/RandomSequences;)Lnet/minecraft/server/level/ServerLevel;" ), slice = @Slice( from = @At(value = "INVOKE", target = "Lnet/minecraft/core/Registry;getValue(Lnet/minecraft/resources/ResourceKey;)Ljava/lang/Object;"), - to = @At(value = "INVOKE", target = "Lnet/minecraft/server/MinecraftServer;readScoreboard(Lnet/minecraft/world/level/storage/DimensionDataStorage;)V") + to = @At(value = "INVOKE", target = "Lnet/minecraft/server/level/ServerLevel;getDataStorage()Lnet/minecraft/world/level/storage/DimensionDataStorage;") )) private void impl$onCreateDefaultLevel(final CallbackInfo ci, @Local final ServerLevelData levelData, @Local final LevelStem levelStem) { ((PrimaryLevelDataBridge) levelData).bridge$populateFromLevelStem(levelStem); diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/server/ReloadableServerResourcesMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/server/ReloadableServerResourcesMixin.java index 189bba4c36f..12c7981b095 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/server/ReloadableServerResourcesMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/server/ReloadableServerResourcesMixin.java @@ -35,6 +35,7 @@ import net.minecraft.server.ReloadableServerRegistries; import net.minecraft.server.ReloadableServerResources; import net.minecraft.server.packs.resources.ResourceManager; +import net.minecraft.server.permissions.PermissionSet; import net.minecraft.world.flag.FeatureFlagSet; import org.spongepowered.api.Sponge; import org.spongepowered.api.registry.RegistryHolder; @@ -55,9 +56,12 @@ public abstract class ReloadableServerResourcesMixin { @SuppressWarnings({"unchecked", "rawtypes"}) @ModifyExpressionValue(method = "loadResources", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/ReloadableServerRegistries;reload(Lnet/minecraft/core/LayeredRegistryAccess;Ljava/util/List;Lnet/minecraft/server/packs/resources/ResourceManager;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;")) - private static CompletableFuture impl$onLoadResources(final CompletableFuture original, - final ResourceManager $$0, final LayeredRegistryAccess $$1, final List> $$2, - final FeatureFlagSet $$3, final Commands.CommandSelection $$4, final int $$5, final Executor $$6, final Executor $$7) { + private static CompletableFuture impl$onLoadResources( + final CompletableFuture original, final ResourceManager $$0, + final LayeredRegistryAccess $$1, final List> $$2, + final FeatureFlagSet $$3, final Commands.CommandSelection $$4, final PermissionSet $$5, + final Executor $$6, final Executor $$7 + ) { return original.thenApply(r -> { final SpongeRegistryHolder spongeRegistryHolder = (SpongeRegistryHolder) $$0; spongeRegistryHolder.setRootMinecraftRegistry(r.layers().compositeAccess()); @@ -81,9 +85,12 @@ public abstract class ReloadableServerResourcesMixin { } @ModifyReturnValue(method = "loadResources", at = @At(value = "RETURN")) - private static CompletableFuture impl$onLoaded(final CompletableFuture original, - final ResourceManager $$0, final LayeredRegistryAccess $$1, final List> $$2, - final FeatureFlagSet $$3, final Commands.CommandSelection $$4, final int $$5, final Executor $$6, final Executor $$7) { + private static CompletableFuture impl$onLoaded( + final CompletableFuture original, final ResourceManager $$0, + final LayeredRegistryAccess $$1, final List> $$2, + final FeatureFlagSet $$3, final Commands.CommandSelection $$4, final PermissionSet $$5, + final Executor $$6, final Executor $$7 + ) { return original.thenApply(r -> { Launch.instance().lifecycle().endEstablishServerRegistries((RegistryHolder) $$0); return r; diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/server/WorldLoaderMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/server/WorldLoaderMixin.java index b3b0d496578..cd3f395554e 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/server/WorldLoaderMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/server/WorldLoaderMixin.java @@ -31,6 +31,9 @@ import com.mojang.datafixers.util.Pair; import net.minecraft.server.WorldLoader; import net.minecraft.server.packs.resources.CloseableResourceManager; +import net.minecraft.server.permissions.LevelBasedPermissionSet; +import net.minecraft.server.permissions.PermissionLevel; +import net.minecraft.server.permissions.PermissionSet; import net.minecraft.world.level.WorldDataConfiguration; import org.spongepowered.api.registry.Registry; import org.spongepowered.api.registry.RegistryHolder; @@ -52,7 +55,11 @@ public abstract class WorldLoaderMixin { final Pair pair = original.call(instance); final CloseableResourceManager resourceManager = pair.getSecond(); final Lifecycle lifecycle = Launch.instance().lifecycle(); - lifecycle.establishServerServices(resourceManager, $$0.functionCompilationLevel()); + var permLevel = $$0.functionCompilationPermissions() == PermissionSet.ALL_PERMISSIONS ? PermissionLevel.OWNERS : PermissionLevel.ALL; + if ($$0.functionCompilationPermissions() instanceof LevelBasedPermissionSet lbps) { + permLevel = lbps.level(); + } + lifecycle.establishServerServices(resourceManager, permLevel); lifecycle.setWorldDataConfiguration(pair.getFirst()); lifecycle.beginEstablishServerRegistries((RegistryHolder) resourceManager); return pair; diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/server/commands/DifficultyCommandMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/server/commands/DifficultyCommandMixin.java index c54e3ae3e50..0237e7ccbbf 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/server/commands/DifficultyCommandMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/server/commands/DifficultyCommandMixin.java @@ -31,6 +31,7 @@ import net.minecraft.network.protocol.game.ClientboundChangeDifficultyPacket; import net.minecraft.server.commands.DifficultyCommand; import net.minecraft.world.Difficulty; +import net.minecraft.world.level.GameRules; import net.minecraft.world.level.storage.LevelData; import org.spongepowered.api.world.server.storage.ServerWorldProperties; import org.spongepowered.asm.mixin.Final; @@ -38,7 +39,6 @@ import org.spongepowered.asm.mixin.Overwrite; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.common.SpongeCommon; -import org.spongepowered.common.accessor.server.MinecraftServerAccessor; @Mixin(DifficultyCommand.class) public abstract class DifficultyCommandMixin { @@ -58,7 +58,7 @@ public static int setDifficulty(CommandSourceStack source, Difficulty difficulty } else { final LevelData levelData = source.getLevel().getLevelData(); ((ServerWorldProperties) levelData).setDifficulty((org.spongepowered.api.world.difficulty.Difficulty) (Object) difficulty); - source.getLevel().setSpawnSettings(((MinecraftServerAccessor) SpongeCommon.server()).invoker$isSpawningMonsters()); + source.getLevel().setSpawnSettings(SpongeCommon.server().getWorldData().getGameRules().getBoolean(GameRules.RULE_SPAWN_MONSTERS)); source.getLevel().getPlayers(p -> true).forEach(p -> p.connection.send(new ClientboundChangeDifficultyPacket(levelData.getDifficulty(), levelData.isDifficultyLocked()))); source.sendSuccess(() -> Component.translatable("commands.difficulty.success", difficulty.getDisplayName()), true); diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ServerLevelMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ServerLevelMixin.java index 5a9c64cfd6c..465cd94be95 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ServerLevelMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ServerLevelMixin.java @@ -49,12 +49,22 @@ import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvents; import net.minecraft.util.random.WeightedList; +import net.minecraft.world.DifficultyInstance; import net.minecraft.world.RandomSequences; import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntitySpawnReason; +import net.minecraft.world.entity.LightningBolt; +import net.minecraft.world.entity.Mob; import net.minecraft.world.entity.ai.village.poi.PoiManager; import net.minecraft.world.entity.ai.village.poi.PoiRecord; import net.minecraft.world.entity.ai.village.poi.PoiType; +import net.minecraft.world.entity.decoration.ArmorStand; +import net.minecraft.world.entity.decoration.HangingEntity; +import net.minecraft.world.entity.decoration.Painting; +import net.minecraft.world.entity.item.ItemEntity; +import net.minecraft.world.entity.projectile.ThrownEnderpearl; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; import net.minecraft.world.level.CustomSpawner; import net.minecraft.world.level.Level; import net.minecraft.world.level.ServerExplosion; @@ -85,6 +95,8 @@ import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.Transaction; import org.spongepowered.api.effect.sound.music.MusicDisc; +import org.spongepowered.api.entity.EntityType; +import org.spongepowered.api.entity.projectile.EnderPearl; import org.spongepowered.api.event.Cause; import org.spongepowered.api.event.CauseStackManager; import org.spongepowered.api.event.EventContextKeys; @@ -108,6 +120,8 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.LocalCapture; import org.spongepowered.common.SpongeCommon; +import org.spongepowered.common.accessor.world.entity.MobAccessor; +import org.spongepowered.common.accessor.world.entity.item.FallingBlockEntityAccessor; import org.spongepowered.common.block.SpongeBlockSnapshot; import org.spongepowered.common.bridge.data.VanishableBridge; import org.spongepowered.common.bridge.server.level.ServerLevelBridge; @@ -118,6 +132,7 @@ import org.spongepowered.common.bridge.world.level.storage.ServerLevelDataBridge; import org.spongepowered.common.bridge.world.ticks.LevelTicksBridge; import org.spongepowered.common.config.SpongeGameConfigs; +import org.spongepowered.common.entity.projectile.UnknownProjectileSource; import org.spongepowered.common.event.ShouldFire; import org.spongepowered.common.event.SpongeCommonEventFactory; import org.spongepowered.common.event.tracking.PhaseContext; @@ -129,6 +144,7 @@ import org.spongepowered.common.util.Constants; import org.spongepowered.common.util.SpongeTicks; import org.spongepowered.common.world.server.SpongeServerLevelData; +import org.spongepowered.math.vector.Vector3d; import org.spongepowered.math.vector.Vector3i; import java.util.List; @@ -153,6 +169,7 @@ public abstract class ServerLevelMixin extends LevelMixin implements ServerLevel @Shadow @Nullable private EndDragonFight dragonFight; @Shadow @Final List players; + @Shadow public abstract DifficultyInstance shadow$getCurrentDifficultyAt(BlockPos p_175649_1_); // @formatter:on @@ -567,4 +584,74 @@ public String toString() { // Weather is per world in Sponge. instance.broadcastAll(packet, this.shadow$dimension()); } + + + @Override + @SuppressWarnings("unchecked") + public E bridge$createEntity(final EntityType type, final Vector3d position, final boolean naturally) throws IllegalArgumentException, IllegalStateException { + if (type == net.minecraft.world.entity.EntityType.PLAYER) { + // Unable to construct these + throw new IllegalArgumentException("A Player cannot be created by the API!"); + } + + net.minecraft.world.entity.Entity entity = null; + final double x = position.x(); + final double y = position.y(); + final double z = position.z(); + final net.minecraft.world.level.Level thisWorld = (net.minecraft.world.level.Level) (Object) this; + // Not all entities have a single World parameter as their constructor + if (type == net.minecraft.world.entity.EntityType.LIGHTNING_BOLT) { + entity = net.minecraft.world.entity.EntityType.LIGHTNING_BOLT.create(thisWorld, EntitySpawnReason.EVENT); + entity.snapTo(x, y, z); + ((LightningBolt) entity).setVisualOnly(false); + } + // TODO - archetypes should solve the problem of calling the correct constructor + if (type == net.minecraft.world.entity.EntityType.ENDER_PEARL) { + final ArmorStand tempEntity = new ArmorStand(thisWorld, x, y, z); + tempEntity.setPos(tempEntity.getX(), tempEntity.getY() - tempEntity.getEyeHeight(), tempEntity.getZ()); + entity = new ThrownEnderpearl(thisWorld, tempEntity, Items.ENDER_PEARL.getDefaultInstance()); + ((EnderPearl) entity).offer(Keys.SHOOTER, UnknownProjectileSource.UNKNOWN); + } + // Some entities need to have non-null fields (and the easiest way to + // set them is to use the more specialised constructor). + if (type == net.minecraft.world.entity.EntityType.FALLING_BLOCK) { + entity = FallingBlockEntityAccessor.invoker$new(thisWorld, x, y, z, Blocks.SAND.defaultBlockState()); + } + if (type == net.minecraft.world.entity.EntityType.ITEM) { + entity = new ItemEntity(thisWorld, x, y, z, new ItemStack(Blocks.STONE)); + } + + if (entity == null) { + final ResourceKey key = (ResourceKey) (Object) SpongeCommon.vanillaRegistry(Registries.ENTITY_TYPE).getKey((net.minecraft.world.entity.EntityType) type); + try { + entity = ((net.minecraft.world.entity.EntityType) type).create(thisWorld, EntitySpawnReason.EVENT); + entity.snapTo(x, y, z); + } catch (final Exception e) { + throw new RuntimeException("There was an issue attempting to construct " + key, e); + } + } + + // TODO - replace this with an actual check + + if (entity instanceof HangingEntity) { + if (!((HangingEntity) entity).survives()) { + throw new IllegalArgumentException("Hanging entity does not survive at the given position: " + position); + } + } + + if (naturally && entity instanceof Mob) { + // Adding the default equipment + final DifficultyInstance difficulty = this.shadow$getCurrentDifficultyAt(new BlockPos((int) x, (int) y, (int) z)); + ((MobAccessor) entity).invoker$populateDefaultEquipmentSlots(this.random, difficulty); + } + + if (entity instanceof Painting) { + // This is default when art is null when reading from NBT, could + // choose a random art instead? + // TODO ? ((Painting) entity).motive = Motive.KEBAB; + } + + return (E) entity; + } + } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/BaseCommandBlockMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/BaseCommandBlockMixin.java index bc577d37306..105a33efbe6 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/BaseCommandBlockMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/BaseCommandBlockMixin.java @@ -25,17 +25,12 @@ package org.spongepowered.common.mixin.core.world; import net.kyori.adventure.audience.Audience; -import net.kyori.adventure.audience.MessageType; -import net.kyori.adventure.identity.Identity; -import net.kyori.adventure.text.Component; import net.minecraft.commands.CommandSource; import net.minecraft.commands.CommandSourceStack; +import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.BaseCommandBlock; -import org.checkerframework.checker.nullness.qual.NonNull; -import org.spongepowered.api.event.Cause; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.common.adventure.SpongeAdventure; import org.spongepowered.common.bridge.commands.CommandSourceProviderBridge; import javax.annotation.Nullable; @@ -44,24 +39,8 @@ public abstract class BaseCommandBlockMixin implements CommandSourceProviderBridge, Audience { // @formatter:off - @Shadow public abstract CommandSourceStack createCommandSourceStack(CommandSource var1); - @Shadow @Nullable protected abstract BaseCommandBlock.CloseableCommandBlockSource shadow$createSource(); + @Shadow public abstract CommandSourceStack createCommandSourceStack(ServerLevel level, CommandSource var1); + @Shadow @Nullable protected abstract BaseCommandBlock.CloseableCommandBlockSource shadow$createSource(ServerLevel level); // @formatter:on - - - @Override - public CommandSourceStack bridge$getCommandSource(final Cause cause) { - return this.createCommandSourceStack(this.shadow$createSource()); - } - - @Override - @SuppressWarnings({"deprecation", "UnstableApiUsage"}) - public void sendMessage(final @NonNull Identity identity, final @NonNull Component message, final @NonNull MessageType type) { - final var source = this.shadow$createSource(); - if (source == null) { - return; - } - source.sendSystemMessage(SpongeAdventure.asVanilla(message)); - } } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/LivingEntityMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/LivingEntityMixin.java index 75b665d9049..86ef29443ac 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/LivingEntityMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/LivingEntityMixin.java @@ -26,6 +26,7 @@ import com.llamalad7.mixinextras.injector.wrapoperation.Operation; import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; +import com.llamalad7.mixinextras.sugar.Local; import net.minecraft.core.BlockPos; import net.minecraft.core.Holder; import net.minecraft.core.particles.ParticleOptions; @@ -68,7 +69,6 @@ import org.spongepowered.asm.mixin.injection.Redirect; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import org.spongepowered.asm.mixin.injection.callback.LocalCapture; import org.spongepowered.common.SpongeCommon; import org.spongepowered.common.bridge.data.VanishableBridge; import org.spongepowered.common.bridge.world.entity.LivingEntityBridge; @@ -274,10 +274,11 @@ public abstract class LivingEntityMixin extends EntityMixin implements LivingEnt @Inject(method = "startUsingItem", cancellable = true, - locals = LocalCapture.CAPTURE_FAILHARD, at = @At(value = "FIELD", - target = "Lnet/minecraft/world/entity/LivingEntity;useItem:Lnet/minecraft/world/item/ItemStack;")) - private void impl$onSetActiveItemStack(final InteractionHand hand, final CallbackInfo ci, final ItemStack stack) { + target = "Lnet/minecraft/world/entity/LivingEntity;useItem:Lnet/minecraft/world/item/ItemStack;", + opcode = Opcodes.PUTFIELD + )) + private void impl$onSetActiveItemStack(final InteractionHand hand, final CallbackInfo ci, final @Local ItemStack stack) { if (this.shadow$level().isClientSide()) { return; } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/monster/ZombifiedPiglinMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/monster/ZombifiedPiglinMixin.java index 35a889a05ac..b2e7acfcc76 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/monster/ZombifiedPiglinMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/monster/ZombifiedPiglinMixin.java @@ -34,7 +34,7 @@ public abstract class ZombifiedPiglinMixin extends MonsterMixin implements AggressiveEntityBridge { // @formatter:off - @Shadow private int remainingPersistentAngerTime; + @Shadow private long persistentAngerEndTime; // @formatter:on @Override @@ -45,9 +45,9 @@ public abstract class ZombifiedPiglinMixin extends MonsterMixin implements Aggre @Override public void bridge$setAngry(boolean angry) { if (angry) { - this.remainingPersistentAngerTime = 400 + this.random.nextInt(400); + this.persistentAngerEndTime = 400 + this.random.nextInt(400); } else { - this.remainingPersistentAngerTime = 0; + this.persistentAngerEndTime = 0; } } } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/player/PlayerMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/player/PlayerMixin.java index 04a0e4f4ba8..023d4477b4b 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/player/PlayerMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/player/PlayerMixin.java @@ -31,6 +31,7 @@ import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerPlayer; +import net.minecraft.server.permissions.PermissionSet; import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundSource; import net.minecraft.util.Unit; @@ -38,6 +39,7 @@ import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player.BedSleepingProblem; import net.minecraft.world.food.FoodData; import net.minecraft.world.inventory.AbstractContainerMenu; @@ -94,18 +96,19 @@ public abstract class PlayerMixin extends AvatarMixin implements PlayerBridge, G @Shadow @Final public InventoryMenu inventoryMenu; @Shadow @Final private GameProfile gameProfile; @Shadow public abstract boolean shadow$isSpectator(); - @Shadow protected abstract int shadow$getPermissionLevel(); @Shadow public abstract int shadow$getXpNeededForNextLevel(); @Shadow public abstract FoodData shadow$getFoodData(); @Shadow public abstract boolean shadow$isCreative(); @Shadow public abstract String shadow$getScoreboardName(); @Shadow public abstract void shadow$awardStat(ResourceLocation stat); @Shadow public abstract Inventory shadow$getInventory(); + @Shadow public abstract PermissionSet shadow$permissions(); @Shadow public Either shadow$startSleepInBed(final BlockPos param0) { return null; // Shadowed } // @formatter: on + private boolean impl$affectsSpawning = true; protected final boolean impl$isFake = this.bridge$isFakePlayer(); @@ -216,12 +219,12 @@ public abstract class PlayerMixin extends AvatarMixin implements PlayerBridge, G this.shadow$level().playSound(player, x, y, z, sound, category, volume, pitch); } - @Redirect(method = "canUseGameMasterBlocks", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;getPermissionLevel()I")) - private int impl$checkPermissionForCommandBlock(final net.minecraft.world.entity.player.Player playerEntity) { + @Redirect(method = "canUseGameMasterBlocks", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;permissions()Lnet/minecraft/server/permissions/PermissionSet;")) + private PermissionSet impl$checkPermissionForCommandBlock(final Player playerEntity) { if (this instanceof Subject) { - return ((Subject) this).hasPermission(Constants.Permissions.COMMAND_BLOCK_PERMISSION) ? Constants.Permissions.COMMAND_BLOCK_LEVEL : 0; + return ((Subject) this).hasPermission(Constants.Permissions.COMMAND_BLOCK_PERMISSION) ? PermissionSet.ALL_PERMISSIONS : PermissionSet.NO_PERMISSIONS; } else { - return this.shadow$getPermissionLevel(); + return this.shadow$permissions(); } } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/player/PlayerMixin_Attack.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/player/PlayerMixin_Attack.java index af6d938388c..22fc10c7cf3 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/player/PlayerMixin_Attack.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/player/PlayerMixin_Attack.java @@ -32,7 +32,6 @@ import com.llamalad7.mixinextras.sugar.Local; import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundEvent; -import net.minecraft.sounds.SoundSource; import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.LivingEntity; @@ -41,7 +40,6 @@ import net.minecraft.world.inventory.InventoryMenu; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.api.event.cause.entity.damage.DamageStepTypes; import org.spongepowered.api.event.entity.AttackEntityEvent; @@ -103,7 +101,7 @@ public abstract class PlayerMixin_Attack extends LivingEntityMixin_Damage implem @ModifyVariable(method = "attack", at = @At("LOAD"), ordinal = 0, slice = @Slice( from = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;getAttackStrengthScale(F)F"), - to = @At(value = "FIELD", target = "Lnet/minecraft/tags/EntityTypeTags;REDIRECTABLE_PROJECTILE:Lnet/minecraft/tags/TagKey;") + to = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;deflectProjectile(Lnet/minecraft/world/entity/Entity;)Z") )) private float attack$modifyBeforeBaseCooldown(final float damage) { final SpongeAttackTracker tracker = this.attack$tracker(); @@ -112,7 +110,7 @@ public abstract class PlayerMixin_Attack extends LivingEntityMixin_Damage implem @ModifyVariable(method = "attack", at = @At("STORE"), ordinal = 0, slice = @Slice( from = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;getAttackStrengthScale(F)F"), - to = @At(value = "FIELD", target = "Lnet/minecraft/tags/EntityTypeTags;REDIRECTABLE_PROJECTILE:Lnet/minecraft/tags/TagKey;") + to = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;deflectProjectile(Lnet/minecraft/world/entity/Entity;)Z") )) private float attack$modifyAfterBaseCooldown(final float damage) { final SpongeAttackTracker tracker = this.attack$tracker(); @@ -121,7 +119,7 @@ public abstract class PlayerMixin_Attack extends LivingEntityMixin_Damage implem @ModifyVariable(method = "attack", at = @At("LOAD"), ordinal = 1, slice = @Slice( from = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;getAttackStrengthScale(F)F"), - to = @At(value = "FIELD", target = "Lnet/minecraft/tags/EntityTypeTags;REDIRECTABLE_PROJECTILE:Lnet/minecraft/tags/TagKey;") + to = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;deflectProjectile(Lnet/minecraft/world/entity/Entity;)Z") )) private float attack$modifyBeforeEnchantmentCooldown(final float damage) { final SpongeAttackTracker tracker = this.attack$tracker(); @@ -130,14 +128,15 @@ public abstract class PlayerMixin_Attack extends LivingEntityMixin_Damage implem @ModifyVariable(method = "attack", at = @At("STORE"), ordinal = 1, slice = @Slice( from = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;getAttackStrengthScale(F)F"), - to = @At(value = "FIELD", target = "Lnet/minecraft/tags/EntityTypeTags;REDIRECTABLE_PROJECTILE:Lnet/minecraft/tags/TagKey;") + to = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;deflectProjectile(Lnet/minecraft/world/entity/Entity;)Z") )) private float attack$modifyAfterEnchantmentCooldown(final float damage) { final SpongeAttackTracker tracker = this.attack$tracker(); return tracker == null ? damage : tracker.endStep(DamageStepTypes.ENCHANTMENT_COOLDOWN, damage); } - @Inject(method = "attack", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/Level;playSound(Lnet/minecraft/world/entity/Entity;DDDLnet/minecraft/sounds/SoundEvent;Lnet/minecraft/sounds/SoundSource;FF)V"), slice = @Slice( + @Inject(method = "attack", + at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;makeSound(Lnet/minecraft/sounds/SoundEvent;)V"), slice = @Slice( from = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;isSprinting()Z", ordinal = 0), to = @At(value = "INVOKE", target = "Lnet/minecraft/world/item/Item;getAttackDamageBonus(Lnet/minecraft/world/entity/Entity;FLnet/minecraft/world/damagesource/DamageSource;)F"))) private void attack$captureStrongSprint(final Entity target, final CallbackInfo ci) { @@ -163,8 +162,8 @@ public abstract class PlayerMixin_Attack extends LivingEntityMixin_Damage implem } @ModifyVariable(method = "attack", at = @At(value = "LOAD", ordinal = 0), ordinal = 0, slice = @Slice( - from = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;isSprinting()Z", ordinal = 1), - to = @At(value = "INVOKE", target = "Lnet/minecraft/world/phys/Vec3;horizontalDistanceSqr()D") + from = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;canCriticalAttack(Lnet/minecraft/world/entity/Entity;)Z"), + to = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;isSweepAttack(ZZZ)Z") )) private float attack$modifyBeforeCriticalHit(final float damage) { final SpongeAttackTracker tracker = this.attack$tracker(); @@ -172,8 +171,8 @@ public abstract class PlayerMixin_Attack extends LivingEntityMixin_Damage implem } @ModifyVariable(method = "attack", at = @At("STORE"), ordinal = 0, slice = @Slice( - from = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;isSprinting()Z", ordinal = 1), - to = @At(value = "INVOKE", target = "Lnet/minecraft/world/phys/Vec3;horizontalDistanceSqr()D") + from = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;canCriticalAttack(Lnet/minecraft/world/entity/Entity;)Z"), + to = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;isSweepAttack(ZZZ)Z") )) private float attack$modifyAfterCriticalHit(final float damage) { final SpongeAttackTracker tracker = this.attack$tracker(); @@ -204,9 +203,8 @@ public abstract class PlayerMixin_Attack extends LivingEntityMixin_Damage implem @WrapWithCondition(method = "attack", slice = @Slice(from = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;causeFoodExhaustion(F)V")), - at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/Level;playSound(Lnet/minecraft/world/entity/Entity;DDDLnet/minecraft/sounds/SoundEvent;Lnet/minecraft/sounds/SoundSource;FF)V")) - private boolean attack$preventSound(final Level level, final Entity player, final double x, final double y, final double z, - final SoundEvent sound, final SoundSource source, final float volume, final float pitch) { + at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;makeSound(Lnet/minecraft/sounds/SoundEvent;)V")) + private boolean attack$preventSound(Player instance, SoundEvent soundEvent) { final SpongeAttackTracker tracker = this.attack$tracker(); return tracker == null || !tracker.postEvent().isCancelled(); } @@ -218,7 +216,7 @@ public abstract class PlayerMixin_Attack extends LivingEntityMixin_Damage implem this.attack$trackers.removeLast(); } - @WrapOperation(method = "attack", + @WrapOperation(method = "doSweepAttack", slice = @Slice(from = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/Level;getEntitiesOfClass(Ljava/lang/Class;Lnet/minecraft/world/phys/AABB;)Ljava/util/List;")), at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;distanceToSqr(Lnet/minecraft/world/entity/Entity;)D")) private double sweepAttack$fireEvents(final Player self, final Entity sweepTarget, final Operation operation) { @@ -269,14 +267,14 @@ public abstract class PlayerMixin_Attack extends LivingEntityMixin_Damage implem return distanceSquared; } - @WrapOperation(method = "attack", + @WrapOperation(method = "doSweepAttack", slice = @Slice(from = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/Level;getEntitiesOfClass(Ljava/lang/Class;Lnet/minecraft/world/phys/AABB;)Ljava/util/List;")), at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;getEnchantedDamage(Lnet/minecraft/world/entity/Entity;FLnet/minecraft/world/damagesource/DamageSource;)F")) private float sweepAttack$cancelEnchantedDamage(final Player self, final Entity sweepTarget, final float damage, final DamageSource source, final Operation operation) { return damage; // We already did it above } - @WrapOperation(method = "attack", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/LivingEntity;knockback(DDD)V"), slice = @Slice( + @WrapOperation(method = "doSweepAttack", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/LivingEntity;knockback(DDD)V"), slice = @Slice( from = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/Level;getEntitiesOfClass(Ljava/lang/Class;Lnet/minecraft/world/phys/AABB;)Ljava/util/List;"), to = @At(value = "INVOKE", target = "Lnet/minecraft/world/item/enchantment/EnchantmentHelper;doPostAttackEffects(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/entity/Entity;Lnet/minecraft/world/damagesource/DamageSource;)V"))) private void sweepAttack$knockbackModifier( @@ -288,7 +286,7 @@ public abstract class PlayerMixin_Attack extends LivingEntityMixin_Damage implem operation.call(sweepTarget, modifier, dirX, dirZ); } - @WrapOperation(method = "attack", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/LivingEntity;hurtServer(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/damagesource/DamageSource;F)Z"), + @WrapOperation(method = "doSweepAttack", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/LivingEntity;hurtServer(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/damagesource/DamageSource;F)Z"), slice = @Slice(from = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/Level;getEntitiesOfClass(Ljava/lang/Class;Lnet/minecraft/world/phys/AABB;)Ljava/util/List;"))) private boolean sweepAttack$finalDamage( final LivingEntity sweepTarget, final ServerLevel level, final DamageSource source, float damage, @@ -302,7 +300,7 @@ public abstract class PlayerMixin_Attack extends LivingEntityMixin_Damage implem return result; } - @Inject(method = "attack", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;setItemInHand(Lnet/minecraft/world/InteractionHand;Lnet/minecraft/world/item/ItemStack;)V", shift = At.Shift.AFTER)) + @Inject(method = "itemAttackInteraction", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;setItemInHand(Lnet/minecraft/world/InteractionHand;Lnet/minecraft/world/item/ItemStack;)V", shift = At.Shift.AFTER)) private void attack$captureInventoryChange(final CallbackInfo ci) { PhaseTracker.getWorldInstance(this.shadow$level()).getPhaseContext().getTransactor().logPlayerInventoryChange((Player) (Object) this, PlayerInventoryTransaction.EventCreator.STANDARD); this.inventoryMenu.broadcastChanges(); diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/MinecartCommandBlockMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/MinecartCommandBlockMixin.java index 1ad89d9829b..70ac4854a67 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/MinecartCommandBlockMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/MinecartCommandBlockMixin.java @@ -56,6 +56,9 @@ public abstract class MinecartCommandBlockMixin extends AbstractMinecartMixin im @Override public CommandSourceStack bridge$getCommandSource(final Cause cause) { - return this.commandBlock.createCommandSourceStack(SpongeCommon.server()); + if (this.level() instanceof net.minecraft.server.level.ServerLevel sl) { + return this.commandBlock.createCommandSourceStack(sl, SpongeCommon.server()); + } + return this.commandBlock.createCommandSourceStack(SpongeCommon.server().overworld(), SpongeCommon.server()); } } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/MinecartCommandBlock_MinecartCommandBaseMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/MinecartCommandBlock_MinecartCommandBaseMixin.java index b1892560878..6eb7efd46ae 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/MinecartCommandBlock_MinecartCommandBaseMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/MinecartCommandBlock_MinecartCommandBaseMixin.java @@ -24,15 +24,23 @@ */ package org.spongepowered.common.mixin.core.world.entity.vehicle; +import net.kyori.adventure.audience.MessageType; +import net.kyori.adventure.identity.Identity; +import net.kyori.adventure.text.Component; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.vehicle.MinecartCommandBlock; +import org.checkerframework.checker.nullness.qual.NonNull; +import org.spongepowered.api.event.Cause; import org.spongepowered.api.service.permission.Subject; import org.spongepowered.api.service.permission.SubjectProxy; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.common.adventure.SpongeAdventure; import org.spongepowered.common.mixin.core.world.BaseCommandBlockMixin; -@Mixin(MinecartCommandBlock.MinecartCommandBase.class) +@Mixin(targets = "net.minecraft.world.entity.vehicle.MinecartCommandBlock$MinecartCommandBase") public abstract class MinecartCommandBlock_MinecartCommandBaseMixin extends BaseCommandBlockMixin implements SubjectProxy { // @formatter:off @@ -43,4 +51,25 @@ public abstract class MinecartCommandBlock_MinecartCommandBaseMixin extends Base public Subject subject() { return (Subject) this.this$0; } + + @Override + public CommandSourceStack bridge$getCommandSource(final Cause cause) { + if (!(this.this$0.level() instanceof ServerLevel sl)) { + return null; + } + return this.createCommandSourceStack(sl, this.shadow$createSource(sl)); + } + + @Override + @SuppressWarnings({"deprecation", "UnstableApiUsage"}) + public void sendMessage(final @NonNull Identity identity, final @NonNull Component message, final @NonNull MessageType type) { + if (!(this.this$0.level() instanceof ServerLevel sl)) { + return; + } + final var source = this.shadow$createSource(sl); + if (source == null) { + return; + } + source.sendSystemMessage(SpongeAdventure.asVanilla(message)); + } } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/MinecartTNTMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/MinecartTNTMixin.java index 6d2628e803d..b6fd2c3435d 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/MinecartTNTMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/MinecartTNTMixin.java @@ -103,8 +103,8 @@ public abstract class MinecartTNTMixin extends AbstractMinecartMixin implements this.impl$primeCause = damageSource; } - @Inject(method = "activateMinecart(IIIZ)V", at = @At("HEAD")) - private void impl$onActivateSetPrimeCauseNotifier(final int x, final int y, final int z, final boolean receivingPower, final CallbackInfo ci) { + @Inject(method = "activateMinecart(Lnet/minecraft/server/level/ServerLevel;IIIZ)V", at = @At("HEAD")) + private void impl$onActivateSetPrimeCauseNotifier(final ServerLevel level, final int x, final int y, final int z, final boolean receivingPower, final CallbackInfo ci) { if (((LevelBridge) this.shadow$level()).bridge$isFake()) { return; } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/LevelMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/LevelMixin.java index 56621141ff3..2b2139caaa4 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/LevelMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/LevelMixin.java @@ -28,27 +28,14 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Holder; import net.minecraft.core.RegistryAccess; -import net.minecraft.core.registries.Registries; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtOps; import net.minecraft.util.ProblemReporter; import net.minecraft.util.RandomSource; import net.minecraft.util.datafix.DataFixers; import net.minecraft.util.datafix.fixes.References; -import net.minecraft.world.DifficultyInstance; -import net.minecraft.world.entity.EntitySpawnReason; -import net.minecraft.world.entity.LightningBolt; -import net.minecraft.world.entity.Mob; -import net.minecraft.world.entity.decoration.ArmorStand; -import net.minecraft.world.entity.decoration.HangingEntity; -import net.minecraft.world.entity.decoration.Painting; -import net.minecraft.world.entity.item.ItemEntity; -import net.minecraft.world.entity.projectile.ThrownEnderpearl; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; -import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.entity.TickingBlockEntity; import net.minecraft.world.level.chunk.LevelChunk; import net.minecraft.world.level.dimension.DimensionType; @@ -58,12 +45,9 @@ import net.minecraft.world.phys.AABB; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; -import org.spongepowered.api.ResourceKey; -import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.persistence.DataContainer; import org.spongepowered.api.entity.Entity; import org.spongepowered.api.entity.EntityType; -import org.spongepowered.api.entity.projectile.EnderPearl; import org.spongepowered.api.registry.RegistryTypes; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; @@ -73,13 +57,9 @@ import org.spongepowered.asm.mixin.injection.Coerce; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import org.spongepowered.common.SpongeCommon; -import org.spongepowered.common.accessor.world.entity.MobAccessor; -import org.spongepowered.common.accessor.world.entity.item.FallingBlockEntityAccessor; import org.spongepowered.common.bridge.data.VanishableBridge; import org.spongepowered.common.bridge.world.level.LevelBridge; import org.spongepowered.common.data.persistence.NBTTranslator; -import org.spongepowered.common.entity.projectile.UnknownProjectileSource; import org.spongepowered.common.util.Constants; import org.spongepowered.common.util.DataUtil; import org.spongepowered.math.vector.Vector3d; @@ -105,7 +85,6 @@ public abstract class LevelMixin implements LevelBridge, LevelAccessor { @Shadow public abstract net.minecraft.resources.ResourceKey shadow$dimension(); @Shadow public abstract DimensionType shadow$dimensionType(); @Shadow public abstract LevelChunk shadow$getChunkAt(BlockPos p_175726_1_); - @Shadow public abstract DifficultyInstance shadow$getCurrentDifficultyAt(BlockPos p_175649_1_); @Shadow public abstract boolean shadow$isRaining(); @Shadow public abstract net.minecraft.world.level.block.entity.@Nullable BlockEntity shadow$getBlockEntity(BlockPos p_175625_1_); @Shadow public abstract RegistryAccess shadow$registryAccess(); @@ -187,74 +166,6 @@ public abstract class LevelMixin implements LevelBridge, LevelAccessor { return (E) createdEntity; } - @Override - @SuppressWarnings("unchecked") - public E bridge$createEntity(final EntityType type, final Vector3d position, final boolean naturally) throws IllegalArgumentException, IllegalStateException { - if (type == net.minecraft.world.entity.EntityType.PLAYER) { - // Unable to construct these - throw new IllegalArgumentException("A Player cannot be created by the API!"); - } - - net.minecraft.world.entity.Entity entity = null; - final double x = position.x(); - final double y = position.y(); - final double z = position.z(); - final net.minecraft.world.level.Level thisWorld = (net.minecraft.world.level.Level) (Object) this; - // Not all entities have a single World parameter as their constructor - if (type == net.minecraft.world.entity.EntityType.LIGHTNING_BOLT) { - entity = net.minecraft.world.entity.EntityType.LIGHTNING_BOLT.create(thisWorld, EntitySpawnReason.EVENT); - entity.snapTo(x, y, z); - ((LightningBolt) entity).setVisualOnly(false); - } - // TODO - archetypes should solve the problem of calling the correct constructor - if (type == net.minecraft.world.entity.EntityType.ENDER_PEARL) { - final ArmorStand tempEntity = new ArmorStand(thisWorld, x, y, z); - tempEntity.setPos(tempEntity.getX(), tempEntity.getY() - tempEntity.getEyeHeight(), tempEntity.getZ()); - entity = new ThrownEnderpearl(thisWorld, tempEntity, Items.ENDER_PEARL.getDefaultInstance()); - ((EnderPearl) entity).offer(Keys.SHOOTER, UnknownProjectileSource.UNKNOWN); - } - // Some entities need to have non-null fields (and the easiest way to - // set them is to use the more specialised constructor). - if (type == net.minecraft.world.entity.EntityType.FALLING_BLOCK) { - entity = FallingBlockEntityAccessor.invoker$new(thisWorld, x, y, z, Blocks.SAND.defaultBlockState()); - } - if (type == net.minecraft.world.entity.EntityType.ITEM) { - entity = new ItemEntity(thisWorld, x, y, z, new ItemStack(Blocks.STONE)); - } - - if (entity == null) { - final ResourceKey key = (ResourceKey) (Object) SpongeCommon.vanillaRegistry(Registries.ENTITY_TYPE).getKey((net.minecraft.world.entity.EntityType) type); - try { - entity = ((net.minecraft.world.entity.EntityType) type).create(thisWorld, EntitySpawnReason.EVENT); - entity.snapTo(x, y, z); - } catch (final Exception e) { - throw new RuntimeException("There was an issue attempting to construct " + key, e); - } - } - - // TODO - replace this with an actual check - - if (entity instanceof HangingEntity) { - if (!((HangingEntity) entity).survives()) { - throw new IllegalArgumentException("Hanging entity does not survive at the given position: " + position); - } - } - - if (naturally && entity instanceof Mob) { - // Adding the default equipment - final DifficultyInstance difficulty = this.shadow$getCurrentDifficultyAt(new BlockPos((int) x, (int) y, (int) z)); - ((MobAccessor) entity).invoker$populateDefaultEquipmentSlots(this.random, difficulty); - } - - if (entity instanceof Painting) { - // This is default when art is null when reading from NBT, could - // choose a random art instead? - // TODO ? ((Painting) entity).motive = Motive.KEBAB; - } - - return (E) entity; - } - @Inject(method = { "getEntities(Lnet/minecraft/world/entity/Entity;Lnet/minecraft/world/phys/AABB;Ljava/util/function/Predicate;)Ljava/util/List;", "getEntities(Lnet/minecraft/world/level/entity/EntityTypeTest;Lnet/minecraft/world/phys/AABB;Ljava/util/function/Predicate;)Ljava/util/List;", diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/block/entity/CommandBlockEntityMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/block/entity/CommandBlockEntityMixin.java index 549e45c8cb1..5d0547ace32 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/block/entity/CommandBlockEntityMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/block/entity/CommandBlockEntityMixin.java @@ -25,6 +25,7 @@ package org.spongepowered.common.mixin.core.world.level.block.entity; import net.minecraft.commands.CommandSourceStack; +import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.BaseCommandBlock; import net.minecraft.world.level.block.entity.CommandBlockEntity; import org.spongepowered.api.event.Cause; @@ -33,15 +34,18 @@ import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.common.SpongeCommon; import org.spongepowered.common.accessor.world.level.BaseCommandBlockAccessor; import org.spongepowered.common.bridge.commands.CommandSourceProviderBridge; import org.spongepowered.common.bridge.permissions.SubjectBridge; // TODO: dualspiral - should this go on the child CommandBlockLogic? @Mixin(CommandBlockEntity.class) -public abstract class CommandBlockEntityMixin implements SubjectBridge, CommandSourceProviderBridge { +public abstract class CommandBlockEntityMixin extends BlockEntityMixin implements SubjectBridge, CommandSourceProviderBridge { + // @formatter:off @Shadow @Final private BaseCommandBlock commandBlock; + // @formatter:on @Override public String bridge$getSubjectCollectionIdentifier() { @@ -55,7 +59,13 @@ public abstract class CommandBlockEntityMixin implements SubjectBridge, CommandS @Override public CommandSourceStack bridge$getCommandSource(final Cause cause) { - return this.commandBlock.createCommandSourceStack((((BaseCommandBlockAccessor) this.commandBlock).invoker$createSource())); + if (this.level instanceof ServerLevel sl) { + return this.commandBlock.createCommandSourceStack(sl, (((BaseCommandBlockAccessor) this.commandBlock).invoker$createSource(sl))); + } + return this.commandBlock.createCommandSourceStack( + SpongeCommon.server().overworld(), + (((BaseCommandBlockAccessor) this.commandBlock).invoker$createSource(SpongeCommon.server().overworld())) + ); } } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/block/entity/CommandBlockEntity_Mixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/block/entity/CommandBlockEntity_Mixin.java index 3d54e86e9f4..c3ab676dcb3 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/block/entity/CommandBlockEntity_Mixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/block/entity/CommandBlockEntity_Mixin.java @@ -24,12 +24,19 @@ */ package org.spongepowered.common.mixin.core.world.level.block.entity; +import net.kyori.adventure.audience.MessageType; +import net.kyori.adventure.identity.Identity; +import net.kyori.adventure.text.Component; +import net.minecraft.commands.CommandSourceStack; import net.minecraft.world.level.block.entity.CommandBlockEntity; +import org.checkerframework.checker.nullness.qual.NonNull; +import org.spongepowered.api.event.Cause; import org.spongepowered.api.service.permission.Subject; import org.spongepowered.api.service.permission.SubjectProxy; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.common.adventure.SpongeAdventure; import org.spongepowered.common.mixin.core.world.BaseCommandBlockMixin; @Mixin(targets = "net.minecraft.world.level.block.entity.CommandBlockEntity$1") @@ -43,4 +50,25 @@ public abstract class CommandBlockEntity_Mixin extends BaseCommandBlockMixin imp public Subject subject() { return (Subject) this.this$0; } + + @Override + public CommandSourceStack bridge$getCommandSource(final Cause cause) { + if (!(this.this$0.getLevel() instanceof net.minecraft.server.level.ServerLevel serverLevel)) { + return null; + } + return this.createCommandSourceStack(serverLevel, this.shadow$createSource(serverLevel)); + } + + @Override + @SuppressWarnings({"deprecation", "UnstableApiUsage"}) + public void sendMessage(final @NonNull Identity identity, final @NonNull Component message, final @NonNull MessageType type) { + if (!(this.this$0.getLevel() instanceof net.minecraft.server.level.ServerLevel serverLevel)) { + return; + } + final var source = this.shadow$createSource(serverLevel); + if (source == null) { + return; + } + source.sendSystemMessage(SpongeAdventure.asVanilla(message)); + } } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/storage/PrimaryLevelDataMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/storage/PrimaryLevelDataMixin.java index bee0076bc00..ca3971b549d 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/storage/PrimaryLevelDataMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/storage/PrimaryLevelDataMixin.java @@ -47,6 +47,7 @@ import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.Difficulty; +import net.minecraft.world.level.GameRules; import net.minecraft.world.level.GameType; import net.minecraft.world.level.LevelSettings; import net.minecraft.world.level.chunk.ChunkGenerator; @@ -67,7 +68,6 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Redirect; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import org.spongepowered.common.accessor.server.MinecraftServerAccessor; import org.spongepowered.common.accessor.world.level.LevelSettingsAccessor; import org.spongepowered.common.bridge.data.DataCompoundHolder; import org.spongepowered.common.bridge.world.level.dimension.LevelStemBridge; @@ -291,7 +291,7 @@ public abstract class PrimaryLevelDataMixin implements ServerLevelData, WorldDat } else if (server.isSingleplayer()) { level.setSpawnSettings(difficulty != Difficulty.PEACEFUL); } else { - level.setSpawnSettings(((MinecraftServerAccessor) server).invoker$isSpawningMonsters()); + level.setSpawnSettings(server.getWorldData().getGameRules().getBoolean(GameRules.RULE_SPAWN_MONSTERS)); } level.players().forEach(player -> player.connection.send(new ClientboundChangeDifficultyPacket(difficulty, isLocked))); diff --git a/src/mixins/java/org/spongepowered/common/mixin/tracker/util/thread/BlockableEventLoopMixin_Tracker.java b/src/mixins/java/org/spongepowered/common/mixin/tracker/util/thread/BlockableEventLoopMixin_Tracker.java index da8b8c93d59..337350d5276 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/tracker/util/thread/BlockableEventLoopMixin_Tracker.java +++ b/src/mixins/java/org/spongepowered/common/mixin/tracker/util/thread/BlockableEventLoopMixin_Tracker.java @@ -24,10 +24,11 @@ */ package org.spongepowered.common.mixin.tracker.util.thread; +import com.llamalad7.mixinextras.injector.wrapoperation.Operation; +import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import net.minecraft.util.thread.BlockableEventLoop; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; import org.spongepowered.common.event.tracking.PhaseTracker; import org.spongepowered.common.event.tracking.phase.plugin.BasicPluginContext; import org.spongepowered.common.event.tracking.phase.plugin.PluginPhase; @@ -35,23 +36,23 @@ @Mixin(BlockableEventLoop.class) public abstract class BlockableEventLoopMixin_Tracker { - @Redirect(method = "execute", + @WrapOperation(method = "doRunTask", at = @At( value = "INVOKE", target = "Ljava/lang/Runnable;run()V", remap = false)) - private void tracker$callOnMainThreadWithPhaseState(final Runnable runnable) { + private void tracker$callOnMainThreadWithPhaseState(Runnable instance, Operation original) { // This method can be called async while server is stopping // TODO find why this cause a runaway phase during shutdown of the test server if (this.tracker$isServerAndIsServerStopped()/* && !PlatformHooks.INSTANCE.getGeneralHooks().onServerThread() */) { - runnable.run(); + original.call(instance); return; } try (final BasicPluginContext context = PluginPhase.State.SCHEDULED_TASK.createPhaseContext(PhaseTracker.getInstance()) - .source(runnable)) { + .source(instance)) { context.buildAndSwitch(); - runnable.run(); + original.call(instance); } } diff --git a/src/mixins/resources/mixins.sponge.api.json b/src/mixins/resources/mixins.sponge.api.json index 15355cba0b5..2c680abfd3a 100644 --- a/src/mixins/resources/mixins.sponge.api.json +++ b/src/mixins/resources/mixins.sponge.api.json @@ -200,6 +200,9 @@ "minecraft.world.entity.animal.horse.TraderLlamaMixin_API", "minecraft.world.entity.animal.horse.VariantMixin_API", "minecraft.world.entity.animal.horse.ZombieHorseMixin_API", + "minecraft.world.entity.animal.nautilus.AbstractNautilusMixin_API", + "minecraft.world.entity.animal.nautilus.NautilusMixin_API", + "minecraft.world.entity.animal.nautilus.ZombieNautilusMixin_API", "minecraft.world.entity.animal.sheep.SheepMixin_API", "minecraft.world.entity.animal.sniffer.SnifferMixin_API", "minecraft.world.entity.animal.wolf.WolfMixin_API", @@ -386,10 +389,10 @@ "minecraft.world.level.biome.MobSpawnSettings_MobSpawnCostMixin_API", "minecraft.world.level.biome.MultiNoiseBiomeSourceMixin_API", "minecraft.world.level.biome.TheEndBiomeSourceMixin_API", + "minecraft.world.level.block.CopperGolemStatueBlock_PoseMixin_API", "minecraft.world.level.block.MirrorMixin_API", "minecraft.world.level.block.PortalMixin_API", "minecraft.world.level.block.RotationMixin_API", - "minecraft.world.level.block.CopperGolemStatueBlock_PoseMixin_API", "minecraft.world.level.block.WeatheringCopper_WeatherStateMixin_API", "minecraft.world.level.block.entity.AbstractFurnaceBlockEntityMixin_API", "minecraft.world.level.block.entity.BannerBlockEntityMixin_API", diff --git a/src/mixins/resources/mixins.sponge.core.json b/src/mixins/resources/mixins.sponge.core.json index 518e6d95987..11a55718acd 100644 --- a/src/mixins/resources/mixins.sponge.core.json +++ b/src/mixins/resources/mixins.sponge.core.json @@ -64,7 +64,6 @@ "server.bossevents.CustomBossEventMixin", "server.commands.BossBarCommandsMixin", "server.commands.DifficultyCommandMixin", - "server.commands.GameRuleCommandMixin", "server.commands.KickCommandMixin", "server.commands.SaveAllCommandMixin", "server.commands.TeleportCommandMixin", diff --git a/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/server/ReloadableServerResourcesMixin_Vanilla.java b/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/server/ReloadableServerResourcesMixin_Vanilla.java index e1a7b2c7376..2710e82987a 100644 --- a/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/server/ReloadableServerResourcesMixin_Vanilla.java +++ b/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/server/ReloadableServerResourcesMixin_Vanilla.java @@ -33,6 +33,7 @@ import net.minecraft.server.RegistryLayer; import net.minecraft.server.ReloadableServerResources; import net.minecraft.server.packs.resources.ResourceManager; +import net.minecraft.server.permissions.PermissionSet; import net.minecraft.world.flag.FeatureFlagSet; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -44,11 +45,15 @@ @Mixin(ReloadableServerResources.class) public abstract class ReloadableServerResourcesMixin_Vanilla { - @WrapOperation(method = "lambda$loadResources$1", at = @At(value = "NEW", target = "(Lnet/minecraft/core/LayeredRegistryAccess;Lnet/minecraft/core/HolderLookup$Provider;Lnet/minecraft/world/flag/FeatureFlagSet;Lnet/minecraft/commands/Commands$CommandSelection;Ljava/util/List;I)Lnet/minecraft/server/ReloadableServerResources;")) - private static ReloadableServerResources impl$onCreateResources(final LayeredRegistryAccess $$0, final HolderLookup.Provider $$1, final FeatureFlagSet $$2, - final Commands.CommandSelection $$3, final List $$4, final int $$5, final Operation original, final @Local(argsOnly = true) ResourceManager resourceManager) { + @WrapOperation(method = "lambda$loadResources$1", at = @At(value = "NEW", target = "(Lnet/minecraft/core/LayeredRegistryAccess;Lnet/minecraft/core/HolderLookup$Provider;Lnet/minecraft/world/flag/FeatureFlagSet;Lnet/minecraft/commands/Commands$CommandSelection;Ljava/util/List;Lnet/minecraft/server/permissions/PermissionSet;)Lnet/minecraft/server/ReloadableServerResources;")) + private static ReloadableServerResources impl$onCreateResources( + final LayeredRegistryAccess $$0, final HolderLookup.Provider $$1, final FeatureFlagSet $$2, + final Commands.CommandSelection $$3, final List $$4, final PermissionSet $$5, + final Operation original, final @Local(argsOnly = true) ResourceManager resourceManager + ) { final ReloadableServerResources instance = original.call($$0, $$1, $$2, $$3, $$4, $$5); - if (instance.getCommands().getDispatcher() instanceof final DelegatingCommandDispatcher delegatingCommandDispatcher) { + if (instance.getCommands().getDispatcher() instanceof + final DelegatingCommandDispatcher delegatingCommandDispatcher) { delegatingCommandDispatcher.permissionService(((ResourceManagerBridge) resourceManager).bridge$services().permissionService()); } return instance; From 7efb04b38fec2cf11c1d483b69c258f8abecf9f0 Mon Sep 17 00:00:00 2001 From: Gabriel Harris-Rouquette Date: Fri, 10 Oct 2025 19:59:57 -0400 Subject: [PATCH 02/13] chore(data): reformat and clean up `DataTest.java` --- .../org/spongepowered/test/data/DataTest.java | 101 +++++++++--------- 1 file changed, 50 insertions(+), 51 deletions(-) diff --git a/testplugins/src/main/java/org/spongepowered/test/data/DataTest.java b/testplugins/src/main/java/org/spongepowered/test/data/DataTest.java index afaa8009f80..c3c4c1e3bfe 100644 --- a/testplugins/src/main/java/org/spongepowered/test/data/DataTest.java +++ b/testplugins/src/main/java/org/spongepowered/test/data/DataTest.java @@ -139,7 +139,7 @@ import java.util.Set; @Plugin("datatest") -public final class DataTest { +public final class DataTest { private final PluginContainer plugin; @@ -159,32 +159,32 @@ private void onRegisterCommand(final RegisterCommandEvent return CommandResult.success(); }) .build() - , "datatest"); + , "datatest"); final Parameter.Value mimicParameter = Parameter.string().key("mimic_username").optional().build(); event.register(this.plugin, Command - .builder() - .addParameter(mimicParameter) - .executor(context -> { - final ServerPlayer player = context.cause().first(ServerPlayer.class).get(); - final String mimicUsername = context.requireOne(mimicParameter); - this.setPlayerSkin(player, mimicUsername); - return CommandResult.success(); - }) - .build() - , "mimic" + .builder() + .addParameter(mimicParameter) + .executor(context -> { + final ServerPlayer player = context.cause().first(ServerPlayer.class).get(); + final String mimicUsername = context.requireOne(mimicParameter); + this.setPlayerSkin(player, mimicUsername); + return CommandResult.success(); + }) + .build() + , "mimic" ); event.register(this.plugin, Command - .builder() - .addParameter(mimicParameter) - .executor(context -> { - final ServerPlayer player = context.cause().first(ServerPlayer.class).get(); - this.mimic = context.requireOne(mimicParameter); - player.kick(); - return CommandResult.success(); - }) - .build() - , "mimickick" + .builder() + .addParameter(mimicParameter) + .executor(context -> { + final ServerPlayer player = context.cause().first(ServerPlayer.class).get(); + this.mimic = context.requireOne(mimicParameter); + player.kick(); + return CommandResult.success(); + }) + .build() + , "mimickick" ); } @@ -230,15 +230,15 @@ public void testData(final ServerPlayer player) { this.checkOfferData(minecartEntity, Keys.AIRBORNE_VELOCITY_MODIFIER, new Vector3d(2, 0.5, 2)); // falls at ~50% flies at -200% final Entity zombifiedPiglin = world.createEntity(EntityTypes.ZOMBIFIED_PIGLIN.get(), position); - this.checkGetData(zombifiedPiglin, Keys.ANGER_LEVEL, 0); - this.checkOfferData(zombifiedPiglin, Keys.ANGER_LEVEL, 10); + this.checkGetData(zombifiedPiglin, Keys.ANGER_LEVEL, (long) 0); + this.checkOfferData(zombifiedPiglin, Keys.ANGER_LEVEL, (long) 10); final ItemStack goldenApple = ItemStack.of(ItemTypes.ENCHANTED_GOLDEN_APPLE); final List notchAppleEffects = Arrays.asList( - PotionEffect.builder().potionType(PotionEffectTypes.REGENERATION).amplifier(1).ambient(false).duration(Ticks.of(400)).build(), - PotionEffect.builder().potionType(PotionEffectTypes.RESISTANCE).amplifier(0).ambient(false).duration(Ticks.of(6000)).build(), - PotionEffect.builder().potionType(PotionEffectTypes.FIRE_RESISTANCE).amplifier(0).ambient(false).duration(Ticks.of(6000)).build(), - PotionEffect.builder().potionType(PotionEffectTypes.ABSORPTION).amplifier(3).ambient(false).duration(Ticks.of(2400)).build()); + PotionEffect.builder().potionType(PotionEffectTypes.REGENERATION).amplifier(1).ambient(false).duration(Ticks.of(400)).build(), + PotionEffect.builder().potionType(PotionEffectTypes.RESISTANCE).amplifier(0).ambient(false).duration(Ticks.of(6000)).build(), + PotionEffect.builder().potionType(PotionEffectTypes.FIRE_RESISTANCE).amplifier(0).ambient(false).duration(Ticks.of(6000)).build(), + PotionEffect.builder().potionType(PotionEffectTypes.ABSORPTION).amplifier(3).ambient(false).duration(Ticks.of(2400)).build()); this.checkOfferListData(goldenApple, Keys.APPLIED_ENCHANTMENTS, Arrays.asList(Enchantment.of(EnchantmentTypes.SHARPNESS, 5))); this.checkOfferListData(goldenApple, Keys.APPLIED_ENCHANTMENTS, Arrays.asList(Enchantment.of(EnchantmentTypes.PROTECTION, 4))); @@ -274,10 +274,10 @@ public void testData(final ServerPlayer player) { final ItemStack shieldStack = ItemStack.of(ItemTypes.SHIELD); this.checkGetListData(shieldStack, Keys.BANNER_PATTERN_LAYERS, Collections.emptyList()); - this.checkOfferListData(shieldStack, Keys.BANNER_PATTERN_LAYERS,pattern); + this.checkOfferListData(shieldStack, Keys.BANNER_PATTERN_LAYERS, pattern); final ItemStack bannerStack = ItemStack.of(ItemTypes.RED_BANNER); - this.checkGetListData(bannerStack, Keys.BANNER_PATTERN_LAYERS, Collections.emptyList()); + this.checkGetListData(bannerStack, Keys.BANNER_PATTERN_LAYERS, Collections.emptyList()); this.checkOfferListData(bannerStack, Keys.BANNER_PATTERN_LAYERS, pattern); world.setBlock(blockPos, BlockTypes.RED_BANNER.get().defaultState()); @@ -286,8 +286,8 @@ public void testData(final ServerPlayer player) { // Keys.BASE_COLOR - this.checkGetData(sheep, Keys.BASE_SIZE, (double)0.9f); - this.checkGetData(player, Keys.BASE_SIZE, (double)0.6f); + this.checkGetData(sheep, Keys.BASE_SIZE, (double) 0.9f); + this.checkGetData(player, Keys.BASE_SIZE, (double) 0.6f); final Entity donkey = world.createEntity(EntityTypes.DONKEY.get(), position); final Entity wolf = world.createEntity(EntityTypes.WOLF.get(), position); @@ -313,7 +313,7 @@ public void testData(final ServerPlayer player) { // TODO Keys.BLOCK_LIGHT - final Entity fallingBlock = world.createEntity(EntityTypes.FALLING_BLOCK.get(), position.add(0,5,0)); + final Entity fallingBlock = world.createEntity(EntityTypes.FALLING_BLOCK.get(), position.add(0, 5, 0)); final BlockState sandState = BlockTypes.SAND.get().defaultState(); this.checkOfferData(fallingBlock, Keys.BLOCK_STATE, sandState); this.checkOfferData(minecartEntity, Keys.BLOCK_STATE, dirtState); @@ -485,14 +485,14 @@ public void testData(final ServerPlayer player) { // TODO DisplayNames include font this.checkGetData(jungleAxe, Keys.DISPLAY_NAME, - Component.translatable("chat.square_brackets").args(Component.empty().append(Component.text("Jungle Axe")).decorate(TextDecoration.ITALIC)) - .color(NamedTextColor.WHITE).hoverEvent(jungleAxe.asImmutable().asHoverEvent())); + Component.translatable("chat.square_brackets").args(Component.empty().append(Component.text("Jungle Axe")).decorate(TextDecoration.ITALIC)) + .color(NamedTextColor.WHITE).hoverEvent(jungleAxe.asImmutable().asHoverEvent())); this.checkGetData(shulkerBullet, Keys.DISPLAY_NAME, Component.text("Angry Shulker Bullet") - .hoverEvent(HoverEvent.showEntity(ResourceKey.minecraft("shulker_bullet"), shulkerBullet.uniqueId(), Component.text("Angry Shulker Bullet"))) - .insertion(shulkerBullet.uniqueId().toString())); + .hoverEvent(HoverEvent.showEntity(ResourceKey.minecraft("shulker_bullet"), shulkerBullet.uniqueId(), Component.text("Angry Shulker Bullet"))) + .insertion(shulkerBullet.uniqueId().toString())); this.checkGetData(sheep, Keys.DISPLAY_NAME, Component.text("A sheep") - .hoverEvent(HoverEvent.showEntity(ResourceKey.minecraft("sheep"), sheep.uniqueId(), Component.text("A sheep"))) - .insertion(sheep.uniqueId().toString())); // Set with CUSTOM_NAME + .hoverEvent(HoverEvent.showEntity(ResourceKey.minecraft("sheep"), sheep.uniqueId(), Component.text("A sheep"))) + .insertion(sheep.uniqueId().toString())); // Set with CUSTOM_NAME world.setBlock(blockPos, BlockTypes.CHEST.get().defaultState()); this.checkGetData(location, Keys.CUSTOM_NAME, null); this.checkGetData(location, Keys.DISPLAY_NAME, Component.translatable("container.chest")); @@ -554,8 +554,8 @@ public void testData(final ServerPlayer player) { this.checkOfferData(tntEntity, Keys.EXPLOSION_RADIUS, 1f); - this.checkGetData(player, Keys.EYE_HEIGHT, (double)1.62f); - this.checkGetData(sheep, Keys.EYE_HEIGHT, (double)(1.3f * 0.95f)); + this.checkGetData(player, Keys.EYE_HEIGHT, (double) 1.62f); + this.checkGetData(sheep, Keys.EYE_HEIGHT, (double) (1.3f * 0.95f)); this.checkGetData(sheep, Keys.EYE_POSITION, position.add(0, (double) (1.3f * 0.95f), 0)); @@ -594,7 +594,7 @@ public void testData(final ServerPlayer player) { // TODO Keys.FLUID_TANK_CONTENTS - this.checkGetData(player, Keys.FLYING_SPEED, (double)0.05f); + this.checkGetData(player, Keys.FLYING_SPEED, (double) 0.05f); this.checkOfferData(player, Keys.FOOD_LEVEL, 0); this.checkOfferData(player, Keys.FOOD_LEVEL, 20); @@ -1292,9 +1292,9 @@ public void testData(final ServerPlayer player) { // Keys.TRACKS_OUTPUT final TradeOffer tradeOffer = TradeOffer.builder() - .firstBuyingItem(ItemStack.of(ItemTypes.EMERALD)) - .sellingItem(jungleAxe) - .build(); + .firstBuyingItem(ItemStack.of(ItemTypes.EMERALD)) + .sellingItem(jungleAxe) + .build(); this.checkOfferListData(villager, Keys.TRADE_OFFERS, Arrays.asList(tradeOffer)); final Entity hooman = world.createEntity(EntityTypes.HUMAN.get(), position); @@ -1421,11 +1421,11 @@ private void checkGetWeightedData(final DataHolder holder, final Key actual = gotValue.get().get(new Random()); if (!Objects.deepEquals(actual.toArray(), expected.toArray())) { this.plugin.logger().error("Value differs on {} for {}.\nExpected: {}\nActual: {}", DataTest.getHolderName(holder), - key.key().asString(), expected, actual); + key.key().asString(), expected, actual); } } else { this.plugin.logger().error("Value is missing on {} for {}.\nExpected: {}", DataTest.getHolderName(holder), - key.key().asString(), expected); + key.key().asString(), expected); } } @@ -1449,7 +1449,7 @@ private void checkData(final DataHolder holder, final String key, final T ex if (actualValue != null) { if (!Objects.equals(actualValue, expectedValue)) { this.plugin.logger().error("Value differs on {} for {}.\nExpected: {}\nActual: {}", DataTest.getHolderName(holder), key, - expectedValue, actualValue); + expectedValue, actualValue); } } else if (expectedValue != null) { this.plugin.logger().error("Value is missing on {} for {}.\nExpected: {}", DataTest.getHolderName(holder), key, expectedValue); @@ -1466,11 +1466,10 @@ private static String getHolderName(final DataHolder holder) { return String.format("%s[%s]", holder.getClass().getSimpleName(), value); } - public void setPlayerSkin(final DataHolder.Mutable player, final String mimicUsername) - { + public void setPlayerSkin(final DataHolder.Mutable player, final String mimicUsername) { final GameProfile profile = Sponge.server().gameProfileManager().profile(mimicUsername).join(); final Optional skinProperty = - profile.properties().stream().filter(prop -> prop.name().equals(ProfileProperty.TEXTURES)).findFirst(); + profile.properties().stream().filter(prop -> prop.name().equals(ProfileProperty.TEXTURES)).findFirst(); player.offer(Keys.SKIN_PROFILE_PROPERTY, skinProperty.get()); } } From 4cbcea8bd5b272835946653e7e3f351d6cf57a8d Mon Sep 17 00:00:00 2001 From: Gabriel Harris-Rouquette Date: Fri, 10 Oct 2025 20:00:39 -0400 Subject: [PATCH 03/13] fix(server): fix player crash on login with effects Fixes: MC-302672 See: https://bugs.mojang.com/browse/MC-302672 --- .../mixin/core/server/level/ServerPlayerMixin.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ServerPlayerMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ServerPlayerMixin.java index ec91e056274..fa85628ffaf 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ServerPlayerMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ServerPlayerMixin.java @@ -1052,4 +1052,15 @@ private boolean isPvpAllowed() { private boolean impl$skipUnserializableRootVehicle(final Entity instance) { return instance.hasExactlyOnePlayerPassenger() && !((TransientBridge) instance).bridge$isTransient(); } + + /** + * Fixes MC-302672 + */ + @WrapOperation(method = "onEffectAdded", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/network/ServerGamePacketListenerImpl;send(Lnet/minecraft/network/protocol/Packet;)V")) + private void impl$onEffectAdded(ServerGamePacketListenerImpl instance, Packet packet, Operation original) { + if (instance == null) { + return; + } + original.call(instance, packet); + } } From 2943f8e1623a11275b6b122ac2e3e40b805e8ee0 Mon Sep 17 00:00:00 2001 From: Gabriel Harris-Rouquette Date: Thu, 4 Dec 2025 21:55:08 -0800 Subject: [PATCH 04/13] feat(minecraft): update towards 25w42a Updated Minecraft version to 25w42a, incorporating upstream changes related to environment attribute mapping, biome attributes, and world rules. Adjusted various APIs and mixins to support new attribute-based configurations. --- gradle.properties | 2 +- .../data/provider/world/WorldTypeData.java | 12 +++--- .../data/provider/world/biome/BiomeData.java | 31 +++++++++++---- .../scoreboard/SpongeScoreFormatFactory.java | 4 +- .../world/biome/SpongeBiomeBuilder.java | 34 +++++++++++------ .../ambient/SpongeParticleConfigFactory.java | 4 +- .../ambient/SpongeSoundConfigFactory.java | 4 +- .../world/server/SpongeWorldTypeBuilder.java | 19 +++++++--- .../api/minecraft/sounds/MusicMixin_API.java | 4 +- .../AmbientAdditionsSettingsMixin_API.java | 4 +- .../AmbientMoodSettingsMixin_API.java | 4 +- .../AmbientParticleSettingsMixin_API.java | 12 +++--- .../mixin/core/block/BedBlockMixin.java | 4 +- .../core/server/level/ServerPlayerMixin.java | 38 ++++++++----------- .../level/dimension/DimensionTypeMixin.java | 2 +- src/mixins/resources/mixins.sponge.api.json | 6 +-- .../client/gui/widget/MetadataPanel.java | 2 +- 17 files changed, 109 insertions(+), 77 deletions(-) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/{level/biome => attribute}/AmbientAdditionsSettingsMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/{level/biome => attribute}/AmbientMoodSettingsMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/{level/biome => attribute}/AmbientParticleSettingsMixin_API.java (87%) diff --git a/gradle.properties b/gradle.properties index 0730178be65..1555434b90c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ mixinConfigs=mixins.sponge.accessors.json,mixins.sponge.api.json,mixins.sponge.c mixins.sponge.entityactivation.json,mixins.sponge.exploit.json,mixins.sponge.inventory.json,mixins.sponge.movementcheck.json,\ mixins.sponge.tracker.json,mixins.sponge.ipforward.json,mixins.sponge.optimization.json,mixins.sponge.test.json -minecraftVersion=25w41a +minecraftVersion=25w42a recommendedVersion=0-SNAPSHOT org.gradle.dependency.verification.console=verbose diff --git a/src/main/java/org/spongepowered/common/data/provider/world/WorldTypeData.java b/src/main/java/org/spongepowered/common/data/provider/world/WorldTypeData.java index 70b27307881..6b47942df32 100644 --- a/src/main/java/org/spongepowered/common/data/provider/world/WorldTypeData.java +++ b/src/main/java/org/spongepowered/common/data/provider/world/WorldTypeData.java @@ -25,6 +25,8 @@ package org.spongepowered.common.data.provider.world; import net.minecraft.util.valueproviders.IntProvider; +import net.minecraft.world.attribute.BedRule; +import net.minecraft.world.attribute.EnvironmentAttributes; import net.minecraft.world.level.dimension.DimensionType; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.api.ResourceKey; @@ -54,7 +56,7 @@ public static void register(final DataProviderRegistrator registrator) { .create(Keys.WORLD_TYPE_EFFECT) .get(WorldTypeData::worldTypeEffect) .create(Keys.SCORCHING) - .get(DimensionType::ultraWarm) + .get(d -> d.attributes().applyModifier(EnvironmentAttributes.WATER_EVAPORATES, false)) .create(Keys.NATURAL_WORLD_TYPE) .get(DimensionType::natural) .create(Keys.COORDINATE_MULTIPLIER) @@ -64,17 +66,17 @@ public static void register(final DataProviderRegistrator registrator) { .create(Keys.HAS_CEILING) .get(DimensionType::hasCeiling) .create(Keys.PIGLIN_SAFE) - .get(DimensionType::piglinSafe) + .get(d -> d.attributes().applyModifier(EnvironmentAttributes.NETHER_PORTAL_SPAWNS_PIGLINS, false)) .create(Keys.BEDS_USABLE) - .get(DimensionType::bedWorks) + .get(d -> d.attributes().applyModifier(EnvironmentAttributes.BED_RULE, BedRule.CAN_SLEEP_WHEN_DARK).explodes()) .create(Keys.RESPAWN_ANCHOR_USABLE) - .get(DimensionType::respawnAnchorWorks) + .get(d -> d.attributes().applyModifier(EnvironmentAttributes.RESPAWN_ANCHOR_WORKS, false)) .create(Keys.INFINIBURN) .get(dimensionType -> (Tag) (Object) dimensionType.infiniburn()) .create(Keys.WORLD_FLOOR) .get(DimensionType::minY) .create(Keys.HAS_RAIDS) - .get(DimensionType::hasRaids) + .get(d -> d.attributes().applyModifier(EnvironmentAttributes.CAN_START_RAID, true)) .create(Keys.WORLD_HEIGHT) .get(DimensionType::height) .create(Keys.WORLD_LOGICAL_HEIGHT) diff --git a/src/main/java/org/spongepowered/common/data/provider/world/biome/BiomeData.java b/src/main/java/org/spongepowered/common/data/provider/world/biome/BiomeData.java index 30a3bffb721..c9c8ade65a1 100644 --- a/src/main/java/org/spongepowered/common/data/provider/world/biome/BiomeData.java +++ b/src/main/java/org/spongepowered/common/data/provider/world/biome/BiomeData.java @@ -26,6 +26,8 @@ import net.minecraft.core.Holder; import net.minecraft.util.random.Weighted; +import net.minecraft.world.attribute.AmbientSounds; +import net.minecraft.world.attribute.EnvironmentAttributes; import net.minecraft.world.entity.MobCategory; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.biome.BiomeGenerationSettings; @@ -88,13 +90,22 @@ public static void register(final DataProviderRegistrator registrator) { .create(Keys.NATURAL_SPAWNER_COST) .get(BiomeData::naturalSpawnerCost) .create(Keys.FOG_COLOR) - .get(h -> Color.ofRgb(h.getSpecialEffects().getFogColor())) + .get(h -> { + final var value = h.getAttributes().applyModifier(EnvironmentAttributes.FOG_COLOR, EnvironmentAttributes.FOG_COLOR.defaultValue()); + return Color.ofRgb(value); + }) .create(Keys.WATER_COLOR) .get(h -> Color.ofRgb(h.getSpecialEffects().getWaterColor())) .create(Keys.WATER_FOG_COLOR) - .get(h -> Color.ofRgb(h.getSpecialEffects().getWaterFogColor())) + .get(h -> { + final var value = h.getAttributes().applyModifier(EnvironmentAttributes.WATER_FOG_COLOR, EnvironmentAttributes.WATER_FOG_COLOR.defaultValue()); + return Color.ofRgb(value); + }) .create(Keys.SKY_COLOR) - .get(h -> Color.ofRgb(h.getSpecialEffects().getSkyColor())) + .get(h -> { + final var value = h.getAttributes().applyModifier(EnvironmentAttributes.SKY_COLOR, EnvironmentAttributes.SKY_COLOR.defaultValue()); + return Color.ofRgb(value); + }) .create(Keys.FOLIAGE_COLOR) .get(h -> h.getSpecialEffects().getFoliageColorOverride().map(Color::ofRgb).orElse(null)) .create(Keys.GRASS_COLOR) @@ -102,13 +113,19 @@ public static void register(final DataProviderRegistrator registrator) { .create(Keys.GRASS_COLOR_MODIFIER) .get(h -> (GrassColorModifier) (Object) h.getSpecialEffects().getGrassColorModifier()) .create(Keys.BACKGROUND_MUSIC) - .get(h -> h.getSpecialEffects().getBackgroundMusic().map(a -> a.unwrap()).flatMap(e -> e.stream().findFirst().map(Weighted::value)).map(SoundConfig.BackgroundMusic.class::cast).orElse(null)) + .get(h -> { + final var value = h.getAttributes().applyModifier(EnvironmentAttributes.BACKGROUND_MUSIC, EnvironmentAttributes.BACKGROUND_MUSIC.defaultValue()); + return (SoundConfig.BackgroundMusic) (Object) value; + }) .create(Keys.AMBIENT_ADDITIONAL_SOUND) - .get(h -> h.getSpecialEffects().getAmbientAdditionsSettings().map(SoundConfig.Additional.class::cast).orElse(null)) + .get(h -> { + final var value = h.getAttributes().applyModifier(EnvironmentAttributes.AMBIENT_SOUNDS, EnvironmentAttributes.AMBIENT_SOUNDS.defaultValue()); + return (SoundConfig.Additional) (Object) value; + }) .create(Keys.AMBIENT_MOOD) - .get(h -> h.getSpecialEffects().getAmbientMoodSettings().map(SoundConfig.Mood.class::cast).orElse(null)) + .get(h -> h.getAttributes().applyModifier(EnvironmentAttributes.AMBIENT_SOUNDS, AmbientSounds.EMPTY).mood().map(SoundConfig.Mood.class::cast).orElse(null)) .create(Keys.AMBIENT_PARTICLE) - .get(h -> h.getSpecialEffects().getAmbientParticleSettings().map(ParticleConfig.class::cast).orElse(null)) + .get(h -> h.getAttributes().applyModifier(EnvironmentAttributes.AMBIENT_PARTICLES,List.of()).stream().findFirst().map(ParticleConfig.class::cast).orElse(null)) .asImmutable(BiomeAccessor.class) .create(Keys.HUMIDITY) .get(h -> (double) h.accessor$climateSettings().downfall()) diff --git a/src/main/java/org/spongepowered/common/scoreboard/SpongeScoreFormatFactory.java b/src/main/java/org/spongepowered/common/scoreboard/SpongeScoreFormatFactory.java index 083d6f73c6c..0fd6ad58f7c 100644 --- a/src/main/java/org/spongepowered/common/scoreboard/SpongeScoreFormatFactory.java +++ b/src/main/java/org/spongepowered/common/scoreboard/SpongeScoreFormatFactory.java @@ -41,11 +41,11 @@ public ScoreFormat blank() { @Override public ScoreFormat fixed(final Component component) { - return (ScoreFormat) new FixedFormat(SpongeAdventure.asVanilla(component)); + return (ScoreFormat) (Object) new FixedFormat(SpongeAdventure.asVanilla(component)); } @Override public ScoreFormat styled(final Style style) { - return (ScoreFormat) new StyledFormat(SpongeAdventure.asVanilla(style)); + return (ScoreFormat) (Object) new StyledFormat(SpongeAdventure.asVanilla(style)); } } diff --git a/src/main/java/org/spongepowered/common/world/biome/SpongeBiomeBuilder.java b/src/main/java/org/spongepowered/common/world/biome/SpongeBiomeBuilder.java index 179d1ced86d..785b867e02d 100644 --- a/src/main/java/org/spongepowered/common/world/biome/SpongeBiomeBuilder.java +++ b/src/main/java/org/spongepowered/common/world/biome/SpongeBiomeBuilder.java @@ -27,9 +27,14 @@ import net.minecraft.core.Holder; import net.minecraft.sounds.Music; import net.minecraft.sounds.SoundEvent; +import net.minecraft.world.attribute.AmbientAdditionsSettings; +import net.minecraft.world.attribute.AmbientMoodSettings; +import net.minecraft.world.attribute.AmbientParticle; +import net.minecraft.world.attribute.AmbientSounds; +import net.minecraft.world.attribute.BackgroundMusic; +import net.minecraft.world.attribute.EnvironmentAttributeMap; +import net.minecraft.world.attribute.EnvironmentAttributes; import net.minecraft.world.entity.MobCategory; -import net.minecraft.world.level.biome.AmbientAdditionsSettings; -import net.minecraft.world.level.biome.AmbientParticleSettings; import net.minecraft.world.level.biome.BiomeGenerationSettings; import net.minecraft.world.level.biome.BiomeSpecialEffects; import net.minecraft.world.level.biome.MobSpawnSettings; @@ -117,19 +122,22 @@ public Biome build() { final Map> features = this.manipulator.getOrElse(Keys.FEATURES, Map.of()); final List carvers = this.manipulator.getOrElse(Keys.CARVERS, List.of()); + final var attributes = EnvironmentAttributeMap.builder(); + attributes.set(EnvironmentAttributes.FOG_COLOR, fogColor.rgb()) + .set(EnvironmentAttributes.WATER_FOG_COLOR, waterFogColor.rgb()) + .set(EnvironmentAttributes.SKY_COLOR, skyColor.rgb()); final BiomeSpecialEffects.Builder effectsBuilder = new BiomeSpecialEffects.Builder() - .fogColor(fogColor.rgb()) .waterColor(waterColor.rgb()) - .waterFogColor(waterFogColor.rgb()) - .skyColor(skyColor.rgb()) .grassColorModifier((BiomeSpecialEffects.GrassColorModifier) (Object) grassColorModifier); foliageColor.ifPresent(c -> effectsBuilder.foliageColorOverride(c.rgb())); grassColor.ifPresent(c -> effectsBuilder.grassColorOverride(c.rgb())); - particleSettings.ifPresent(ps -> effectsBuilder.ambientParticle((AmbientParticleSettings) (Object) ps)); - ambientSound.ifPresent(s -> effectsBuilder.ambientLoopSound(Holder.direct((SoundEvent) (Object) s))); - ambientMood.ifPresent(m -> effectsBuilder.ambientMoodSound((net.minecraft.world.level.biome.AmbientMoodSettings) (Object) m)); - additionalSound.ifPresent(s -> effectsBuilder.ambientAdditionsSound((AmbientAdditionsSettings) (Object) s)); - backgroundMusic.ifPresent(m -> effectsBuilder.backgroundMusic((Music) (Object) m)); + final var vanillaAmbientSound = new AmbientSounds( + ambientSound.map(SoundEvent.class::cast).map(Holder::direct), + ambientMood.map(AmbientMoodSettings.class::cast), + additionalSound.map(AmbientAdditionsSettings.class::cast).map(List::of).orElse(List.of())); + attributes.set(EnvironmentAttributes.AMBIENT_SOUNDS, vanillaAmbientSound); + + backgroundMusic.ifPresent(m -> attributes.set(EnvironmentAttributes.BACKGROUND_MUSIC, new BackgroundMusic((Music) (Object) m))); final MobSpawnSettings.Builder spawnerBuilder = new MobSpawnSettings.Builder() .creatureGenerationProbability(spawnChance.floatValue()); @@ -152,7 +160,11 @@ public Biome build() { .temperatureAdjustment((net.minecraft.world.level.biome.Biome.TemperatureModifier) (Object) temperatureModifier) .specialEffects(effectsBuilder.build()) .mobSpawnSettings(spawnerBuilder.build()) - .generationSettings(generationBuilder.build()); + .generationSettings(generationBuilder.build()) + .putAttributes(attributes.build()) + ; + particleSettings.ifPresent(ps -> vanillaBuilder.setAttribute(EnvironmentAttributes.AMBIENT_PARTICLES, List.of((AmbientParticle) (Object) ps))); + return (Biome) (Object) vanillaBuilder.build(); } } diff --git a/src/main/java/org/spongepowered/common/world/biome/ambient/SpongeParticleConfigFactory.java b/src/main/java/org/spongepowered/common/world/biome/ambient/SpongeParticleConfigFactory.java index fb9455c541e..6bc1657f8dd 100644 --- a/src/main/java/org/spongepowered/common/world/biome/ambient/SpongeParticleConfigFactory.java +++ b/src/main/java/org/spongepowered/common/world/biome/ambient/SpongeParticleConfigFactory.java @@ -25,7 +25,7 @@ package org.spongepowered.common.world.biome.ambient; import net.minecraft.core.particles.ParticleOptions; -import net.minecraft.world.level.biome.AmbientParticleSettings; +import net.minecraft.world.attribute.AmbientParticle; import org.spongepowered.api.effect.particle.ParticleType; import org.spongepowered.api.world.biome.ambient.ParticleConfig; @@ -33,6 +33,6 @@ public class SpongeParticleConfigFactory implements ParticleConfig.Factory { @Override public ParticleConfig of(final ParticleType type, final float probability) { - return (ParticleConfig) (Object) new AmbientParticleSettings(((ParticleOptions) type), probability); + return (ParticleConfig) (Object) new AmbientParticle(((ParticleOptions) type), probability); } } diff --git a/src/main/java/org/spongepowered/common/world/biome/ambient/SpongeSoundConfigFactory.java b/src/main/java/org/spongepowered/common/world/biome/ambient/SpongeSoundConfigFactory.java index 6d69000d327..7fcb108a956 100644 --- a/src/main/java/org/spongepowered/common/world/biome/ambient/SpongeSoundConfigFactory.java +++ b/src/main/java/org/spongepowered/common/world/biome/ambient/SpongeSoundConfigFactory.java @@ -27,8 +27,8 @@ import net.minecraft.core.Holder; import net.minecraft.sounds.Music; import net.minecraft.sounds.SoundEvent; -import net.minecraft.world.level.biome.AmbientAdditionsSettings; -import net.minecraft.world.level.biome.AmbientMoodSettings; +import net.minecraft.world.attribute.AmbientAdditionsSettings; +import net.minecraft.world.attribute.AmbientMoodSettings; import org.spongepowered.api.effect.sound.SoundType; import org.spongepowered.api.world.biome.ambient.SoundConfig; diff --git a/src/main/java/org/spongepowered/common/world/server/SpongeWorldTypeBuilder.java b/src/main/java/org/spongepowered/common/world/server/SpongeWorldTypeBuilder.java index acaee5eed11..b222d4f6358 100644 --- a/src/main/java/org/spongepowered/common/world/server/SpongeWorldTypeBuilder.java +++ b/src/main/java/org/spongepowered/common/world/server/SpongeWorldTypeBuilder.java @@ -26,6 +26,9 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.util.valueproviders.UniformInt; +import net.minecraft.world.attribute.BedRule; +import net.minecraft.world.attribute.EnvironmentAttributeMap; +import net.minecraft.world.attribute.EnvironmentAttributes; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.dimension.DimensionType; import org.checkerframework.checker.nullness.qual.NonNull; @@ -45,7 +48,6 @@ import org.spongepowered.common.data.SpongeDataManager; import org.spongepowered.common.data.provider.DataProviderLookup; -import java.util.Optional; import java.util.OptionalLong; public final class SpongeWorldTypeBuilder implements WorldType.Builder { @@ -106,16 +108,23 @@ public WorldType.Builder from(final WorldType type) { final SpongeDimensionTypes.SpongeDataSection spongeData = new SpongeDimensionTypes.SpongeDataSection(createDragonFight); try { + final var attributes = EnvironmentAttributeMap.builder(); + attributes.set(EnvironmentAttributes.PIGLINS_ZOMBIFY, !piglinSafe); + attributes.set(EnvironmentAttributes.BED_RULE, bedsUsable ? BedRule.CAN_SLEEP_WHEN_DARK : BedRule.EXPLODES); + attributes.set(EnvironmentAttributes.RESPAWN_ANCHOR_WORKS, respawnAnchorsUsable); + attributes.set(EnvironmentAttributes.CAN_START_RAID, hasRaids); final DimensionType dimensionType = new DimensionType(fixedTime == null ? OptionalLong.empty() : OptionalLong.of(fixedTime.asTicks().ticks()), - hasSkylight, hasCeiling, scorching, natural, coordinateMultiplier, - bedsUsable, respawnAnchorsUsable, + hasSkylight, + hasCeiling, + natural, coordinateMultiplier, floor, height, logicalHeight, ((TagBridge) infiniburn).bridge$asVanillaTag(), (ResourceLocation) (Object) effect.key(), ambientLighting, - Optional.empty(), - new DimensionType.MonsterSettings(piglinSafe, hasRaids, monsterSpawnLightTest, monsterSpawnBlockLightLimit)); + new DimensionType.MonsterSettings(monsterSpawnLightTest, monsterSpawnBlockLightLimit), + attributes.build() + ); if ((Object) dimensionType instanceof DimensionTypeBridge bridge) { bridge.bridge$decorateData(spongeData); } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/sounds/MusicMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/sounds/MusicMixin_API.java index c865d062e76..4484c81e603 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/sounds/MusicMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/sounds/MusicMixin_API.java @@ -41,7 +41,7 @@ public abstract class MusicMixin_API implements SoundConfig.BackgroundMusic { // @formatter:off - @Shadow @Final private Holder event; + @Shadow @Final private Holder sound; @Shadow @Final private int minDelay; @Shadow @Final private int maxDelay; @Shadow @Final private boolean replaceCurrentMusic; @@ -49,7 +49,7 @@ public abstract class MusicMixin_API implements SoundConfig.BackgroundMusic { @Override public SoundType sound() { - return (SoundType) (Object) this.event.value(); + return (SoundType) (Object) this.sound.value(); } @Intrinsic diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/biome/AmbientAdditionsSettingsMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/attribute/AmbientAdditionsSettingsMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/biome/AmbientAdditionsSettingsMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/attribute/AmbientAdditionsSettingsMixin_API.java index 6aa511b938c..efa32f2585c 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/biome/AmbientAdditionsSettingsMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/attribute/AmbientAdditionsSettingsMixin_API.java @@ -22,11 +22,11 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.level.biome; +package org.spongepowered.common.mixin.api.minecraft.world.attribute; import net.minecraft.core.Holder; import net.minecraft.sounds.SoundEvent; -import net.minecraft.world.level.biome.AmbientAdditionsSettings; +import net.minecraft.world.attribute.AmbientAdditionsSettings; import org.spongepowered.api.effect.sound.SoundType; import org.spongepowered.api.world.biome.ambient.SoundConfig; import org.spongepowered.asm.mixin.Final; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/biome/AmbientMoodSettingsMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/attribute/AmbientMoodSettingsMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/biome/AmbientMoodSettingsMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/attribute/AmbientMoodSettingsMixin_API.java index fb02cb60796..8b6291acc0f 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/biome/AmbientMoodSettingsMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/attribute/AmbientMoodSettingsMixin_API.java @@ -22,11 +22,11 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.level.biome; +package org.spongepowered.common.mixin.api.minecraft.world.attribute; import net.minecraft.core.Holder; import net.minecraft.sounds.SoundEvent; -import net.minecraft.world.level.biome.AmbientMoodSettings; +import net.minecraft.world.attribute.AmbientMoodSettings; import org.spongepowered.api.effect.sound.SoundType; import org.spongepowered.api.world.biome.ambient.SoundConfig; import org.spongepowered.asm.mixin.Final; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/biome/AmbientParticleSettingsMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/attribute/AmbientParticleSettingsMixin_API.java similarity index 87% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/biome/AmbientParticleSettingsMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/attribute/AmbientParticleSettingsMixin_API.java index 3190132e2e9..48063b6e2da 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/biome/AmbientParticleSettingsMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/attribute/AmbientParticleSettingsMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.level.biome; +package org.spongepowered.common.mixin.api.minecraft.world.attribute; -import net.minecraft.world.level.biome.AmbientParticleSettings; +import net.minecraft.world.attribute.AmbientParticle; import org.spongepowered.api.effect.particle.ParticleType; import org.spongepowered.api.world.biome.ambient.ParticleConfig; import org.spongepowered.asm.mixin.Final; @@ -34,13 +34,13 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -@Mixin(AmbientParticleSettings.class) +@Mixin(AmbientParticle.class) @Implements(@Interface(iface = ParticleConfig.class, prefix = "api$")) public abstract class AmbientParticleSettingsMixin_API implements ParticleConfig { // @formatter:off @Shadow @Final private float probability; - @Shadow @Final private net.minecraft.core.particles.ParticleOptions options; + @Shadow @Final private net.minecraft.core.particles.ParticleOptions particle; // @formatter:on @Intrinsic @@ -50,10 +50,10 @@ public abstract class AmbientParticleSettingsMixin_API implements ParticleConfig @Override public ParticleType type() { - if (this.options instanceof ParticleType type) { + if (this.particle instanceof ParticleType type) { return type; } - throw new UnsupportedOperationException("Unsupported ParticleOptions: " + this.options.getClass().getSimpleName()); + throw new UnsupportedOperationException("Unsupported ParticleOptions: " + this.particle.getClass().getSimpleName()); } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/block/BedBlockMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/block/BedBlockMixin.java index eecb90a85df..dd3357b9c2e 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/block/BedBlockMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/block/BedBlockMixin.java @@ -67,8 +67,8 @@ public class BedBlockMixin { final BlockSnapshot snapshot = ((ServerWorld) param1).createSnapshot(bedLocation.getX(), bedLocation.getY(), bedLocation.getZ()); if (Sponge.eventManager().post(SpongeEventFactory.createSleepingEventFailed(currentCause, snapshot, (Living) param3))) { param3.startSleepInBed(param2).ifLeft((param1x) -> { - if (param1x != null) { - param3.displayClientMessage(param1x.getMessage(), true); + if (param1x != null && param1x.message() != null) { + param3.displayClientMessage(param1x.message(), true); } }); cir.setReturnValue(InteractionResult.SUCCESS); diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ServerPlayerMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ServerPlayerMixin.java index fa85628ffaf..5b6ecd4e839 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ServerPlayerMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ServerPlayerMixin.java @@ -898,29 +898,21 @@ public void sendMessage(final OutgoingChatMessage $$0, final boolean $$1, final @Inject(method = "startSleepInBed", at = @At(value = "RETURN"), cancellable = true) private void impl$onReturnSleep(final BlockPos param0, final CallbackInfoReturnable> cir) { final Either returnValue = cir.getReturnValue(); - if (returnValue.left().isPresent()) { - switch (returnValue.left().get()) { - - case NOT_POSSIBLE_HERE: - case TOO_FAR_AWAY: - case NOT_POSSIBLE_NOW: - case OBSTRUCTED: - case NOT_SAFE: - final Cause currentCause = PhaseTracker.getInstance().currentCause(); - final BlockSnapshot snapshot = ((ServerWorld) this.shadow$level()).createSnapshot(param0.getX(), param0.getY(), param0.getZ()); - if (Sponge.eventManager().post(SpongeEventFactory.createSleepingEventFailed(currentCause, snapshot, (Living) this))) { - final Either var5 = super.shadow$startSleepInBed(param0).ifRight((param0x) -> { - this.shadow$awardStat(Stats.SLEEP_IN_BED); - CriteriaTriggers.SLEPT_IN_BED.trigger((net.minecraft.server.level.ServerPlayer) (Object) this); - }); - ((ServerLevel) this.shadow$level()).updateSleepingPlayerList(); - cir.setReturnValue(var5); - } - break; - case OTHER_PROBLEM: // ignore - break; + returnValue.ifLeft(problem -> { + if (problem.message() == null) { + return; } - } + final Cause currentCause = PhaseTracker.getInstance().currentCause(); + final BlockSnapshot snapshot = ((ServerWorld) this.shadow$level()).createSnapshot(param0.getX(), param0.getY(), param0.getZ()); + if (Sponge.eventManager().post(SpongeEventFactory.createSleepingEventFailed(currentCause, snapshot, (Living) this))) { + final Either var5 = super.shadow$startSleepInBed(param0).ifRight((param0x) -> { + this.shadow$awardStat(Stats.SLEEP_IN_BED); + CriteriaTriggers.SLEPT_IN_BED.trigger((net.minecraft.server.level.ServerPlayer) (Object) this); + }); + ((ServerLevel) this.shadow$level()).updateSleepingPlayerList(); + cir.setReturnValue(var5); + } + }); } @Override @@ -1056,7 +1048,7 @@ private boolean isPvpAllowed() { /** * Fixes MC-302672 */ - @WrapOperation(method = "onEffectAdded", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/network/ServerGamePacketListenerImpl;send(Lnet/minecraft/network/protocol/Packet;)V")) + @WrapOperation(method = "onEffectAdded", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/network/ServerGamePacketListenerImpl;send(Lnet/minecraft/network/protocol/Packet;)V")) private void impl$onEffectAdded(ServerGamePacketListenerImpl instance, Packet packet, Operation original) { if (instance == null) { return; diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/dimension/DimensionTypeMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/dimension/DimensionTypeMixin.java index 0c8ac09926c..5b479180938 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/dimension/DimensionTypeMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/dimension/DimensionTypeMixin.java @@ -58,7 +58,7 @@ public abstract class DimensionTypeMixin implements DimensionTypeBridge { return this.impl$createDragonFight; } - @Redirect(method = "", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/ExtraCodecs;catchDecoderException(Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/Codec;")) + @Redirect(method = "createDirectCodec", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/ExtraCodecs;catchDecoderException(Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/Codec;")) private static Codec impl$onWrapCodec(final Codec codec) { return ExtraCodecs.catchDecoderException(SpongeDimensionTypes.injectCodec(codec)); } diff --git a/src/mixins/resources/mixins.sponge.api.json b/src/mixins/resources/mixins.sponge.api.json index 2c680abfd3a..357fcb09fb7 100644 --- a/src/mixins/resources/mixins.sponge.api.json +++ b/src/mixins/resources/mixins.sponge.api.json @@ -374,9 +374,9 @@ "minecraft.world.level.LevelWriterMixin_API", "minecraft.world.level.LightLayerMixin_API", "minecraft.world.level.ServerExplosionMixin_API", - "minecraft.world.level.biome.AmbientAdditionsSettingsMixin_API", - "minecraft.world.level.biome.AmbientMoodSettingsMixin_API", - "minecraft.world.level.biome.AmbientParticleSettingsMixin_API", + "minecraft.world.attribute.AmbientAdditionsSettingsMixin_API", + "minecraft.world.attribute.AmbientMoodSettingsMixin_API", + "minecraft.world.attribute.AmbientParticleSettingsMixin_API", "minecraft.world.level.biome.Biome_PrecipitationMixin_API", "minecraft.world.level.biome.Biome_TemperatureModifierMixin_API", "minecraft.world.level.biome.BiomeMixin_API", diff --git a/vanilla/src/main/java/org/spongepowered/vanilla/client/gui/widget/MetadataPanel.java b/vanilla/src/main/java/org/spongepowered/vanilla/client/gui/widget/MetadataPanel.java index 3b1f26849cc..66c37f503b4 100644 --- a/vanilla/src/main/java/org/spongepowered/vanilla/client/gui/widget/MetadataPanel.java +++ b/vanilla/src/main/java/org/spongepowered/vanilla/client/gui/widget/MetadataPanel.java @@ -290,7 +290,7 @@ public boolean mouseClicked(final MouseButtonEvent event, final boolean repeated final Component component = entry.value; if (component != null) { - this.screen.handleComponentClicked(component.getStyle()); +// this.screen.handleComponentClicked(component.getStyle()); return true; } return super.mouseClicked(event, repeated); From 3134a3e145f3939c2ceeff1eac6a138eddfcd801 Mon Sep 17 00:00:00 2001 From: Gabriel Harris-Rouquette Date: Thu, 4 Dec 2025 23:26:41 -0800 Subject: [PATCH 05/13] feat(minecraft): update towards 25w44a Breaking changes: - GameRules are now registered and have therefor real IDs, so all field names are changed Notable Additions: - Added Parched - Added CamelHusk See https://minecraft.wiki/w/Java_Edition_25w44a --- SpongeAPI | 2 +- .../world/level/LevelDataRegistries.java | 20 +- gradle.properties | 2 +- gradle/verification-metadata.xml | 429 +++++++++++++++++- .../world/level/GameRulesAccessor.java | 10 +- .../world/level/GameRules_ValueAccessor.java | 7 +- .../resources/mixins.sponge.accessors.json | 1 - .../provider/world/WorldPropertiesData.java | 4 +- .../data/provider/world/biome/BiomeData.java | 8 +- .../event/SpongeCommonEventFactory.java | 4 +- .../common/hooks/WorldGenerationHooks.java | 10 +- .../SpongeRandomEnchantmentListBuilder.java | 3 +- .../loader/VanillaRegistryLoader.java | 2 - .../common/server/PerWorldBorderListener.java | 2 +- .../world/border/PlayerOwnBorderListener.java | 2 +- .../world/server/SpongeWorldManager.java | 10 +- .../server/MinecraftServerMixin_API.java | 10 +- .../animal/camel/CamelHuskMixin_API.java} | 11 +- .../entity/animal/camel/CamelMixin_API.java | 2 +- .../entity/monster/ParchedMixin_API.java | 33 ++ .../projectile/LargeFireballMixin_API.java | 4 +- .../world/level/GameRules_KeyMixin_API.java | 47 +- .../storage/ServerLevelDataMixin_API.java | 38 +- .../commands/DifficultyCommandMixin.java | 4 +- .../core/server/level/ChunkMapMixin.java | 4 +- .../core/server/level/ServerPlayerMixin.java | 18 +- .../boss/enderdragon/EnderDragonMixin.java | 2 +- .../world/level/border/WorldBorderMixin.java | 22 +- .../LegacyStructureDataHandlerMixin.java | 13 +- .../level/storage/PrimaryLevelDataMixin.java | 4 +- src/mixins/resources/mixins.sponge.api.json | 8 +- .../entity/animal/SnowGolemMixin_Vanilla.java | 9 +- 32 files changed, 586 insertions(+), 159 deletions(-) rename src/{accessors/java/org/spongepowered/common/accessor/world/level/chunk/storage/ChunkStorageAccessor.java => mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/camel/CamelHuskMixin_API.java} (78%) create mode 100644 src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/ParchedMixin_API.java diff --git a/SpongeAPI b/SpongeAPI index e8afabd156d..643c628d862 160000 --- a/SpongeAPI +++ b/SpongeAPI @@ -1 +1 @@ -Subproject commit e8afabd156d6d8e68141439ddd3d737999e7deaf +Subproject commit 643c628d86206dd6562951b6be28267509bdebd7 diff --git a/generator/src/main/java/org/spongepowered/vanilla/generator/world/level/LevelDataRegistries.java b/generator/src/main/java/org/spongepowered/vanilla/generator/world/level/LevelDataRegistries.java index dd4262bcb91..4f10297e20f 100644 --- a/generator/src/main/java/org/spongepowered/vanilla/generator/world/level/LevelDataRegistries.java +++ b/generator/src/main/java/org/spongepowered/vanilla/generator/world/level/LevelDataRegistries.java @@ -24,39 +24,23 @@ */ package org.spongepowered.vanilla.generator.world.level; -import com.google.common.base.CaseFormat; import net.minecraft.core.registries.Registries; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.level.GameRules; import org.spongepowered.vanilla.generator.Context; import org.spongepowered.vanilla.generator.Generator; -import org.spongepowered.vanilla.generator.MapEntriesValidator; import org.spongepowered.vanilla.generator.RegistryEntriesGenerator; import org.spongepowered.vanilla.generator.RegistryEntriesValidator; import org.spongepowered.vanilla.generator.RegistryScope; -import java.util.HashMap; import java.util.List; -import java.util.Map; -import java.util.function.BiConsumer; public class LevelDataRegistries { public static List levelDataRegistries(final Context context) { return List.of( - new MapEntriesValidator<>( + new RegistryEntriesValidator<>( "world.gamerule", "GameRules", - GameRules.class, - "GAME_RULE_TYPES", - map -> { - final Map out = new HashMap<>(map.size()); - map.forEach((BiConsumer) (k, v) -> { - var key = (GameRules.Key) k; - out.put(ResourceLocation.fromNamespaceAndPath("sponge", CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, key.getId())), v); - }); - return out; - } + Registries.GAME_RULE ), new RegistryEntriesGenerator<>( "map.decoration", diff --git a/gradle.properties b/gradle.properties index 1555434b90c..cdc97b4abd2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ mixinConfigs=mixins.sponge.accessors.json,mixins.sponge.api.json,mixins.sponge.c mixins.sponge.entityactivation.json,mixins.sponge.exploit.json,mixins.sponge.inventory.json,mixins.sponge.movementcheck.json,\ mixins.sponge.tracker.json,mixins.sponge.ipforward.json,mixins.sponge.optimization.json,mixins.sponge.test.json -minecraftVersion=25w42a +minecraftVersion=25w44a recommendedVersion=0-SNAPSHOT org.gradle.dependency.verification.console=verbose diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 9112c2d8d7d..7ea3f483efd 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -33,6 +33,14 @@ + + + + + + + + @@ -54,6 +62,24 @@ + + + + + + + + + + + + + + + + + + @@ -657,6 +683,14 @@ + + + + + + + + @@ -672,6 +706,19 @@ + + + + + + + + + + + + + @@ -793,6 +840,14 @@ + + + + + + + + @@ -834,6 +889,11 @@ + + + + + @@ -977,6 +1037,19 @@ + + + + + + + + + + + + + @@ -1072,6 +1145,16 @@ + + + + + + + + + + @@ -1130,6 +1213,14 @@ + + + + + + + + @@ -1203,6 +1294,14 @@ + + + + + + + + @@ -1248,6 +1347,16 @@ + + + + + + + + + + @@ -1317,6 +1426,14 @@ + + + + + + + + @@ -1438,6 +1555,14 @@ + + + + + + + + @@ -1486,6 +1611,14 @@ + + + + + + + + @@ -1622,6 +1755,14 @@ + + + + + + + + @@ -1714,6 +1855,14 @@ + + + + + + + + @@ -1962,6 +2111,14 @@ + + + + + + + + @@ -2556,6 +2713,14 @@ + + + + + + + + @@ -2580,6 +2745,22 @@ + + + + + + + + + + + + + + + + @@ -2588,6 +2769,14 @@ + + + + + + + + @@ -2612,6 +2801,14 @@ + + + + + + + + @@ -2636,6 +2833,14 @@ + + + + + + + + @@ -2651,6 +2856,11 @@ + + + + + @@ -2675,6 +2885,14 @@ + + + + + + + + @@ -2699,6 +2917,14 @@ + + + + + + + + @@ -2723,6 +2949,22 @@ + + + + + + + + + + + + + + + + @@ -2759,6 +3001,28 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -2783,6 +3047,14 @@ + + + + + + + + @@ -2820,6 +3092,14 @@ + + + + + + + + @@ -3196,6 +3476,14 @@ + + + + + + + + @@ -3228,6 +3516,14 @@ + + + + + + + + @@ -6868,6 +7164,14 @@ + + + + + + + + @@ -6905,6 +7209,14 @@ + + + + + + + + @@ -7031,6 +7343,11 @@ + + + + + @@ -7369,6 +7686,11 @@ + + + + + @@ -7435,6 +7757,14 @@ + + + + + + + + @@ -7443,12 +7773,12 @@ - - - + + + - - + + @@ -7499,6 +7829,11 @@ + + + + + @@ -7549,6 +7884,14 @@ + + + + + + + + @@ -7557,12 +7900,12 @@ - - - + + + - - + + @@ -7631,6 +7974,14 @@ + + + + + + + + @@ -8854,6 +9205,14 @@ + + + + + + + + @@ -9602,6 +9961,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9992,6 +10383,14 @@ + + + + + + + + @@ -10018,6 +10417,11 @@ + + + + + @@ -10058,6 +10462,11 @@ + + + + + diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/level/GameRulesAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/level/GameRulesAccessor.java index 0e2dbdfff3e..ff2d062861f 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/level/GameRulesAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/level/GameRulesAccessor.java @@ -24,20 +24,16 @@ */ package org.spongepowered.common.accessor.world.level; -import net.minecraft.world.level.GameRules; +import net.minecraft.world.level.gamerules.GameRuleMap; +import net.minecraft.world.level.gamerules.GameRules; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; -import org.spongepowered.common.UntransformedAccessorError; -import java.util.Map; @Mixin(GameRules.class) public interface GameRulesAccessor { - @Accessor("rules") Map, GameRules.Value> accessor$rules(); + @Accessor("rules") GameRuleMap accessor$rules(); - @Accessor("GAME_RULE_TYPES") static Map, GameRules.Type> accessor$GAME_RULE_TYPES() { - throw new UntransformedAccessorError(); - } } diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/level/GameRules_ValueAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/level/GameRules_ValueAccessor.java index 9b0e219a7e6..476ad30520b 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/level/GameRules_ValueAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/level/GameRules_ValueAccessor.java @@ -24,13 +24,14 @@ */ package org.spongepowered.common.accessor.world.level; -import net.minecraft.world.level.GameRules; +import com.mojang.serialization.DataResult; +import net.minecraft.world.level.gamerules.GameRule; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Invoker; -@Mixin(GameRules.Value.class) +@Mixin(GameRule.class) public interface GameRules_ValueAccessor { - @Invoker("deserialize") void invoker$deserialize(final String serialized); + @Invoker("deserialize") DataResult invoker$deserialize(final String serialized); } diff --git a/src/accessors/resources/mixins.sponge.accessors.json b/src/accessors/resources/mixins.sponge.accessors.json index e3bfa53181a..ebfaea3563c 100644 --- a/src/accessors/resources/mixins.sponge.accessors.json +++ b/src/accessors/resources/mixins.sponge.accessors.json @@ -202,7 +202,6 @@ "world.level.chunk.LevelChunk$BoundTickingBlockEntityAccessor", "world.level.chunk.LevelChunk$RebindableTickingBlockEntityWrapperAccessor", "world.level.chunk.LevelChunkAccessor", - "world.level.chunk.storage.ChunkStorageAccessor", "world.level.chunk.storage.IOWorker$PendingStoreAccessor", "world.level.chunk.storage.RegionFileAccessor", "world.level.chunk.storage.SimpleRegionStorageAccessor", diff --git a/src/main/java/org/spongepowered/common/data/provider/world/WorldPropertiesData.java b/src/main/java/org/spongepowered/common/data/provider/world/WorldPropertiesData.java index a7cc3be36db..467d744bbbd 100644 --- a/src/main/java/org/spongepowered/common/data/provider/world/WorldPropertiesData.java +++ b/src/main/java/org/spongepowered/common/data/provider/world/WorldPropertiesData.java @@ -25,9 +25,9 @@ package org.spongepowered.common.data.provider.world; import net.minecraft.core.GlobalPos; -import net.minecraft.world.level.GameRules; import net.minecraft.world.level.GameType; import net.minecraft.world.level.dimension.DimensionType; +import net.minecraft.world.level.gamerules.GameRules; import net.minecraft.world.level.storage.LevelData; import net.minecraft.world.level.storage.PrimaryLevelData; import net.minecraft.world.level.storage.ServerLevelData; @@ -88,7 +88,7 @@ public static void register(final DataProviderRegistrator registrator) { .create(Keys.WORLD_TYPE) .get(h -> (WorldType) (Object) h.bridge$dimensionType()) .create(Keys.PVP) - .get(h -> h.bridge$pvp().orElseGet(() -> SpongeCommon.server().getWorldData().getGameRules().getBoolean(GameRules.RULE_PVP))) + .get(h -> h.bridge$pvp().orElseGet(() -> SpongeCommon.server().getWorldData().getGameRules().get(GameRules.PVP))) .create(Keys.SERIALIZATION_BEHAVIOR) .get(h -> h.bridge$serializationBehavior().orElse(SerializationBehavior.AUTOMATIC)) .create(Keys.VIEW_DISTANCE) diff --git a/src/main/java/org/spongepowered/common/data/provider/world/biome/BiomeData.java b/src/main/java/org/spongepowered/common/data/provider/world/biome/BiomeData.java index c9c8ade65a1..e25b188ab68 100644 --- a/src/main/java/org/spongepowered/common/data/provider/world/biome/BiomeData.java +++ b/src/main/java/org/spongepowered/common/data/provider/world/biome/BiomeData.java @@ -95,7 +95,7 @@ public static void register(final DataProviderRegistrator registrator) { return Color.ofRgb(value); }) .create(Keys.WATER_COLOR) - .get(h -> Color.ofRgb(h.getSpecialEffects().getWaterColor())) + .get(h -> Color.ofRgb(h.getSpecialEffects().waterColor())) .create(Keys.WATER_FOG_COLOR) .get(h -> { final var value = h.getAttributes().applyModifier(EnvironmentAttributes.WATER_FOG_COLOR, EnvironmentAttributes.WATER_FOG_COLOR.defaultValue()); @@ -107,11 +107,11 @@ public static void register(final DataProviderRegistrator registrator) { return Color.ofRgb(value); }) .create(Keys.FOLIAGE_COLOR) - .get(h -> h.getSpecialEffects().getFoliageColorOverride().map(Color::ofRgb).orElse(null)) + .get(h -> h.getSpecialEffects().foliageColorOverride().map(Color::ofRgb).orElse(null)) .create(Keys.GRASS_COLOR) - .get(h -> h.getSpecialEffects().getGrassColorOverride().map(Color::ofRgb).orElse(null)) + .get(h -> h.getSpecialEffects().grassColorOverride().map(Color::ofRgb).orElse(null)) .create(Keys.GRASS_COLOR_MODIFIER) - .get(h -> (GrassColorModifier) (Object) h.getSpecialEffects().getGrassColorModifier()) + .get(h -> (GrassColorModifier) (Object) h.getSpecialEffects().grassColorModifier()) .create(Keys.BACKGROUND_MUSIC) .get(h -> { final var value = h.getAttributes().applyModifier(EnvironmentAttributes.BACKGROUND_MUSIC, EnvironmentAttributes.BACKGROUND_MUSIC.defaultValue()); diff --git a/src/main/java/org/spongepowered/common/event/SpongeCommonEventFactory.java b/src/main/java/org/spongepowered/common/event/SpongeCommonEventFactory.java index 0c93973febf..0baf6706938 100644 --- a/src/main/java/org/spongepowered/common/event/SpongeCommonEventFactory.java +++ b/src/main/java/org/spongepowered/common/event/SpongeCommonEventFactory.java @@ -36,12 +36,12 @@ import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.GameRules; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.DirectionalBlock; import net.minecraft.world.level.block.entity.JukeboxBlockEntity; import net.minecraft.world.level.block.piston.PistonStructureResolver; +import net.minecraft.world.level.gamerules.GameRules; import net.minecraft.world.level.saveddata.maps.MapId; import net.minecraft.world.level.saveddata.maps.MapIndex; import net.minecraft.world.level.saveddata.maps.MapItemSavedData; @@ -515,7 +515,7 @@ public static DestructEntityEvent.Death callDestructEntityEventDeath(final Livin final DestructEntityEvent.Death event = SpongeEventFactory.createDestructEntityEventDeath(frame.currentCause(), originalChannel, Optional.of(originalChannel), originalMessage, originalMessage, (Living) entity, - ((ServerLevel) entity.level()).getGameRules().getBoolean(GameRules.RULE_KEEPINVENTORY), messageCancelled); + ((ServerLevel) entity.level()).getGameRules().get(GameRules.KEEP_INVENTORY), messageCancelled); SpongeCommon.post(event); return event; diff --git a/src/main/java/org/spongepowered/common/hooks/WorldGenerationHooks.java b/src/main/java/org/spongepowered/common/hooks/WorldGenerationHooks.java index d654f134225..33ceb1414cb 100644 --- a/src/main/java/org/spongepowered/common/hooks/WorldGenerationHooks.java +++ b/src/main/java/org/spongepowered/common/hooks/WorldGenerationHooks.java @@ -25,6 +25,7 @@ package org.spongepowered.common.hooks; import com.google.common.collect.ImmutableList; +import com.mojang.datafixers.DataFixer; import net.minecraft.resources.ResourceKey; import net.minecraft.world.level.Level; import net.minecraft.world.level.levelgen.structure.LegacyStructureDataHandler; @@ -34,19 +35,20 @@ public interface WorldGenerationHooks { - default LegacyStructureDataHandler createLegacyStructureDataUtil(final ResourceKey dimensionType, final DimensionDataStorage savedData) { + default LegacyStructureDataHandler createLegacyStructureDataUtil(final ResourceKey dimensionType, final DimensionDataStorage savedData, final DataFixer fixer) { if (dimensionType == Level.OVERWORLD) { return new LegacyStructureDataHandler( savedData, ImmutableList.of("Monument", "Stronghold", "Village", "Mineshaft", "Temple", "Mansion"), - ImmutableList.of("Village", "Mineshaft", "Mansion", "Igloo", "Desert_Pyramid", "Jungle_Pyramid", "Swamp_Hut", "Stronghold", "Monument") + ImmutableList.of("Village", "Mineshaft", "Mansion", "Igloo", "Desert_Pyramid", "Jungle_Pyramid", "Swamp_Hut", "Stronghold", "Monument"), + fixer ); } else if (dimensionType == Level.NETHER) { final List keys = ImmutableList.of("Fortress"); - return new LegacyStructureDataHandler(savedData, keys, keys); + return new LegacyStructureDataHandler(savedData, keys, keys, fixer); } else if (dimensionType == Level.END) { final List keys = ImmutableList.of("EndCity"); - return new LegacyStructureDataHandler(savedData, keys, keys); + return new LegacyStructureDataHandler(savedData, keys, keys, fixer); } else { throw new RuntimeException(String.format("Unknown dimension type : %s", dimensionType)); } diff --git a/src/main/java/org/spongepowered/common/item/enchantment/SpongeRandomEnchantmentListBuilder.java b/src/main/java/org/spongepowered/common/item/enchantment/SpongeRandomEnchantmentListBuilder.java index ac6a7a0ffa1..d7c5373d353 100644 --- a/src/main/java/org/spongepowered/common/item/enchantment/SpongeRandomEnchantmentListBuilder.java +++ b/src/main/java/org/spongepowered/common/item/enchantment/SpongeRandomEnchantmentListBuilder.java @@ -26,7 +26,6 @@ import com.google.common.collect.Lists; -import net.minecraft.Util; import net.minecraft.core.Holder; import net.minecraft.core.registries.Registries; import net.minecraft.util.RandomSource; @@ -119,7 +118,7 @@ private List basedOfFixedPool(final RandomSource randomIn, while (randomIn.nextInt(50) <= this.level) { - EnchantmentHelper.filterCompatibleEnchantments(list1, Util.lastOf(list)); + EnchantmentHelper.filterCompatibleEnchantments(list1, list.getLast()); if (list1.isEmpty()) { diff --git a/src/main/java/org/spongepowered/common/registry/loader/VanillaRegistryLoader.java b/src/main/java/org/spongepowered/common/registry/loader/VanillaRegistryLoader.java index 3c35dce8dd3..cac12696ebb 100644 --- a/src/main/java/org/spongepowered/common/registry/loader/VanillaRegistryLoader.java +++ b/src/main/java/org/spongepowered/common/registry/loader/VanillaRegistryLoader.java @@ -111,7 +111,6 @@ import org.spongepowered.api.scoreboard.criteria.Criteria; import org.spongepowered.api.scoreboard.criteria.Criterion; import org.spongepowered.common.accessor.world.entity.boss.enderdragon.phases.EnderDragonPhaseAccessor; -import org.spongepowered.common.accessor.world.level.GameRulesAccessor; import org.spongepowered.common.registry.RegistryLoader; import org.spongepowered.common.registry.SpongeRegistryHolder; @@ -161,7 +160,6 @@ private void loadInstanceRegistries() { } this.naming(RegistryTypes.ARMOR_MATERIAL, materials.keySet().toArray(new ArmorMaterial[]{}), materials); - this.knownName(RegistryTypes.GAME_RULE, GameRulesAccessor.accessor$GAME_RULE_TYPES().keySet(), rule -> CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, rule.getId())); this.holder.createRegistry(RegistryTypes.ITEM_TIER, VanillaRegistryLoader.itemTier()); } diff --git a/src/main/java/org/spongepowered/common/server/PerWorldBorderListener.java b/src/main/java/org/spongepowered/common/server/PerWorldBorderListener.java index b9d555897f8..ed8601ecd7e 100644 --- a/src/main/java/org/spongepowered/common/server/PerWorldBorderListener.java +++ b/src/main/java/org/spongepowered/common/server/PerWorldBorderListener.java @@ -49,7 +49,7 @@ public void onSetSize(final WorldBorder border, final double newSize) { } @Override - public void onLerpSize(final WorldBorder border, final double oldSize, final double newSize, final long time) { + public void onLerpSize(final WorldBorder border, final double oldSize, final double newSize, final long time, final long endTime) { this.sendWorldBorderActionPacket(new ClientboundSetBorderLerpSizePacket(border)); } diff --git a/src/main/java/org/spongepowered/common/world/border/PlayerOwnBorderListener.java b/src/main/java/org/spongepowered/common/world/border/PlayerOwnBorderListener.java index 2f80ec9259c..53ab10aa799 100644 --- a/src/main/java/org/spongepowered/common/world/border/PlayerOwnBorderListener.java +++ b/src/main/java/org/spongepowered/common/world/border/PlayerOwnBorderListener.java @@ -51,7 +51,7 @@ public void onSetSize(final WorldBorder border, final double newSize) { } @Override - public void onLerpSize(final WorldBorder border, final double oldSize, final double newSize, final long time) { + public void onLerpSize(WorldBorder border, double oldSize, double newSize, long time, long var8) { this.sendBorderPacket(new ClientboundSetBorderLerpSizePacket(border)); } diff --git a/src/main/java/org/spongepowered/common/world/server/SpongeWorldManager.java b/src/main/java/org/spongepowered/common/world/server/SpongeWorldManager.java index c3a9249a9f1..69532bc8336 100644 --- a/src/main/java/org/spongepowered/common/world/server/SpongeWorldManager.java +++ b/src/main/java/org/spongepowered/common/world/server/SpongeWorldManager.java @@ -907,7 +907,15 @@ private ServerLevel createLevel( this.worlds.put(registryKey, world); // Ensure that the world border is registered. - levelData.getLegacyWorldBorderSettings().ifPresent(world.getWorldBorder()::applySettings); + levelData.getLegacyWorldBorderSettings().ifPresent(legacy -> { + final var border = world.getWorldBorder(); + border.setSize(legacy.size()); + border.setCenter(legacy.centerX(), legacy.centerZ()); + border.setSafeZone(legacy.safeZone()); + border.setDamagePerBlock(legacy.damagePerBlock()); + border.setWarningTime(legacy.warningTime()); + border.setWarningBlocks(legacy.warningBlocks()); + }); PlatformHooks.INSTANCE.getWorldHooks().postLoadWorld(world); return world; } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/MinecraftServerMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/MinecraftServerMixin_API.java index c03cfdee411..7b8631107ef 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/MinecraftServerMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/MinecraftServerMixin_API.java @@ -41,7 +41,7 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.server.packs.repository.PackRepository; import net.minecraft.server.players.PlayerList; -import net.minecraft.world.level.GameRules; +import net.minecraft.world.level.gamerules.GameRules; import net.minecraft.world.level.levelgen.WorldDimensions; import net.minecraft.world.level.levelgen.WorldGenSettings; import net.minecraft.world.level.storage.LevelResource; @@ -248,17 +248,17 @@ public boolean isGameModeEnforced() { @Override public boolean isPVPEnabled() { - return this.worldData.getGameRules().getBoolean(GameRules.RULE_PVP); + return this.worldData.getGameRules().get(GameRules.PVP); } @Override public boolean areCommandBlocksEnabled() { - return this.worldData.getGameRules().getBoolean(GameRules.RULE_COMMAND_BLOCKS_ENABLED); + return this.worldData.getGameRules().get(GameRules.COMMAND_BLOCKS_WORK); } @Override public boolean isMonsterSpawnsEnabled() { - return this.worldData.getGameRules().getBoolean(GameRules.RULE_SPAWN_MONSTERS); + return this.worldData.getGameRules().get(GameRules.SPAWN_MONSTERS); } @Override @@ -271,7 +271,7 @@ public boolean isAnimalSpawnsEnabled() { */ @Override public boolean isMultiWorldEnabled() { - return this.isSingleplayer() || ((Object) this instanceof DedicatedServer ds) && ds.getWorldData().getGameRules().getBoolean(GameRules.RULE_ALLOW_NETHER); + return this.isSingleplayer() || ((Object) this instanceof DedicatedServer ds) && ds.getWorldData().getGameRules().get(GameRules.ALLOW_ENTERING_NETHER_USING_PORTALS); } @Override diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/level/chunk/storage/ChunkStorageAccessor.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/camel/CamelHuskMixin_API.java similarity index 78% rename from src/accessors/java/org/spongepowered/common/accessor/world/level/chunk/storage/ChunkStorageAccessor.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/camel/CamelHuskMixin_API.java index ce533c3c8c3..b40ef8a9156 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/level/chunk/storage/ChunkStorageAccessor.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/camel/CamelHuskMixin_API.java @@ -22,15 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.world.level.chunk.storage; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.camel; -import net.minecraft.world.level.chunk.storage.ChunkStorage; -import net.minecraft.world.level.chunk.storage.IOWorker; +import net.minecraft.world.entity.animal.camel.CamelHusk; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; -@Mixin(ChunkStorage.class) -public interface ChunkStorageAccessor { +@Mixin(CamelHusk.class) +public abstract class CamelHuskMixin_API extends CamelMixin_API implements org.spongepowered.api.entity.living.animal.camel.CamelHusk { - @Accessor("worker") IOWorker accessor$worker(); } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/camel/CamelMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/camel/CamelMixin_API.java index 4ff0a35515b..6bd2c701383 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/camel/CamelMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/camel/CamelMixin_API.java @@ -29,6 +29,6 @@ import org.spongepowered.common.mixin.api.minecraft.world.entity.animal.horse.AbstractHorseMixin_API; @Mixin(Camel.class) -public abstract class CamelMixin_API extends AbstractHorseMixin_API implements org.spongepowered.api.entity.living.animal.horse.Camel { +public abstract class CamelMixin_API extends AbstractHorseMixin_API implements org.spongepowered.api.entity.living.animal.camel.Camel { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/ParchedMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/ParchedMixin_API.java new file mode 100644 index 00000000000..c9f2db7934f --- /dev/null +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/ParchedMixin_API.java @@ -0,0 +1,33 @@ +/* + * This file is part of Sponge, licensed under the MIT License (MIT). + * + * Copyright (c) SpongePowered + * Copyright (c) contributors + * + * 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. + */ +package org.spongepowered.common.mixin.api.minecraft.world.entity.monster; + +import org.spongepowered.api.entity.living.monster.skeleton.Parched; +import org.spongepowered.asm.mixin.Mixin; + +@Mixin(net.minecraft.world.entity.monster.Parched.class) +public abstract class ParchedMixin_API extends AbstractSkeletonMixin_API implements Parched { + +} diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/LargeFireballMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/LargeFireballMixin_API.java index 9fdae239297..52af501a93a 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/LargeFireballMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/LargeFireballMixin_API.java @@ -26,8 +26,8 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.projectile.LargeFireball; -import net.minecraft.world.level.GameRules; import net.minecraft.world.level.Level; +import net.minecraft.world.level.gamerules.GameRules; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.entity.projectile.explosive.fireball.ExplosiveFireball; @@ -44,7 +44,7 @@ public abstract class LargeFireballMixin_API extends FireballMixin_API implement @Override public void detonate() { - if (this.shadow$level() instanceof ServerLevel sl && sl.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) { + if (this.shadow$level() instanceof ServerLevel sl && sl.getGameRules().get(GameRules.MOB_GRIEFING)) { ((LargeFireballBridge) this).bridge$wrappedExplode(this.shadow$getX(), this.shadow$getY(), this.shadow$getZ(), this.explosionPower, true, Level.ExplosionInteraction.MOB); } this.shadow$discard(); diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/GameRules_KeyMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/GameRules_KeyMixin_API.java index 39b2a935325..df194a26208 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/GameRules_KeyMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/GameRules_KeyMixin_API.java @@ -24,49 +24,42 @@ */ package org.spongepowered.common.mixin.api.minecraft.world.level; -import net.minecraft.world.level.GameRules; +import net.minecraft.world.level.gamerules.GameRuleType; import org.spongepowered.api.world.gamerule.GameRule; import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Implements; +import org.spongepowered.asm.mixin.Interface; +import org.spongepowered.asm.mixin.Intrinsic; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.common.accessor.world.level.GameRulesAccessor; import java.lang.reflect.Type; -@Mixin(GameRules.Key.class) -public class GameRules_KeyMixin_API implements GameRule { +@Mixin(net.minecraft.world.level.gamerules.GameRule.class) +@Implements(@Interface(iface = GameRule.class, prefix = "api$")) +public abstract class GameRules_KeyMixin_API implements GameRule { - @Shadow @Final private String id; + @Shadow public abstract String shadow$id(); + + @Shadow private @Final GameRuleType gameRuleType; + @Shadow @Final private T defaultValue; @Override public String name() { - return this.id; + return this.shadow$id(); } @Override public Type valueType() { - final GameRules.Type type = GameRulesAccessor.accessor$GAME_RULE_TYPES().get(this); - final GameRules.Value value = type.createRule(); - if (value instanceof GameRules.BooleanValue) { - return Boolean.class; - } - if (value instanceof GameRules.IntegerValue) { - return Integer.class; - } - throw new IllegalStateException("Unexpected GameRule.Value implementation " + value.getClass().getName()); + return switch (this.gameRuleType) { + case INT -> Integer.class; + case BOOL -> Boolean.class; + default -> throw new IllegalStateException("Unexpected GameRuleType " + this.gameRuleType); + }; } - @Override - @SuppressWarnings("unchecked") - public T defaultValue() { - final GameRules.Type type = GameRulesAccessor.accessor$GAME_RULE_TYPES().get(this); - final GameRules.Value value = type.createRule(); - if (value instanceof GameRules.BooleanValue) { - return (T) (Object)((GameRules.BooleanValue) value).get(); - } - if (value instanceof GameRules.IntegerValue) { - return (T)(Object)((GameRules.IntegerValue) value).get(); - } - throw new IllegalStateException("Unexpected GameRule.Value implementation " + value.getClass().getName()); + @Intrinsic + public T api$defaultValue() { + return this.defaultValue; } } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/storage/ServerLevelDataMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/storage/ServerLevelDataMixin_API.java index 38e6c17e0cc..d269ea28f49 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/storage/ServerLevelDataMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/storage/ServerLevelDataMixin_API.java @@ -24,7 +24,8 @@ */ package org.spongepowered.common.mixin.api.minecraft.world.level.storage; -import net.minecraft.world.level.GameRules; +import net.minecraft.world.level.gamerules.GameRuleMap; +import net.minecraft.world.level.gamerules.GameRules; import net.minecraft.world.level.storage.ServerLevelData; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.api.ResourceKey; @@ -39,8 +40,8 @@ import org.spongepowered.api.world.weather.WeatherType; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.common.SpongeCommon; import org.spongepowered.common.accessor.world.level.GameRulesAccessor; -import org.spongepowered.common.accessor.world.level.GameRules_ValueAccessor; import org.spongepowered.common.bridge.world.level.storage.ServerLevelDataBridge; import org.spongepowered.common.util.Constants; import org.spongepowered.common.util.SpongeTicks; @@ -88,14 +89,9 @@ default UUID uniqueId() { @Override default V gameRule(GameRule gameRule) { - final GameRules.Value value = this.shadow$getGameRules().getRule((GameRules.Key) (Object) Objects.requireNonNull(gameRule, + final var value = this.shadow$getGameRules().get((net.minecraft.world.level.gamerules.GameRule) (Object) Objects.requireNonNull(gameRule, "gameRule")); - if (value instanceof GameRules.BooleanValue) { - return (V) Boolean.valueOf(((GameRules.BooleanValue) value).get()); - } else if (value instanceof GameRules.IntegerValue) { - return (V) Integer.valueOf(((GameRules.IntegerValue) value).get()); - } - return null; + return (V) value; } @Override @@ -103,31 +99,17 @@ default void setGameRule(final GameRule gameRule, final V value) { Objects.requireNonNull(gameRule, "gameRule"); Objects.requireNonNull(value, "value"); - final GameRules.Value mValue = this.shadow$getGameRules().getRule((GameRules.Key) (Object) gameRule); - ((GameRules_ValueAccessor) mValue).invoker$deserialize(value.toString()); + this.shadow$getGameRules().set((net.minecraft.world.level.gamerules.GameRule) (Object) gameRule, value, SpongeCommon.server()); } @Override default Map, ?> gameRules() { - final Map, GameRules.Value> rules = - ((GameRulesAccessor) this.shadow$getGameRules()).accessor$rules(); - + final GameRuleMap rules = ((GameRulesAccessor) this.shadow$getGameRules()).accessor$rules(); final Map, Object> apiRules = new HashMap<>(); - for (final Map.Entry, GameRules.Value> rule : rules.entrySet()) { - final GameRule key = (GameRule) (Object) rule.getKey(); - final GameRules.Value mValue = rule.getValue(); - Object value = null; - if (mValue instanceof GameRules.BooleanValue) { - value = ((GameRules.BooleanValue) mValue).get(); - } else if (mValue instanceof GameRules.IntegerValue) { - value = ((GameRules.IntegerValue) mValue).get(); - } - - if (value != null) { - apiRules.put(key, value); - } + for (final var rule : rules.keySet()) { + final GameRule key = (GameRule) (Object) rule; + apiRules.put(key, rules.get(rule)); } - return apiRules; } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/server/commands/DifficultyCommandMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/server/commands/DifficultyCommandMixin.java index 0237e7ccbbf..8888c156c8e 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/server/commands/DifficultyCommandMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/server/commands/DifficultyCommandMixin.java @@ -31,7 +31,7 @@ import net.minecraft.network.protocol.game.ClientboundChangeDifficultyPacket; import net.minecraft.server.commands.DifficultyCommand; import net.minecraft.world.Difficulty; -import net.minecraft.world.level.GameRules; +import net.minecraft.world.level.gamerules.GameRules; import net.minecraft.world.level.storage.LevelData; import org.spongepowered.api.world.server.storage.ServerWorldProperties; import org.spongepowered.asm.mixin.Final; @@ -58,7 +58,7 @@ public static int setDifficulty(CommandSourceStack source, Difficulty difficulty } else { final LevelData levelData = source.getLevel().getLevelData(); ((ServerWorldProperties) levelData).setDifficulty((org.spongepowered.api.world.difficulty.Difficulty) (Object) difficulty); - source.getLevel().setSpawnSettings(SpongeCommon.server().getWorldData().getGameRules().getBoolean(GameRules.RULE_SPAWN_MONSTERS)); + source.getLevel().setSpawnSettings(SpongeCommon.server().getWorldData().getGameRules().get(GameRules.SPAWN_MONSTERS)); source.getLevel().getPlayers(p -> true).forEach(p -> p.connection.send(new ClientboundChangeDifficultyPacket(levelData.getDifficulty(), levelData.isDifficultyLocked()))); source.sendSuccess(() -> Component.translatable("commands.difficulty.success", difficulty.getDisplayName()), true); diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ChunkMapMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ChunkMapMixin.java index 25936a940a7..396f56ec85b 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ChunkMapMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ChunkMapMixin.java @@ -51,7 +51,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import org.spongepowered.common.SpongeCommon; import org.spongepowered.common.accessor.server.level.ServerChunkCacheAccessor; -import org.spongepowered.common.accessor.world.level.chunk.storage.ChunkStorageAccessor; +import org.spongepowered.common.accessor.world.level.chunk.storage.SimpleRegionStorageAccessor; import org.spongepowered.common.bridge.server.level.ServerLevelBridge; import org.spongepowered.common.bridge.world.DistanceManagerBridge; import org.spongepowered.common.bridge.world.level.chunk.LevelChunkBridge; @@ -85,7 +85,7 @@ public abstract class ChunkMapMixin implements ChunkMapBridge { @Inject(method = "", at = @At("RETURN")) private void impl$setIOWorkerDimension(final CallbackInfo ci) { - ((IOWorkerBridge) ((ChunkStorageAccessor) this).accessor$worker()).bridge$setDimension(SpongeIOWorkerType.CHUNK, this.level.dimension()); + ((IOWorkerBridge) ((SimpleRegionStorageAccessor) this).accessor$worker()).bridge$setDimension(SpongeIOWorkerType.CHUNK, this.level.dimension()); } @Redirect(method = "save", diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ServerPlayerMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ServerPlayerMixin.java index 6151a192db6..9590730b9f1 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ServerPlayerMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ServerPlayerMixin.java @@ -65,10 +65,10 @@ import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; -import net.minecraft.world.level.GameRules; import net.minecraft.world.level.GameType; import net.minecraft.world.level.Level; import net.minecraft.world.level.border.WorldBorder; +import net.minecraft.world.level.gamerules.GameRules; import net.minecraft.world.level.portal.TeleportTransition; import net.minecraft.world.scores.PlayerTeam; import org.checkerframework.checker.nullness.qual.Nullable; @@ -295,7 +295,7 @@ public abstract class ServerPlayerMixin extends PlayerMixin implements SubjectBr @Override public boolean bridge$keepInventory() { - return Objects.requireNonNullElseGet(this.impl$keepInventory, () -> this.shadow$level().getGameRules().getBoolean(GameRules.RULE_KEEPINVENTORY)); + return Objects.requireNonNullElseGet(this.impl$keepInventory, () -> this.shadow$level().getGameRules().get(GameRules.KEEP_INVENTORY)); } @Override @@ -450,19 +450,19 @@ public abstract class ServerPlayerMixin extends PlayerMixin implements SubjectBr @ModifyExpressionValue( method = "die", at = @At( - value = "INVOKE", target = "Lnet/minecraft/world/level/GameRules;getBoolean(Lnet/minecraft/world/level/GameRules$Key;)Z" + value = "INVOKE", target = "Lnet/minecraft/world/level/gamerules/GameRules;get(Lnet/minecraft/world/level/gamerules/GameRule;)Ljava/lang/Object;" ), slice = @Slice( from = @At("HEAD"), to = @At(value = "INVOKE", target = "Lnet/minecraft/world/damagesource/CombatTracker;getDeathMessage()Lnet/minecraft/network/chat/Component;") ) ) - private boolean impl$onlySendMessageIfEventCallsForIt( - boolean gameRules, + private Object impl$onlySendMessageIfEventCallsForIt( + Object gameRules, @Share("sponge-event") LocalRef event ) { final var spongeEvent = event.get(); - return gameRules && (spongeEvent == null || !spongeEvent.isMessageCancelled()); + return (Boolean) gameRules && (spongeEvent == null || !spongeEvent.isMessageCancelled()); } @ModifyExpressionValue( @@ -526,10 +526,10 @@ public abstract class ServerPlayerMixin extends PlayerMixin implements SubjectBr @ModifyExpressionValue( method = "restoreFrom", - at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/GameRules;getBoolean(Lnet/minecraft/world/level/GameRules$Key;)Z") + at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/gamerules/GameRules;get(Lnet/minecraft/world/level/gamerules/GameRule;)Ljava/lang/Object;") ) - private boolean tracker$useKeepFromBridge( - boolean original, + private Object tracker$useKeepFromBridge( + Object original, net.minecraft.server.level.ServerPlayer corpse, boolean wonGame ) { diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/boss/enderdragon/EnderDragonMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/boss/enderdragon/EnderDragonMixin.java index 3661568aab3..b8374b0db17 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/boss/enderdragon/EnderDragonMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/boss/enderdragon/EnderDragonMixin.java @@ -58,7 +58,7 @@ public abstract class EnderDragonMixin extends MobMixin { slice = @Slice( from = @At( value = "FIELD", - target = "Lnet/minecraft/world/level/GameRules;RULE_MOBGRIEFING:Lnet/minecraft/world/level/GameRules$Key;" + target = "Lnet/minecraft/world/level/gamerules/GameRules;MOB_GRIEFING:Lnet/minecraft/world/level/gamerules/GameRule;" ), to = @At( value = "INVOKE", diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/border/WorldBorderMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/border/WorldBorderMixin.java index 451758d8dba..9c9e020ec12 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/border/WorldBorderMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/border/WorldBorderMixin.java @@ -32,6 +32,7 @@ import org.spongepowered.api.event.world.ChangeWorldBorderEvent; import org.spongepowered.api.world.server.ServerWorld; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @@ -82,7 +83,7 @@ public abstract class WorldBorderMixin implements WorldBorderBridge { } @Inject(method = "lerpSizeBetween", at = @At(value = "HEAD"), cancellable = true) - private void impl$onLerping(final double initial, final double target, final long milliseconds, final CallbackInfo ci) { + private void impl$onLerping(final double initial, final double target, final long milliseconds, final long delay, final CallbackInfo ci) { if (this.impl$fireEvent) { final Supplier proposed = () -> new SpongeWorldBorderBuilder().from(this) @@ -190,7 +191,7 @@ public abstract class WorldBorderMixin implements WorldBorderBridge { @Override public org.spongepowered.api.world.border.@Nullable WorldBorder bridge$applyFrom(final org.spongepowered.api.world.border.WorldBorder worldBorder) { if (!this.impl$fireEvent) { - ((WorldBorder) (Object) this).applySettings((WorldBorder.Settings) (Object) worldBorder); + this.impl$applySettings((WorldBorder.Settings) (Object) worldBorder); return worldBorder; } @@ -208,9 +209,24 @@ public abstract class WorldBorderMixin implements WorldBorderBridge { } this.impl$fireEvent = false; - ((WorldBorder) (Object) this).applySettings((WorldBorder.Settings) (Object) toSet); + this.impl$applySettings((WorldBorder.Settings) (Object) worldBorder); this.impl$fireEvent = true; return toSet; } + @Unique + private void impl$applySettings(WorldBorder.Settings worldBorder) { + ((WorldBorder) (Object) this).setCenter(worldBorder.centerX(), worldBorder.centerZ()); + ((WorldBorder) (Object) this).setDamagePerBlock(worldBorder.damagePerBlock()); + ((WorldBorder) (Object) this).setSafeZone(worldBorder.safeZone()); + ((WorldBorder) (Object) this).setWarningBlocks(worldBorder.warningBlocks()); + ((WorldBorder) (Object) this).setWarningTime(worldBorder.warningTime()); + if (worldBorder.lerpTime() > 0L) { + // TODO - figure out how to get the appropriate game time + ((WorldBorder) (Object) this).lerpSizeBetween(worldBorder.size(), worldBorder.lerpTarget(), worldBorder.lerpTime(), SpongeCommon.server().overworld().getGameTime()); + } else { + ((WorldBorder) (Object) this).setSize(worldBorder.size()); + } + } + } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/levelgen/structure/LegacyStructureDataHandlerMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/levelgen/structure/LegacyStructureDataHandlerMixin.java index e93a9d76da2..f9c4861699d 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/levelgen/structure/LegacyStructureDataHandlerMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/levelgen/structure/LegacyStructureDataHandlerMixin.java @@ -24,15 +24,18 @@ */ package org.spongepowered.common.mixin.core.world.level.levelgen.structure; +import com.mojang.datafixers.DataFixer; import net.minecraft.resources.ResourceKey; import net.minecraft.world.level.Level; +import net.minecraft.world.level.chunk.storage.LegacyTagFixer; import net.minecraft.world.level.levelgen.structure.LegacyStructureDataHandler; import net.minecraft.world.level.storage.DimensionDataStorage; -import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Overwrite; import org.spongepowered.common.hooks.PlatformHooks; +import java.util.function.Supplier; + @Mixin(LegacyStructureDataHandler.class) public abstract class LegacyStructureDataHandlerMixin { @@ -41,7 +44,11 @@ public abstract class LegacyStructureDataHandlerMixin { * @reason Allow the platform to determine how to create the legacy structure data updater */ @Overwrite - public static LegacyStructureDataHandler getLegacyStructureHandler(final ResourceKey dimension, final @Nullable DimensionDataStorage savedData) { - return PlatformHooks.INSTANCE.getWorldGenerationHooks().createLegacyStructureDataUtil(dimension, savedData); + public static Supplier getLegacyTagFixer( + final ResourceKey dimension, + final Supplier savedData, + final DataFixer fixer + ) { + return () -> PlatformHooks.INSTANCE.getWorldGenerationHooks().createLegacyStructureDataUtil(dimension, savedData.get(), fixer); } } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/storage/PrimaryLevelDataMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/storage/PrimaryLevelDataMixin.java index ca3971b549d..c8932781dd1 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/storage/PrimaryLevelDataMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/storage/PrimaryLevelDataMixin.java @@ -47,12 +47,12 @@ import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.Difficulty; -import net.minecraft.world.level.GameRules; import net.minecraft.world.level.GameType; import net.minecraft.world.level.LevelSettings; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.dimension.DimensionType; import net.minecraft.world.level.dimension.LevelStem; +import net.minecraft.world.level.gamerules.GameRules; import net.minecraft.world.level.levelgen.WorldDimensions; import net.minecraft.world.level.levelgen.WorldGenSettings; import net.minecraft.world.level.levelgen.WorldOptions; @@ -291,7 +291,7 @@ public abstract class PrimaryLevelDataMixin implements ServerLevelData, WorldDat } else if (server.isSingleplayer()) { level.setSpawnSettings(difficulty != Difficulty.PEACEFUL); } else { - level.setSpawnSettings(server.getWorldData().getGameRules().getBoolean(GameRules.RULE_SPAWN_MONSTERS)); + level.setSpawnSettings(server.getWorldData().getGameRules().get(GameRules.SPAWN_MONSTERS)); } level.players().forEach(player -> player.connection.send(new ClientboundChangeDifficultyPacket(difficulty, isLocked))); diff --git a/src/mixins/resources/mixins.sponge.api.json b/src/mixins/resources/mixins.sponge.api.json index 57543d3949e..c3036244af6 100644 --- a/src/mixins/resources/mixins.sponge.api.json +++ b/src/mixins/resources/mixins.sponge.api.json @@ -86,6 +86,9 @@ "minecraft.world.InteractionHandMixin_API", "minecraft.world.IWorldGenerationBaseReaderMixin_API", "minecraft.world.IWorldGenerationReaderMixin_API", + "minecraft.world.attribute.AmbientAdditionsSettingsMixin_API", + "minecraft.world.attribute.AmbientMoodSettingsMixin_API", + "minecraft.world.attribute.AmbientParticleSettingsMixin_API", "minecraft.world.damagesource.DamageEffectsMixin_API", "minecraft.world.damagesource.DamageScalingMixin_API", "minecraft.world.damagesource.DamageSourceMixin_API", @@ -186,6 +189,7 @@ "minecraft.world.entity.animal.armadillo.ArmadilloMixin_API", "minecraft.world.entity.animal.axolotl.AxolotlMixin_API", "minecraft.world.entity.animal.axolotl.AxolotlVariantMixin_API", + "minecraft.world.entity.animal.camel.CamelHuskMixin_API", "minecraft.world.entity.animal.camel.CamelMixin_API", "minecraft.world.entity.animal.frog.FrogMixin_API", "minecraft.world.entity.animal.frog.TadpoleMixin_API", @@ -249,6 +253,7 @@ "minecraft.world.entity.monster.IllusionerMixin_API", "minecraft.world.entity.monster.MagmaCubeMixin_API", "minecraft.world.entity.monster.MonsterMixin_API", + "minecraft.world.entity.monster.ParchedMixin_API", "minecraft.world.entity.monster.PatrollingMonsterMixin_API", "minecraft.world.entity.monster.Phantom_AttackPhaseMixin_API", "minecraft.world.entity.monster.PhantomMixin_API", @@ -377,9 +382,6 @@ "minecraft.world.level.LevelWriterMixin_API", "minecraft.world.level.LightLayerMixin_API", "minecraft.world.level.ServerExplosionMixin_API", - "minecraft.world.attribute.AmbientAdditionsSettingsMixin_API", - "minecraft.world.attribute.AmbientMoodSettingsMixin_API", - "minecraft.world.attribute.AmbientParticleSettingsMixin_API", "minecraft.world.level.biome.Biome_PrecipitationMixin_API", "minecraft.world.level.biome.Biome_TemperatureModifierMixin_API", "minecraft.world.level.biome.BiomeMixin_API", diff --git a/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/entity/animal/SnowGolemMixin_Vanilla.java b/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/entity/animal/SnowGolemMixin_Vanilla.java index 4e290a570d6..95b2c7ea3d0 100644 --- a/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/entity/animal/SnowGolemMixin_Vanilla.java +++ b/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/entity/animal/SnowGolemMixin_Vanilla.java @@ -26,7 +26,8 @@ import net.minecraft.world.entity.animal.SnowGolem; -import net.minecraft.world.level.GameRules; +import net.minecraft.world.level.gamerules.GameRule; +import net.minecraft.world.level.gamerules.GameRules; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; @@ -36,8 +37,8 @@ public abstract class SnowGolemMixin_Vanilla { @Redirect(method = "aiStep()V", at = @At( - value = "INVOKE", target = "Lnet/minecraft/world/level/GameRules;getBoolean(Lnet/minecraft/world/level/GameRules$Key;)Z")) - private boolean impl$checkCanGrief(final GameRules gameRules, final GameRules.Key key) { - return gameRules.getBoolean(key) && ((GrieferBridge) this).bridge$canGrief(); + value = "INVOKE", target = "Lnet/minecraft/world/level/gamerules/GameRules;get(Lnet/minecraft/world/level/gamerules/GameRule;)Ljava/lang/Object;")) + private Object impl$checkCanGrief(final GameRules gameRules, final GameRule rule) { + return (Boolean) gameRules.get(rule) && ((GrieferBridge) this).bridge$canGrief(); } } From 6600bdf39cb3e4422ac765c248a3d4b9460fd0f8 Mon Sep 17 00:00:00 2001 From: Gabriel Harris-Rouquette Date: Tue, 9 Dec 2025 20:24:51 -0800 Subject: [PATCH 06/13] feat(minecraft): update towards 25w45a Breaking changes: - Keys.FIXED_TIME doesn't apply to DimensionType anymore, it now applies to Level, but we don't have any handling for things like that yet. See https://github.com/SpongePowered/SpongeAPI/issues/2608 Notable additions: - Timelines are a thing, we may want to wrap a phase around them to handle any kind of events through them or link them as a Cause. Notable Changes: - ResourceLocation -> Identiifer - net.minecraft.Util -> net.minecraft.util.Util - critereon -> criterion See https://minecraft.wiki/w/Java_Edition_25w45a --- .../forge/hook/ForgeChannelHooks.java | 4 +-- .../registries/ForgeRegistryMixin_Forge.java | 6 ++-- .../RegistryManagerMixin_Forge.java | 4 +-- ...ntboundCustomPayloadPacketMixin_Forge.java | 4 +-- ...erboundCustomPayloadPacketMixin_Forge.java | 4 +-- .../mixin/core/tags/TagLoaderMixin_Forge.java | 4 +-- .../level/block/BlockMixin_Forge_Tracker.java | 4 +-- .../BlockBehaviorMixin_Forge_Tracker.java | 4 +-- .../generator/ClassFieldsValidator.java | 34 +++++++++---------- .../generator/EnumEntriesValidator.java | 24 ++++++------- .../vanilla/generator/GeneratorMain.java | 2 +- .../generator/MapEntriesValidator.java | 34 +++++++++---------- .../generator/RegistryEntriesGenerator.java | 4 +-- .../generator/RegistryEntriesValidator.java | 30 ++++++++-------- .../vanilla/generator/TagGenerator.java | 4 +-- .../vanilla/generator/Types.java | 4 +-- .../generator/item/ItemRegistries.java | 4 +-- .../world/entities/EntityRegistries.java | 4 +-- gradle.properties | 2 +- gradle/verification-metadata.xml | 8 +++++ .../RegistrySnapshotAccessor_Neo.java | 4 +-- .../registries/RegistryManagerMixin_Neo.java | 4 +-- .../core/tags/TagLoaderMixin_NeoForge.java | 4 +-- .../entity/LivingEntityMixin_Neo_Damage.java | 2 +- .../entity/player/PlayerMixin_Neo_Damage.java | 2 +- .../level/block/BlockMixin_Neo_Tracker.java | 4 +-- .../state/BlockBehaviorMixin_Neo_Tracker.java | 4 +-- .../multiplayer/ClientLevelAccessor.java | 3 -- .../resources/ResourceKeyAccessor.java | 6 ++-- .../accessor/sounds/SoundEventAccessor.java | 4 +-- .../accessor/tags/TagEntryAccessor.java | 4 +-- .../item/AdventureModePredicateAccessor.java | 2 +- .../entity/SkullBlockEntityAccessor.java | 6 ++-- .../dimension/DimensionTypeAccessor.java | 3 -- .../advancement/SpongeAdvancementBuilder.java | 10 +++--- .../advancement/SpongeFilteredTrigger.java | 2 +- .../criterion/SpongeDummyTrigger.java | 6 ++-- .../criterion/SpongeScoreTrigger.java | 6 ++-- .../common/adventure/SpongeAdventure.java | 20 +++++------ .../common/block/SpongeBlockSnapshot.java | 4 +-- .../bridge/RegistryBackedTrackableBridge.java | 4 +-- .../AdvancementProgressBridge.java | 6 ++-- .../common/bridge/tags/TagLoaderBridge.java | 4 +-- .../command/brigadier/SpongeStringReader.java | 10 +++--- .../SpongeServerLocationValueParameter.java | 10 +++--- .../common/config/SpongeGameConfigs.java | 8 ++--- .../data/provider/block/entity/SkullData.java | 4 +-- .../data/provider/entity/EntityData.java | 4 +-- .../item/stack/ArmorItemStackData.java | 2 +- .../item/stack/BlockTypeItemStackData.java | 2 +- .../provider/item/stack/ItemStackData.java | 10 +++--- .../item/stack/SkullItemStackData.java | 4 +-- .../common/data/provider/map/MapInfoData.java | 6 ++-- .../world/ServerLevelDataProvider.java | 29 ++++++++++++++++ .../data/provider/world/WorldTypeData.java | 22 ++---------- .../data/type/SpongeArtTypeBuilder.java | 6 ++-- .../effect/sound/SpongeSoundBuilder.java | 4 +-- .../common/effect/util/ViewerPacketUtil.java | 6 ++-- .../common/entity/EntityUtil.java | 12 +++---- .../common/entity/SpongeEntityArchetype.java | 4 +-- .../common/entity/SpongeEntityTypes.java | 4 +-- .../SpongeAttributeModifierBuilder.java | 6 ++-- .../entity/living/human/HumanEntity.java | 4 +-- .../common/entity/player/SpongeUserData.java | 6 ++-- .../common/event/tracking/PhasePrinter.java | 4 +-- .../common/event/tracking/PhaseTracker.java | 6 ++-- .../common/event/tracking/UnwindingState.java | 2 +- ...reateNewTileEntityPostPlacementEffect.java | 2 +- .../inventory/ContainerBasedTransaction.java | 4 +-- .../inventory/CraftingPreviewTransaction.java | 2 +- .../inventory/PlaceRecipeTransaction.java | 4 +-- .../tracking/phase/general/CommandState.java | 2 +- .../tracking/phase/packet/PacketState.java | 4 +-- .../phase/tick/EntityTickPhaseState.java | 2 +- .../tick/LocationBasedTickPhaseState.java | 2 +- .../tracking/phase/tick/WorldTickState.java | 2 +- .../common/fluid/SpongeFluidStateBuilder.java | 4 +-- .../common/item/SpongeItemStack.java | 10 +++--- .../recipe/ingredient/IngredientUtil.java | 4 +-- .../recipe/ingredient/SpongeItemList.java | 2 +- .../SpongeMapDecorationBuilder.java | 4 +-- .../common/network/channel/ChannelUtils.java | 4 +-- .../common/network/channel/SpongeChannel.java | 4 +-- .../network/channel/SpongeChannelManager.java | 14 ++++---- .../network/channel/SpongeChannelPayload.java | 8 ++--- .../packet/SpongeBasicPacketChannel.java | 10 +++--- .../channel/packet/SpongePacketChannel.java | 18 +++++----- .../raw/SpongeRawLoginDataChannel.java | 6 ++-- .../packet/ChangeViewerEnvironmentPacket.java | 6 ++-- .../network/packet/SpongePacketHandler.java | 7 ---- .../common/registry/RegistryHolderLogic.java | 22 ++++++------ .../registry/SpongeResourceKeyBuilder.java | 10 +++--- .../registry/SpongeResourceKeyFactory.java | 22 ++++++------ .../loader/CommandRegistryLoader.java | 10 +++--- .../registry/loader/SpongeRegistryLoader.java | 2 +- .../loader/VanillaRegistryLoader.java | 6 ++-- .../provider/DimensionEffectProvider.java | 19 ++++++----- .../common/serialization/MathCodecs.java | 2 +- .../common/tag/SpongeTagFactory.java | 6 ++-- .../spongepowered/common/util/Constants.java | 6 ++-- .../world/SpongeDefaultWorldKeysFactory.java | 6 ++-- .../common/world/SpongeWorldTypeEffect.java | 8 ++--- .../biome/SpongeBiomeAttributesFactory.java | 10 +++--- .../biome/SpongeBiomeProviderFactory.java | 4 +-- .../flat/SpongeFlatGeneratorConfig.java | 4 +-- .../noise/SpongeSurfaceRulesFactory.java | 6 ++-- .../jigsaw/SpongeJigsawPoolBuilder.java | 8 ++--- .../world/server/SpongeWorldManager.java | 34 +++++++++---------- .../world/server/SpongeWorldTemplate.java | 6 ++-- .../world/server/SpongeWorldTypeBuilder.java | 20 ++++++----- .../teleport/ConfigTeleportHelperFilter.java | 10 +++--- .../advancements/AdvancementMixin_API.java | 4 +-- .../AdvancementNodeMixin_API.java | 8 ++--- .../CriterionProgressMixin_API.java | 6 ++-- .../EntitySelectorParserMixin_API.java | 2 +- .../core/MappedRegistryMixin_API.java | 8 ++--- .../api/minecraft/core/RegistryMixin.java | 16 ++++----- ...ixin_API.java => IdentifierMixin_API.java} | 8 ++--- .../server/level/ServerLevelMixin_API.java | 2 +- .../server/level/ServerPlayerMixin_API.java | 4 +-- .../server/level/WorldGenRegionMixin_API.java | 2 +- .../server/packs/PackResourcesMixin_API.java | 10 +++--- .../resources/ResourceManagerMixin_API.java | 12 +++---- .../minecraft/sounds/SoundEventMixin_API.java | 4 +-- .../api/minecraft/tags/TagKeyMixin_API.java | 6 ++-- .../world/entity/EntityMixin_API.java | 4 +-- .../world/entity/HumanoidArmMixin_API.java | 5 +-- .../AttributeInstanceMixin_API.java | 14 ++++---- .../AttributeModifierMixin_API.java | 4 +-- .../entity/player/ChatVisiblityMixin_API.java | 5 +-- .../world/item/ItemCooldownsMixin_API.java | 12 +++---- .../item/crafting/RecipeManagerMixin_API.java | 2 +- .../minecraft/world/level/LevelMixin_API.java | 2 +- .../level/chunk/LevelChunkMixin_API.java | 11 ++++-- .../dimension/DimensionTypeMixin_API.java | 4 +-- .../core/HolderLookup_ProviderMixin.java | 4 +-- .../core/advancements/AdvancementMixin.java | 4 +-- .../AdvancementProgressMixin.java | 8 ++--- .../common/mixin/core/adventure/KeyMixin.java | 4 +-- .../mixin/core/client/MinecraftMixin.java | 2 +- .../core/commands/CommandFunctionMixin.java | 4 +-- .../arguments/DimensionArgumentMixin.java | 10 +++--- .../mixin/core/core/MappedRegistryMixin.java | 16 ++++----- .../ClientboundCustomQueryPacketMixin.java | 4 +-- .../resources/RegistryDataLoaderMixin.java | 6 ++-- .../core/server/MinecraftServerMixin.java | 4 +-- .../server/ServerAdvancementManagerMixin.java | 6 ++-- .../core/server/level/ChunkHolderMixin.java | 6 ++-- .../core/server/level/ChunkMapMixin.java | 2 +- .../level/GenerationChunkHolderMixin.java | 2 +- .../core/server/level/ServerLevelMixin.java | 6 ++-- .../ServerGamePacketListenerImplMixin.java | 2 +- .../core/server/players/PlayerListMixin.java | 4 +-- .../mixin/core/tags/TagLoaderMixin.java | 20 +++++------ .../entity/LivingEntityMixin_Damage.java | 2 +- .../LivingEntityMixin_Shared_Damage.java | 6 ++-- .../core/world/entity/player/PlayerMixin.java | 4 +-- .../entity/player/PlayerMixin_Attack.java | 10 ++++-- .../player/PlayerMixin_Shared_Damage.java | 6 ++-- .../core/world/item/ItemCooldownsMixin.java | 18 +++++----- .../world/item/ServerItemCooldownsMixin.java | 8 ++--- .../item/crafting/RecipeManagerMixin.java | 8 ++--- .../level/block/NetherPortalBlockMixin.java | 2 +- .../AbstractFurnaceBlockEntityMixin.java | 4 +-- .../entity/CampfireBlockEntityMixin.java | 4 +-- .../level/chunk/ChunkStatusTasksMixin.java | 2 +- .../chunk/storage/EntityStorageMixin.java | 4 +-- .../level/chunk/storage/IOWorkerMixin.java | 4 +-- .../level/storage/PlayerDataStorageMixin.java | 2 +- .../level/storage/PrimaryLevelDataMixin.java | 6 ++-- .../EnchantmentContainerMixin_Inventory.java | 2 +- .../level/ServerPlayerMixin_Inventory.java | 9 +++-- ...andsPacket_ArgumentNodeStub_IpForward.java | 6 ++-- .../EntityActivationRange.java | 6 ++-- src/mixins/resources/mixins.sponge.api.json | 2 +- .../server/packs/PluginPackResources.java | 8 ++--- .../core/tags/TagLoaderMixin_Vanilla.java | 4 +-- .../LivingEntityMixin_Vanilla_Damage.java | 2 +- .../player/PlayerMixin_Vanilla_Damage.java | 2 +- ...stractFurnaceBlockEntityMixin_Vanilla.java | 8 ++--- 180 files changed, 628 insertions(+), 603 deletions(-) create mode 100644 src/main/java/org/spongepowered/common/data/provider/world/ServerLevelDataProvider.java rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/resources/{ResourceLocationMixin_API.java => IdentifierMixin_API.java} (93%) diff --git a/forge/src/main/java/org/spongepowered/forge/hook/ForgeChannelHooks.java b/forge/src/main/java/org/spongepowered/forge/hook/ForgeChannelHooks.java index e2556d0d697..399375f877d 100644 --- a/forge/src/main/java/org/spongepowered/forge/hook/ForgeChannelHooks.java +++ b/forge/src/main/java/org/spongepowered/forge/hook/ForgeChannelHooks.java @@ -26,7 +26,7 @@ import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.protocol.common.custom.CustomPacketPayload; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraftforge.network.ForgePayload; import org.spongepowered.api.ResourceKey; import org.spongepowered.common.hooks.ChannelHooks; @@ -46,6 +46,6 @@ public void registerPlatformChannels(final Consumer channels) { final FriendlyByteBuf payload = (FriendlyByteBuf) RegisterChannelUtil.encodePayload(channels); - return new ForgePayload((ResourceLocation) (Object) Constants.Channels.REGISTER_KEY, null, b -> b.writeBytes(payload)); + return new ForgePayload((Identifier) (Object) Constants.Channels.REGISTER_KEY, null, b -> b.writeBytes(payload)); } } diff --git a/forge/src/mixins/java/org/spongepowered/forge/mixin/core/minecraftforge/registries/ForgeRegistryMixin_Forge.java b/forge/src/mixins/java/org/spongepowered/forge/mixin/core/minecraftforge/registries/ForgeRegistryMixin_Forge.java index d382d4bd688..d00213424b6 100644 --- a/forge/src/mixins/java/org/spongepowered/forge/mixin/core/minecraftforge/registries/ForgeRegistryMixin_Forge.java +++ b/forge/src/mixins/java/org/spongepowered/forge/mixin/core/minecraftforge/registries/ForgeRegistryMixin_Forge.java @@ -26,7 +26,7 @@ import com.google.common.collect.Maps; import net.minecraft.core.Registry; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraftforge.registries.ForgeRegistry; import net.minecraftforge.registries.IForgeRegistry; import org.spongepowered.api.ResourceKey; @@ -55,8 +55,8 @@ public abstract class ForgeRegistryMixin_Forge { private final Map> forge$parents = Maps.newHashMap(); private boolean forge$warnedIfNoParent; - @Inject(method = "add(ILnet/minecraft/resources/ResourceLocation;Ljava/lang/Object;Ljava/lang/String;)I", at = @At("TAIL")) - public void forge$writeToParent(final int id, final ResourceLocation key, final V value, final String owner, final CallbackInfoReturnable cir) { + @Inject(method = "add(ILnet/minecraft/resources/Identifier;Ljava/lang/Object;Ljava/lang/String;)I", at = @At("TAIL")) + public void forge$writeToParent(final int id, final Identifier key, final V value, final String owner, final CallbackInfoReturnable cir) { final ResourceKey root = (ResourceKey) (Object) this.key.registry(); final ResourceKey location = (ResourceKey) (Object) this.key.location(); diff --git a/forge/src/mixins/java/org/spongepowered/forge/mixin/core/minecraftforge/registries/RegistryManagerMixin_Forge.java b/forge/src/mixins/java/org/spongepowered/forge/mixin/core/minecraftforge/registries/RegistryManagerMixin_Forge.java index f591b0f1463..dfa9d45f21e 100644 --- a/forge/src/mixins/java/org/spongepowered/forge/mixin/core/minecraftforge/registries/RegistryManagerMixin_Forge.java +++ b/forge/src/mixins/java/org/spongepowered/forge/mixin/core/minecraftforge/registries/RegistryManagerMixin_Forge.java @@ -24,7 +24,7 @@ */ package org.spongepowered.forge.mixin.core.minecraftforge.registries; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraftforge.registries.ForgeRegistry; import net.minecraftforge.registries.RegistryManager; import org.spongepowered.asm.mixin.Mixin; @@ -39,7 +39,7 @@ public class RegistryManagerMixin_Forge { @SuppressWarnings("UnstableApiUsage") @Inject(method = "takeSnapshot", at = @At("RETURN")) - public void forge$dontSendSpongeDataToClient(boolean savingToDisc, CallbackInfoReturnable> cir) { + public void forge$dontSendSpongeDataToClient(boolean savingToDisc, CallbackInfoReturnable> cir) { if (savingToDisc) { return; } diff --git a/forge/src/mixins/java/org/spongepowered/forge/mixin/core/network/protocol/common/ClientboundCustomPayloadPacketMixin_Forge.java b/forge/src/mixins/java/org/spongepowered/forge/mixin/core/network/protocol/common/ClientboundCustomPayloadPacketMixin_Forge.java index be4df169def..6832fadbc81 100644 --- a/forge/src/mixins/java/org/spongepowered/forge/mixin/core/network/protocol/common/ClientboundCustomPayloadPacketMixin_Forge.java +++ b/forge/src/mixins/java/org/spongepowered/forge/mixin/core/network/protocol/common/ClientboundCustomPayloadPacketMixin_Forge.java @@ -28,7 +28,7 @@ import net.minecraft.network.codec.StreamCodec; import net.minecraft.network.protocol.common.ClientboundCustomPayloadPacket; import net.minecraft.network.protocol.common.custom.CustomPacketPayload; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraftforge.network.NetworkRegistry; import org.spongepowered.api.ResourceKey; import org.spongepowered.api.Sponge; @@ -49,7 +49,7 @@ public abstract class ClientboundCustomPayloadPacketMixin_Forge { // @formatter: on @Inject(method = { "lambda$static$0", "lambda$static$2" }, at = @At("HEAD"), cancellable = true) - private static void forge$getSpongeCustomPacketPayload(final ResourceLocation channelKey, final CallbackInfoReturnable> cir) { + private static void forge$getSpongeCustomPacketPayload(final Identifier channelKey, final CallbackInfoReturnable> cir) { if (NetworkRegistry.findTarget(channelKey) != null) { return; } diff --git a/forge/src/mixins/java/org/spongepowered/forge/mixin/core/network/protocol/common/ServerboundCustomPayloadPacketMixin_Forge.java b/forge/src/mixins/java/org/spongepowered/forge/mixin/core/network/protocol/common/ServerboundCustomPayloadPacketMixin_Forge.java index e5aa2980470..c58e94df499 100644 --- a/forge/src/mixins/java/org/spongepowered/forge/mixin/core/network/protocol/common/ServerboundCustomPayloadPacketMixin_Forge.java +++ b/forge/src/mixins/java/org/spongepowered/forge/mixin/core/network/protocol/common/ServerboundCustomPayloadPacketMixin_Forge.java @@ -28,7 +28,7 @@ import net.minecraft.network.codec.StreamCodec; import net.minecraft.network.protocol.common.ServerboundCustomPayloadPacket; import net.minecraft.network.protocol.common.custom.CustomPacketPayload; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraftforge.network.NetworkRegistry; import org.spongepowered.api.ResourceKey; import org.spongepowered.api.Sponge; @@ -49,7 +49,7 @@ public abstract class ServerboundCustomPayloadPacketMixin_Forge { // @formatter: on @Inject(method = { "lambda$static$0" }, at = @At("HEAD"), cancellable = true) - private static void forge$getSpongeCustomPacketPayload(final ResourceLocation channelKey, final CallbackInfoReturnable> cir) { + private static void forge$getSpongeCustomPacketPayload(final Identifier channelKey, final CallbackInfoReturnable> cir) { if (NetworkRegistry.findTarget(channelKey) != null) { return; } diff --git a/forge/src/mixins/java/org/spongepowered/forge/mixin/core/tags/TagLoaderMixin_Forge.java b/forge/src/mixins/java/org/spongepowered/forge/mixin/core/tags/TagLoaderMixin_Forge.java index e4d63fa91af..3491bcf0d4c 100644 --- a/forge/src/mixins/java/org/spongepowered/forge/mixin/core/tags/TagLoaderMixin_Forge.java +++ b/forge/src/mixins/java/org/spongepowered/forge/mixin/core/tags/TagLoaderMixin_Forge.java @@ -27,7 +27,7 @@ import com.llamalad7.mixinextras.injector.wrapoperation.Operation; import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import com.llamalad7.mixinextras.sugar.Local; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.tags.TagEntry; import net.minecraft.tags.TagLoader; import org.spongepowered.asm.mixin.Mixin; @@ -56,7 +56,7 @@ public abstract class TagLoaderMixin_Forge implements TagLoaderBridge { } @Inject(method = "lambda$build$6", at = @At("HEAD")) - private void forge$onStartBuildingTag(final TagEntry.Lookup $$0x, final Map> $$1x, final ResourceLocation $$2x, + private void forge$onStartBuildingTag(final TagEntry.Lookup $$0x, final Map> $$1x, final Identifier $$2x, final @Coerce Object $$3x, final CallbackInfo ci) { this.bridge$buildingTagKey($$2x); } diff --git a/forge/src/mixins/java/org/spongepowered/forge/mixin/tracker/world/level/block/BlockMixin_Forge_Tracker.java b/forge/src/mixins/java/org/spongepowered/forge/mixin/tracker/world/level/block/BlockMixin_Forge_Tracker.java index 64005dd321a..5a85dc8a59c 100644 --- a/forge/src/mixins/java/org/spongepowered/forge/mixin/tracker/world/level/block/BlockMixin_Forge_Tracker.java +++ b/forge/src/mixins/java/org/spongepowered/forge/mixin/tracker/world/level/block/BlockMixin_Forge_Tracker.java @@ -25,7 +25,7 @@ package org.spongepowered.forge.mixin.tracker.world.level.block; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import org.spongepowered.asm.mixin.Mixin; @@ -42,7 +42,7 @@ public abstract class BlockMixin_Forge_Tracker extends BlockBehaviorMixin_Forge_ //@formatter:on @Override - protected void forgeTracker$initializeTrackingState(CallbackInfoReturnable cir) { + protected void forgeTracker$initializeTrackingState(CallbackInfoReturnable cir) { // TODO Not the best check but the tracker options only matter during block ticks... if (this.isRandomlyTicking(this.defaultBlockState())) { this.bridge$refreshTrackerStates(); diff --git a/forge/src/mixins/java/org/spongepowered/forge/mixin/tracker/world/level/block/state/BlockBehaviorMixin_Forge_Tracker.java b/forge/src/mixins/java/org/spongepowered/forge/mixin/tracker/world/level/block/state/BlockBehaviorMixin_Forge_Tracker.java index 973df0af53f..fbc5f1cb190 100644 --- a/forge/src/mixins/java/org/spongepowered/forge/mixin/tracker/world/level/block/state/BlockBehaviorMixin_Forge_Tracker.java +++ b/forge/src/mixins/java/org/spongepowered/forge/mixin/tracker/world/level/block/state/BlockBehaviorMixin_Forge_Tracker.java @@ -25,7 +25,7 @@ package org.spongepowered.forge.mixin.tracker.world.level.block.state; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockState; import org.spongepowered.asm.mixin.Mixin; @@ -46,6 +46,6 @@ public abstract class BlockBehaviorMixin_Forge_Tracker { remap = false ) ) - protected void forgeTracker$initializeTrackingState(CallbackInfoReturnable cir) { + protected void forgeTracker$initializeTrackingState(CallbackInfoReturnable cir) { } } diff --git a/generator/src/main/java/org/spongepowered/vanilla/generator/ClassFieldsValidator.java b/generator/src/main/java/org/spongepowered/vanilla/generator/ClassFieldsValidator.java index 058fc3ad58e..afa6de3b4fc 100644 --- a/generator/src/main/java/org/spongepowered/vanilla/generator/ClassFieldsValidator.java +++ b/generator/src/main/java/org/spongepowered/vanilla/generator/ClassFieldsValidator.java @@ -37,7 +37,7 @@ import com.github.javaparser.ast.expr.StringLiteralExpr; import com.github.javaparser.javadoc.Javadoc; import com.github.javaparser.javadoc.description.JavadocDescription; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.tinylog.Logger; import java.util.ArrayList; @@ -55,21 +55,21 @@ public class ClassFieldsValidator implements Generator { private final String relativePackageName; private final String targetClassSimpleName; private final Class clazz; - private final Function mapping; + private final Function mapping; public ClassFieldsValidator( final String targetRelativePackage, final String targetClassSimpleName, final Class clazz ) { - this(targetRelativePackage, targetClassSimpleName, clazz, name -> ResourceLocation.tryBuild("sponge", name.toLowerCase(Locale.ROOT))); + this(targetRelativePackage, targetClassSimpleName, clazz, name -> Identifier.tryBuild("sponge", name.toLowerCase(Locale.ROOT))); } public ClassFieldsValidator( final String targetRelativePackage, final String targetClassSimpleName, final Class clazz, - final Function mapping + final Function mapping ) { this.relativePackageName = targetRelativePackage; this.targetClassSimpleName = targetClassSimpleName; @@ -92,7 +92,7 @@ public void generate(final Context ctx) { primaryTypeDeclaration.setJavadocComment(new Javadoc(JavadocDescription.parseText(Generator.GENERATED_FILE_JAVADOCS))); - final List map = new ArrayList<>(); + final List map = new ArrayList<>(); for (final var field : this.clazz.getDeclaredFields()) { if (!java.lang.reflect.Modifier.isPublic(field.getModifiers()) || !java.lang.reflect.Modifier.isStatic(field.getModifiers())) { @@ -107,7 +107,7 @@ public void generate(final Context ctx) { // Find index of first field member // Take out all field members from the members list final var members = primaryTypeDeclaration.getMembers(); - final var fields = new HashMap(); + final var fields = new HashMap(); int lastNonFieldIndex = -1; for (final var it = members.listIterator(); it.hasNext(); ) { final var node = it.next(); @@ -123,10 +123,10 @@ public void generate(final Context ctx) { } // Now, iterate the registry, discovering which fields were added and removed - final var added = new HashSet(); + final var added = new HashSet(); final var processedFields = new ArrayList(map.size()); - final Set allKeys = new HashSet<>(map); - for (final ResourceLocation key : allKeys) { + final Set allKeys = new HashSet<>(map); + for (final Identifier key : allKeys) { final FieldDeclaration existing = fields.remove(key); if (existing != null) { processedFields.add(existing); @@ -149,36 +149,36 @@ public void generate(final Context ctx) { } // Attempt to get a resource location from the field by parsing its initializer - private ResourceLocation extractFieldIdentifier(final FieldDeclaration declaration) { + private Identifier extractFieldIdentifier(final FieldDeclaration declaration) { if (declaration.getVariables().isEmpty()) { throw new IllegalStateException("No variables for " + declaration); } final VariableDeclarator var = declaration.getVariable(0); final Expression initializer = var.getInitializer().orElse(null); if (!(initializer instanceof MethodCallExpr) || ((MethodCallExpr) initializer).getArguments().size() != 1) { - return ResourceLocation.parse(var.getNameAsString().toLowerCase(Locale.ROOT)); // a best guess + return Identifier.parse(var.getNameAsString().toLowerCase(Locale.ROOT)); // a best guess } final Expression argument = ((MethodCallExpr) initializer).getArgument(0); if (!(argument instanceof final MethodCallExpr keyInitializer) || keyInitializer.getArguments().size() < 1) { - return ResourceLocation.parse(var.getNameAsString().toLowerCase(Locale.ROOT)); // a best guess + return Identifier.parse(var.getNameAsString().toLowerCase(Locale.ROOT)); // a best guess } if (keyInitializer.getArguments().size() == 1) { // method name as namespace - return ResourceLocation.fromNamespaceAndPath(keyInitializer.getNameAsString(), keyInitializer.getArgument(0).asStringLiteralExpr().asString()); + return Identifier.fromNamespaceAndPath(keyInitializer.getNameAsString(), keyInitializer.getArgument(0).asStringLiteralExpr().asString()); } else if (keyInitializer.getArguments().size() == 2) { // (namespace, path) - return ResourceLocation.fromNamespaceAndPath( + return Identifier.fromNamespaceAndPath( keyInitializer.getArgument(0).asStringLiteralExpr().asString(), keyInitializer.getArgument(1).asStringLiteralExpr().asString() ); } else { - return ResourceLocation.parse(var.getNameAsString().toLowerCase(Locale.ROOT)); // a best guess + return Identifier.parse(var.getNameAsString().toLowerCase(Locale.ROOT)); // a best guess } } - private FieldDeclaration makeField(final String ownType, final String factoryMethod, final ResourceLocation element) { + private FieldDeclaration makeField(final String ownType, final String factoryMethod, final Identifier element) { final FieldDeclaration fieldDeclaration = new FieldDeclaration(); final VariableDeclarator variable = new VariableDeclarator(StaticJavaParser.parseType("DefaultedRegistryReference"), Types.keyToFieldName(element.getPath())); fieldDeclaration.getVariables().add(variable); @@ -187,7 +187,7 @@ private FieldDeclaration makeField(final String ownType, final String factoryMet return fieldDeclaration; } - public static MethodCallExpr resourceKey(final ResourceLocation location) { + public static MethodCallExpr resourceKey(final Identifier location) { Objects.requireNonNull(location, "location"); final var resourceKey = new NameExpr("ResourceKey"); return switch (location.getNamespace()) { diff --git a/generator/src/main/java/org/spongepowered/vanilla/generator/EnumEntriesValidator.java b/generator/src/main/java/org/spongepowered/vanilla/generator/EnumEntriesValidator.java index 7b1ce767b13..fe97aea0807 100644 --- a/generator/src/main/java/org/spongepowered/vanilla/generator/EnumEntriesValidator.java +++ b/generator/src/main/java/org/spongepowered/vanilla/generator/EnumEntriesValidator.java @@ -37,7 +37,7 @@ import com.github.javaparser.ast.expr.StringLiteralExpr; import com.github.javaparser.javadoc.Javadoc; import com.github.javaparser.javadoc.description.JavadocDescription; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.util.StringRepresentable; import org.tinylog.Logger; @@ -91,7 +91,7 @@ public void generate(final Context ctx) { // Find index of first field member // Take out all field members from the members list final var members = primaryTypeDeclaration.getMembers(); - final var fields = new HashMap(); + final var fields = new HashMap(); int lastNonFieldIndex = -1; for (final var it = members.listIterator(); it.hasNext();) { final var node = it.next(); @@ -107,7 +107,7 @@ public void generate(final Context ctx) { } // Now, iterate the registry, discovering which fields were added and removed - final var added = new HashSet(); + final var added = new HashSet(); final var processedFields = new ArrayList(map.length); for (final Enum f : map) { final String name; @@ -123,7 +123,7 @@ public void generate(final Context ctx) { } catch (Exception e) { throw new IllegalStateException("Failed to name for enum field in class " + this.clazz.getName(), e); } - final ResourceLocation key = ResourceLocation.fromNamespaceAndPath(this.namespace, name); + final Identifier key = Identifier.fromNamespaceAndPath(this.namespace, name); final FieldDeclaration existing = fields.remove(key); if (existing != null) { @@ -151,36 +151,36 @@ public void generate(final Context ctx) { } // Attempt to get a resource location from the field by parsing its initializer - private ResourceLocation extractFieldIdentifier(final FieldDeclaration declaration) { + private Identifier extractFieldIdentifier(final FieldDeclaration declaration) { if (declaration.getVariables().isEmpty()) { throw new IllegalStateException("No variables for " + declaration); } final VariableDeclarator var = declaration.getVariable(0); final Expression initializer = var.getInitializer().orElse(null); if (!(initializer instanceof MethodCallExpr) || ((MethodCallExpr) initializer).getArguments().size() != 1) { - return ResourceLocation.parse(var.getNameAsString().toLowerCase(Locale.ROOT)); // a best guess + return Identifier.parse(var.getNameAsString().toLowerCase(Locale.ROOT)); // a best guess } final Expression argument = ((MethodCallExpr) initializer).getArgument(0); if (!(argument instanceof final MethodCallExpr keyInitializer) || keyInitializer.getArguments().size() < 1) { - return ResourceLocation.parse(var.getNameAsString().toLowerCase(Locale.ROOT)); // a best guess + return Identifier.parse(var.getNameAsString().toLowerCase(Locale.ROOT)); // a best guess } if (keyInitializer.getArguments().size() == 1) { // method name as namespace - return ResourceLocation.fromNamespaceAndPath(keyInitializer.getNameAsString(), keyInitializer.getArgument(0).asStringLiteralExpr().asString()); + return Identifier.fromNamespaceAndPath(keyInitializer.getNameAsString(), keyInitializer.getArgument(0).asStringLiteralExpr().asString()); } else if (keyInitializer.getArguments().size() == 2) { // (namespace, path) - return ResourceLocation.fromNamespaceAndPath( + return Identifier.fromNamespaceAndPath( keyInitializer.getArgument(0).asStringLiteralExpr().asString(), keyInitializer.getArgument(1).asStringLiteralExpr().asString() ); } else { - return ResourceLocation.parse(var.getNameAsString().toLowerCase(Locale.ROOT)); // a best guess + return Identifier.parse(var.getNameAsString().toLowerCase(Locale.ROOT)); // a best guess } } - private FieldDeclaration makeField(final String ownType, final String factoryMethod, final ResourceLocation element) { + private FieldDeclaration makeField(final String ownType, final String factoryMethod, final Identifier element) { final FieldDeclaration fieldDeclaration = new FieldDeclaration(); final VariableDeclarator variable = new VariableDeclarator(StaticJavaParser.parseType("DefaultedRegistryReference"), Types.keyToFieldName(element.getPath())); fieldDeclaration.getVariables().add(variable); @@ -189,7 +189,7 @@ private FieldDeclaration makeField(final String ownType, final String factoryMet return fieldDeclaration; } - public static MethodCallExpr resourceKey(final ResourceLocation location) { + public static MethodCallExpr resourceKey(final Identifier location) { Objects.requireNonNull(location, "location"); final var resourceKey = new NameExpr("ResourceKey"); return switch (location.getNamespace()) { diff --git a/generator/src/main/java/org/spongepowered/vanilla/generator/GeneratorMain.java b/generator/src/main/java/org/spongepowered/vanilla/generator/GeneratorMain.java index 3da6cc3f97d..38fef394e64 100644 --- a/generator/src/main/java/org/spongepowered/vanilla/generator/GeneratorMain.java +++ b/generator/src/main/java/org/spongepowered/vanilla/generator/GeneratorMain.java @@ -27,7 +27,7 @@ import com.github.javaparser.utils.Log; import com.mojang.datafixers.util.Pair; import net.minecraft.SharedConstants; -import net.minecraft.Util; +import net.minecraft.util.Util; import net.minecraft.commands.Commands.CommandSelection; import net.minecraft.core.HolderLookup; import net.minecraft.core.LayeredRegistryAccess; diff --git a/generator/src/main/java/org/spongepowered/vanilla/generator/MapEntriesValidator.java b/generator/src/main/java/org/spongepowered/vanilla/generator/MapEntriesValidator.java index e77780db0f6..8ca4527daed 100644 --- a/generator/src/main/java/org/spongepowered/vanilla/generator/MapEntriesValidator.java +++ b/generator/src/main/java/org/spongepowered/vanilla/generator/MapEntriesValidator.java @@ -37,7 +37,7 @@ import com.github.javaparser.ast.expr.StringLiteralExpr; import com.github.javaparser.javadoc.Javadoc; import com.github.javaparser.javadoc.description.JavadocDescription; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.tinylog.Logger; import java.util.ArrayList; @@ -56,7 +56,7 @@ public class MapEntriesValidator implements Generator { private final String targetClassSimpleName; private final Class clazz; private final String registry; - private final Function, Map> mapping; + private final Function, Map> mapping; MapEntriesValidator( final String targetRelativePackage, @@ -64,7 +64,7 @@ public class MapEntriesValidator implements Generator { final Class clazz, final String registry ) { - this(targetRelativePackage, targetClassSimpleName, clazz, registry, map -> (Map) map); + this(targetRelativePackage, targetClassSimpleName, clazz, registry, map -> (Map) map); } public MapEntriesValidator( @@ -72,7 +72,7 @@ public MapEntriesValidator( final String targetClassSimpleName, final Class clazz, final String registry, - final Function, Map> mapping + final Function, Map> mapping ) { this.relativePackageName = targetRelativePackage; this.targetClassSimpleName = targetClassSimpleName; @@ -96,7 +96,7 @@ public void generate(final Context ctx) { primaryTypeDeclaration.setJavadocComment(new Javadoc(JavadocDescription.parseText(Generator.GENERATED_FILE_JAVADOCS))); - final Map map; + final Map map; try { final var f = this.clazz.getDeclaredField(this.registry); f.setAccessible(true); @@ -112,7 +112,7 @@ public void generate(final Context ctx) { // Find index of first field member // Take out all field members from the members list final var members = primaryTypeDeclaration.getMembers(); - final var fields = new HashMap(); + final var fields = new HashMap(); int lastNonFieldIndex = -1; for (final var it = members.listIterator(); it.hasNext();) { final var node = it.next(); @@ -128,10 +128,10 @@ public void generate(final Context ctx) { } // Now, iterate the registry, discovering which fields were added and removed - final var added = new HashSet(); + final var added = new HashSet(); final var processedFields = new ArrayList(map.keySet().size()); - final Set allKeys = new HashSet<>(map.keySet()); - for (final ResourceLocation key : allKeys) { + final Set allKeys = new HashSet<>(map.keySet()); + for (final Identifier key : allKeys) { final FieldDeclaration existing = fields.remove(key); if (existing != null) { processedFields.add(existing); @@ -154,36 +154,36 @@ public void generate(final Context ctx) { } // Attempt to get a resource location from the field by parsing its initializer - private ResourceLocation extractFieldIdentifier(final FieldDeclaration declaration) { + private Identifier extractFieldIdentifier(final FieldDeclaration declaration) { if (declaration.getVariables().isEmpty()) { throw new IllegalStateException("No variables for " + declaration); } final VariableDeclarator var = declaration.getVariable(0); final Expression initializer = var.getInitializer().orElse(null); if (!(initializer instanceof MethodCallExpr) || ((MethodCallExpr) initializer).getArguments().size() != 1) { - return ResourceLocation.parse(var.getNameAsString().toLowerCase(Locale.ROOT)); // a best guess + return Identifier.parse(var.getNameAsString().toLowerCase(Locale.ROOT)); // a best guess } final Expression argument = ((MethodCallExpr) initializer).getArgument(0); if (!(argument instanceof final MethodCallExpr keyInitializer) || keyInitializer.getArguments().size() < 1) { - return ResourceLocation.parse(var.getNameAsString().toLowerCase(Locale.ROOT)); // a best guess + return Identifier.parse(var.getNameAsString().toLowerCase(Locale.ROOT)); // a best guess } if (keyInitializer.getArguments().size() == 1) { // method name as namespace - return ResourceLocation.fromNamespaceAndPath(keyInitializer.getNameAsString(), keyInitializer.getArgument(0).asStringLiteralExpr().asString()); + return Identifier.fromNamespaceAndPath(keyInitializer.getNameAsString(), keyInitializer.getArgument(0).asStringLiteralExpr().asString()); } else if (keyInitializer.getArguments().size() == 2) { // (namespace, path) - return ResourceLocation.fromNamespaceAndPath( + return Identifier.fromNamespaceAndPath( keyInitializer.getArgument(0).asStringLiteralExpr().asString(), keyInitializer.getArgument(1).asStringLiteralExpr().asString() ); } else { - return ResourceLocation.parse(var.getNameAsString().toLowerCase(Locale.ROOT)); // a best guess + return Identifier.parse(var.getNameAsString().toLowerCase(Locale.ROOT)); // a best guess } } - private FieldDeclaration makeField(final String ownType, final String factoryMethod, final ResourceLocation element) { + private FieldDeclaration makeField(final String ownType, final String factoryMethod, final Identifier element) { final FieldDeclaration fieldDeclaration = new FieldDeclaration(); final VariableDeclarator variable = new VariableDeclarator(StaticJavaParser.parseType("DefaultedRegistryReference"), Types.keyToFieldName(element.getPath())); fieldDeclaration.getVariables().add(variable); @@ -192,7 +192,7 @@ private FieldDeclaration makeField(final String ownType, final String factoryMet return fieldDeclaration; } - public static MethodCallExpr resourceKey(final ResourceLocation location) { + public static MethodCallExpr resourceKey(final Identifier location) { Objects.requireNonNull(location, "location"); final var resourceKey = new NameExpr("ResourceKey"); return switch (location.getNamespace()) { diff --git a/generator/src/main/java/org/spongepowered/vanilla/generator/RegistryEntriesGenerator.java b/generator/src/main/java/org/spongepowered/vanilla/generator/RegistryEntriesGenerator.java index bf578e919b0..27d363626b3 100644 --- a/generator/src/main/java/org/spongepowered/vanilla/generator/RegistryEntriesGenerator.java +++ b/generator/src/main/java/org/spongepowered/vanilla/generator/RegistryEntriesGenerator.java @@ -31,8 +31,8 @@ import net.minecraft.core.Holder; import net.minecraft.core.Registry; import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.Identifier; import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; import net.minecraft.world.flag.FeatureElement; import net.minecraft.world.flag.FeatureFlagSet; import net.minecraft.world.flag.FeatureFlags; @@ -152,7 +152,7 @@ public void generate(final Context ctx) throws IOException { ctx.compilationUnit(this.relativePackageName, this.targetClassSimpleName); } - private FieldSpec makeField(final String ownType, final TypeName fieldType, final MethodSpec factoryMethod, final ResourceLocation element, @Nullable final FeatureFlagSet featureFlagSet) { + private FieldSpec makeField(final String ownType, final TypeName fieldType, final MethodSpec factoryMethod, final Identifier element, @Nullable final FeatureFlagSet featureFlagSet) { final FieldSpec.Builder builder = FieldSpec.builder(fieldType, Types.keyToFieldName(element.getPath()), Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL) diff --git a/generator/src/main/java/org/spongepowered/vanilla/generator/RegistryEntriesValidator.java b/generator/src/main/java/org/spongepowered/vanilla/generator/RegistryEntriesValidator.java index 46d53c0ef3a..c3293a09dd2 100644 --- a/generator/src/main/java/org/spongepowered/vanilla/generator/RegistryEntriesValidator.java +++ b/generator/src/main/java/org/spongepowered/vanilla/generator/RegistryEntriesValidator.java @@ -39,8 +39,8 @@ import com.github.javaparser.javadoc.description.JavadocDescription; import net.minecraft.core.Registry; import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.Identifier; import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; import org.tinylog.Logger; import java.util.ArrayList; @@ -59,7 +59,7 @@ public class RegistryEntriesValidator implements Generator { private final String targetClassSimpleName; private final ResourceKey> registry; private final Predicate filter; - private final Set extraEntries; + private final Set extraEntries; public RegistryEntriesValidator( final String targetRelativePackage, @@ -74,7 +74,7 @@ public RegistryEntriesValidator( final String targetClassSimpleName, final ResourceKey> registry, final Predicate filter, - final Set extraEntries + final Set extraEntries ) { this.relativePackageName = targetRelativePackage; this.targetClassSimpleName = targetClassSimpleName; @@ -107,7 +107,7 @@ public void generate(final Context ctx) { // Find index of first field member // Take out all field members from the members list final var members = primaryTypeDeclaration.getMembers(); - final var fields = new HashMap(); + final var fields = new HashMap(); int lastNonFieldIndex = -1; for (final var it = members.listIterator(); it.hasNext();) { final var node = it.next(); @@ -123,11 +123,11 @@ public void generate(final Context ctx) { } // Now, iterate the registry, discovering which fields were added and removed - final var added = new HashSet(); + final var added = new HashSet(); final var processedFields = new ArrayList(registry.keySet().size()); - final Set allKeys = new HashSet<>(registry.keySet()); + final Set allKeys = new HashSet<>(registry.keySet()); allKeys.addAll(this.extraEntries); - for (final ResourceLocation key : allKeys) { + for (final Identifier key : allKeys) { if (!this.filter.test(registry.getValue(key))) { continue; } @@ -154,36 +154,36 @@ public void generate(final Context ctx) { } // Attempt to get a resource location from the field by parsing its initializer - private ResourceLocation extractFieldIdentifier(final FieldDeclaration declaration) { + private Identifier extractFieldIdentifier(final FieldDeclaration declaration) { if (declaration.getVariables().isEmpty()) { throw new IllegalStateException("No variables for " + declaration); } final VariableDeclarator var = declaration.getVariable(0); final Expression initializer = var.getInitializer().orElse(null); if (!(initializer instanceof MethodCallExpr) || ((MethodCallExpr) initializer).getArguments().size() != 1) { - return ResourceLocation.parse(var.getNameAsString().toLowerCase(Locale.ROOT)); // a best guess + return Identifier.parse(var.getNameAsString().toLowerCase(Locale.ROOT)); // a best guess } final Expression argument = ((MethodCallExpr) initializer).getArgument(0); if (!(argument instanceof final MethodCallExpr keyInitializer) || keyInitializer.getArguments().size() < 1) { - return ResourceLocation.parse(var.getNameAsString().toLowerCase(Locale.ROOT)); // a best guess + return Identifier.parse(var.getNameAsString().toLowerCase(Locale.ROOT)); // a best guess } if (keyInitializer.getArguments().size() == 1) { // method name as namespace - return ResourceLocation.fromNamespaceAndPath(keyInitializer.getNameAsString(), keyInitializer.getArgument(0).asStringLiteralExpr().asString()); + return Identifier.fromNamespaceAndPath(keyInitializer.getNameAsString(), keyInitializer.getArgument(0).asStringLiteralExpr().asString()); } else if (keyInitializer.getArguments().size() == 2) { // (namespace, path) - return ResourceLocation.fromNamespaceAndPath( + return Identifier.fromNamespaceAndPath( keyInitializer.getArgument(0).asStringLiteralExpr().asString(), keyInitializer.getArgument(1).asStringLiteralExpr().asString() ); } else { - return ResourceLocation.parse(var.getNameAsString().toLowerCase(Locale.ROOT)); // a best guess + return Identifier.parse(var.getNameAsString().toLowerCase(Locale.ROOT)); // a best guess } } - private FieldDeclaration makeField(final String ownType, final String factoryMethod, final ResourceLocation element) { + private FieldDeclaration makeField(final String ownType, final String factoryMethod, final Identifier element) { final FieldDeclaration fieldDeclaration = new FieldDeclaration(); final VariableDeclarator variable = new VariableDeclarator(StaticJavaParser.parseType("DefaultedRegistryReference"), Types.keyToFieldName(element.getPath())); fieldDeclaration.getVariables().add(variable); @@ -192,7 +192,7 @@ private FieldDeclaration makeField(final String ownType, final String factoryMet return fieldDeclaration; } - public static MethodCallExpr resourceKey(final ResourceLocation location) { + public static MethodCallExpr resourceKey(final Identifier location) { Objects.requireNonNull(location, "location"); final var resourceKey = new NameExpr("ResourceKey"); return switch (location.getNamespace()) { diff --git a/generator/src/main/java/org/spongepowered/vanilla/generator/TagGenerator.java b/generator/src/main/java/org/spongepowered/vanilla/generator/TagGenerator.java index c1c8c1007fb..96b8e6f4a56 100644 --- a/generator/src/main/java/org/spongepowered/vanilla/generator/TagGenerator.java +++ b/generator/src/main/java/org/spongepowered/vanilla/generator/TagGenerator.java @@ -31,8 +31,8 @@ import com.squareup.javapoet.TypeName; import net.minecraft.core.HolderSet; import net.minecraft.core.Registry; +import net.minecraft.resources.Identifier; import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagKey; import java.io.IOException; @@ -109,7 +109,7 @@ public void generate(final Context ctx) throws IOException { ctx.compilationUnit(this.relativePackageName, this.targetClassSimpleName); } - private FieldSpec makeField(final String ownType, final TypeName fieldType, final MethodSpec factoryMethod, final ResourceLocation element) { + private FieldSpec makeField(final String ownType, final TypeName fieldType, final MethodSpec factoryMethod, final Identifier element) { return FieldSpec.builder(fieldType, Types.keyToFieldName(element.getPath()), Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL) .initializer("$L.$N($L)", ownType, factoryMethod, Types.resourceKey(element)) .build(); diff --git a/generator/src/main/java/org/spongepowered/vanilla/generator/Types.java b/generator/src/main/java/org/spongepowered/vanilla/generator/Types.java index bc7cf62220b..1a72118cdad 100644 --- a/generator/src/main/java/org/spongepowered/vanilla/generator/Types.java +++ b/generator/src/main/java/org/spongepowered/vanilla/generator/Types.java @@ -31,7 +31,7 @@ import com.squareup.javapoet.TypeName; import com.squareup.javapoet.TypeSpec; import com.squareup.javapoet.WildcardTypeName; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import java.util.Locale; import java.util.Objects; @@ -111,7 +111,7 @@ static String keyToFieldName(final String key) { }; } - public static CodeBlock resourceKey(final ResourceLocation location) { + public static CodeBlock resourceKey(final Identifier location) { Objects.requireNonNull(location, "location"); return Types.resourceKey(location.getNamespace(), location.getPath()); } diff --git a/generator/src/main/java/org/spongepowered/vanilla/generator/item/ItemRegistries.java b/generator/src/main/java/org/spongepowered/vanilla/generator/item/ItemRegistries.java index 205a2cc1934..ed1abd33a8b 100644 --- a/generator/src/main/java/org/spongepowered/vanilla/generator/item/ItemRegistries.java +++ b/generator/src/main/java/org/spongepowered/vanilla/generator/item/ItemRegistries.java @@ -25,7 +25,7 @@ package org.spongepowered.vanilla.generator.item; import net.minecraft.core.registries.Registries; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.DyeColor; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.Rarity; @@ -134,7 +134,7 @@ public static List itemRegistries(final Context context) { "data.type", "ArmorMaterials", ArmorMaterials.class, - (s) -> ResourceLocation.withDefaultNamespace(s.toLowerCase(Locale.ROOT)) + (s) -> Identifier.withDefaultNamespace(s.toLowerCase(Locale.ROOT)) ) ); } diff --git a/generator/src/main/java/org/spongepowered/vanilla/generator/world/entities/EntityRegistries.java b/generator/src/main/java/org/spongepowered/vanilla/generator/world/entities/EntityRegistries.java index 33143686f4a..a56cd09d1fa 100644 --- a/generator/src/main/java/org/spongepowered/vanilla/generator/world/entities/EntityRegistries.java +++ b/generator/src/main/java/org/spongepowered/vanilla/generator/world/entities/EntityRegistries.java @@ -25,7 +25,7 @@ package org.spongepowered.vanilla.generator.world.entities; import net.minecraft.core.registries.Registries; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.entity.Display; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.EquipmentSlotGroup; @@ -205,7 +205,7 @@ public static List registryEntries(final Context context) { "EntityTypes", Registries.ENTITY_TYPE, $ -> true, - Set.of(ResourceLocation.fromNamespaceAndPath("sponge", "human")) // Sponge's Human type is an extra addition + Set.of(Identifier.fromNamespaceAndPath("sponge", "human")) // Sponge's Human type is an extra addition ), new RegistryEntriesGenerator<>( "data.type", diff --git a/gradle.properties b/gradle.properties index cdc97b4abd2..818109668c2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ mixinConfigs=mixins.sponge.accessors.json,mixins.sponge.api.json,mixins.sponge.c mixins.sponge.entityactivation.json,mixins.sponge.exploit.json,mixins.sponge.inventory.json,mixins.sponge.movementcheck.json,\ mixins.sponge.tracker.json,mixins.sponge.ipforward.json,mixins.sponge.optimization.json,mixins.sponge.test.json -minecraftVersion=25w44a +minecraftVersion=25w45a recommendedVersion=0-SNAPSHOT org.gradle.dependency.verification.console=verbose diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 7ea3f483efd..a4addc207b8 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -1763,6 +1763,14 @@ + + + + + + + + diff --git a/neoforge/src/accessors/java/org/spongepowered/neoforge/accessor/neoforge/registries/RegistrySnapshotAccessor_Neo.java b/neoforge/src/accessors/java/org/spongepowered/neoforge/accessor/neoforge/registries/RegistrySnapshotAccessor_Neo.java index a3c22d65967..4b6cddb1cb7 100644 --- a/neoforge/src/accessors/java/org/spongepowered/neoforge/accessor/neoforge/registries/RegistrySnapshotAccessor_Neo.java +++ b/neoforge/src/accessors/java/org/spongepowered/neoforge/accessor/neoforge/registries/RegistrySnapshotAccessor_Neo.java @@ -25,7 +25,7 @@ package org.spongepowered.neoforge.accessor.neoforge.registries; import it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.neoforged.neoforge.registries.RegistrySnapshot; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; @@ -34,5 +34,5 @@ public interface RegistrySnapshotAccessor_Neo { @Accessor("ids") - Int2ObjectSortedMap accessor$ids(); + Int2ObjectSortedMap accessor$ids(); } diff --git a/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/neoforge/registries/RegistryManagerMixin_Neo.java b/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/neoforge/registries/RegistryManagerMixin_Neo.java index 390cfd4613b..b7b8f24f372 100644 --- a/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/neoforge/registries/RegistryManagerMixin_Neo.java +++ b/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/neoforge/registries/RegistryManagerMixin_Neo.java @@ -24,7 +24,7 @@ */ package org.spongepowered.neoforge.mixin.core.neoforge.registries; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.neoforged.neoforge.registries.RegistryManager; import net.neoforged.neoforge.registries.RegistrySnapshot; import org.spongepowered.asm.mixin.Mixin; @@ -40,7 +40,7 @@ public class RegistryManagerMixin_Neo { @Inject(method = "takeSnapshot", at = @At("RETURN")) - private static void neo$dontSendSpongeDataToClient(RegistryManager.SnapshotType snapshotType, CallbackInfoReturnable> cir) { + private static void neo$dontSendSpongeDataToClient(RegistryManager.SnapshotType snapshotType, CallbackInfoReturnable> cir) { if (snapshotType != RegistryManager.SnapshotType.SYNC_TO_CLIENT) { return; } diff --git a/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/tags/TagLoaderMixin_NeoForge.java b/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/tags/TagLoaderMixin_NeoForge.java index f7b9276052f..5cc7735bec8 100644 --- a/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/tags/TagLoaderMixin_NeoForge.java +++ b/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/tags/TagLoaderMixin_NeoForge.java @@ -27,7 +27,7 @@ import com.llamalad7.mixinextras.injector.wrapoperation.Operation; import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import com.llamalad7.mixinextras.sugar.Local; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.tags.TagEntry; import net.minecraft.tags.TagLoader; import org.spongepowered.asm.mixin.Mixin; @@ -56,7 +56,7 @@ public abstract class TagLoaderMixin_NeoForge implements TagLoaderBridge { } @Inject(method = "lambda$build$6", at = @At("HEAD")) - private void neo$onStartBuildingTag(final TagEntry.Lookup $$0x, final Map> $$1x, final ResourceLocation $$2x, + private void neo$onStartBuildingTag(final TagEntry.Lookup $$0x, final Map> $$1x, final Identifier $$2x, final @Coerce Object $$3x, final CallbackInfo ci) { this.bridge$buildingTagKey($$2x); } diff --git a/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/world/entity/LivingEntityMixin_Neo_Damage.java b/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/world/entity/LivingEntityMixin_Neo_Damage.java index 52f9056e52b..053b1c6767d 100644 --- a/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/world/entity/LivingEntityMixin_Neo_Damage.java +++ b/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/world/entity/LivingEntityMixin_Neo_Damage.java @@ -71,7 +71,7 @@ public abstract class LivingEntityMixin_Neo_Damage implements TrackedDamageBridg } @ModifyVariable(method = "actuallyHurt", at = @At("LOAD"), ordinal = 3, slice = @Slice( - from = @At(value = "INVOKE", target = "Lnet/minecraft/server/level/ServerPlayer;awardStat(Lnet/minecraft/resources/ResourceLocation;I)V"), + from = @At(value = "INVOKE", target = "Lnet/minecraft/server/level/ServerPlayer;awardStat(Lnet/minecraft/resources/Identifier;I)V"), to = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/LivingEntity;getCombatTracker()Lnet/minecraft/world/damagesource/CombatTracker;"))) private float damage$firePostEvent_Living(final float damage) { return this.damage$firePostEvent(damage); diff --git a/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/world/entity/player/PlayerMixin_Neo_Damage.java b/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/world/entity/player/PlayerMixin_Neo_Damage.java index e25fc9102cd..a0c6b8c7cc6 100644 --- a/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/world/entity/player/PlayerMixin_Neo_Damage.java +++ b/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/world/entity/player/PlayerMixin_Neo_Damage.java @@ -63,7 +63,7 @@ public abstract class PlayerMixin_Neo_Damage extends LivingEntityMixin_Neo_Damag } @ModifyVariable(method = "actuallyHurt", at = @At("LOAD"), ordinal = 3, slice = @Slice( - from = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;awardStat(Lnet/minecraft/resources/ResourceLocation;I)V"), + from = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;awardStat(Lnet/minecraft/resources/Identifier;I)V"), to = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;causeFoodExhaustion(F)V"))) private float damage$firePostEvent_Player(final float damage) { return this.damage$firePostEvent(damage); diff --git a/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/tracker/world/level/block/BlockMixin_Neo_Tracker.java b/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/tracker/world/level/block/BlockMixin_Neo_Tracker.java index f9c274a8da3..dece1a48c8e 100644 --- a/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/tracker/world/level/block/BlockMixin_Neo_Tracker.java +++ b/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/tracker/world/level/block/BlockMixin_Neo_Tracker.java @@ -25,7 +25,7 @@ package org.spongepowered.neoforge.mixin.tracker.world.level.block; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import org.spongepowered.asm.mixin.Mixin; @@ -42,7 +42,7 @@ public abstract class BlockMixin_Neo_Tracker extends BlockBehaviorMixin_Neo_Trac //@formatter:on @Override - protected void forgeTracker$initializeTrackingState(CallbackInfoReturnable cir) { + protected void forgeTracker$initializeTrackingState(CallbackInfoReturnable cir) { // TODO Not the best check but the tracker options only matter during block ticks... if (this.isRandomlyTicking(this.defaultBlockState())) { this.bridge$refreshTrackerStates(); diff --git a/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/tracker/world/level/block/state/BlockBehaviorMixin_Neo_Tracker.java b/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/tracker/world/level/block/state/BlockBehaviorMixin_Neo_Tracker.java index 7f7eaf032b2..b708e30d113 100644 --- a/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/tracker/world/level/block/state/BlockBehaviorMixin_Neo_Tracker.java +++ b/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/tracker/world/level/block/state/BlockBehaviorMixin_Neo_Tracker.java @@ -25,7 +25,7 @@ package org.spongepowered.neoforge.mixin.tracker.world.level.block.state; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockState; import org.spongepowered.asm.mixin.Mixin; @@ -46,6 +46,6 @@ public abstract class BlockBehaviorMixin_Neo_Tracker { remap = false ) ) - protected void forgeTracker$initializeTrackingState(CallbackInfoReturnable cir) { + protected void forgeTracker$initializeTrackingState(CallbackInfoReturnable cir) { } } diff --git a/src/accessors/java/org/spongepowered/common/accessor/client/multiplayer/ClientLevelAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/client/multiplayer/ClientLevelAccessor.java index d588cd5ff60..e1cea955966 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/client/multiplayer/ClientLevelAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/client/multiplayer/ClientLevelAccessor.java @@ -25,11 +25,9 @@ package org.spongepowered.common.accessor.client.multiplayer; import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.client.renderer.DimensionSpecialEffects; import net.minecraft.world.entity.Entity; import net.minecraft.world.level.entity.TransientEntitySectionManager; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Mutable; import org.spongepowered.asm.mixin.gen.Accessor; @Mixin(ClientLevel.class) @@ -37,5 +35,4 @@ public interface ClientLevelAccessor { @Accessor("entityStorage") TransientEntitySectionManager accessor$getEntityStorage(); - @Mutable @Accessor("effects") void accessor$effects(DimensionSpecialEffects effects); } diff --git a/src/accessors/java/org/spongepowered/common/accessor/resources/ResourceKeyAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/resources/ResourceKeyAccessor.java index cf288ba96a5..999584f968d 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/resources/ResourceKeyAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/resources/ResourceKeyAccessor.java @@ -24,8 +24,8 @@ */ package org.spongepowered.common.accessor.resources; +import net.minecraft.resources.Identifier; import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; import org.spongepowered.asm.mixin.gen.Invoker; @@ -34,9 +34,9 @@ @Mixin(ResourceKey.class) public interface ResourceKeyAccessor { - @Invoker("create") static ResourceKey invoker$create(final ResourceLocation p_240905_0_, final ResourceLocation p_240905_1_) { + @Invoker("create") static ResourceKey invoker$create(final Identifier p_240905_0_, final Identifier p_240905_1_) { throw new UntransformedInvokerError(); } - @Accessor("registryName") ResourceLocation accessor$registryName(); + @Accessor("registryName") Identifier accessor$registryName(); } diff --git a/src/accessors/java/org/spongepowered/common/accessor/sounds/SoundEventAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/sounds/SoundEventAccessor.java index 35ebdd5a590..1ca68b206a6 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/sounds/SoundEventAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/sounds/SoundEventAccessor.java @@ -24,7 +24,7 @@ */ package org.spongepowered.common.accessor.sounds; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.sounds.SoundEvent; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Invoker; @@ -34,7 +34,7 @@ public interface SoundEventAccessor { @Invoker("createVariableRangeEvent") - static SoundEvent accessor$createVariableRangeEvent(ResourceLocation $$0) { + static SoundEvent accessor$createVariableRangeEvent(Identifier $$0) { throw new UntransformedAccessorError(); } diff --git a/src/accessors/java/org/spongepowered/common/accessor/tags/TagEntryAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/tags/TagEntryAccessor.java index f4b86e2eea8..fbe72f7628d 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/tags/TagEntryAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/tags/TagEntryAccessor.java @@ -24,7 +24,7 @@ */ package org.spongepowered.common.accessor.tags; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.tags.TagEntry; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; @@ -32,7 +32,7 @@ @Mixin(TagEntry.class) public interface TagEntryAccessor { - @Accessor("id") ResourceLocation accessor$id(); + @Accessor("id") Identifier accessor$id(); @Accessor("tag") boolean accessor$tag(); } diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/item/AdventureModePredicateAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/item/AdventureModePredicateAccessor.java index 4c0425100ce..7026e5ee36d 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/item/AdventureModePredicateAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/item/AdventureModePredicateAccessor.java @@ -24,7 +24,7 @@ */ package org.spongepowered.common.accessor.world.item; -import net.minecraft.advancements.critereon.BlockPredicate; +import net.minecraft.advancements.criterion.BlockPredicate; import net.minecraft.world.item.AdventureModePredicate; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/level/block/entity/SkullBlockEntityAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/level/block/entity/SkullBlockEntityAccessor.java index 28f76ba8277..2113216a8a7 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/level/block/entity/SkullBlockEntityAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/level/block/entity/SkullBlockEntityAccessor.java @@ -24,7 +24,7 @@ */ package org.spongepowered.common.accessor.world.level.block.entity; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.level.block.entity.SkullBlockEntity; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; @@ -32,7 +32,7 @@ @Mixin(SkullBlockEntity.class) public interface SkullBlockEntityAccessor { - @Accessor("noteBlockSound") void accessor$noteBlockSound(final ResourceLocation location); + @Accessor("noteBlockSound") void accessor$noteBlockSound(final Identifier location); - @Accessor("noteBlockSound") ResourceLocation accessor$noteBlockSound(); + @Accessor("noteBlockSound") Identifier accessor$noteBlockSound(); } diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/level/dimension/DimensionTypeAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/level/dimension/DimensionTypeAccessor.java index d0f7d6f4fd3..e90a8dac1e0 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/level/dimension/DimensionTypeAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/level/dimension/DimensionTypeAccessor.java @@ -28,12 +28,9 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; -import java.util.OptionalLong; @Mixin(DimensionType.class) public interface DimensionTypeAccessor { - @Accessor("fixedTime") OptionalLong accessor$fixedTime(); - @Accessor("ambientLight") float accessor$ambientLight(); } diff --git a/src/main/java/org/spongepowered/common/advancement/SpongeAdvancementBuilder.java b/src/main/java/org/spongepowered/common/advancement/SpongeAdvancementBuilder.java index 505a182d0d2..5f9dda5e4a2 100644 --- a/src/main/java/org/spongepowered/common/advancement/SpongeAdvancementBuilder.java +++ b/src/main/java/org/spongepowered/common/advancement/SpongeAdvancementBuilder.java @@ -29,7 +29,7 @@ import net.minecraft.advancements.AdvancementRewards; import net.minecraft.advancements.Criterion; import net.minecraft.core.ClientAsset; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.api.ResourceKey; import org.spongepowered.api.advancement.Advancement; @@ -48,7 +48,7 @@ public final class SpongeAdvancementBuilder implements Advancement.Builder.RootStep { - private @Nullable ResourceLocation parent; + private @Nullable Identifier parent; private AdvancementCriterion criterion; private @Nullable DisplayInfo displayInfo; private @Nullable ClientAsset backgroundPath; @@ -59,7 +59,7 @@ public SpongeAdvancementBuilder() { @Override public Advancement.Builder parent(final ResourceKey parent) { - this.parent = (ResourceLocation) (Object) parent; + this.parent = (Identifier) (Object) parent; this.backgroundPath = null; return this; } @@ -72,7 +72,7 @@ public Advancement.Builder.RootStep root() { @Override public Advancement.Builder background(final ResourceKey backgroundPath) { - this.backgroundPath = new ClientAsset.ResourceTexture((ResourceLocation) (Object) backgroundPath); + this.backgroundPath = new ClientAsset.ResourceTexture((Identifier) (Object) backgroundPath); return this; } @@ -91,7 +91,7 @@ public Advancement.Builder displayInfo(final @Nullable DisplayInfo displayInfo) @Override public Advancement.Builder from(final Advancement value) { - this.parent = (ResourceLocation) (Object) value.parent().orElse(null); + this.parent = (Identifier) (Object) value.parent().orElse(null); this.criterion = value.criterion(); this.displayInfo = value.displayInfo().orElse(null); this.backgroundPath = ((net.minecraft.advancements.Advancement) (Object) value).display() diff --git a/src/main/java/org/spongepowered/common/advancement/SpongeFilteredTrigger.java b/src/main/java/org/spongepowered/common/advancement/SpongeFilteredTrigger.java index 0a695d0e35d..705d5b3aa87 100644 --- a/src/main/java/org/spongepowered/common/advancement/SpongeFilteredTrigger.java +++ b/src/main/java/org/spongepowered/common/advancement/SpongeFilteredTrigger.java @@ -27,7 +27,7 @@ import com.google.gson.Gson; import com.google.gson.JsonObject; import net.minecraft.advancements.CriterionTriggerInstance; -import net.minecraft.advancements.critereon.CriterionValidator; +import net.minecraft.advancements.criterion.CriterionValidator; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.spongepowered.api.advancement.criteria.trigger.FilteredTrigger; diff --git a/src/main/java/org/spongepowered/common/advancement/criterion/SpongeDummyTrigger.java b/src/main/java/org/spongepowered/common/advancement/criterion/SpongeDummyTrigger.java index e9c244445b1..67edf73cbb9 100644 --- a/src/main/java/org/spongepowered/common/advancement/criterion/SpongeDummyTrigger.java +++ b/src/main/java/org/spongepowered/common/advancement/criterion/SpongeDummyTrigger.java @@ -26,9 +26,9 @@ import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import net.minecraft.advancements.critereon.ContextAwarePredicate; -import net.minecraft.advancements.critereon.EntityPredicate; -import net.minecraft.advancements.critereon.SimpleCriterionTrigger; +import net.minecraft.advancements.criterion.ContextAwarePredicate; +import net.minecraft.advancements.criterion.EntityPredicate; +import net.minecraft.advancements.criterion.SimpleCriterionTrigger; import net.minecraft.core.Registry; import net.minecraft.core.registries.BuiltInRegistries; diff --git a/src/main/java/org/spongepowered/common/advancement/criterion/SpongeScoreTrigger.java b/src/main/java/org/spongepowered/common/advancement/criterion/SpongeScoreTrigger.java index cf02aad5240..dc748afd4ee 100644 --- a/src/main/java/org/spongepowered/common/advancement/criterion/SpongeScoreTrigger.java +++ b/src/main/java/org/spongepowered/common/advancement/criterion/SpongeScoreTrigger.java @@ -26,9 +26,9 @@ import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import net.minecraft.advancements.critereon.ContextAwarePredicate; -import net.minecraft.advancements.critereon.EntityPredicate; -import net.minecraft.advancements.critereon.SimpleCriterionTrigger; +import net.minecraft.advancements.criterion.ContextAwarePredicate; +import net.minecraft.advancements.criterion.EntityPredicate; +import net.minecraft.advancements.criterion.SimpleCriterionTrigger; import net.minecraft.core.Registry; import net.minecraft.core.registries.BuiltInRegistries; diff --git a/src/main/java/org/spongepowered/common/adventure/SpongeAdventure.java b/src/main/java/org/spongepowered/common/adventure/SpongeAdventure.java index f6c7eaa7641..40c93f0b8e5 100644 --- a/src/main/java/org/spongepowered/common/adventure/SpongeAdventure.java +++ b/src/main/java/org/spongepowered/common/adventure/SpongeAdventure.java @@ -84,8 +84,8 @@ import net.minecraft.network.chat.contents.data.BlockDataSource; import net.minecraft.network.chat.contents.data.EntityDataSource; import net.minecraft.network.chat.contents.data.StorageDataSource; +import net.minecraft.resources.Identifier; import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerBossEvent; import net.minecraft.sounds.SoundSource; import net.minecraft.world.BossEvent; @@ -223,7 +223,7 @@ public static TriState asAdventure(final Tristate state) { // ------------- // org.spongepowered.common.mixin.core.adventure.KeyMixin - public static Key asAdventure(final ResourceLocation key) { + public static Key asAdventure(final Identifier key) { return (Key) (Object) key; } @@ -520,7 +520,7 @@ public static HoverEvent asAdventure(final net.minecraft.network.chat.HoverEv final var stack = si.item(); final Registry itemRegistry = SpongeCommon.vanillaRegistry(Registries.ITEM); yield HoverEvent.showItem( - SpongeAdventure.asAdventure(stack.getItemHolder().unwrap().map(ResourceKey::location, itemRegistry::getKey)), + SpongeAdventure.asAdventure(stack.getItemHolder().unwrap().map(ResourceKey::identifier, itemRegistry::getKey)), stack.getCount(), SpongeAdventure.asAdventure(stack.getComponentsPatch()) ); @@ -785,7 +785,7 @@ public static Map asAdventure(final DataComponentPatch Map map = new HashMap<>(); components.entrySet().forEach(entry -> { - final ResourceLocation key = BuiltInRegistries.DATA_COMPONENT_TYPE.getKey(entry.getKey()); + final Identifier key = BuiltInRegistries.DATA_COMPONENT_TYPE.getKey(entry.getKey()); map.put(SpongeAdventure.asAdventure(key), new SpongeDataComponentValue<>(entry.getValue())); }); return map; @@ -805,18 +805,18 @@ private record SpongeDataComponentValue(Optional value) implements DataCom // Key - public static ResourceLocation asVanilla(final Key key) { - if ((Object) key instanceof ResourceLocation) { - return (ResourceLocation) (Object) key; + public static Identifier asVanilla(final Key key) { + if ((Object) key instanceof Identifier) { + return (Identifier) (Object) key; } - return ResourceLocation.fromNamespaceAndPath(key.namespace(), key.value()); + return Identifier.fromNamespaceAndPath(key.namespace(), key.value()); } - public static @Nullable ResourceLocation asVanillaLocation(final @Nullable Key key) { + public static @Nullable Identifier asVanillaLocation(final @Nullable Key key) { if (key == null) { return null; } - return ResourceLocation.fromNamespaceAndPath(key.namespace(), key.value()); + return Identifier.fromNamespaceAndPath(key.namespace(), key.value()); } public static @Nullable FontDescription asVanillaFontDescription(final @Nullable Key key) { diff --git a/src/main/java/org/spongepowered/common/block/SpongeBlockSnapshot.java b/src/main/java/org/spongepowered/common/block/SpongeBlockSnapshot.java index b619c9f57d0..dc57279948b 100644 --- a/src/main/java/org/spongepowered/common/block/SpongeBlockSnapshot.java +++ b/src/main/java/org/spongepowered/common/block/SpongeBlockSnapshot.java @@ -27,7 +27,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.registries.Registries; import net.minecraft.nbt.CompoundTag; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.level.ServerLevel; import net.minecraft.util.ProblemReporter; import net.minecraft.world.level.block.Blocks; @@ -283,7 +283,7 @@ public Optional createArchetype() { return Optional.of(SpongeBlockEntityArchetypeBuilder.pooled() .state(this.state()) - .blockEntity((BlockEntityType) SpongeCommon.vanillaRegistry(Registries.BLOCK_ENTITY_TYPE).getOptional(ResourceLocation.tryParse(blockEntityID)).orElse(null)) + .blockEntity((BlockEntityType) SpongeCommon.vanillaRegistry(Registries.BLOCK_ENTITY_TYPE).getOptional(Identifier.tryParse(blockEntityID)).orElse(null)) .blockEntityData(NBTTranslator.INSTANCE.translate(compound)) .build()); } diff --git a/src/main/java/org/spongepowered/common/bridge/RegistryBackedTrackableBridge.java b/src/main/java/org/spongepowered/common/bridge/RegistryBackedTrackableBridge.java index 369e7f9c982..d565c971fa4 100644 --- a/src/main/java/org/spongepowered/common/bridge/RegistryBackedTrackableBridge.java +++ b/src/main/java/org/spongepowered/common/bridge/RegistryBackedTrackableBridge.java @@ -25,7 +25,7 @@ package org.spongepowered.common.bridge; import net.minecraft.core.Registry; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.spongepowered.common.config.tracker.NamespacedCategory; import org.spongepowered.common.config.tracker.TrackerCategory; @@ -38,7 +38,7 @@ public interface RegistryBackedTrackableBridge extends TrackableBridge { void bridge$saveTrackerConfig(); default void bridge$refreshTrackerStates() { - final ResourceLocation key = this.bridge$trackerRegistryBacking().getKey((T) (Object) this); + final Identifier key = this.bridge$trackerRegistryBacking().getKey((T) (Object) this); final String namespace = key.getNamespace(); final String path = key.getPath(); final NamespacedCategory namespacedCategory = this.bridge$trackerCategory().namespacedOrCreate(namespace); diff --git a/src/main/java/org/spongepowered/common/bridge/advancements/AdvancementProgressBridge.java b/src/main/java/org/spongepowered/common/bridge/advancements/AdvancementProgressBridge.java index c62d93423b6..d2a9f78d9b6 100644 --- a/src/main/java/org/spongepowered/common/bridge/advancements/AdvancementProgressBridge.java +++ b/src/main/java/org/spongepowered/common/bridge/advancements/AdvancementProgressBridge.java @@ -24,7 +24,7 @@ */ package org.spongepowered.common.bridge.advancements; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.PlayerAdvancements; import org.spongepowered.api.advancement.Advancement; import org.spongepowered.common.advancement.criterion.ImplementationBackedCriterionProgress; @@ -35,13 +35,13 @@ public interface AdvancementProgressBridge { Advancement bridge$getAdvancement(); - ResourceLocation bridge$getAdvancementKey(); + Identifier bridge$getAdvancementKey(); PlayerAdvancements bridge$getPlayerAdvancements(); void bridge$setPlayerAdvancements(PlayerAdvancements playerAdvancements); - void bridge$setAdvancementId(ResourceLocation key); + void bridge$setAdvancementId(Identifier key); void bridge$invalidateAchievedState(); diff --git a/src/main/java/org/spongepowered/common/bridge/tags/TagLoaderBridge.java b/src/main/java/org/spongepowered/common/bridge/tags/TagLoaderBridge.java index b21fc88072c..7c4ab0e3aaa 100644 --- a/src/main/java/org/spongepowered/common/bridge/tags/TagLoaderBridge.java +++ b/src/main/java/org/spongepowered/common/bridge/tags/TagLoaderBridge.java @@ -25,8 +25,8 @@ package org.spongepowered.common.bridge.tags; import net.minecraft.core.Registry; +import net.minecraft.resources.Identifier; import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagEntry; import net.minecraft.tags.TagLoader; import org.checkerframework.checker.nullness.qual.Nullable; @@ -38,7 +38,7 @@ public interface TagLoaderBridge { void bridge$registryKey(ResourceKey> registryKey); - void bridge$buildingTagKey(@Nullable ResourceLocation key); + void bridge$buildingTagKey(@Nullable Identifier key); default boolean bridge$isAdd(final TagLoader.EntryWithSource entry) { return true; diff --git a/src/main/java/org/spongepowered/common/command/brigadier/SpongeStringReader.java b/src/main/java/org/spongepowered/common/command/brigadier/SpongeStringReader.java index 212210a1187..b569a7998bc 100644 --- a/src/main/java/org/spongepowered/common/command/brigadier/SpongeStringReader.java +++ b/src/main/java/org/spongepowered/common/command/brigadier/SpongeStringReader.java @@ -30,7 +30,7 @@ import net.kyori.adventure.text.Component; import net.minecraft.nbt.NbtOps; import net.minecraft.nbt.TagParser; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.api.ResourceKey; @@ -147,12 +147,12 @@ public float parseFloat() throws ArgumentParseException { @Override public ResourceKey parseResourceKey() throws ArgumentParseException { - return this.readResourceLocation(null); + return this.readIdentifier(null); } @Override public ResourceKey parseResourceKey(final @NonNull String defaultNamespace) throws ArgumentParseException { - return this.readResourceLocation(defaultNamespace); + return this.readIdentifier(defaultNamespace); } @Override @@ -244,10 +244,10 @@ public void setState(final @NonNull ArgumentReader state) throws IllegalArgument return new ArgumentParseException(errorMessage, inner, this.input(), this.getCursor()); } - private ResourceKey readResourceLocation(final @Nullable String defaultNamespace) throws ArgumentParseException { + private ResourceKey readIdentifier(final @Nullable String defaultNamespace) throws ArgumentParseException { final int i = this.getCursor(); - while (this.canRead() && ResourceLocation.isAllowedInResourceLocation(this.peek())) { + while (this.canRead() && Identifier.isAllowedInIdentifier(this.peek())) { this.skip(); } diff --git a/src/main/java/org/spongepowered/common/command/parameter/managed/standard/SpongeServerLocationValueParameter.java b/src/main/java/org/spongepowered/common/command/parameter/managed/standard/SpongeServerLocationValueParameter.java index d17fddc79b0..06cd38eec82 100644 --- a/src/main/java/org/spongepowered/common/command/parameter/managed/standard/SpongeServerLocationValueParameter.java +++ b/src/main/java/org/spongepowered/common/command/parameter/managed/standard/SpongeServerLocationValueParameter.java @@ -34,7 +34,7 @@ import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.arguments.coordinates.Coordinates; import net.minecraft.commands.arguments.coordinates.Vec3Argument; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.phys.Vec3; import org.checkerframework.checker.nullness.qual.NonNull; import org.spongepowered.api.ResourceKey; @@ -87,11 +87,11 @@ private Stream complete(final String currentInput) { final ArgumentReader.Immutable state = reader.immutable(); ServerWorld serverWorld; try { - final ResourceKey resourceLocation = reader.parseResourceKey("minecraft"); + final ResourceKey Identifier = reader.parseResourceKey("minecraft"); serverWorld = SpongeCommon.game().server().worldManager() - .world(resourceLocation) + .world(Identifier) .orElseThrow(() -> reader.createException( - Component.text("Could not get world with key \"" + resourceLocation + "\""))); + Component.text("Could not get world with key \"" + Identifier + "\""))); } catch (final ArgumentParseException e) { final Optional location = cause.location(); if (location.isPresent()) { @@ -127,7 +127,7 @@ public CommandNode createSuggestions(final CommandNode> redirectionNodes, final boolean allowCustomSuggestionsOnTheFirstElement) { - final RequiredArgumentBuilder firstNode = + final RequiredArgumentBuilder firstNode = RequiredArgumentBuilder.argument(key, Constants.Command.RESOURCE_LOCATION_TYPE); if (allowCustomSuggestionsOnTheFirstElement) { firstNode.suggests((context, builder) -> { diff --git a/src/main/java/org/spongepowered/common/config/SpongeGameConfigs.java b/src/main/java/org/spongepowered/common/config/SpongeGameConfigs.java index 492c4da3e9b..daaff9e848c 100644 --- a/src/main/java/org/spongepowered/common/config/SpongeGameConfigs.java +++ b/src/main/java/org/spongepowered/common/config/SpongeGameConfigs.java @@ -130,13 +130,13 @@ public static InheritableConfigHandle load(final DimensionType dime } } - @SuppressWarnings("EqualsBetweenInconvertibleTypes") // ResourceKey is ResourceLocation + @SuppressWarnings("EqualsBetweenInconvertibleTypes") // ResourceKey is Identifier private static @Nullable String getLegacyDimensionAndName(final ResourceKey world) { - if (world.equals(Level.OVERWORLD.location())) { + if (world.equals(Level.OVERWORLD.identifier())) { return "overworld/world"; - } else if (world.equals(Level.END.location())) { + } else if (world.equals(Level.END.identifier())) { return "the_end/DIM1"; - } else if (world.equals(Level.NETHER.location())) { + } else if (world.equals(Level.NETHER.identifier())) { return "nether/DIM-1"; } return null; diff --git a/src/main/java/org/spongepowered/common/data/provider/block/entity/SkullData.java b/src/main/java/org/spongepowered/common/data/provider/block/entity/SkullData.java index 813eb4c98af..c7312c6f97a 100644 --- a/src/main/java/org/spongepowered/common/data/provider/block/entity/SkullData.java +++ b/src/main/java/org/spongepowered/common/data/provider/block/entity/SkullData.java @@ -26,7 +26,7 @@ import net.minecraft.core.component.DataComponentPatch; import net.minecraft.core.component.DataComponents; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.component.ResolvableProfile; import net.minecraft.world.level.block.entity.SkullBlockEntity; import org.spongepowered.api.ResourceKey; @@ -64,7 +64,7 @@ public static void register(final DataProviderRegistrator registrator) { .asMutable(SkullBlockEntityAccessor.class) .create(Keys.NOTE_BLOCK_SOUND) .get(h -> (ResourceKey) (Object) h.accessor$noteBlockSound()) - .set((h, v) -> h.accessor$noteBlockSound((ResourceLocation) (Object) v)) + .set((h, v) -> h.accessor$noteBlockSound((Identifier) (Object) v)) .delete(h -> h.accessor$noteBlockSound(null)) ; } diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/EntityData.java b/src/main/java/org/spongepowered/common/data/provider/entity/EntityData.java index 215697af97b..14cbe1bc57c 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/EntityData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/EntityData.java @@ -170,8 +170,8 @@ public static void register(final DataProviderRegistrator registrator) { .get(Entity::isCustomNameVisible) .set(Entity::setCustomNameVisible) .create(Keys.IS_FLYING) - .get(h -> h.hasImpulse) - .set((h, v) -> h.hasImpulse = v) + .get(h -> h.needsSync) + .set((h, v) -> h.needsSync = v) .supports(h -> !(h instanceof Player)) .create(Keys.IS_GLOWING) .get(Entity::hasGlowingTag) diff --git a/src/main/java/org/spongepowered/common/data/provider/item/stack/ArmorItemStackData.java b/src/main/java/org/spongepowered/common/data/provider/item/stack/ArmorItemStackData.java index 6d216f2a99a..c39fe7b1e24 100644 --- a/src/main/java/org/spongepowered/common/data/provider/item/stack/ArmorItemStackData.java +++ b/src/main/java/org/spongepowered/common/data/provider/item/stack/ArmorItemStackData.java @@ -57,7 +57,7 @@ public static void register(final DataProviderRegistrator registrator) { return null; } return equippable.assetId() - .map(rl -> (ResourceKey) (Object) rl.location()) + .map(rl -> (ResourceKey) (Object) rl.identifier()) .flatMap(rk -> RegistryTypes.ARMOR_MATERIAL.get().findEntry(rk)) .map(RegistryEntry::value) .orElse(null); diff --git a/src/main/java/org/spongepowered/common/data/provider/item/stack/BlockTypeItemStackData.java b/src/main/java/org/spongepowered/common/data/provider/item/stack/BlockTypeItemStackData.java index f065fb38278..c211b0513b3 100644 --- a/src/main/java/org/spongepowered/common/data/provider/item/stack/BlockTypeItemStackData.java +++ b/src/main/java/org/spongepowered/common/data/provider/item/stack/BlockTypeItemStackData.java @@ -24,7 +24,7 @@ */ package org.spongepowered.common.data.provider.item.stack; -import net.minecraft.advancements.critereon.BlockPredicate; +import net.minecraft.advancements.criterion.BlockPredicate; import net.minecraft.core.Holder; import net.minecraft.core.HolderSet; import net.minecraft.core.component.DataComponentType; diff --git a/src/main/java/org/spongepowered/common/data/provider/item/stack/ItemStackData.java b/src/main/java/org/spongepowered/common/data/provider/item/stack/ItemStackData.java index fbb402d3f4b..c26c7d9207d 100644 --- a/src/main/java/org/spongepowered/common/data/provider/item/stack/ItemStackData.java +++ b/src/main/java/org/spongepowered/common/data/provider/item/stack/ItemStackData.java @@ -28,7 +28,7 @@ import net.minecraft.core.component.DataComponentPatch; import net.minecraft.core.component.DataComponents; import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.sounds.SoundEvents; import net.minecraft.tags.DamageTypeTags; import net.minecraft.util.StringUtil; @@ -206,7 +206,7 @@ public static void register(final DataProviderRegistrator registrator) { .delete(h -> h.remove(DataComponents.MAX_STACK_SIZE)) .create(Keys.MODEL) .get(stack -> (ResourceKey) (Object) stack.get(DataComponents.ITEM_MODEL)) - .set((stack, model) -> stack.set(DataComponents.ITEM_MODEL, (ResourceLocation) (Object) model)) + .set((stack, model) -> stack.set(DataComponents.ITEM_MODEL, (Identifier) (Object) model)) .create(Keys.ITEM_DURABILITY) .get(stack -> stack.getMaxDamage() - stack.getDamageValue()) .set((stack, durability) -> stack.setDamageValue(stack.getMaxDamage() - durability)) @@ -298,7 +298,7 @@ public static void register(final DataProviderRegistrator registrator) { if (resist == null) { return false; } - return resist.types().location().equals(DamageTypes.IN_FIRE.location()); + return resist.types().location().equals(DamageTypes.IN_FIRE.identifier()); }) .set((h, value) -> { if (value) { @@ -333,7 +333,7 @@ public static void register(final DataProviderRegistrator registrator) { h.remove(DataComponents.USE_COOLDOWN); return; } - h.set(DataComponents.USE_COOLDOWN, new UseCooldown(1, Optional.of((ResourceLocation) (Object) value))); + h.set(DataComponents.USE_COOLDOWN, new UseCooldown(1, Optional.of((Identifier) (Object) value))); }) .deleteAndGet(ItemStackData::deleteAndTransactUseCooldown) .create(Keys.COOLDOWN) @@ -371,7 +371,7 @@ public static void register(final DataProviderRegistrator registrator) { .deleteAndGet(ItemStackData::deleteAndTransactUseCooldown) .create(Keys.TOOLTIP_STYLE) .get(h -> (ResourceKey) (Object) h.get(DataComponents.TOOLTIP_STYLE)) - .set((h, v) -> h.set(DataComponents.TOOLTIP_STYLE, (ResourceLocation) (Object) v)) + .set((h, v) -> h.set(DataComponents.TOOLTIP_STYLE, (Identifier) (Object) v)) .delete(h -> h.remove(DataComponents.TOOLTIP_STYLE)) .create(Keys.WEAPON_DAMAGE_PER_ATTACK) .get(h -> { diff --git a/src/main/java/org/spongepowered/common/data/provider/item/stack/SkullItemStackData.java b/src/main/java/org/spongepowered/common/data/provider/item/stack/SkullItemStackData.java index 78059b24ce8..8b9fb1255d0 100644 --- a/src/main/java/org/spongepowered/common/data/provider/item/stack/SkullItemStackData.java +++ b/src/main/java/org/spongepowered/common/data/provider/item/stack/SkullItemStackData.java @@ -25,7 +25,7 @@ package org.spongepowered.common.data.provider.item.stack; import net.minecraft.core.component.DataComponents; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.PlayerHeadItem; import net.minecraft.world.item.component.ResolvableProfile; @@ -56,7 +56,7 @@ public static void register(final DataProviderRegistrator registrator) { .supports(h -> h.getItem() instanceof PlayerHeadItem) .create(Keys.NOTE_BLOCK_SOUND) .get(h -> (ResourceKey) (Object) h.get(DataComponents.NOTE_BLOCK_SOUND)) - .set((h, v) -> h.set(DataComponents.NOTE_BLOCK_SOUND, (ResourceLocation) (Object) v)) + .set((h, v) -> h.set(DataComponents.NOTE_BLOCK_SOUND, (Identifier) (Object) v)) .delete(h -> h.remove(DataComponents.NOTE_BLOCK_SOUND)) ; } diff --git a/src/main/java/org/spongepowered/common/data/provider/map/MapInfoData.java b/src/main/java/org/spongepowered/common/data/provider/map/MapInfoData.java index fab0ec7361e..983f9a6af8f 100644 --- a/src/main/java/org/spongepowered/common/data/provider/map/MapInfoData.java +++ b/src/main/java/org/spongepowered/common/data/provider/map/MapInfoData.java @@ -25,7 +25,7 @@ package org.spongepowered.common.data.provider.map; import net.minecraft.core.registries.Registries; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.level.saveddata.maps.MapItemSavedData; import org.apache.logging.log4j.LogManager; import org.spongepowered.api.ResourceKey; @@ -92,10 +92,10 @@ public static void register(final DataProviderRegistrator registrator) { return null; } - return (ResourceKey) (Object) mapData.dimension.location(); + return (ResourceKey) (Object) mapData.dimension.identifier(); }) .set((mapData, key) -> { - ((MapItemSavedDataAccessor) mapData).accessor$dimension(net.minecraft.resources.ResourceKey.create(Registries.DIMENSION, (ResourceLocation) (Object) key)); + ((MapItemSavedDataAccessor) mapData).accessor$dimension(net.minecraft.resources.ResourceKey.create(Registries.DIMENSION, (Identifier) (Object) key)); mapData.setDirty(); }) .asMutable(MapItemSavedDataBridge.class) diff --git a/src/main/java/org/spongepowered/common/data/provider/world/ServerLevelDataProvider.java b/src/main/java/org/spongepowered/common/data/provider/world/ServerLevelDataProvider.java new file mode 100644 index 00000000000..7141a9c7cdc --- /dev/null +++ b/src/main/java/org/spongepowered/common/data/provider/world/ServerLevelDataProvider.java @@ -0,0 +1,29 @@ +/* + * This file is part of Sponge, licensed under the MIT License (MIT). + * + * Copyright (c) SpongePowered + * Copyright (c) contributors + * + * 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. + */ +package org.spongepowered.common.data.provider.world; + +public class ServerLevelDataProvider { + +} diff --git a/src/main/java/org/spongepowered/common/data/provider/world/WorldTypeData.java b/src/main/java/org/spongepowered/common/data/provider/world/WorldTypeData.java index 6b47942df32..3eec96adf17 100644 --- a/src/main/java/org/spongepowered/common/data/provider/world/WorldTypeData.java +++ b/src/main/java/org/spongepowered/common/data/provider/world/WorldTypeData.java @@ -29,20 +29,15 @@ import net.minecraft.world.attribute.EnvironmentAttributes; import net.minecraft.world.level.dimension.DimensionType; import org.checkerframework.checker.nullness.qual.Nullable; -import org.spongepowered.api.ResourceKey; import org.spongepowered.api.block.BlockType; import org.spongepowered.api.data.Keys; import org.spongepowered.api.tag.Tag; -import org.spongepowered.api.util.MinecraftDayTime; import org.spongepowered.api.util.Range; import org.spongepowered.api.world.WorldTypeEffect; import org.spongepowered.common.accessor.world.level.dimension.DimensionTypeAccessor; import org.spongepowered.common.bridge.world.level.dimension.DimensionTypeBridge; import org.spongepowered.common.data.provider.DataProviderRegistrator; import org.spongepowered.common.registry.provider.DimensionEffectProvider; -import org.spongepowered.common.util.SpongeMinecraftDayTime; - -import java.util.OptionalLong; public final class WorldTypeData { @@ -58,7 +53,7 @@ public static void register(final DataProviderRegistrator registrator) { .create(Keys.SCORCHING) .get(d -> d.attributes().applyModifier(EnvironmentAttributes.WATER_EVAPORATES, false)) .create(Keys.NATURAL_WORLD_TYPE) - .get(DimensionType::natural) + .get(d -> d.attributes().contains(EnvironmentAttributes.BED_RULE)) .create(Keys.COORDINATE_MULTIPLIER) .get(DimensionType::coordinateScale) .create(Keys.HAS_SKYLIGHT) @@ -88,8 +83,6 @@ public static void register(final DataProviderRegistrator registrator) { .asImmutable(DimensionTypeAccessor.class) .create(Keys.AMBIENT_LIGHTING) .get(DimensionTypeAccessor::accessor$ambientLight) - .create(Keys.FIXED_TIME) - .get(WorldTypeData::fixedTime) .asImmutable(DimensionTypeBridge.class) .create(Keys.CREATE_DRAGON_FIGHT) .get(DimensionTypeBridge::bridge$createDragonFight) @@ -103,20 +96,11 @@ private static Range lightRange(IntProvider provider) { } private static WorldTypeEffect worldTypeEffect(final DimensionType type) { - final var key = (ResourceKey) (Object) type.effectsLocation(); - @Nullable final WorldTypeEffect effect = DimensionEffectProvider.INSTANCE.get(key); + @Nullable final WorldTypeEffect effect = DimensionEffectProvider.INSTANCE.get(type.skybox()); if (effect == null) { - throw new IllegalStateException(String.format("The effect '%s' has not been registered!", key)); + throw new IllegalStateException(String.format("The effect '%s' has not been registered!", type.skybox())); } return effect; } - @Nullable - private static MinecraftDayTime fixedTime(final DimensionTypeAccessor accessor) { - final OptionalLong fixedTime = accessor.accessor$fixedTime(); - if (!fixedTime.isPresent()) { - return null; - } - return new SpongeMinecraftDayTime(fixedTime.getAsLong()); - } } diff --git a/src/main/java/org/spongepowered/common/data/type/SpongeArtTypeBuilder.java b/src/main/java/org/spongepowered/common/data/type/SpongeArtTypeBuilder.java index 154de888652..823a3e268d8 100644 --- a/src/main/java/org/spongepowered/common/data/type/SpongeArtTypeBuilder.java +++ b/src/main/java/org/spongepowered/common/data/type/SpongeArtTypeBuilder.java @@ -24,7 +24,7 @@ */ package org.spongepowered.common.data.type; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.entity.decoration.PaintingVariant; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.api.ResourceKey; @@ -38,7 +38,7 @@ public final class SpongeArtTypeBuilder implements ArtType.Builder { private int width; private int height; - @Nullable private ResourceLocation assetId; + @Nullable private Identifier assetId; public SpongeArtTypeBuilder() { this.reset(); @@ -53,7 +53,7 @@ public ArtType.Builder dimensions(final int width, final int height) { @Override public ArtType.Builder asset(final ResourceKey assetId) { - this.assetId = (ResourceLocation) (Object) assetId; + this.assetId = (Identifier) (Object) assetId; return this; } diff --git a/src/main/java/org/spongepowered/common/effect/sound/SpongeSoundBuilder.java b/src/main/java/org/spongepowered/common/effect/sound/SpongeSoundBuilder.java index 9b99d2bfb6c..16258e5ef91 100644 --- a/src/main/java/org/spongepowered/common/effect/sound/SpongeSoundBuilder.java +++ b/src/main/java/org/spongepowered/common/effect/sound/SpongeSoundBuilder.java @@ -24,7 +24,7 @@ */ package org.spongepowered.common.effect.sound; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.spongepowered.api.effect.sound.SoundType; import org.spongepowered.common.accessor.sounds.SoundEventAccessor; import org.spongepowered.common.util.AbstractResourceKeyedBuilder; @@ -33,6 +33,6 @@ public final class SpongeSoundBuilder extends AbstractResourceKeyedBuilder resolveEvent(final @NonNull Sound sound) { - final ResourceLocation soundKey = SpongeAdventure.asVanilla(Objects.requireNonNull(sound, "sound").name()); + final Identifier soundKey = SpongeAdventure.asVanilla(Objects.requireNonNull(sound, "sound").name()); final var soundEventRegistry = SpongeCommon.vanillaRegistry(Registries.SOUND_EVENT); final SoundEvent event = soundEventRegistry.getOptional(soundKey) .orElseGet(() -> SoundEvent.createVariableRangeEvent(soundKey)); diff --git a/src/main/java/org/spongepowered/common/entity/EntityUtil.java b/src/main/java/org/spongepowered/common/entity/EntityUtil.java index 047ecb6a936..e5fb1382c26 100644 --- a/src/main/java/org/spongepowered/common/entity/EntityUtil.java +++ b/src/main/java/org/spongepowered/common/entity/EntityUtil.java @@ -26,7 +26,7 @@ import net.minecraft.core.registries.Registries; import net.minecraft.nbt.CompoundTag; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.util.Mth; import net.minecraft.util.random.WeightedList; import net.minecraft.world.entity.Entity; @@ -183,9 +183,9 @@ public static boolean isUntargetable(final Entity from, final Entity target) { public static EntityArchetype toArchetype(final SpawnData logic) { final var tag = logic.entityToSpawn(); - final var resourceLocation = tag.getString(Constants.Entity.ENTITY_TYPE_ID); + final var identifier = tag.getString(Constants.Entity.ENTITY_TYPE_ID); final var entityTypeRegistry = SpongeCommon.vanillaRegistry(Registries.ENTITY_TYPE); - final var type = resourceLocation.flatMap(location -> entityTypeRegistry.getOptional(ResourceLocation.parse(location))) + final var type = identifier.flatMap(location -> entityTypeRegistry.getOptional(Identifier.parse(location))) .map(org.spongepowered.api.entity.EntityType.class::cast) .orElse(EntityTypes.PIG.get()); @@ -211,11 +211,11 @@ public static WeightedTable toWeightedArchetypes(final Weighted for (final var weightedEntity : spawnData.unwrap()) { final CompoundTag nbt = weightedEntity.value().entityToSpawn(); - final Optional resourceLocation = nbt.getString(Constants.Entity.ENTITY_TYPE_ID); - if (resourceLocation.isEmpty()) { + final Optional identifier = nbt.getString(Constants.Entity.ENTITY_TYPE_ID); + if (identifier.isEmpty()) { continue; } - final var mcType = SpongeCommon.vanillaRegistry(Registries.ENTITY_TYPE).getOptional(ResourceLocation.parse(resourceLocation.get())); + final var mcType = SpongeCommon.vanillaRegistry(Registries.ENTITY_TYPE).getOptional(Identifier.parse(identifier.get())); final var type = mcType.map(org.spongepowered.api.entity.EntityType.class::cast).orElse(EntityTypes.PIG.get()); final EntityArchetype archetype = SpongeEntityArchetypeBuilder.pooled() diff --git a/src/main/java/org/spongepowered/common/entity/SpongeEntityArchetype.java b/src/main/java/org/spongepowered/common/entity/SpongeEntityArchetype.java index 516b2caeef7..c6788d69ae0 100644 --- a/src/main/java/org/spongepowered/common/entity/SpongeEntityArchetype.java +++ b/src/main/java/org/spongepowered/common/entity/SpongeEntityArchetype.java @@ -28,7 +28,7 @@ import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.DoubleTag; import net.minecraft.nbt.ListTag; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntitySpawnReason; @@ -134,7 +134,7 @@ public Optional apply(final ServerLocation final org.spongepowered.api.world.server.ServerWorld spongeWorld = location.world(); final ServerLevel level = (ServerLevel) spongeWorld; - final ResourceLocation key = net.minecraft.world.entity.EntityType.getKey((net.minecraft.world.entity.EntityType) this.type); + final Identifier key = net.minecraft.world.entity.EntityType.getKey((net.minecraft.world.entity.EntityType) this.type); if (key == null) { return Optional.empty(); } diff --git a/src/main/java/org/spongepowered/common/entity/SpongeEntityTypes.java b/src/main/java/org/spongepowered/common/entity/SpongeEntityTypes.java index 84e34cbcdc1..170008b6ac8 100644 --- a/src/main/java/org/spongepowered/common/entity/SpongeEntityTypes.java +++ b/src/main/java/org/spongepowered/common/entity/SpongeEntityTypes.java @@ -26,8 +26,8 @@ import net.minecraft.core.Registry; import net.minecraft.core.registries.Registries; +import net.minecraft.resources.Identifier; import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.MobCategory; import org.spongepowered.common.entity.living.human.HumanEntity; @@ -40,7 +40,7 @@ public class SpongeEntityTypes { .sized(0.6F, 1.8F) .clientTrackingRange(Constants.Entity.Player.TRACKING_RANGE) .updateInterval(2) - .build(ResourceKey.create(Registries.ENTITY_TYPE, ResourceLocation.fromNamespaceAndPath("sponge", "human"))); + .build(ResourceKey.create(Registries.ENTITY_TYPE, Identifier.fromNamespaceAndPath("sponge", "human"))); public static void register(Registry> registry) { Registry.register(registry, HumanEntity.KEY, SpongeEntityTypes.HUMAN); diff --git a/src/main/java/org/spongepowered/common/entity/attribute/SpongeAttributeModifierBuilder.java b/src/main/java/org/spongepowered/common/entity/attribute/SpongeAttributeModifierBuilder.java index 5b29661f430..d5950911bb1 100644 --- a/src/main/java/org/spongepowered/common/entity/attribute/SpongeAttributeModifierBuilder.java +++ b/src/main/java/org/spongepowered/common/entity/attribute/SpongeAttributeModifierBuilder.java @@ -24,7 +24,7 @@ */ package org.spongepowered.common.entity.attribute; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.spongepowered.api.ResourceKey; import org.spongepowered.api.entity.attribute.AttributeModifier; import org.spongepowered.api.entity.attribute.AttributeOperation; @@ -35,14 +35,14 @@ public final class SpongeAttributeModifierBuilder implements AttributeModifier.B // Use a random id private AttributeOperation operation; private double amount; - private ResourceLocation key; + private Identifier key; public SpongeAttributeModifierBuilder() { } @Override public AttributeModifier.Builder key(final ResourceKey key) { - this.key = (ResourceLocation) (Object) key; + this.key = (Identifier) (Object) key; return this; } diff --git a/src/main/java/org/spongepowered/common/entity/living/human/HumanEntity.java b/src/main/java/org/spongepowered/common/entity/living/human/HumanEntity.java index 5ce21e78282..e0922d877b2 100644 --- a/src/main/java/org/spongepowered/common/entity/living/human/HumanEntity.java +++ b/src/main/java/org/spongepowered/common/entity/living/human/HumanEntity.java @@ -43,8 +43,8 @@ import net.minecraft.network.protocol.game.ClientboundPlayerInfoUpdatePacket; import net.minecraft.network.protocol.game.ClientboundRemoveEntitiesPacket; import net.minecraft.network.syncher.SynchedEntityData; +import net.minecraft.resources.Identifier; import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerEntity; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; @@ -110,7 +110,7 @@ import java.util.stream.Stream; public final class HumanEntity extends PathfinderMob implements TeamMember, RangedAttackMob { - public static final ResourceKey> KEY = ResourceKey.create(Registries.ENTITY_TYPE, ResourceLocation.fromNamespaceAndPath("sponge", "human")); + public static final ResourceKey> KEY = ResourceKey.create(Registries.ENTITY_TYPE, Identifier.fromNamespaceAndPath("sponge", "human")); public static AttributeSupplier createAttributes() { return Mob.createMobAttributes() diff --git a/src/main/java/org/spongepowered/common/entity/player/SpongeUserData.java b/src/main/java/org/spongepowered/common/entity/player/SpongeUserData.java index 21f11f430cd..8847ce8821d 100644 --- a/src/main/java/org/spongepowered/common/entity/player/SpongeUserData.java +++ b/src/main/java/org/spongepowered/common/entity/player/SpongeUserData.java @@ -31,7 +31,7 @@ import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtAccounter; import net.minecraft.nbt.NbtIo; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.level.ServerLevel; import net.minecraft.util.ProblemReporter; import net.minecraft.util.datafix.DataFixTypes; @@ -121,7 +121,7 @@ public final class SpongeUserData implements Identifiable, DataSerializable, Bed private final Map spawnLocations = Maps.newHashMap(); - private ResourceKey worldKey = (ResourceKey) (Object) Level.OVERWORLD.location(); + private ResourceKey worldKey = (ResourceKey) (Object) Level.OVERWORLD.identifier(); private double x; private double y; private double z; @@ -229,7 +229,7 @@ public void readCompound(final CompoundTag compound) { this.reset(); this.compound = compound; - compound.read(Constants.Sponge.World.WORLD_KEY, ResourceLocation.CODEC) + compound.read(Constants.Sponge.World.WORLD_KEY, Identifier.CODEC) .ifPresent(key -> this.worldKey = (ResourceKey) (Object) key); final var rotation = compound.read(Constants.Entity.ENTITY_ROTATION, Rotations.CODEC).orElse(new Rotations(0, 0, 0)); diff --git a/src/main/java/org/spongepowered/common/event/tracking/PhasePrinter.java b/src/main/java/org/spongepowered/common/event/tracking/PhasePrinter.java index 9f4458ba773..f3e3883ef7f 100644 --- a/src/main/java/org/spongepowered/common/event/tracking/PhasePrinter.java +++ b/src/main/java/org/spongepowered/common/event/tracking/PhasePrinter.java @@ -25,7 +25,7 @@ package org.spongepowered.common.event.tracking; import net.minecraft.core.BlockPos; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.block.Block; import org.apache.logging.log4j.Level; @@ -152,7 +152,7 @@ static void printExceptionSpawningEntity(final PhaseTracker tracker, final Phase } static void printNullSourceBlockWithTile( - final BlockPos pos, final Block blockIn, final BlockPos otherPos, final ResourceLocation type, final boolean useTile, + final BlockPos pos, final Block blockIn, final BlockPos otherPos, final Identifier type, final boolean useTile, final NullPointerException e) { final PhaseTracker instance = PhaseTracker.getInstance(); final PrettyPrinter printer = new PrettyPrinter(60).add("Null Source Block on TileEntity!").centre().hr() diff --git a/src/main/java/org/spongepowered/common/event/tracking/PhaseTracker.java b/src/main/java/org/spongepowered/common/event/tracking/PhaseTracker.java index a69a929ef3b..eae4de2cdbf 100644 --- a/src/main/java/org/spongepowered/common/event/tracking/PhaseTracker.java +++ b/src/main/java/org/spongepowered/common/event/tracking/PhaseTracker.java @@ -29,7 +29,7 @@ import com.google.common.collect.Maps; import com.google.common.collect.Queues; import net.minecraft.core.BlockPos; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.Entity; import net.minecraft.world.level.LevelAccessor; @@ -179,9 +179,9 @@ public static Block validateBlockForNeighborNotification(final ServerLevel world .map(BlockEntity::getType) .orElse(null); if (type != null) { - @Nullable ResourceLocation id = BlockEntityType.getKey(type); + @Nullable Identifier id = BlockEntityType.getKey(type); if (id == null) { - id = ResourceLocation.parse(source.getClass().getCanonicalName()); + id = Identifier.parse(source.getClass().getCanonicalName()); } final Map autoFixedTiles = trackerConfig.autoFixNullSourceBlockProvidingBlockEntities; final boolean contained = autoFixedTiles.containsKey(type.toString()); diff --git a/src/main/java/org/spongepowered/common/event/tracking/UnwindingState.java b/src/main/java/org/spongepowered/common/event/tracking/UnwindingState.java index 76c80f4ebcb..20ccedb4e1d 100644 --- a/src/main/java/org/spongepowered/common/event/tracking/UnwindingState.java +++ b/src/main/java/org/spongepowered/common/event/tracking/UnwindingState.java @@ -90,7 +90,7 @@ public void unwind(final UnwindingPhaseContext context) { @Override public Supplier attemptWorldKey(UnwindingPhaseContext context) { - final Optional> o = context.getSource(Entity.class).map(s -> () -> (ResourceKey) (Object) s.level().dimension().location()); + final Optional> o = context.getSource(Entity.class).map(s -> () -> (ResourceKey) (Object) s.level().dimension().identifier()); return o.orElseThrow(() -> new IllegalStateException("Expected to be ticking an entity!")); } diff --git a/src/main/java/org/spongepowered/common/event/tracking/context/transaction/effect/UpdateOrCreateNewTileEntityPostPlacementEffect.java b/src/main/java/org/spongepowered/common/event/tracking/context/transaction/effect/UpdateOrCreateNewTileEntityPostPlacementEffect.java index 985cea97629..62b3d3cab8d 100644 --- a/src/main/java/org/spongepowered/common/event/tracking/context/transaction/effect/UpdateOrCreateNewTileEntityPostPlacementEffect.java +++ b/src/main/java/org/spongepowered/common/event/tracking/context/transaction/effect/UpdateOrCreateNewTileEntityPostPlacementEffect.java @@ -61,7 +61,7 @@ public static UpdateOrCreateNewTileEntityPostPlacementEffect getInstance() { var maybeNewTileEntity = chunk.getBlockEntity(oldState.pos(), LevelChunk.EntityCreationType.CHECK); if (maybeNewTileEntity != null && !maybeNewTileEntity.isValidBlockState(newState)) { LevelChunkAccessor.accessor$LOGGER().warn( - "Found mismatched block entity @ {}: type = {}, state = {}", pos, maybeNewTileEntity.getType().builtInRegistryHolder().key().location(), newState + "Found mismatched block entity @ {}: type = {}, state = {}", pos, maybeNewTileEntity.getType().builtInRegistryHolder().key().identifier(), newState ); chunk.removeBlockEntity(pos); maybeNewTileEntity = null; diff --git a/src/main/java/org/spongepowered/common/event/tracking/context/transaction/inventory/ContainerBasedTransaction.java b/src/main/java/org/spongepowered/common/event/tracking/context/transaction/inventory/ContainerBasedTransaction.java index 3afcf2c413a..99a164311f1 100644 --- a/src/main/java/org/spongepowered/common/event/tracking/context/transaction/inventory/ContainerBasedTransaction.java +++ b/src/main/java/org/spongepowered/common/event/tracking/context/transaction/inventory/ContainerBasedTransaction.java @@ -273,7 +273,7 @@ private void handleCrafting(final Player player, final ClickContainerEvent event SpongeEventFactory.createCraftItemEventCraft(PhaseTracker.getInstance().currentCause(), ContainerUtil.fromNative(this.menu), craftedItem, this.craftingInventory, event.cursorTransaction(), Optional.ofNullable(this.onTakeRecipe).map(r -> (CraftingRecipe) r.value()), - Optional.ofNullable(this.onTakeRecipe).map(r -> (ResourceKey) (Object) r.id().location()), + Optional.ofNullable(this.onTakeRecipe).map(r -> (ResourceKey) (Object) r.id().identifier()), Optional.of(this.craftingInventory.result()), event.transactions()); SpongeCommon.post(craftEvent); this.handleEventResults(player, craftEvent); @@ -290,7 +290,7 @@ private void handleCraftingPreview(final Player player, final ClickContainerEven final SlotTransaction previewTransaction = this.getPreviewTransaction(this.craftingInventory.result(), event.transactions()); final var recipe = sp.level().recipeAccess().getRecipeFor(RecipeType.CRAFTING, this.craftingContainer.asCraftInput(), player.level()); final CraftItemEvent.Preview previewEvent = SpongeEventFactory.createCraftItemEventPreview(event.cause(), (Container) this.menu, this.craftingInventory, event.cursorTransaction(), previewTransaction, - recipe.map(RecipeHolder::value).map(CraftingRecipe.class::cast), recipe.map(r -> (ResourceKey) (Object) r.id().location()), Optional.empty(), event.transactions()); + recipe.map(RecipeHolder::value).map(CraftingRecipe.class::cast), recipe.map(r -> (ResourceKey) (Object) r.id().identifier()), Optional.empty(), event.transactions()); SpongeCommon.post(previewEvent); this.handleEventResults(player, previewEvent); diff --git a/src/main/java/org/spongepowered/common/event/tracking/context/transaction/inventory/CraftingPreviewTransaction.java b/src/main/java/org/spongepowered/common/event/tracking/context/transaction/inventory/CraftingPreviewTransaction.java index 7b488255d1d..daec1f0974d 100644 --- a/src/main/java/org/spongepowered/common/event/tracking/context/transaction/inventory/CraftingPreviewTransaction.java +++ b/src/main/java/org/spongepowered/common/event/tracking/context/transaction/inventory/CraftingPreviewTransaction.java @@ -80,7 +80,7 @@ Optional createInventoryEvent(final List s final CraftItemEvent.Preview event = SpongeEventFactory.createCraftItemEventPreview(currentCause, ContainerUtil.fromNative(this.menu), this.craftingInventory, new Transaction<>(cursor, cursor), previewTransaction, recipe.map(RecipeHolder::value).map(CraftingRecipe.class::cast), - recipe.map(r -> (ResourceKey) (Object) r.id().location()), + recipe.map(r -> (ResourceKey) (Object) r.id().identifier()), Optional.empty(), slotTransactions); return Optional.of(event); } diff --git a/src/main/java/org/spongepowered/common/event/tracking/context/transaction/inventory/PlaceRecipeTransaction.java b/src/main/java/org/spongepowered/common/event/tracking/context/transaction/inventory/PlaceRecipeTransaction.java index 58be64b551a..1e6febe2a6f 100644 --- a/src/main/java/org/spongepowered/common/event/tracking/context/transaction/inventory/PlaceRecipeTransaction.java +++ b/src/main/java/org/spongepowered/common/event/tracking/context/transaction/inventory/PlaceRecipeTransaction.java @@ -77,13 +77,13 @@ Optional createInventoryEvent( event = SpongeEventFactory.createClickContainerEventRecipeAll(cause, (Container) this.menu, this.craftingInventory, cursorTransaction, preview, Optional.of(this.recipe).map(RecipeHolder::value).map(CraftingRecipe.class::cast), - Optional.of(this.recipe).map(r -> (ResourceKey) (Object) r.id().location()), + Optional.of(this.recipe).map(r -> (ResourceKey) (Object) r.id().identifier()), Optional.empty(), slotTransactions); } else { event = SpongeEventFactory.createClickContainerEventRecipeSingle(cause, (Container) this.menu, this.craftingInventory, cursorTransaction, preview, Optional.of(this.recipe).map(RecipeHolder::value).map(CraftingRecipe.class::cast), - Optional.of(this.recipe).map(r -> (ResourceKey) (Object) r.id().location()), + Optional.of(this.recipe).map(r -> (ResourceKey) (Object) r.id().identifier()), Optional.empty(), slotTransactions); } return Optional.of(event); diff --git a/src/main/java/org/spongepowered/common/event/tracking/phase/general/CommandState.java b/src/main/java/org/spongepowered/common/event/tracking/phase/general/CommandState.java index d414a4320a6..33d3b450f6d 100644 --- a/src/main/java/org/spongepowered/common/event/tracking/phase/general/CommandState.java +++ b/src/main/java/org/spongepowered/common/event/tracking/phase/general/CommandState.java @@ -98,7 +98,7 @@ public void unwind(final CommandPhaseContext phaseContext) { public Supplier attemptWorldKey(CommandPhaseContext context) { final Optional playerSource = context.getSource(net.minecraft.world.entity.player.Player.class); if (playerSource.isPresent()) { - return () -> (ResourceKey) (Object) playerSource.get().level().dimension().location(); + return () -> (ResourceKey) (Object) playerSource.get().level().dimension().identifier(); } return super.attemptWorldKey(context); } diff --git a/src/main/java/org/spongepowered/common/event/tracking/phase/packet/PacketState.java b/src/main/java/org/spongepowered/common/event/tracking/phase/packet/PacketState.java index e6c2cf7122f..c361f3e2fa1 100644 --- a/src/main/java/org/spongepowered/common/event/tracking/phase/packet/PacketState.java +++ b/src/main/java/org/spongepowered/common/event/tracking/phase/packet/PacketState.java @@ -26,7 +26,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.network.protocol.Packet; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.level.block.Block; @@ -93,7 +93,7 @@ public Supplier getSpawnTypeForTransaction( @Override public Supplier attemptWorldKey(final P context) { - final ResourceLocation worldKey = context.packetPlayer.level().dimension().location(); + final Identifier worldKey = context.packetPlayer.level().dimension().identifier(); return () -> (ResourceKey) (Object) worldKey; } diff --git a/src/main/java/org/spongepowered/common/event/tracking/phase/tick/EntityTickPhaseState.java b/src/main/java/org/spongepowered/common/event/tracking/phase/tick/EntityTickPhaseState.java index a370479c4dd..6dfae53e538 100644 --- a/src/main/java/org/spongepowered/common/event/tracking/phase/tick/EntityTickPhaseState.java +++ b/src/main/java/org/spongepowered/common/event/tracking/phase/tick/EntityTickPhaseState.java @@ -115,7 +115,7 @@ public Supplier attemptWorldKey( throw new IllegalStateException("attempting a world key on the client???"); }; } - return () -> (ResourceKey) (Object) entity.level().dimension().location(); + return () -> (ResourceKey) (Object) entity.level().dimension().identifier(); } @Override diff --git a/src/main/java/org/spongepowered/common/event/tracking/phase/tick/LocationBasedTickPhaseState.java b/src/main/java/org/spongepowered/common/event/tracking/phase/tick/LocationBasedTickPhaseState.java index c6c59b088f8..ecce9ee5019 100644 --- a/src/main/java/org/spongepowered/common/event/tracking/phase/tick/LocationBasedTickPhaseState.java +++ b/src/main/java/org/spongepowered/common/event/tracking/phase/tick/LocationBasedTickPhaseState.java @@ -108,7 +108,7 @@ public void appendNotifierToBlockEvent( public Supplier attemptWorldKey(final T context) { return MemoizedSupplier.memoize(() -> { final World<@NonNull ?, @NonNull ?> world = this.getLocatableBlockSourceFromContext(context).world(); - return (ResourceKey) (Object) ((Level) world).dimension().location(); + return (ResourceKey) (Object) ((Level) world).dimension().identifier(); }); } diff --git a/src/main/java/org/spongepowered/common/event/tracking/phase/tick/WorldTickState.java b/src/main/java/org/spongepowered/common/event/tracking/phase/tick/WorldTickState.java index 76068d6e12f..56eea3c6873 100644 --- a/src/main/java/org/spongepowered/common/event/tracking/phase/tick/WorldTickState.java +++ b/src/main/java/org/spongepowered/common/event/tracking/phase/tick/WorldTickState.java @@ -68,7 +68,7 @@ public void unwind(final WorldTickContext phaseContext) { public Supplier attemptWorldKey( final WorldTickContext context ) { - return () -> (ResourceKey) (Object) Objects.requireNonNull(context.serverWorld.get(), "ServerWorld reference lost during tick").dimension().location(); + return () -> (ResourceKey) (Object) Objects.requireNonNull(context.serverWorld.get(), "ServerWorld reference lost during tick").dimension().identifier(); } public static class WorldTickContext extends TickContext { diff --git a/src/main/java/org/spongepowered/common/fluid/SpongeFluidStateBuilder.java b/src/main/java/org/spongepowered/common/fluid/SpongeFluidStateBuilder.java index 446f781bfe3..6a9ee664dd9 100644 --- a/src/main/java/org/spongepowered/common/fluid/SpongeFluidStateBuilder.java +++ b/src/main/java/org/spongepowered/common/fluid/SpongeFluidStateBuilder.java @@ -32,7 +32,7 @@ import net.minecraft.commands.arguments.blocks.BlockStateParser; import net.minecraft.core.Registry; import net.minecraft.core.registries.Registries; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.Property; import net.minecraft.world.level.material.Fluid; @@ -126,7 +126,7 @@ private org.spongepowered.api.fluid.FluidState parseString(final String string) private Fluid readFluid(final StringReader reader) throws CommandSyntaxException { final int cursor = reader.getCursor(); - final ResourceLocation fluidKey = ResourceLocation.read(reader); + final Identifier fluidKey = Identifier.read(reader); final Registry fluidRegistry = SpongeCommon.vanillaRegistry(Registries.FLUID); return fluidRegistry.getOptional(fluidKey).orElseThrow(() -> { reader.setCursor(cursor); diff --git a/src/main/java/org/spongepowered/common/item/SpongeItemStack.java b/src/main/java/org/spongepowered/common/item/SpongeItemStack.java index fd2224756c1..9253d64cdc6 100644 --- a/src/main/java/org/spongepowered/common/item/SpongeItemStack.java +++ b/src/main/java/org/spongepowered/common/item/SpongeItemStack.java @@ -35,8 +35,8 @@ import net.minecraft.core.registries.Registries; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtOps; +import net.minecraft.resources.Identifier; import net.minecraft.resources.RegistryOps; -import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.EquipmentSlotGroup; import net.minecraft.world.entity.ai.attributes.Attribute; @@ -193,7 +193,7 @@ public ItemStack.Builder fromBlockSnapshot(final BlockSnapshot blockSnapshot) { Objects.requireNonNull(blockSnapshot, "The snapshot was null!"); this.reset(); final BlockType blockType = blockSnapshot.state().type(); - final ResourceLocation blockTypeKey = SpongeCommon.vanillaRegistry(Registries.BLOCK).getKey((Block) blockType); + final Identifier blockTypeKey = SpongeCommon.vanillaRegistry(Registries.BLOCK).getKey((Block) blockType); final Optional itemType = blockType.item(); this.itemType(itemType.orElseThrow(() -> new IllegalArgumentException("ItemType not found for block type: " + blockTypeKey))); this.quantity(1); @@ -201,7 +201,7 @@ public ItemStack.Builder fromBlockSnapshot(final BlockSnapshot blockSnapshot) { sbs.getCompound().ifPresent(compoundTag -> { final var blockEntityTypes = SpongeCommon.vanillaRegistry(Registries.BLOCK_ENTITY_TYPE); final var blockEntityType = compoundTag.getString("id") - .map(ResourceLocation::parse) + .map(Identifier::parse) .flatMap(blockEntityTypes::getOptional); blockEntityType.ifPresent(beType -> { TypedEntityData> data = TypedEntityData.of(beType, compoundTag); @@ -227,7 +227,7 @@ public ItemStack.Builder fromBlockSnapshot(final BlockSnapshot blockSnapshot) { public ItemStack.Builder fromBlockState(final BlockState blockState) { Objects.requireNonNull(blockState, "blockState"); final BlockType blockType = blockState.type(); - final ResourceLocation blockTypeKey = SpongeCommon.vanillaRegistry(Registries.BLOCK).getKey((Block) blockType); + final Identifier blockTypeKey = SpongeCommon.vanillaRegistry(Registries.BLOCK).getKey((Block) blockType); this.itemType(blockType.item().orElseThrow(() -> new IllegalArgumentException("Missing valid ItemType for BlockType: " + blockTypeKey))); blockState.getValues().forEach(this::add); return this; @@ -282,7 +282,7 @@ public ItemStack empty() { @NotNull public static DataContainer getDataContainer(final net.minecraft.world.item.ItemStack mcStack) { - final ResourceLocation key = BuiltInRegistries.ITEM.getKey(mcStack.getItem()); + final Identifier key = BuiltInRegistries.ITEM.getKey(mcStack.getItem()); final DataContainer container = DataContainer.createNew() .set(Queries.CONTENT_VERSION, ((ItemStack) (Object) mcStack).contentVersion()) .set(Constants.ItemStack.TYPE, key) diff --git a/src/main/java/org/spongepowered/common/item/recipe/ingredient/IngredientUtil.java b/src/main/java/org/spongepowered/common/item/recipe/ingredient/IngredientUtil.java index 228ba81923a..a1baea3bc60 100644 --- a/src/main/java/org/spongepowered/common/item/recipe/ingredient/IngredientUtil.java +++ b/src/main/java/org/spongepowered/common/item/recipe/ingredient/IngredientUtil.java @@ -27,7 +27,7 @@ import net.minecraft.core.HolderSet; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.Registries; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; import net.minecraft.world.item.crafting.Ingredient; @@ -60,7 +60,7 @@ public static org.spongepowered.api.item.recipe.crafting.Ingredient of(ItemType. } public static org.spongepowered.api.item.recipe.crafting.@Nullable Ingredient of(ResourceKey tagKey) { - final TagKey key = TagKey.create(Registries.ITEM, (ResourceLocation) (Object) tagKey); + final TagKey key = TagKey.create(Registries.ITEM, (Identifier) (Object) tagKey); var holderset = BuiltInRegistries.ITEM.get(key).map(hs -> (HolderSet) hs).orElse(HolderSet.empty()); return IngredientUtil.fromNative(Ingredient.of(holderset)); } diff --git a/src/main/java/org/spongepowered/common/item/recipe/ingredient/SpongeItemList.java b/src/main/java/org/spongepowered/common/item/recipe/ingredient/SpongeItemList.java index 5ba2839a520..2eb5298c845 100644 --- a/src/main/java/org/spongepowered/common/item/recipe/ingredient/SpongeItemList.java +++ b/src/main/java/org/spongepowered/common/item/recipe/ingredient/SpongeItemList.java @@ -25,12 +25,12 @@ package org.spongepowered.common.item.recipe.ingredient; import com.mojang.datafixers.util.Either; -import net.minecraft.Util; import net.minecraft.core.Holder; import net.minecraft.core.HolderOwner; import net.minecraft.core.HolderSet; import net.minecraft.tags.TagKey; import net.minecraft.util.RandomSource; +import net.minecraft.util.Util; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/org/spongepowered/common/map/decoration/SpongeMapDecorationBuilder.java b/src/main/java/org/spongepowered/common/map/decoration/SpongeMapDecorationBuilder.java index 1b65b346685..dc088ee0b29 100644 --- a/src/main/java/org/spongepowered/common/map/decoration/SpongeMapDecorationBuilder.java +++ b/src/main/java/org/spongepowered/common/map/decoration/SpongeMapDecorationBuilder.java @@ -28,7 +28,7 @@ import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; import net.minecraft.core.Holder; import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.api.ResourceKey; import org.spongepowered.api.data.persistence.DataQuery; @@ -125,7 +125,7 @@ public MapDecoration.Builder fromContainer(final DataView container) { final byte rot = this.getByteFromContainer(container, Constants.Map.DECORATION_ROTATION); - final var mcType = BuiltInRegistries.MAP_DECORATION_TYPE.getValue((ResourceLocation) (Object) type); + final var mcType = BuiltInRegistries.MAP_DECORATION_TYPE.getValue((Identifier) (Object) type); if (mcType == null) { throw new IllegalStateException("Missing a MapDecorationType, could not find one for Minecraft's MapDecoration.Type: " + type); } diff --git a/src/main/java/org/spongepowered/common/network/channel/ChannelUtils.java b/src/main/java/org/spongepowered/common/network/channel/ChannelUtils.java index 57514e417a1..f00b9f568f3 100644 --- a/src/main/java/org/spongepowered/common/network/channel/ChannelUtils.java +++ b/src/main/java/org/spongepowered/common/network/channel/ChannelUtils.java @@ -25,7 +25,7 @@ package org.spongepowered.common.network.channel; import net.minecraft.network.protocol.common.custom.CustomPacketPayload; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.spongepowered.api.Sponge; import org.spongepowered.common.hooks.PlatformHooks; import org.spongepowered.common.util.Constants; @@ -34,7 +34,7 @@ @SuppressWarnings({"rawtypes", "unchecked"}) public final class ChannelUtils { - public static final CustomPacketPayload.Type REGISTER = new CustomPacketPayload.Type<>((ResourceLocation) (Object) Constants.Channels.REGISTER_KEY); + public static final CustomPacketPayload.Type REGISTER = new CustomPacketPayload.Type<>((Identifier) (Object) Constants.Channels.REGISTER_KEY); public static ArrayList spongeChannelCodecs(final int maxPayloadSize) { ArrayList channels = new ArrayList<>(); diff --git a/src/main/java/org/spongepowered/common/network/channel/SpongeChannel.java b/src/main/java/org/spongepowered/common/network/channel/SpongeChannel.java index 0dabdf2ae4d..4430e5be015 100644 --- a/src/main/java/org/spongepowered/common/network/channel/SpongeChannel.java +++ b/src/main/java/org/spongepowered/common/network/channel/SpongeChannel.java @@ -26,7 +26,7 @@ import com.google.common.collect.Multimap; import net.minecraft.network.protocol.common.custom.CustomPacketPayload; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.checkerframework.checker.nullness.qual.Nullable; @@ -69,7 +69,7 @@ public SpongeChannel(final int type, final ResourceKey key, final SpongeChannelM this.key = key; this.manager = manager; this.logger = LogManager.getLogger("channel/" + key.formatted()); - this.payloadType = new CustomPacketPayload.Type<>((ResourceLocation) (Object) key); + this.payloadType = new CustomPacketPayload.Type<>((Identifier) (Object) key); } public int getType() { diff --git a/src/main/java/org/spongepowered/common/network/channel/SpongeChannelManager.java b/src/main/java/org/spongepowered/common/network/channel/SpongeChannelManager.java index 30ab1bb0711..5f1a74b15bb 100644 --- a/src/main/java/org/spongepowered/common/network/channel/SpongeChannelManager.java +++ b/src/main/java/org/spongepowered/common/network/channel/SpongeChannelManager.java @@ -31,7 +31,7 @@ import net.minecraft.network.protocol.common.ServerboundCustomPayloadPacket; import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.network.protocol.login.custom.CustomQueryPayload; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.api.ResourceKey; import org.spongepowered.api.Sponge; @@ -172,8 +172,8 @@ public CompletableFuture requestClientType(final EngineConnection connecti final Packet mcPacket = PacketUtil.createLoginPayloadRequest(new CustomQueryPayload() { @Override - public ResourceLocation id() { - return (ResourceLocation) (Object) Constants.Channels.SPONGE_CLIENT_TYPE; + public Identifier id() { + return (Identifier) (Object) Constants.Channels.SPONGE_CLIENT_TYPE; } @Override @@ -217,8 +217,8 @@ public CompletableFuture sendLoginChannelRegistry(final EngineConnection c final Consumer consumer = this.encodeChannelRegistry(); final Packet mcPacket = PacketUtil.createLoginPayloadRequest(new CustomQueryPayload() { @Override - public ResourceLocation id() { - return (ResourceLocation) (Object) Constants.Channels.SPONGE_CHANNEL_REGISTRY; + public Identifier id() { + return (Identifier) (Object) Constants.Channels.SPONGE_CHANNEL_REGISTRY; } @Override @@ -288,7 +288,7 @@ private void handleChannelRegistry(final EngineConnection connection, final Chan } } - public boolean handlePlayPayload(final EngineConnection connection, final EngineConnectionState state, final ResourceLocation channelKey, final Consumer payload) { + public boolean handlePlayPayload(final EngineConnection connection, final EngineConnectionState state, final Identifier channelKey, final Consumer payload) { final ChannelBuf buf = this.bufferAllocator.buffer(); payload.accept((FriendlyByteBuf) buf); @@ -334,7 +334,7 @@ private boolean handlePlayPayload(final EngineConnection connection, final Engin } } - public boolean handleLoginRequestPayload(final EngineConnection connection, final EngineConnectionState state, final ResourceLocation channelKey, final int transactionId, final Consumer payload) { + public boolean handleLoginRequestPayload(final EngineConnection connection, final EngineConnectionState state, final Identifier channelKey, final int transactionId, final Consumer payload) { // Server -> Client request final ChannelBuf buf = this.bufferAllocator.buffer(); payload.accept((FriendlyByteBuf) buf); diff --git a/src/main/java/org/spongepowered/common/network/channel/SpongeChannelPayload.java b/src/main/java/org/spongepowered/common/network/channel/SpongeChannelPayload.java index e76845f650c..d03e2351cc9 100644 --- a/src/main/java/org/spongepowered/common/network/channel/SpongeChannelPayload.java +++ b/src/main/java/org/spongepowered/common/network/channel/SpongeChannelPayload.java @@ -30,12 +30,12 @@ import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.network.protocol.login.custom.CustomQueryAnswerPayload; import net.minecraft.network.protocol.login.custom.CustomQueryPayload; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.checkerframework.checker.nullness.qual.Nullable; import java.util.function.Consumer; -public record SpongeChannelPayload(@Nullable Type type, @Nullable ResourceLocation id, Consumer consumer) implements CustomPacketPayload, CustomQueryPayload, CustomQueryAnswerPayload { +public record SpongeChannelPayload(@Nullable Type type, @Nullable Identifier id, Consumer consumer) implements CustomPacketPayload, CustomQueryPayload, CustomQueryAnswerPayload { public static StreamCodec streamCodec(final Type type, final int maxPayloadSize) { return CustomPacketPayload.codec( @@ -59,7 +59,7 @@ public Type type() { } @Override - public ResourceLocation id() { + public Identifier id() { return this.id; } @@ -67,7 +67,7 @@ public static SpongeChannelPayload fromType(final Type consumer) { + public static SpongeChannelPayload fromId(final Identifier id, final Consumer consumer) { return new SpongeChannelPayload(null, id, consumer); } diff --git a/src/main/java/org/spongepowered/common/network/channel/packet/SpongeBasicPacketChannel.java b/src/main/java/org/spongepowered/common/network/channel/packet/SpongeBasicPacketChannel.java index 88e3b5db59e..f5349bd002c 100644 --- a/src/main/java/org/spongepowered/common/network/channel/packet/SpongeBasicPacketChannel.java +++ b/src/main/java/org/spongepowered/common/network/channel/packet/SpongeBasicPacketChannel.java @@ -26,7 +26,7 @@ import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.protocol.login.custom.CustomQueryPayload; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.api.ResourceKey; import org.spongepowered.api.network.ClientSideConnection; @@ -93,8 +93,8 @@ private

, R extends Packet> void sendRequestTo(final final net.minecraft.network.protocol.Packet mcPacket = PacketUtil.createLoginPayloadRequest(new CustomQueryPayload() { @Override - public ResourceLocation id() { - return (ResourceLocation) (Object) Constants.Channels.FML_LOGIN_WRAPPER_CHANNEL; + public Identifier id() { + return (Identifier) (Object) Constants.Channels.FML_LOGIN_WRAPPER_CHANNEL; } @Override @@ -139,8 +139,8 @@ private CompletableFuture sendNormalTo(final EngineConnection connection, final net.minecraft.network.protocol.Packet mcPacket = PacketUtil.createLoginPayloadRequest(new CustomQueryPayload() { @Override - public ResourceLocation id() { - return (ResourceLocation) (Object) key; + public Identifier id() { + return (Identifier) (Object) key; } @Override diff --git a/src/main/java/org/spongepowered/common/network/channel/packet/SpongePacketChannel.java b/src/main/java/org/spongepowered/common/network/channel/packet/SpongePacketChannel.java index 13011064d58..7ec82bee974 100644 --- a/src/main/java/org/spongepowered/common/network/channel/packet/SpongePacketChannel.java +++ b/src/main/java/org/spongepowered/common/network/channel/packet/SpongePacketChannel.java @@ -26,7 +26,7 @@ import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.protocol.login.custom.CustomQueryPayload; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.api.ResourceKey; import org.spongepowered.api.network.EngineConnection; @@ -122,8 +122,8 @@ private

, R extends Packet> void sendRequestPacketTo( final ResourceKey key = this.key(); mcPacketSupplier = () -> PacketUtil.createLoginPayloadRequest(new CustomQueryPayload() { @Override - public ResourceLocation id() { - return (ResourceLocation) (Object) key; + public Identifier id() { + return (Identifier) (Object) key; } @Override @@ -187,8 +187,8 @@ private

, R extends Packet> void sendResponsePacketTo final ResourceKey key = this.key(); mcPacketSupplier = () -> PacketUtil.createLoginPayloadRequest(new CustomQueryPayload() { @Override - public ResourceLocation id() { - return (ResourceLocation) (Object) key; + public Identifier id() { + return (Identifier) (Object) key; } @Override @@ -216,8 +216,8 @@ public void write(FriendlyByteBuf var1) { final ResourceKey key = this.key(); mcPacketSupplier = () -> PacketUtil.createLoginPayloadRequest(new CustomQueryPayload() { @Override - public ResourceLocation id() { - return (ResourceLocation) (Object) key; + public Identifier id() { + return (Identifier) (Object) key; } @Override @@ -269,8 +269,8 @@ private

void sendNormalPacketTo(final EngineConnection connec final ResourceKey key = this.key(); mcPacketSupplier = () -> PacketUtil.createLoginPayloadRequest(new CustomQueryPayload() { @Override - public ResourceLocation id() { - return (ResourceLocation) (Object) key; + public Identifier id() { + return (Identifier) (Object) key; } @Override diff --git a/src/main/java/org/spongepowered/common/network/channel/raw/SpongeRawLoginDataChannel.java b/src/main/java/org/spongepowered/common/network/channel/raw/SpongeRawLoginDataChannel.java index 3a83d426443..35f88ea9784 100644 --- a/src/main/java/org/spongepowered/common/network/channel/raw/SpongeRawLoginDataChannel.java +++ b/src/main/java/org/spongepowered/common/network/channel/raw/SpongeRawLoginDataChannel.java @@ -27,7 +27,7 @@ import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.login.custom.CustomQueryPayload; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.spongepowered.api.ResourceKey; import org.spongepowered.api.network.EngineConnection; import org.spongepowered.api.network.EngineConnectionState; @@ -170,8 +170,8 @@ public CompletableFuture sendTo(final EngineConnection connection, f final ResourceKey id = this.parent.key(); final Packet mcPacket = PacketUtil.createLoginPayloadRequest(new CustomQueryPayload() { @Override - public ResourceLocation id() { - return (ResourceLocation) (Object) id; + public Identifier id() { + return (Identifier) (Object) id; } @Override diff --git a/src/main/java/org/spongepowered/common/network/packet/ChangeViewerEnvironmentPacket.java b/src/main/java/org/spongepowered/common/network/packet/ChangeViewerEnvironmentPacket.java index 937a61543aa..b1d559c7cec 100644 --- a/src/main/java/org/spongepowered/common/network/packet/ChangeViewerEnvironmentPacket.java +++ b/src/main/java/org/spongepowered/common/network/packet/ChangeViewerEnvironmentPacket.java @@ -25,7 +25,7 @@ package org.spongepowered.common.network.packet; import net.minecraft.core.registries.Registries; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.level.dimension.DimensionType; import org.spongepowered.api.network.channel.ChannelBuf; import org.spongepowered.api.network.channel.packet.Packet; @@ -33,7 +33,7 @@ public final class ChangeViewerEnvironmentPacket implements Packet { - public ResourceLocation dimensionLogic; + public Identifier dimensionLogic; public ChangeViewerEnvironmentPacket() { } @@ -44,7 +44,7 @@ public ChangeViewerEnvironmentPacket(final DimensionType dimensionType) { @Override public void read(final ChannelBuf buf) { - this.dimensionLogic = ResourceLocation.parse(buf.readString()); + this.dimensionLogic = Identifier.parse(buf.readString()); } @Override diff --git a/src/main/java/org/spongepowered/common/network/packet/SpongePacketHandler.java b/src/main/java/org/spongepowered/common/network/packet/SpongePacketHandler.java index 98aa8a2a3c9..951e17140a2 100644 --- a/src/main/java/org/spongepowered/common/network/packet/SpongePacketHandler.java +++ b/src/main/java/org/spongepowered/common/network/packet/SpongePacketHandler.java @@ -26,20 +26,16 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.client.renderer.DimensionSpecialEffects; import net.minecraft.core.BlockPos; import net.minecraft.core.SectionPos; -import net.minecraft.core.registries.Registries; import net.minecraft.server.players.NameAndId; import net.minecraft.world.entity.Entity; -import net.minecraft.world.level.dimension.DimensionType; import org.spongepowered.api.ResourceKey; import org.spongepowered.api.entity.living.player.server.ServerPlayer; import org.spongepowered.api.network.ClientConnectionState; import org.spongepowered.api.network.EngineConnectionStates; import org.spongepowered.api.network.channel.packet.PacketChannel; import org.spongepowered.common.SpongeCommon; -import org.spongepowered.common.accessor.client.multiplayer.ClientLevelAccessor; import org.spongepowered.common.bridge.CreatorTrackedBridge; import org.spongepowered.common.bridge.world.level.chunk.LevelChunkBridge; import org.spongepowered.common.network.channel.SpongeChannelManager; @@ -99,9 +95,6 @@ public static void init(final SpongeChannelManager registry) { if (world == null) { return; } - - final DimensionType dimensionType = SpongeCommon.vanillaRegistry(Registries.DIMENSION_TYPE).getValue(packet.dimensionLogic); - ((ClientLevelAccessor) world).accessor$effects(DimensionSpecialEffects.forType(dimensionType)); } ); } diff --git a/src/main/java/org/spongepowered/common/registry/RegistryHolderLogic.java b/src/main/java/org/spongepowered/common/registry/RegistryHolderLogic.java index 4d07c196be6..d6838c10da4 100644 --- a/src/main/java/org/spongepowered/common/registry/RegistryHolderLogic.java +++ b/src/main/java/org/spongepowered/common/registry/RegistryHolderLogic.java @@ -32,7 +32,7 @@ import net.minecraft.core.RegistryAccess; import net.minecraft.core.WritableRegistry; import net.minecraft.core.registries.Registries; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.util.DependencySorter; import net.minecraft.world.flag.FeatureFlagSet; import net.minecraft.world.flag.FeatureFlags; @@ -66,11 +66,11 @@ public RegistryHolderLogic() { this.roots.put( RegistryRoots.MINECRAFT, new MappedRegistry<>( - net.minecraft.resources.ResourceKey.createRegistryKey((ResourceLocation) (Object) RegistryRoots.MINECRAFT), + net.minecraft.resources.ResourceKey.createRegistryKey((Identifier) (Object) RegistryRoots.MINECRAFT), Lifecycle.experimental() ) ); - final ResourceLocation sponge = (ResourceLocation) (Object) RegistryRoots.SPONGE; + final Identifier sponge = (Identifier) (Object) RegistryRoots.SPONGE; this.roots.put( (ResourceKey) (Object) sponge, new MappedRegistry<>( @@ -106,7 +106,7 @@ public void setRootMinecraftRegistry(final net.minecraft.core.Registry( - net.minecraft.resources.ResourceKey.createRegistryKey((ResourceLocation) (Object) RegistryRoots.MINECRAFT), + net.minecraft.resources.ResourceKey.createRegistryKey((Identifier) (Object) RegistryRoots.MINECRAFT), Lifecycle.experimental() ); registryAccess.registries().forEach(r -> rootRegistry.register(r.key(), r.value(), RegistrationInfo.BUILT_IN)); @@ -190,18 +190,18 @@ public Registry createRegistry(final RegistryType type, final @Nullabl if (root == null) { throw new ValueNotFoundException(String.format("No '%s' root registry has been defined", type.root())); } - var registry = root.getValue((ResourceLocation) (Object) type.location()); + var registry = root.getValue((Identifier) (Object) type.location()); final boolean exists = registry != null; if (exists) { throw new DuplicateRegistrationException(String.format("Registry '%s' in root '%s' has already been defined", type.location(), type.root())); } final net.minecraft.resources.ResourceKey> key; if (Registries.ROOT_REGISTRY_NAME.equals(type.root())) { - key = net.minecraft.resources.ResourceKey.createRegistryKey((ResourceLocation) (Object) type.location()); + key = net.minecraft.resources.ResourceKey.createRegistryKey((Identifier) (Object) type.location()); } else { key = ResourceKeyAccessor.invoker$create( - (ResourceLocation) (Object) RegistryRoots.SPONGE, - (ResourceLocation) (Object) type.location() + (Identifier) (Object) RegistryRoots.SPONGE, + (Identifier) (Object) type.location() ); } registry = registrySupplier.apply(key); @@ -210,7 +210,7 @@ public Registry createRegistry(final RegistryType type, final @Nullabl final MappedRegistry mr = (MappedRegistry) registry; defaultValues.forEach((vk, vi, vv) -> { mr.register( - net.minecraft.resources.ResourceKey.create(key, (ResourceLocation) (Object) vk), + net.minecraft.resources.ResourceKey.create(key, (Identifier) (Object) vk), vv, RegistrationInfo.BUILT_IN ); @@ -256,13 +256,13 @@ public void featureFlagSet(final FeatureFlagSet featureFlagSet) { @Override public Stream>> listRegistryKeys() { return this.streamRegistries().map(k -> - ResourceKeyAccessor.invoker$create((ResourceLocation) (Object) k.type().root(), (ResourceLocation) (Object) k.type().location())); + ResourceKeyAccessor.invoker$create((Identifier) (Object) k.type().root(), (Identifier) (Object) k.type().location())); } @SuppressWarnings({"unchecked", "rawtypes"}) @Override public Optional> lookup( final net.minecraft.resources.ResourceKey> resourceKey) { - return (Optional) this.findRegistry(RegistryType.of((ResourceKey) (Object) resourceKey.registry(), (ResourceKey) (Object) resourceKey.location())); + return (Optional) this.findRegistry(RegistryType.of((ResourceKey) (Object) resourceKey.registry(), (ResourceKey) (Object) resourceKey.identifier())); } } diff --git a/src/main/java/org/spongepowered/common/registry/SpongeResourceKeyBuilder.java b/src/main/java/org/spongepowered/common/registry/SpongeResourceKeyBuilder.java index 87c23eab65e..09849a23159 100644 --- a/src/main/java/org/spongepowered/common/registry/SpongeResourceKeyBuilder.java +++ b/src/main/java/org/spongepowered/common/registry/SpongeResourceKeyBuilder.java @@ -25,8 +25,8 @@ package org.spongepowered.common.registry; -import net.minecraft.ResourceLocationException; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.IdentifierException; +import net.minecraft.resources.Identifier; import org.spongepowered.api.ResourceKey; import org.spongepowered.common.util.Preconditions; @@ -57,9 +57,9 @@ public ResourceKey build() throws IllegalStateException { Preconditions.checkState(this.value != null, "Value cannot be empty"); try { - final ResourceLocation resourceLocation = ResourceLocation.fromNamespaceAndPath(this.namespace, this.value); - return (ResourceKey) (Object) resourceLocation; - } catch (ResourceLocationException e) { + final Identifier id = Identifier.fromNamespaceAndPath(this.namespace, this.value); + return (ResourceKey) (Object) id; + } catch (IdentifierException e) { throw new IllegalStateException(e); } } diff --git a/src/main/java/org/spongepowered/common/registry/SpongeResourceKeyFactory.java b/src/main/java/org/spongepowered/common/registry/SpongeResourceKeyFactory.java index 325fd990a89..a57d6da7ca2 100644 --- a/src/main/java/org/spongepowered/common/registry/SpongeResourceKeyFactory.java +++ b/src/main/java/org/spongepowered/common/registry/SpongeResourceKeyFactory.java @@ -24,8 +24,8 @@ */ package org.spongepowered.common.registry; -import net.minecraft.ResourceLocationException; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.IdentifierException; +import net.minecraft.resources.Identifier; import org.spongepowered.api.ResourceKey; import org.spongepowered.plugin.PluginContainer; @@ -34,9 +34,9 @@ public final class SpongeResourceKeyFactory implements ResourceKey.Factory { @Override public ResourceKey of(final String namespace, final String value) { try { - final ResourceLocation resourceLocation = ResourceLocation.fromNamespaceAndPath(namespace, value); - return (ResourceKey) (Object) resourceLocation; - } catch (ResourceLocationException e) { + final Identifier id = Identifier.fromNamespaceAndPath(namespace, value); + return (ResourceKey) (Object) id; + } catch (IdentifierException e) { throw new IllegalStateException(e); } } @@ -44,9 +44,9 @@ public ResourceKey of(final String namespace, final String value) { @Override public ResourceKey of(final PluginContainer plugin, final String value) { try { - final ResourceLocation resourceLocation = ResourceLocation.fromNamespaceAndPath(plugin.metadata().id(), value); - return (ResourceKey) (Object) resourceLocation; - } catch (ResourceLocationException e) { + final Identifier id = Identifier.fromNamespaceAndPath(plugin.metadata().id(), value); + return (ResourceKey) (Object) id; + } catch (IdentifierException e) { throw new IllegalStateException(e); } } @@ -54,9 +54,9 @@ public ResourceKey of(final PluginContainer plugin, final String value) { @Override public ResourceKey resolve(final String formatted) { try { - final ResourceLocation resourceLocation = ResourceLocation.parse(formatted); - return (ResourceKey) (Object) resourceLocation; - } catch (ResourceLocationException e) { + final Identifier id = Identifier.parse(formatted); + return (ResourceKey) (Object) id; + } catch (IdentifierException e) { throw new IllegalStateException(e); } } diff --git a/src/main/java/org/spongepowered/common/registry/loader/CommandRegistryLoader.java b/src/main/java/org/spongepowered/common/registry/loader/CommandRegistryLoader.java index d13734b80ff..79bff7ba900 100644 --- a/src/main/java/org/spongepowered/common/registry/loader/CommandRegistryLoader.java +++ b/src/main/java/org/spongepowered/common/registry/loader/CommandRegistryLoader.java @@ -40,7 +40,7 @@ import net.minecraft.commands.arguments.DimensionArgument; import net.minecraft.commands.arguments.EntityArgument; import net.minecraft.commands.arguments.GameProfileArgument; -import net.minecraft.commands.arguments.ResourceLocationArgument; +import net.minecraft.commands.arguments.IdentifierArgument; import net.minecraft.commands.arguments.ScoreHolderArgument; import net.minecraft.commands.arguments.TimeArgument; import net.minecraft.commands.arguments.UuidArgument; @@ -60,7 +60,7 @@ import net.minecraft.commands.synchronization.brigadier.LongArgumentInfo; import net.minecraft.core.HolderLookup; import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.phys.Vec2; import org.spongepowered.api.ResourceKey; import org.spongepowered.api.Sponge; @@ -164,7 +164,7 @@ public static RegistryLoader> valueParameter() { l.add(ResourceKeyedValueParameters.PLAYER, k -> ClientNativeArgumentParser.createConverter(k, EntityArgument.player(), (reader, cause, selector) -> (Player) selector.findSinglePlayer((CommandSourceStack) cause))); l.add(ResourceKeyedValueParameters.PLUGIN, SpongePluginContainerValueParameter::new); l.add(ResourceKeyedValueParameters.REMAINING_JOINED_STRINGS, k -> ClientNativeArgumentParser.createIdentity(k, StringArgumentType.greedyString())); - l.add(ResourceKeyedValueParameters.RESOURCE_KEY, k -> ClientNativeArgumentParser.createConverter(k, ResourceLocationArgument.id(), (reader, cause, resourceLocation) -> (ResourceKey) (Object) resourceLocation)); + l.add(ResourceKeyedValueParameters.RESOURCE_KEY, k -> ClientNativeArgumentParser.createConverter(k, IdentifierArgument.id(), (reader, cause, Identifier) -> (ResourceKey) (Object) Identifier)); l.add(ResourceKeyedValueParameters.ROTATION, k -> ClientNativeArgumentParser.createConverter(k, RotationArgument.rotation(), (reader, cause, coords) -> { final Vec2 rotation = coords.getRotation((CommandSourceStack) cause); return new Vector3d(rotation.x, rotation.y, 0); @@ -212,7 +212,7 @@ public static RegistryLoader clientCompletionType() { l.add(ClientCompletionTypes.SNBT, k -> new SpongeClientCompletionType(CompoundTagArgument.compoundTag())); l.add(ClientCompletionTypes.NONE, k -> SpongeClientCompletionType.NONE); l.add(ClientCompletionTypes.REMAINING_JOINED_STRINGS, k -> new SpongeClientCompletionType(StringArgumentType.greedyString())); - l.add(ClientCompletionTypes.RESOURCE_KEY, k -> new SpongeClientCompletionType(ResourceLocationArgument.id())); + l.add(ClientCompletionTypes.RESOURCE_KEY, k -> new SpongeClientCompletionType(IdentifierArgument.id())); l.add(ClientCompletionTypes.STRING, k -> new SpongeClientCompletionType(StringArgumentType.string())); l.add(ClientCompletionTypes.WHOLE_NUMBER, k -> new SpongeClientCompletionType(LongArgumentType.longArg())); }); @@ -296,7 +296,7 @@ public static RegistryLoader> commandRegistrarType() { // Helper static ArgumentType argumentTypeFromKey(ResourceKey key, CommandBuildContext ctx) { - final ArgumentTypeInfo argumentTypeInfo = BuiltInRegistries.COMMAND_ARGUMENT_TYPE.getValue((ResourceLocation) (Object) key); + final ArgumentTypeInfo argumentTypeInfo = BuiltInRegistries.COMMAND_ARGUMENT_TYPE.getValue((Identifier) (Object) key); if (argumentTypeInfo instanceof SingletonArgumentInfo s) { return s.unpack(null).instantiate(ctx); } diff --git a/src/main/java/org/spongepowered/common/registry/loader/SpongeRegistryLoader.java b/src/main/java/org/spongepowered/common/registry/loader/SpongeRegistryLoader.java index 0b0da93134f..619bf64f024 100644 --- a/src/main/java/org/spongepowered/common/registry/loader/SpongeRegistryLoader.java +++ b/src/main/java/org/spongepowered/common/registry/loader/SpongeRegistryLoader.java @@ -587,7 +587,7 @@ public static RegistryLoader noiseConfig() { public static RegistryLoader flatGeneratorConfig(RegistryHolder registryAccess) { final RegistryType registryType = RegistryType.of( - (ResourceKey) (Object) Registries.FLAT_LEVEL_GENERATOR_PRESET.registry(), (ResourceKey) (Object) Registries.FLAT_LEVEL_GENERATOR_PRESET.location()); + (ResourceKey) (Object) Registries.FLAT_LEVEL_GENERATOR_PRESET.registry(), (ResourceKey) (Object) Registries.FLAT_LEVEL_GENERATOR_PRESET.identifier()); final Registry registry = registryAccess.registry(registryType); return RegistryLoader.of(l -> registry.streamEntries().forEach(e -> diff --git a/src/main/java/org/spongepowered/common/registry/loader/VanillaRegistryLoader.java b/src/main/java/org/spongepowered/common/registry/loader/VanillaRegistryLoader.java index cac12696ebb..59bb0878af7 100644 --- a/src/main/java/org/spongepowered/common/registry/loader/VanillaRegistryLoader.java +++ b/src/main/java/org/spongepowered/common/registry/loader/VanillaRegistryLoader.java @@ -28,7 +28,7 @@ import net.minecraft.advancements.AdvancementType; import net.minecraft.core.FrontAndTop; import net.minecraft.core.MappedRegistry; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.util.StringRepresentable; import net.minecraft.world.Difficulty; import net.minecraft.world.InteractionHand; @@ -156,7 +156,7 @@ private void loadInstanceRegistries() { ArmorMaterials.TURTLE_SCUTE,ArmorMaterials.NETHERITE, ArmorMaterials.ARMADILLO_SCUTE, ArmorMaterials.COPPER, }; for (final ArmorMaterial armorMaterial : knownMaterials) { - materials.put(armorMaterial, armorMaterial.assetId().location().toString()); + materials.put(armorMaterial, armorMaterial.assetId().identifier().toString()); } this.naming(RegistryTypes.ARMOR_MATERIAL, materials.keySet().toArray(new ArmorMaterial[]{}), materials); @@ -340,7 +340,7 @@ private Registry naming(final RegistryType type, final int values, // To address Vanilla shortcomings, some mods will manually prefix their modid onto values they put into Vanilla registry-like // registrars. We need to account for that possibility if (rawId.contains(":")) { - map.put((ResourceKey) (Object) ResourceLocation.parse(rawId), (A) value.getKey()); + map.put((ResourceKey) (Object) Identifier.parse(rawId), (A) value.getKey()); } else { map.put(ResourceKey.sponge(rawId), (A) value.getKey()); } diff --git a/src/main/java/org/spongepowered/common/registry/provider/DimensionEffectProvider.java b/src/main/java/org/spongepowered/common/registry/provider/DimensionEffectProvider.java index 3f173a268ea..d9bb0869565 100644 --- a/src/main/java/org/spongepowered/common/registry/provider/DimensionEffectProvider.java +++ b/src/main/java/org/spongepowered/common/registry/provider/DimensionEffectProvider.java @@ -26,6 +26,7 @@ import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import net.minecraft.world.level.dimension.BuiltinDimensionTypes; +import net.minecraft.world.level.dimension.DimensionType; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.api.ResourceKey; import org.spongepowered.api.world.WorldTypeEffect; @@ -37,27 +38,27 @@ public final class DimensionEffectProvider { public static DimensionEffectProvider INSTANCE = new DimensionEffectProvider(); - private static final SpongeWorldTypeEffect OVERWORLD = new SpongeWorldTypeEffect((ResourceKey) (Object) BuiltinDimensionTypes.OVERWORLD_EFFECTS); - private static final SpongeWorldTypeEffect NETHER = new SpongeWorldTypeEffect((ResourceKey) (Object) BuiltinDimensionTypes.NETHER_EFFECTS); - private static final SpongeWorldTypeEffect END = new SpongeWorldTypeEffect((ResourceKey) (Object) BuiltinDimensionTypes.END_EFFECTS); + private static final SpongeWorldTypeEffect OVERWORLD = new SpongeWorldTypeEffect((ResourceKey) (Object) BuiltinDimensionTypes.OVERWORLD); + private static final SpongeWorldTypeEffect NETHER = new SpongeWorldTypeEffect((ResourceKey) (Object) BuiltinDimensionTypes.NETHER); + private static final SpongeWorldTypeEffect END = new SpongeWorldTypeEffect((ResourceKey) (Object) BuiltinDimensionTypes.END); static { - DimensionEffectProvider.INSTANCE.register(OVERWORLD.key(), OVERWORLD); - DimensionEffectProvider.INSTANCE.register(NETHER.key(), NETHER); - DimensionEffectProvider.INSTANCE.register(END.key(), END); + DimensionEffectProvider.INSTANCE.register(DimensionType.Skybox.OVERWORLD, OVERWORLD); + DimensionEffectProvider.INSTANCE.register(DimensionType.Skybox.NONE, NETHER); + DimensionEffectProvider.INSTANCE.register(DimensionType.Skybox.END, END); } - private final Map mappings; + private final Map mappings; private DimensionEffectProvider() { this.mappings = new Object2ObjectOpenHashMap<>(); } - public @Nullable WorldTypeEffect get(final ResourceKey key) { + public @Nullable WorldTypeEffect get(final DimensionType.Skybox key) { return this.mappings.get(key); } - public void register(final ResourceKey key, final WorldTypeEffect effect) { + public void register(final DimensionType.Skybox key, final WorldTypeEffect effect) { this.mappings.put(key, effect); } } diff --git a/src/main/java/org/spongepowered/common/serialization/MathCodecs.java b/src/main/java/org/spongepowered/common/serialization/MathCodecs.java index 6cee207e581..de6e2ff66e4 100644 --- a/src/main/java/org/spongepowered/common/serialization/MathCodecs.java +++ b/src/main/java/org/spongepowered/common/serialization/MathCodecs.java @@ -25,7 +25,7 @@ package org.spongepowered.common.serialization; import com.mojang.serialization.Codec; -import net.minecraft.Util; +import net.minecraft.util.Util; import org.spongepowered.math.vector.Vector3i; import java.util.stream.IntStream; diff --git a/src/main/java/org/spongepowered/common/tag/SpongeTagFactory.java b/src/main/java/org/spongepowered/common/tag/SpongeTagFactory.java index 66238de5e2f..6b9ea2cb690 100644 --- a/src/main/java/org/spongepowered/common/tag/SpongeTagFactory.java +++ b/src/main/java/org/spongepowered/common/tag/SpongeTagFactory.java @@ -24,7 +24,7 @@ */ package org.spongepowered.common.tag; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.tags.TagKey; import org.spongepowered.api.ResourceKey; import org.spongepowered.api.registry.RegistryType; @@ -37,8 +37,8 @@ public class SpongeTagFactory implements Tag.Factory { @SuppressWarnings("unchecked") public Tag of(final RegistryType registryType, final ResourceKey key) { final net.minecraft.resources.ResourceKey> regKey = - ResourceKeyAccessor.invoker$create((ResourceLocation) (Object) registryType.root(), (ResourceLocation) (Object) registryType.location()); + ResourceKeyAccessor.invoker$create((Identifier) (Object) registryType.root(), (Identifier) (Object) registryType.location()); // TagKey.create returns interned tag-keys - return (Tag) (Object) TagKey.create(regKey, ((ResourceLocation) (Object) key)); + return (Tag) (Object) TagKey.create(regKey, ((Identifier) (Object) key)); } } diff --git a/src/main/java/org/spongepowered/common/util/Constants.java b/src/main/java/org/spongepowered/common/util/Constants.java index ce4ec4e8dc4..d2009d24335 100644 --- a/src/main/java/org/spongepowered/common/util/Constants.java +++ b/src/main/java/org/spongepowered/common/util/Constants.java @@ -32,9 +32,8 @@ import com.mojang.brigadier.arguments.ArgumentType; import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.serialization.Codec; -import net.minecraft.Util; import net.minecraft.commands.arguments.CompoundTagArgument; -import net.minecraft.commands.arguments.ResourceLocationArgument; +import net.minecraft.commands.arguments.IdentifierArgument; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.DoubleTag; @@ -43,6 +42,7 @@ import net.minecraft.server.level.ChunkLevel; import net.minecraft.server.level.FullChunkStatus; import net.minecraft.server.permissions.PermissionLevel; +import net.minecraft.util.Util; import net.minecraft.world.entity.Relative; import net.minecraft.world.inventory.ClickType; import net.minecraft.world.level.Level; @@ -1377,7 +1377,7 @@ public static final class Command { public static final ArgumentType STANDARD_STRING_ARGUMENT_TYPE = StringArgumentType.string(); public static final ArgumentType GREEDY_STRING_ARGUMENT_TYPE = StringArgumentType.greedyString(); public static final ArgumentType NBT_ARGUMENT_TYPE = CompoundTagArgument.compoundTag(); - public static final ResourceLocationArgument RESOURCE_LOCATION_TYPE = ResourceLocationArgument.id(); + public static final IdentifierArgument RESOURCE_LOCATION_TYPE = IdentifierArgument.id(); public static final String COMMAND_BLOCK_COMMAND = ""; public static final String SELECTOR_COMMAND = "@"; public static final String SPONGE_HELP_COMMAND = "sponge:help"; diff --git a/src/main/java/org/spongepowered/common/world/SpongeDefaultWorldKeysFactory.java b/src/main/java/org/spongepowered/common/world/SpongeDefaultWorldKeysFactory.java index 10761e0865a..c47fbcb8d6e 100644 --- a/src/main/java/org/spongepowered/common/world/SpongeDefaultWorldKeysFactory.java +++ b/src/main/java/org/spongepowered/common/world/SpongeDefaultWorldKeysFactory.java @@ -32,16 +32,16 @@ public final class SpongeDefaultWorldKeysFactory implements DefaultWorldKeys.Fac @Override public ResourceKey defaultWorld() { - return (ResourceKey) (Object) Level.OVERWORLD.location(); + return (ResourceKey) (Object) Level.OVERWORLD.identifier(); } @Override public ResourceKey theNether() { - return (ResourceKey) (Object) Level.NETHER.location(); + return (ResourceKey) (Object) Level.NETHER.identifier(); } @Override public ResourceKey theEnd() { - return (ResourceKey) (Object) Level.END.location(); + return (ResourceKey) (Object) Level.END.identifier(); } } diff --git a/src/main/java/org/spongepowered/common/world/SpongeWorldTypeEffect.java b/src/main/java/org/spongepowered/common/world/SpongeWorldTypeEffect.java index 9f0193fafe2..8c77a994a16 100644 --- a/src/main/java/org/spongepowered/common/world/SpongeWorldTypeEffect.java +++ b/src/main/java/org/spongepowered/common/world/SpongeWorldTypeEffect.java @@ -24,7 +24,7 @@ */ package org.spongepowered.common.world; -import net.minecraft.world.level.dimension.BuiltinDimensionTypes; +import net.minecraft.world.level.dimension.DimensionType; import org.spongepowered.api.ResourceKey; import org.spongepowered.api.world.WorldTypeEffect; import org.spongepowered.common.AbstractResourceKeyed; @@ -49,17 +49,17 @@ public static final class FactoryImpl implements WorldTypeEffect.Factory { @Override public WorldTypeEffect overworld() { - return DimensionEffectProvider.INSTANCE.get((ResourceKey) (Object) BuiltinDimensionTypes.OVERWORLD_EFFECTS); + return DimensionEffectProvider.INSTANCE.get(DimensionType.Skybox.OVERWORLD); } @Override public WorldTypeEffect nether() { - return DimensionEffectProvider.INSTANCE.get((ResourceKey) (Object) BuiltinDimensionTypes.NETHER_EFFECTS); + return DimensionEffectProvider.INSTANCE.get(DimensionType.Skybox.NONE); } @Override public WorldTypeEffect end() { - return DimensionEffectProvider.INSTANCE.get((ResourceKey) (Object) BuiltinDimensionTypes.END_EFFECTS); + return DimensionEffectProvider.INSTANCE.get(DimensionType.Skybox.END); } } } diff --git a/src/main/java/org/spongepowered/common/world/biome/SpongeBiomeAttributesFactory.java b/src/main/java/org/spongepowered/common/world/biome/SpongeBiomeAttributesFactory.java index 930a81c26e3..63036a76f74 100644 --- a/src/main/java/org/spongepowered/common/world/biome/SpongeBiomeAttributesFactory.java +++ b/src/main/java/org/spongepowered/common/world/biome/SpongeBiomeAttributesFactory.java @@ -85,13 +85,13 @@ public Optional defaultAttributes(final RegistryReference>> list = ImmutableList.builder(); ((OverworldBiomeBuilderAccessor) (Object) new OverworldBiomeBuilder()).accessor$addBiomes(list::add); for (final var pair : list.build()) { - DEFAULT_ATTRIBUTES.put((ResourceKey) (Object) pair.getSecond().location(), (BiomeAttributes) (Object) pair.getFirst()); + DEFAULT_ATTRIBUTES.put((ResourceKey) (Object) pair.getSecond().identifier(), (BiomeAttributes) (Object) pair.getFirst()); } // MultiNoiseBiomeSource.Preset#NETHER - DEFAULT_ATTRIBUTES.put((ResourceKey) (Object) Biomes.SOUL_SAND_VALLEY.location(), (BiomeAttributes) (Object) Climate.parameters(0.0F, -0.5F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F)); - DEFAULT_ATTRIBUTES.put((ResourceKey) (Object) Biomes.CRIMSON_FOREST.location(), (BiomeAttributes) (Object) Climate.parameters(0.4F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F)); - DEFAULT_ATTRIBUTES.put((ResourceKey) (Object) Biomes.WARPED_FOREST.location(), (BiomeAttributes) (Object) Climate.parameters(0.0F, 0.5F, 0.0F, 0.0F, 0.0F, 0.0F, 0.375F)); - DEFAULT_ATTRIBUTES.put((ResourceKey) (Object) Biomes.BASALT_DELTAS.location(), (BiomeAttributes) (Object) Climate.parameters(-0.5F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.175F)); + DEFAULT_ATTRIBUTES.put((ResourceKey) (Object) Biomes.SOUL_SAND_VALLEY.identifier(), (BiomeAttributes) (Object) Climate.parameters(0.0F, -0.5F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F)); + DEFAULT_ATTRIBUTES.put((ResourceKey) (Object) Biomes.CRIMSON_FOREST.identifier(), (BiomeAttributes) (Object) Climate.parameters(0.4F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F)); + DEFAULT_ATTRIBUTES.put((ResourceKey) (Object) Biomes.WARPED_FOREST.identifier(), (BiomeAttributes) (Object) Climate.parameters(0.0F, 0.5F, 0.0F, 0.0F, 0.0F, 0.0F, 0.375F)); + DEFAULT_ATTRIBUTES.put((ResourceKey) (Object) Biomes.BASALT_DELTAS.identifier(), (BiomeAttributes) (Object) Climate.parameters(-0.5F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.175F)); } return Optional.ofNullable(SpongeBiomeAttributesFactory.DEFAULT_ATTRIBUTES.get(biome.location())); } diff --git a/src/main/java/org/spongepowered/common/world/biome/SpongeBiomeProviderFactory.java b/src/main/java/org/spongepowered/common/world/biome/SpongeBiomeProviderFactory.java index 5e41f562610..515a576fc3e 100644 --- a/src/main/java/org/spongepowered/common/world/biome/SpongeBiomeProviderFactory.java +++ b/src/main/java/org/spongepowered/common/world/biome/SpongeBiomeProviderFactory.java @@ -29,8 +29,8 @@ import net.minecraft.core.HolderSet; import net.minecraft.core.Registry; import net.minecraft.core.registries.Registries; +import net.minecraft.resources.Identifier; import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.biome.CheckerboardColumnBiomeSource; import net.minecraft.world.level.biome.Climate.ParameterList; @@ -114,6 +114,6 @@ private Registry registry() { } private Holder biomeHolder(final RegistryReference biome) { - return this.registry().getOrThrow(ResourceKey.create(Registries.BIOME, (ResourceLocation) (Object) biome.location())); + return this.registry().getOrThrow(ResourceKey.create(Registries.BIOME, (Identifier) (Object) biome.location())); } } diff --git a/src/main/java/org/spongepowered/common/world/generation/config/flat/SpongeFlatGeneratorConfig.java b/src/main/java/org/spongepowered/common/world/generation/config/flat/SpongeFlatGeneratorConfig.java index cc437a298d2..9a7c5823751 100644 --- a/src/main/java/org/spongepowered/common/world/generation/config/flat/SpongeFlatGeneratorConfig.java +++ b/src/main/java/org/spongepowered/common/world/generation/config/flat/SpongeFlatGeneratorConfig.java @@ -30,8 +30,8 @@ import net.minecraft.core.Registry; import net.minecraft.core.registries.Registries; import net.minecraft.data.worldgen.placement.MiscOverworldPlacements; +import net.minecraft.resources.Identifier; import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.levelgen.flat.FlatLayerInfo; import net.minecraft.world.level.levelgen.placement.PlacedFeature; @@ -142,7 +142,7 @@ public FlatGeneratorConfig.Builder from(final FlatGeneratorConfig value) { final HolderLookup.RegistryLookup placedFeatureRegistryLookup = SpongeCommon.vanillaRegistry(Registries.PLACED_FEATURE); final Holder.Reference biome = - biomeRegistry.getOrThrow(ResourceKey.create(Registries.BIOME, (ResourceLocation) (Object) this.biome.location())); + biomeRegistry.getOrThrow(ResourceKey.create(Registries.BIOME, (Identifier) (Object) this.biome.location())); return (FlatGeneratorConfig) FlatLevelGeneratorSettingsAccessor.invoker$new( this.structureSets == null ? Optional.empty() : Optional.of(HolderSet.direct((Function) Holder::direct, this.structureSets)), (List) (Object) this.layers, diff --git a/src/main/java/org/spongepowered/common/world/generation/config/noise/SpongeSurfaceRulesFactory.java b/src/main/java/org/spongepowered/common/world/generation/config/noise/SpongeSurfaceRulesFactory.java index 1b66e7ef852..dcdab39802b 100644 --- a/src/main/java/org/spongepowered/common/world/generation/config/noise/SpongeSurfaceRulesFactory.java +++ b/src/main/java/org/spongepowered/common/world/generation/config/noise/SpongeSurfaceRulesFactory.java @@ -26,7 +26,7 @@ import net.minecraft.core.registries.Registries; import net.minecraft.data.worldgen.SurfaceRuleData; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.level.levelgen.SurfaceRules; import net.minecraft.world.level.levelgen.VerticalAnchor; import net.minecraft.world.level.levelgen.placement.CaveSurface; @@ -109,7 +109,7 @@ public SurfaceRule.Condition liquidDepthFromSurface(final int offset, final int @Override public SurfaceRule.Condition biome(final List> biomes) { final var stream = biomes.stream() - .map(r -> net.minecraft.resources.ResourceKey.create(Registries.BIOME, ((ResourceLocation) (Object) r.location()))); + .map(r -> net.minecraft.resources.ResourceKey.create(Registries.BIOME, ((Identifier) (Object) r.location()))); final net.minecraft.resources.ResourceKey[] keys = stream.toArray(net.minecraft.resources.ResourceKey[]::new); return (SurfaceRule.Condition) SurfaceRules.isBiome(keys); } @@ -193,7 +193,7 @@ public SurfaceRule.Condition surfaceAbove(final SurfaceRule.VerticalAnchor ancho @Override public SurfaceRule.Condition noiseThreshold(final RegistryReference noise, final double min, final double max) { - final net.minecraft.resources.ResourceKey key = net.minecraft.resources.ResourceKey.create(Registries.NOISE, ((ResourceLocation) (Object) noise.location())); + final net.minecraft.resources.ResourceKey key = net.minecraft.resources.ResourceKey.create(Registries.NOISE, ((Identifier) (Object) noise.location())); return (SurfaceRule.Condition) SurfaceRules.noiseCondition(key, min, max); } diff --git a/src/main/java/org/spongepowered/common/world/generation/structure/jigsaw/SpongeJigsawPoolBuilder.java b/src/main/java/org/spongepowered/common/world/generation/structure/jigsaw/SpongeJigsawPoolBuilder.java index a94ab0b917c..4db93fa2b70 100644 --- a/src/main/java/org/spongepowered/common/world/generation/structure/jigsaw/SpongeJigsawPoolBuilder.java +++ b/src/main/java/org/spongepowered/common/world/generation/structure/jigsaw/SpongeJigsawPoolBuilder.java @@ -62,26 +62,26 @@ public JigsawPool.Builder add(final JigsawPoolElement element, final int weight) @Override public JigsawPool.Builder name(final ResourceKey name) { -// TODO this.name = (ResourceLocation) (Object) name; +// TODO this.name = (Identifier) (Object) name; return this; } @Override public JigsawPool.Builder fallback(final RegistryReference fallback) { -// TODO this.fallback = (ResourceLocation) (Object) fallback.location(); +// TODO this.fallback = (Identifier) (Object) fallback.location(); return this; } @Override public JigsawPool.Builder fallback(final JigsawPool fallback) { -// TODO this.fallback = (ResourceLocation) (Object) fallback.key(); +// TODO this.fallback = (Identifier) (Object) fallback.key(); return this; } @Override public JigsawPool.Builder reset() { // TODO this.name = null; - // TODO this.fallback = new ResourceLocation("empty"); + // TODO this.fallback = new Identifier("empty"); this.templates = new ArrayList<>(); return this; } diff --git a/src/main/java/org/spongepowered/common/world/server/SpongeWorldManager.java b/src/main/java/org/spongepowered/common/world/server/SpongeWorldManager.java index 69532bc8336..4d34b4b0199 100644 --- a/src/main/java/org/spongepowered/common/world/server/SpongeWorldManager.java +++ b/src/main/java/org/spongepowered/common/world/server/SpongeWorldManager.java @@ -30,19 +30,19 @@ import it.unimi.dsi.fastutil.longs.LongIterator; import net.minecraft.CrashReport; import net.minecraft.ReportedException; -import net.minecraft.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.GlobalPos; import net.minecraft.core.Registry; import net.minecraft.core.registries.Registries; import net.minecraft.data.worldgen.features.MiscOverworldFeatures; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerChunkCache; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.progress.LevelLoadListener; import net.minecraft.server.level.progress.LoggingLevelLoadListener; import net.minecraft.util.TimeUtil; +import net.minecraft.util.Util; import net.minecraft.world.entity.ai.village.VillageSiege; import net.minecraft.world.entity.npc.CatSpawner; import net.minecraft.world.entity.npc.WanderingTraderSpawner; @@ -308,7 +308,7 @@ private CompletableFuture> loadWorld0(final net.minecraft. try { world = this.createLevel(registryKey, levelData.stem(), storageSource, levelData.data()); } catch (final Exception e) { - return FutureUtil.completedWithException(new RuntimeException(String.format("Failed to create level data for world '%s'!", registryKey.location()), e)); + return FutureUtil.completedWithException(new RuntimeException(String.format("Failed to create level data for world '%s'!", registryKey.identifier()), e)); } return SpongeCommon.asyncScheduler().submit(() -> this.prepareLevel(world)).thenApply(w -> { @@ -615,7 +615,7 @@ public CompletableFuture deleteWorld(final ResourceKey key) { final ServerLevel loadedWorld = this.worlds.get(registryKey); if (loadedWorld != null) { if (!loadedWorld.getPlayers(p -> true).isEmpty()) { - return CompletableFuture.failedFuture(new IOException(String.format("World '%s' was told to unload but players remain.", registryKey.location()))); + return CompletableFuture.failedFuture(new IOException(String.format("World '%s' was told to unload but players remain.", registryKey.identifier()))); } final boolean disableLevelSaving = loadedWorld.noSave; @@ -675,7 +675,7 @@ private CompletableFuture unloadWorld0(final ServerLevel level) { final net.minecraft.resources.ResourceKey registryKey = level.dimension(); if (!level.getPlayers(p -> true).isEmpty()) { - return CompletableFuture.failedFuture(new IOException(String.format("World '%s' was told to unload but players remain.", registryKey.location()))); + return CompletableFuture.failedFuture(new IOException(String.format("World '%s' was told to unload but players remain.", registryKey.identifier()))); } // We first tell the world to save without flushing @@ -684,10 +684,10 @@ private CompletableFuture unloadWorld0(final ServerLevel level) { return ((IOWorkerBridge) level.getChunkSource().chunkMap.chunkScanner()).bridge$onIdle().thenComposeAsync($ -> { if (!level.getPlayers(p -> true).isEmpty()) { - return CompletableFuture.failedFuture(new IOException(String.format("World '%s' was told to unload but players remain.", registryKey.location()))); + return CompletableFuture.failedFuture(new IOException(String.format("World '%s' was told to unload but players remain.", registryKey.identifier()))); } - SpongeCommon.logger().info("Unloading world '{}'", registryKey.location()); + SpongeCommon.logger().info("Unloading world '{}'", registryKey.identifier()); final UnloadWorldEvent unloadWorldEvent = SpongeEventFactory.createUnloadWorldEvent(PhaseTracker.getInstance().currentCause(), (ServerWorld) level); SpongeCommon.post(unloadWorldEvent); @@ -783,21 +783,21 @@ private T initializeLevelData(final ResourceKey key, final Supplier loade private Optional loadLevelData(final net.minecraft.resources.ResourceKey registryKey, final ServerWorldProperties.LoadOptions.@Nullable LoadOperation loadOperation) throws IOException { - try (final LevelStorageSource.LevelStorageAccess storageSource = this.createLevelStorageAccess((ResourceKey) (Object) registryKey.location())) { + try (final LevelStorageSource.LevelStorageAccess storageSource = this.createLevelStorageAccess((ResourceKey) (Object) registryKey.identifier())) { return this.loadLevelData(storageSource, registryKey, loadOperation); } } private Optional loadLevelData(final LevelStorageSource.LevelStorageAccess storageSource, final net.minecraft.resources.ResourceKey registryKey, final ServerWorldProperties.LoadOptions.@Nullable LoadOperation loadOperation) { - return this.initializeLevelDataOptional((ResourceKey) (Object) registryKey.location(), () -> + return this.initializeLevelDataOptional((ResourceKey) (Object) registryKey.identifier(), () -> Optional.ofNullable(this.loadLevelTag(storageSource)) .map(t -> this.readLevelData(registryKey, t, loadOperation))); } private LevelDataLoadResult loadLevelData(final LevelStorageSource.LevelStorageAccess storageSource, final net.minecraft.resources.ResourceKey registryKey, final Supplier defaultSupplier) { - return this.initializeLevelData((ResourceKey) (Object) registryKey.location(), () -> + return this.initializeLevelData((ResourceKey) (Object) registryKey.identifier(), () -> Optional.ofNullable(this.loadLevelTag(storageSource)) .map(t -> this.readLevelData(registryKey, t, null)) .orElseGet(defaultSupplier)); @@ -863,7 +863,7 @@ private static WorldArchetype resolveWorldArchetype(final LevelDataAndDimensions private LevelDataLoadResult createLevelData(final net.minecraft.resources.ResourceKey registryKey, final WorldArchetype archetype) { final LevelStem levelStem = (LevelStem) (Object) archetype.type(); final PrimaryLevelData defaultLevelData = (PrimaryLevelData) this.server.getWorldData(); - final LevelSettings levelSettings = this.createLevelSettings(defaultLevelData, this.getDirectoryName((ResourceKey) (Object) registryKey.location())); + final LevelSettings levelSettings = this.createLevelSettings(defaultLevelData, this.getDirectoryName((ResourceKey) (Object) registryKey.identifier())); return new LevelDataLoadResult( new PrimaryLevelData(levelSettings, (WorldOptions) archetype.generationConfig().orElse((WorldGenerationConfig) defaultLevelData.worldGenOptions()), SpongeWorldManager.specialWorldProperty(levelStem), Lifecycle.stable()), levelStem); @@ -886,7 +886,7 @@ private ServerLevel createLevel( final LevelStorageSource.LevelStorageAccess storageSource, final PrimaryLevelData levelData) { - final ResourceKey worldKey = (ResourceKey) (Object) registryKey.location(); + final ResourceKey worldKey = (ResourceKey) (Object) registryKey.identifier(); MinecraftServerAccessor.accessor$LOGGER().info("Loading world '{}'", worldKey); @@ -955,7 +955,7 @@ private ServerLevel prepareLevel(final ServerLevel level) { ((MinecraftServerAccessor) this.server).invoker$setupDebugLevel(worldData); } } catch (final Throwable throwable) { - final CrashReport crashReport = CrashReport.forThrowable(throwable, "Exception initializing world '" + level.dimension().location() + "'"); + final CrashReport crashReport = CrashReport.forThrowable(throwable, "Exception initializing world '" + level.dimension().identifier() + "'"); try { level.fillReportDetails(crashReport); } catch (final Throwable ignore) { @@ -982,7 +982,7 @@ private ServerLevel prepareLevel(final ServerLevel level) { * Same as loadSpawnChunks but async and without listener. */ private CompletableFuture loadSpawnChunksAsync(final ServerLevel level) { - MinecraftServerAccessor.accessor$LOGGER().info("Preparing start region for dimension {}", level.dimension().location()); + MinecraftServerAccessor.accessor$LOGGER().info("Preparing start region for dimension {}", level.dimension().identifier()); final ServerChunkCache chunkSource = level.getChunkSource(); final var respawnData = level.getRespawnData(); @@ -994,7 +994,7 @@ private CompletableFuture loadSpawnChunksAsync(final ServerLevel le Sponge.server().scheduler().submit(Task.builder().plugin(Launch.instance().platformPlugin()).execute(() -> generationFuture.complete(level)).build()); // Notify the future that we are done task.cancel(); // And cancel this task - MinecraftServerAccessor.accessor$LOGGER().info("Done preparing start region for dimension {}", level.dimension().location()); + MinecraftServerAccessor.accessor$LOGGER().info("Done preparing start region for dimension {}", level.dimension().identifier()); }).interval(10, TimeUnit.MILLISECONDS).build() ); @@ -1008,7 +1008,7 @@ private CompletableFuture loadSpawnChunksAsync(final ServerLevel le * Mimic MinecraftServer#prepareLevels */ private void loadSpawnChunks(final ServerLevel level) { - MinecraftServerAccessor.accessor$LOGGER().info("Preparing start region for dimension {}", level.dimension().location()); + MinecraftServerAccessor.accessor$LOGGER().info("Preparing start region for dimension {}", level.dimension().identifier()); final var respawnData = level.getRespawnData(); final ServerChunkCache chunkSource = level.getChunkSource(); @@ -1038,7 +1038,7 @@ private static void updateForcedChunks(final ServerLevel level, final ServerChun } public static net.minecraft.resources.ResourceKey createRegistryKey(final ResourceKey key) { - return net.minecraft.resources.ResourceKey.create(Registries.DIMENSION, (ResourceLocation) (Object) key); + return net.minecraft.resources.ResourceKey.create(Registries.DIMENSION, (Identifier) (Object) key); } private String getDirectoryName(final ResourceKey key) { diff --git a/src/main/java/org/spongepowered/common/world/server/SpongeWorldTemplate.java b/src/main/java/org/spongepowered/common/world/server/SpongeWorldTemplate.java index a04501c75b5..71665c9ac17 100644 --- a/src/main/java/org/spongepowered/common/world/server/SpongeWorldTemplate.java +++ b/src/main/java/org/spongepowered/common/world/server/SpongeWorldTemplate.java @@ -28,7 +28,7 @@ import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; import net.kyori.adventure.text.Component; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.Difficulty; import net.minecraft.world.level.GameType; import net.minecraft.world.level.dimension.LevelStem; @@ -50,8 +50,8 @@ public record SpongeWorldTemplate(ResourceKey key, LevelStem levelStem) { .create(r -> r .group( SpongeAdventure.STRING_CODEC.optionalFieldOf("display_name").forGetter(v -> Optional.ofNullable(v.displayName)), - ResourceLocation.CODEC.optionalFieldOf("game_mode").forGetter(v -> Optional.ofNullable(v.gameMode).map(t -> ResourceLocation.fromNamespaceAndPath("sponge", t.getName()))), - ResourceLocation.CODEC.optionalFieldOf("difficulty").forGetter(v -> Optional.ofNullable(v.difficulty).map(t -> ResourceLocation.fromNamespaceAndPath("sponge", t.getKey()))), + Identifier.CODEC.optionalFieldOf("game_mode").forGetter(v -> Optional.ofNullable(v.gameMode).map(t -> Identifier.fromNamespaceAndPath("sponge", t.getName()))), + Identifier.CODEC.optionalFieldOf("difficulty").forGetter(v -> Optional.ofNullable(v.difficulty).map(t -> Identifier.fromNamespaceAndPath("sponge", t.getKey()))), EnumCodec.create(SerializationBehavior.class).optionalFieldOf("serialization_behavior") .forGetter(v -> Optional.ofNullable(v.serializationBehavior)), Codec.INT.optionalFieldOf("view_distance").forGetter(v -> Optional.ofNullable(v.viewDistance)), diff --git a/src/main/java/org/spongepowered/common/world/server/SpongeWorldTypeBuilder.java b/src/main/java/org/spongepowered/common/world/server/SpongeWorldTypeBuilder.java index b222d4f6358..d05db9aaf4c 100644 --- a/src/main/java/org/spongepowered/common/world/server/SpongeWorldTypeBuilder.java +++ b/src/main/java/org/spongepowered/common/world/server/SpongeWorldTypeBuilder.java @@ -24,7 +24,7 @@ */ package org.spongepowered.common.world.server; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.core.HolderSet; import net.minecraft.util.valueproviders.UniformInt; import net.minecraft.world.attribute.BedRule; import net.minecraft.world.attribute.EnvironmentAttributeMap; @@ -48,7 +48,6 @@ import org.spongepowered.common.data.SpongeDataManager; import org.spongepowered.common.data.provider.DataProviderLookup; -import java.util.OptionalLong; public final class SpongeWorldTypeBuilder implements WorldType.Builder { @@ -114,17 +113,22 @@ public WorldType.Builder from(final WorldType type) { attributes.set(EnvironmentAttributes.RESPAWN_ANCHOR_WORKS, respawnAnchorsUsable); attributes.set(EnvironmentAttributes.CAN_START_RAID, hasRaids); final DimensionType dimensionType = - new DimensionType(fixedTime == null ? OptionalLong.empty() : OptionalLong.of(fixedTime.asTicks().ticks()), + new DimensionType( + fixedTime != null, hasSkylight, hasCeiling, - natural, coordinateMultiplier, - floor, height, logicalHeight, + coordinateMultiplier, + floor, + height, + logicalHeight, ((TagBridge) infiniburn).bridge$asVanillaTag(), - (ResourceLocation) (Object) effect.key(), ambientLighting, new DimensionType.MonsterSettings(monsterSpawnLightTest, monsterSpawnBlockLightLimit), - attributes.build() - ); + DimensionType.Skybox.OVERWORLD, + DimensionType.CardinalLightType.DEFAULT, + attributes.build(), + HolderSet.empty() + ); if ((Object) dimensionType instanceof DimensionTypeBridge bridge) { bridge.bridge$decorateData(spongeData); } diff --git a/src/main/java/org/spongepowered/common/world/teleport/ConfigTeleportHelperFilter.java b/src/main/java/org/spongepowered/common/world/teleport/ConfigTeleportHelperFilter.java index c26932e7c45..c7b4d28208d 100644 --- a/src/main/java/org/spongepowered/common/world/teleport/ConfigTeleportHelperFilter.java +++ b/src/main/java/org/spongepowered/common/world/teleport/ConfigTeleportHelperFilter.java @@ -26,7 +26,7 @@ import net.minecraft.core.Registry; import net.minecraft.core.registries.Registries; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.level.block.Block; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; @@ -66,26 +66,26 @@ private static void updateCacheIfNecessary() { final TeleportHelperCategory teleportHelperCat = SpongeConfigs.getCommon().get().teleportHelper; ConfigTeleportHelperFilter.floorBlockTypes = teleportHelperCat.unsafeFloorBlocks.stream() .map(x -> ResourceKey.resolve(x.toLowerCase(Locale.ENGLISH))) - .map(x -> (BlockType) blockRegistry.getValue((ResourceLocation) (Object) x)) + .map(x -> (BlockType) blockRegistry.getValue((Identifier) (Object) x)) .filter(Objects::nonNull) .collect(Collectors.toList()); ConfigTeleportHelperFilter.floorBlockStates = teleportHelperCat.unsafeFloorBlocks.stream() .map(x -> ResourceKey.resolve(x.toLowerCase(Locale.ENGLISH))) - .map(x -> blockRegistry.getOptional((ResourceLocation) (Object) x).map(b -> (BlockType) b) + .map(x -> blockRegistry.getOptional((Identifier) (Object) x).map(b -> (BlockType) b) .map(StateContainer::defaultState).orElse(null)) .filter(Objects::nonNull) .collect(Collectors.toList()); ConfigTeleportHelperFilter.bodyBlockTypes = teleportHelperCat.unsafeBlockBlocks.stream() .map(x -> ResourceKey.resolve(x.toLowerCase(Locale.ENGLISH))) - .map(x -> (BlockType) blockRegistry.getValue((ResourceLocation) (Object) x)) + .map(x -> (BlockType) blockRegistry.getValue((Identifier) (Object) x)) .filter(Objects::nonNull) .collect(Collectors.toList()); ConfigTeleportHelperFilter.bodyBlockStates = teleportHelperCat.unsafeBlockBlocks.stream() .map(x -> ResourceKey.resolve(x.toLowerCase(Locale.ENGLISH))) - .map(x -> blockRegistry.getOptional((ResourceLocation) (Object) x).map(b -> (BlockType) b) + .map(x -> blockRegistry.getOptional((Identifier) (Object) x).map(b -> (BlockType) b) .map(StateContainer::defaultState).orElse(null)) .filter(Objects::nonNull) .collect(Collectors.toList()); diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/advancements/AdvancementMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/advancements/AdvancementMixin_API.java index cc5d46c9762..a2bb2249470 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/advancements/AdvancementMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/advancements/AdvancementMixin_API.java @@ -30,7 +30,7 @@ import net.minecraft.advancements.AdvancementRewards; import net.minecraft.advancements.Criterion; import net.minecraft.advancements.DisplayInfo; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.spongepowered.api.ResourceKey; import org.spongepowered.api.advancement.criteria.AdvancementCriterion; import org.spongepowered.api.data.persistence.DataContainer; @@ -49,7 +49,7 @@ @Mixin(Advancement.class) public abstract class AdvancementMixin_API implements org.spongepowered.api.advancement.Advancement { - @Shadow @Final private Optional parent; + @Shadow @Final private Optional parent; @Shadow @Final private Optional display; @Shadow @Final private AdvancementRewards rewards; @Shadow @Final private Map> criteria; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/advancements/AdvancementNodeMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/advancements/AdvancementNodeMixin_API.java index 328ea086457..0fe2090c472 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/advancements/AdvancementNodeMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/advancements/AdvancementNodeMixin_API.java @@ -28,7 +28,7 @@ import net.minecraft.advancements.AdvancementHolder; import net.minecraft.advancements.AdvancementNode; import net.minecraft.advancements.DisplayInfo; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.spongepowered.api.ResourceKey; import org.spongepowered.api.advancement.Advancement; import org.spongepowered.api.advancement.AdvancementTree; @@ -101,14 +101,14 @@ public Optional layoutElement(final Advancement advancement) @Override public Optional layoutElement(final ResourceKey advancementKey) { - return this.impl$element(((ResourceLocation) (Object) advancementKey)); + return this.impl$element(((Identifier) (Object) advancementKey)); } - private Optional impl$element(final ResourceLocation loc) { + private Optional impl$element(final Identifier loc) { return this.impl$findElementInfo((AdvancementNode) (Object) this, loc).map(TreeLayoutElement.class::cast); } - private Optional impl$findElementInfo(AdvancementNode node, ResourceLocation key) { + private Optional impl$findElementInfo(AdvancementNode node, Identifier key) { if (node.holder().id().equals(key)) { return node.advancement().display(); } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/advancements/CriterionProgressMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/advancements/CriterionProgressMixin_API.java index 134a08854fc..c60287fe7b0 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/advancements/CriterionProgressMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/advancements/CriterionProgressMixin_API.java @@ -27,7 +27,7 @@ import net.minecraft.advancements.Advancement; import net.minecraft.advancements.AdvancementHolder; import net.minecraft.advancements.CriterionProgress; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.api.advancement.AdvancementProgress; import org.spongepowered.api.advancement.criteria.AdvancementCriterion; @@ -65,7 +65,7 @@ public Instant grant() { return this.obtained; } final AdvancementProgress advancementProgress = ((CriterionProgressBridge) this).bridge$getAdvancementProgress(); - final ResourceLocation key = ((AdvancementProgressBridge) advancementProgress).bridge$getAdvancementKey(); + final Identifier key = ((AdvancementProgressBridge) advancementProgress).bridge$getAdvancementKey(); final org.spongepowered.api.advancement.Advancement advancement = advancementProgress.advancement(); final AdvancementHolder holder = new AdvancementHolder(key, (Advancement) (Object) advancement); ((AdvancementProgressBridge) advancementProgress).bridge$getPlayerAdvancements().award(holder, this.criterion().name()); @@ -79,7 +79,7 @@ public Optional revoke() { } final Instant instant = this.obtained; final AdvancementProgress advancementProgress = ((CriterionProgressBridge) this).bridge$getAdvancementProgress(); - final ResourceLocation key = ((AdvancementProgressBridge) advancementProgress).bridge$getAdvancementKey(); + final Identifier key = ((AdvancementProgressBridge) advancementProgress).bridge$getAdvancementKey(); final org.spongepowered.api.advancement.Advancement advancement = advancementProgress.advancement(); final AdvancementHolder holder = new AdvancementHolder(key, (Advancement) (Object) advancement); ((AdvancementProgressBridge) advancementProgress).bridge$getPlayerAdvancements().revoke(holder, this.criterion().name()); diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/commands/arguments/selector/EntitySelectorParserMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/commands/arguments/selector/EntitySelectorParserMixin_API.java index da4b71e6e5f..889e363d0ea 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/commands/arguments/selector/EntitySelectorParserMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/commands/arguments/selector/EntitySelectorParserMixin_API.java @@ -29,7 +29,7 @@ import com.mojang.brigadier.suggestion.Suggestions; import com.mojang.brigadier.suggestion.SuggestionsBuilder; import it.unimi.dsi.fastutil.objects.Object2BooleanOpenHashMap; -import net.minecraft.advancements.critereon.MinMaxBounds; +import net.minecraft.advancements.criterion.MinMaxBounds; import net.minecraft.commands.arguments.selector.EntitySelector; import net.minecraft.commands.arguments.selector.EntitySelectorParser; import net.minecraft.core.registries.Registries; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/core/MappedRegistryMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/core/MappedRegistryMixin_API.java index 033b74fe337..62455d8f24e 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/core/MappedRegistryMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/core/MappedRegistryMixin_API.java @@ -28,7 +28,7 @@ import net.minecraft.core.HolderSet; import net.minecraft.core.MappedRegistry; import net.minecraft.core.RegistrationInfo; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.tags.TagKey; import org.spongepowered.api.ResourceKey; import org.spongepowered.api.registry.Registry; @@ -57,7 +57,7 @@ public abstract class MappedRegistryMixin_API implements Registry { @Shadow public abstract net.minecraft.resources.ResourceKey> shadow$key(); - private ResourceLocation impl$getKey(final T value) { + private Identifier impl$getKey(final T value) { return ((net.minecraft.core.Registry) this).getKey(value); } @@ -78,7 +78,7 @@ public RegistryType type() { public ResourceKey valueKey(final T value) { Objects.requireNonNull(value, "value"); - final ResourceLocation key = this.impl$getKey(value); + final Identifier key = this.impl$getKey(value); if (key == null) { throw new IllegalStateException(String.format("No key was found for '%s'!", value)); } @@ -155,7 +155,7 @@ public Optional> register(final ResourceKey key, Objects.requireNonNull(value, "value"); if (this.isDynamic()) { - final net.minecraft.resources.ResourceKey mcKey = net.minecraft.resources.ResourceKey.create(this.shadow$key(), (ResourceLocation) (Object) key); + final net.minecraft.resources.ResourceKey mcKey = net.minecraft.resources.ResourceKey.create(this.shadow$key(), (Identifier) (Object) key); this.shadow$register(mcKey, value, RegistrationInfo.BUILT_IN); return ((RegistryBridge) this).bridge$get(key); } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/core/RegistryMixin.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/core/RegistryMixin.java index 58a3621b0e6..6e40f5569f1 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/core/RegistryMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/core/RegistryMixin.java @@ -25,8 +25,8 @@ package org.spongepowered.common.mixin.api.minecraft.core; import net.minecraft.core.Registry; +import net.minecraft.resources.Identifier; import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; import org.spongepowered.api.registry.RegistryEntry; import org.spongepowered.api.registry.RegistryType; import org.spongepowered.api.registry.ValueNotFoundException; @@ -44,15 +44,15 @@ public interface RegistryMixin extends org.spongepowered.api.registry.Registr @Shadow ResourceKey> shadow$key(); - @Shadow @Nullable ResourceLocation shadow$getKey(T object); + @Shadow @Nullable Identifier shadow$getKey(T object); - @Shadow Optional shadow$getOptional(@org.jetbrains.annotations.Nullable ResourceLocation arg); + @Shadow Optional shadow$getOptional(@org.jetbrains.annotations.Nullable Identifier arg); - @Shadow @Nullable T shadow$getValue(@org.jetbrains.annotations.Nullable ResourceLocation arg); + @Shadow @Nullable T shadow$getValue(@org.jetbrains.annotations.Nullable Identifier arg); @Override default RegistryType type() { - return RegistryType.of((org.spongepowered.api.ResourceKey) (Object) this.shadow$key().registry(), (org.spongepowered.api.ResourceKey) (Object) this.shadow$key().location()); + return RegistryType.of((org.spongepowered.api.ResourceKey) (Object) this.shadow$key().registry(), (org.spongepowered.api.ResourceKey) (Object) this.shadow$key().identifier()); } @Override @@ -67,18 +67,18 @@ default Optional findValueKey(final T value) @Override default Optional> findEntry(final org.spongepowered.api.ResourceKey key) { - return this.shadow$getOptional((ResourceLocation) (Object) Objects.requireNonNull(key, "key")).map(e -> + return this.shadow$getOptional((Identifier) (Object) Objects.requireNonNull(key, "key")).map(e -> new SpongeRegistryEntry<>((RegistryType) this.type(), key, (V) e)); } @Override default Optional findValue(final org.spongepowered.api.ResourceKey key) { - return (Optional) this.shadow$getOptional((ResourceLocation) (Object) Objects.requireNonNull(key, "key")); + return (Optional) this.shadow$getOptional((Identifier) (Object) Objects.requireNonNull(key, "key")); } @Override default V value(final org.spongepowered.api.ResourceKey key) { - final V value = (V) this.shadow$getValue((ResourceLocation) (Object) Objects.requireNonNull(key, "key")); + final V value = (V) this.shadow$getValue((Identifier) (Object) Objects.requireNonNull(key, "key")); if (value != null) { return value; } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/resources/ResourceLocationMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/resources/IdentifierMixin_API.java similarity index 93% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/resources/ResourceLocationMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/resources/IdentifierMixin_API.java index d6ff707896e..e5b73b0e2f6 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/resources/ResourceLocationMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/resources/IdentifierMixin_API.java @@ -25,7 +25,7 @@ package org.spongepowered.common.mixin.api.minecraft.resources; import net.kyori.adventure.key.Key; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.spongepowered.api.ResourceKey; import org.spongepowered.asm.mixin.Implements; import org.spongepowered.asm.mixin.Interface; @@ -34,12 +34,12 @@ import org.spongepowered.asm.mixin.Overwrite; import org.spongepowered.asm.mixin.Shadow; -@Mixin(ResourceLocation.class) +@Mixin(Identifier.class) @Implements(value = { @Interface(iface = Key.class, prefix = "adventure$", remap = Remap.NONE), @Interface(iface = ResourceKey.class, prefix = "resourceKey$", remap = Remap.NONE) }) -public abstract class ResourceLocationMixin_API { +public abstract class IdentifierMixin_API { // @formatter:off @Shadow public abstract String shadow$getNamespace(); @@ -48,7 +48,7 @@ public abstract class ResourceLocationMixin_API { /** * @author MrHell228 - October 6th, 2025 - * @reason Delegate synthetic method to #compareTo(Key) to avoid CCE in case Key is not a ResourceLocation + * @reason Delegate synthetic method to #compareTo(Key) to avoid CCE in case Key is not a Identifier */ @Overwrite public int compareTo(final Object obj) { diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/level/ServerLevelMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/level/ServerLevelMixin_API.java index 1972c935181..3e743c7b442 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/level/ServerLevelMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/level/ServerLevelMixin_API.java @@ -183,7 +183,7 @@ public ChunkGenerator generator() { @Override public ResourceKey key() { - return (ResourceKey) (Object) this.shadow$dimension().location(); + return (ResourceKey) (Object) this.shadow$dimension().identifier(); } @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/level/ServerPlayerMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/level/ServerPlayerMixin_API.java index 07fa31df462..e438dd44399 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/level/ServerPlayerMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/level/ServerPlayerMixin_API.java @@ -40,7 +40,7 @@ import net.minecraft.network.chat.PlayerChatMessage; import net.minecraft.network.protocol.game.ClientboundDeleteChatPacket; import net.minecraft.network.protocol.game.ClientboundInitializeBorderPacket; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.MinecraftServer; import net.minecraft.server.PlayerAdvancements; import net.minecraft.server.level.ServerBossEvent; @@ -244,7 +244,7 @@ public CooldownTracker cooldownTracker() { @Override public AdvancementProgress progress(final org.spongepowered.api.advancement.Advancement advancement) { Objects.requireNonNull(advancement, "advancement"); - final AdvancementHolder holder = new AdvancementHolder((ResourceLocation) (Object) advancement.key(RegistryTypes.ADVANCEMENT), (Advancement) (Object) advancement); + final AdvancementHolder holder = new AdvancementHolder((Identifier) (Object) advancement.key(RegistryTypes.ADVANCEMENT), (Advancement) (Object) advancement); return (AdvancementProgress) this.advancements.getOrStartProgress(holder); } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/level/WorldGenRegionMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/level/WorldGenRegionMixin_API.java index 5f48b94a501..cd756c968a8 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/level/WorldGenRegionMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/level/WorldGenRegionMixin_API.java @@ -70,7 +70,7 @@ public abstract class WorldGenRegionMixin_API implements GenerationRegion { @Inject(method = "", at = @At("RETURN")) private void api$getWorldKeyOnConstruction(final ServerLevel $$0, final StaticCache2D $$1, final ChunkStep $$2, final ChunkAccess $$3, final CallbackInfo ci) { - this.api$serverWorldKey = (ResourceKey) (Object) $$0.dimension().location(); + this.api$serverWorldKey = (ResourceKey) (Object) $$0.dimension().identifier(); } @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/packs/PackResourcesMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/packs/PackResourcesMixin_API.java index 793eb7c39e5..8cea7dddbad 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/packs/PackResourcesMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/packs/PackResourcesMixin_API.java @@ -24,7 +24,7 @@ */ package org.spongepowered.common.mixin.api.minecraft.server.packs; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.packs.PackResources; import net.minecraft.server.packs.resources.IoSupplier; import org.checkerframework.checker.nullness.qual.Nullable; @@ -55,7 +55,7 @@ public interface PackResourcesMixin_API extends PackContents { // @formatter:off @Shadow String shadow$packId(); - @Shadow IoSupplier shadow$getResource(net.minecraft.server.packs.PackType var1, ResourceLocation var2) throws IOException; + @Shadow IoSupplier shadow$getResource(net.minecraft.server.packs.PackType var1, Identifier var2) throws IOException; @Shadow Set shadow$getNamespaces(net.minecraft.server.packs.PackType var1); @Shadow void shadow$listResources(net.minecraft.server.packs.PackType var1, String var2, String var3, PackResources.ResourceOutput var4); @@ -83,7 +83,7 @@ default Resource requireResource(final PackType root, final ResourcePath path) t @Nullable default Resource api$createResource(final PackType root, final ResourcePath path) throws IOException { final net.minecraft.server.packs.PackType packType = (net.minecraft.server.packs.PackType) (Object) Objects.requireNonNull(root, "root"); - final ResourceLocation loc = (ResourceLocation) (Object) Objects.requireNonNull(path, "path").key(); + final Identifier loc = (Identifier) (Object) Objects.requireNonNull(path, "path").key(); final IoSupplier ioSupplier = this.shadow$getResource(packType, loc); return new SpongeResource(path, ioSupplier.get()); } @@ -93,7 +93,7 @@ default Collection paths(final PackType root, final String namespa Objects.requireNonNull(filter, "filter"); final net.minecraft.server.packs.PackType packType = (net.minecraft.server.packs.PackType) (Object) Objects.requireNonNull(root, "root"); - final Collection resources = new HashSet<>(); + final Collection resources = new HashSet<>(); this.shadow$listResources(packType, Objects.requireNonNull(namespace, "namespace"), Objects.requireNonNull(prefix, "prefix"), (loc, stream) -> { if (filter.test((ResourceKey) (Object) loc)) { @@ -110,7 +110,7 @@ default Collection paths(final PackType root, final String namespa default boolean exists(final PackType root, final ResourcePath path) { try { final net.minecraft.server.packs.PackType packType = (net.minecraft.server.packs.PackType) (Object) Objects.requireNonNull(root, "root"); - final ResourceLocation loc = (ResourceLocation) (Object) Objects.requireNonNull(path, "path").key(); + final Identifier loc = (Identifier) (Object) Objects.requireNonNull(path, "path").key(); final IoSupplier ioSupplier = this.shadow$getResource(packType, loc); return ioSupplier != null; } catch (IOException ignored) { diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/packs/resources/ResourceManagerMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/packs/resources/ResourceManagerMixin_API.java index 90c8e37125f..f9153d508a0 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/packs/resources/ResourceManagerMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/packs/resources/ResourceManagerMixin_API.java @@ -24,7 +24,7 @@ */ package org.spongepowered.common.mixin.api.minecraft.server.packs.resources; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.packs.resources.ResourceManager; import net.minecraft.server.packs.resources.ResourceProvider; import org.spongepowered.api.ResourceKey; @@ -49,13 +49,13 @@ public interface ResourceManagerMixin_API extends org.spongepowered.api.resource.ResourceManager { // @formatter:off - @Shadow List shadow$getResourceStack(ResourceLocation var1); - @Shadow Map shadow$listResources(String var1, Predicate var2); + @Shadow List shadow$getResourceStack(Identifier var1); + @Shadow Map shadow$listResources(String var1, Predicate var2); // @formatter:on @Override default Resource load(final ResourcePath path) throws IOException { - final ResourceLocation loc = (ResourceLocation) (Object) Objects.requireNonNull(path, "path").key(); + final Identifier loc = (Identifier) (Object) Objects.requireNonNull(path, "path").key(); final net.minecraft.server.packs.resources.Resource resource = ((ResourceProvider) this).getResourceOrThrow(loc); // TODO pass optional up to API? return new SpongeResource(resource, path); @@ -63,7 +63,7 @@ default Resource load(final ResourcePath path) throws IOException { @Override default Stream streamAll(final ResourcePath path) { - final ResourceLocation loc = (ResourceLocation) (Object) Objects.requireNonNull(path, "path").key(); + final Identifier loc = (Identifier) (Object) Objects.requireNonNull(path, "path").key(); return (Stream) (Object) this.shadow$getResourceStack(loc).stream(); } @@ -72,7 +72,7 @@ default Collection find(final String pathPrefix, final Predicate mapped = this.shadow$listResources(pathPrefix, loc -> pathFilter.test(loc.getPath())).keySet(); // TODO check filter + final Set mapped = this.shadow$listResources(pathPrefix, loc -> pathFilter.test(loc.getPath())).keySet(); // TODO check filter return mapped.stream() .map(r -> new SpongeResourcePath((ResourceKey) (Object) r)) .collect(Collectors.toList()); diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/sounds/SoundEventMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/sounds/SoundEventMixin_API.java index 741f8b1de44..7d956dd57d7 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/sounds/SoundEventMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/sounds/SoundEventMixin_API.java @@ -24,7 +24,7 @@ */ package org.spongepowered.common.mixin.api.minecraft.sounds; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.sounds.SoundEvent; import org.spongepowered.api.ResourceKey; import org.spongepowered.api.effect.sound.SoundType; @@ -36,7 +36,7 @@ public abstract class SoundEventMixin_API implements SoundType { //@formatter:off - @Shadow @Final private ResourceLocation location; + @Shadow @Final private Identifier location; //@formatter:on @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/tags/TagKeyMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/tags/TagKeyMixin_API.java index d4f3c45fd30..0d9ffcb60c7 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/tags/TagKeyMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/tags/TagKeyMixin_API.java @@ -25,7 +25,7 @@ package org.spongepowered.common.mixin.api.minecraft.tags; import net.minecraft.core.Registry; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.tags.TagKey; import org.spongepowered.api.ResourceKey; import org.spongepowered.api.registry.RegistryHolder; @@ -45,12 +45,12 @@ public abstract class TagKeyMixin_API implements Tag { // @formatter:off @Shadow @Final private net.minecraft.resources.ResourceKey> registry; - @Shadow @Final private ResourceLocation location; + @Shadow @Final private Identifier location; // @formatter:on @Override public RegistryType registry() { - return RegistryType.of((ResourceKey) (Object) this.registry.registry(), (ResourceKey) (Object) this.registry.location()); + return RegistryType.of((ResourceKey) (Object) this.registry.registry(), (ResourceKey) (Object) this.registry.identifier()); } @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/EntityMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/EntityMixin_API.java index 8762ae965b4..e96531d90c3 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/EntityMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/EntityMixin_API.java @@ -30,7 +30,7 @@ import net.minecraft.core.Registry; import net.minecraft.core.registries.Registries; import net.minecraft.network.syncher.SynchedEntityData; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.util.ProblemReporter; @@ -351,7 +351,7 @@ public EntityArchetype createArchetype() { @Override public HoverEvent asHoverEvent(final UnaryOperator op) { final Registry> entityTypeRegistry = SpongeCommon.vanillaRegistry(Registries.ENTITY_TYPE); - final ResourceLocation entityTypeKey = entityTypeRegistry.getKey((net.minecraft.world.entity.EntityType) this.type()); + final Identifier entityTypeKey = entityTypeRegistry.getKey((net.minecraft.world.entity.EntityType) this.type()); return HoverEvent.showEntity(op.apply(HoverEvent.ShowEntity.showEntity((Key) (Object) entityTypeKey, this.uniqueId(), this.displayName().get()))); } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/HumanoidArmMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/HumanoidArmMixin_API.java index 3f60eab0e26..2c06dd309bb 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/HumanoidArmMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/HumanoidArmMixin_API.java @@ -30,16 +30,17 @@ import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.common.adventure.SpongeAdventure; @Mixin(HumanoidArm.class) public abstract class HumanoidArmMixin_API implements HandPreference { // @formatter:off - @Shadow @Final private String translationKey; + @Shadow @Final private net.minecraft.network.chat.Component caption; // @formatter:on @Override public Component asComponent() { - return Component.translatable(this.translationKey); + return SpongeAdventure.asAdventure(this.caption); } } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/ai/attributes/AttributeInstanceMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/ai/attributes/AttributeInstanceMixin_API.java index 214bcf05b37..92c9e8c6c86 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/ai/attributes/AttributeInstanceMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/ai/attributes/AttributeInstanceMixin_API.java @@ -25,7 +25,7 @@ package org.spongepowered.common.mixin.api.minecraft.world.entity.ai.attributes; import net.minecraft.core.Holder; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.entity.ai.attributes.AttributeInstance; import org.spongepowered.api.ResourceKey; import org.spongepowered.api.entity.attribute.Attribute; @@ -59,11 +59,11 @@ public abstract class AttributeInstanceMixin_API implements Attribute { @Shadow public abstract double shadow$getValue(); @Shadow protected abstract void shadow$addModifier(net.minecraft.world.entity.ai.attributes.AttributeModifier modifier); @Shadow public abstract void shadow$removeModifier(net.minecraft.world.entity.ai.attributes.AttributeModifier modifier); - @Shadow public abstract boolean shadow$removeModifier(ResourceLocation $$0); + @Shadow public abstract boolean shadow$removeModifier(Identifier $$0); @Shadow abstract Map shadow$getModifiers(net.minecraft.world.entity.ai.attributes.AttributeModifier.Operation p_225504_1_); @Shadow public abstract Set shadow$getModifiers(); - @Shadow public abstract boolean shadow$hasModifier(final ResourceLocation $$0); - @Shadow @Nullable public abstract net.minecraft.world.entity.ai.attributes.AttributeModifier shadow$getModifier(final ResourceLocation $$0); + @Shadow public abstract boolean shadow$hasModifier(final Identifier $$0); + @Shadow @Nullable public abstract net.minecraft.world.entity.ai.attributes.AttributeModifier shadow$getModifier(final Identifier $$0); // @formatter:on @@ -99,7 +99,7 @@ public Collection modifiers(final AttributeOperation operatio @Override public boolean hasModifier(final AttributeModifier modifier) { - return this.shadow$hasModifier((ResourceLocation) (Object) modifier.key()); + return this.shadow$hasModifier((Identifier) (Object) modifier.key()); } @Override @@ -114,12 +114,12 @@ public void removeModifier(final AttributeModifier modifier) { @Override public void removeModifier(ResourceKey key) { - this.shadow$removeModifier((ResourceLocation) (Object) key); + this.shadow$removeModifier((Identifier) (Object) key); } @Override public Optional modifier(final ResourceKey key) { - return Optional.ofNullable((AttributeModifier) (Object) this.shadow$getModifier((ResourceLocation) (Object) Objects.requireNonNull(key, "uniqueId"))); + return Optional.ofNullable((AttributeModifier) (Object) this.shadow$getModifier((Identifier) (Object) Objects.requireNonNull(key, "uniqueId"))); } } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/ai/attributes/AttributeModifierMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/ai/attributes/AttributeModifierMixin_API.java index 766744c19ee..5eda287243c 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/ai/attributes/AttributeModifierMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/ai/attributes/AttributeModifierMixin_API.java @@ -24,7 +24,7 @@ */ package org.spongepowered.common.mixin.api.minecraft.world.entity.ai.attributes; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.entity.ai.attributes.AttributeModifier.Operation; import org.spongepowered.api.ResourceKey; import org.spongepowered.api.entity.attribute.AttributeModifier; @@ -39,7 +39,7 @@ public abstract class AttributeModifierMixin_API implements AttributeModifier { // @formatter:off @Shadow @Final private double amount; @Shadow @Final private Operation operation; - @Shadow @Final private ResourceLocation id; + @Shadow @Final private Identifier id; // @formatter:on diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/player/ChatVisiblityMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/player/ChatVisiblityMixin_API.java index 22d8a0c06de..3e54cb6d300 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/player/ChatVisiblityMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/player/ChatVisiblityMixin_API.java @@ -29,17 +29,18 @@ import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.common.adventure.SpongeAdventure; @Mixin(ChatVisiblity.class) public abstract class ChatVisiblityMixin_API implements org.spongepowered.api.entity.living.player.chat.ChatVisibility { // @formatter:off - @Shadow @Final private String key; + @Shadow @Final private net.minecraft.network.chat.Component caption; // @formatter:on @Override public Component asComponent() { - return Component.translatable(this.key); + return SpongeAdventure.asAdventure(this.caption); } @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/item/ItemCooldownsMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/item/ItemCooldownsMixin_API.java index 6296ba85737..ae0caccdded 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/item/ItemCooldownsMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/item/ItemCooldownsMixin_API.java @@ -25,7 +25,7 @@ package org.spongepowered.common.mixin.api.minecraft.world.item; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.util.Mth; import net.minecraft.world.item.ItemCooldowns; import net.minecraft.world.item.ItemStack; @@ -53,13 +53,13 @@ public abstract class ItemCooldownsMixin_API implements org.spongepowered.api.en @Shadow public abstract boolean shadow$isOnCooldown(ItemStack stack); @Shadow public abstract float shadow$getCooldownPercent(ItemStack stack, float partialTicks); @Shadow public abstract void shadow$addCooldown(final ItemStack stack, final int ticks); - @Shadow public abstract void shadow$addCooldown(final ResourceLocation group, final int ticks); - @Shadow @Final private Map cooldowns; + @Shadow public abstract void shadow$addCooldown(final Identifier group, final int ticks); + @Shadow @Final private Map cooldowns; // @formatter:on - @Shadow public abstract ResourceLocation getCooldownGroup(final ItemStack $$0); + @Shadow public abstract Identifier getCooldownGroup(final ItemStack $$0); @Override public boolean hasCooldown(final org.spongepowered.api.item.inventory.ItemStack stack) { @@ -77,7 +77,7 @@ public boolean hasCooldown(final ResourceKey group) { } private float impl$getCooldownPercent(final Object group) { - final var cooldown = this.cooldowns.get((ResourceLocation) group); + final var cooldown = this.cooldowns.get((Identifier) group); if (cooldown != null) { float $$4 = (float)(cooldown.accessor$endTime() - cooldown.accessor$startTime()); float $$5 = (float)cooldown.accessor$endTime() - ((float)this.tickCount); @@ -117,7 +117,7 @@ public boolean setCooldown(final org.spongepowered.api.item.inventory.ItemStack @Override public boolean setCooldown(final ResourceKey group, final Ticks ticks) { Objects.requireNonNull(group, "group cannot be null!"); - this.shadow$addCooldown((ResourceLocation) (Object) group, SpongeTicks.toSaturatedIntOrInfinite(ticks)); + this.shadow$addCooldown((Identifier) (Object) group, SpongeTicks.toSaturatedIntOrInfinite(ticks)); return ((ItemCooldownsBridge) this).bridge$getSetCooldownResult(); } @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/item/crafting/RecipeManagerMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/item/crafting/RecipeManagerMixin_API.java index 1eb8039ebb7..6d3cbc4d74f 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/item/crafting/RecipeManagerMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/item/crafting/RecipeManagerMixin_API.java @@ -67,7 +67,7 @@ public Optional> byKey(final ResourceKey key) { Objects.requireNonNull(key); // TODO - figure out how to do this better for (var entry : ((RecipeMapAccessor) this.recipes).accessor$byKey().entrySet()) { - if (entry.getKey().location().equals(key)) { + if (entry.getKey().identifier().equals(key)) { return Optional.of(entry.getValue()).map(RecipeHolder::value).map(Recipe.class::cast); } } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/LevelMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/LevelMixin_API.java index 0bd8ef3729c..400760a2411 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/LevelMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/LevelMixin_API.java @@ -241,7 +241,7 @@ public Vector3i size() { @Override public Context context() { if (this.api$context == null) { - this.api$context = new Context(Context.WORLD_KEY, this.shadow$dimension().location().toString()); + this.api$context = new Context(Context.WORLD_KEY, this.shadow$dimension().identifier().toString()); } return this.api$context; } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/chunk/LevelChunkMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/chunk/LevelChunkMixin_API.java index 96fae23ca05..1c70a77c8e5 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/chunk/LevelChunkMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/chunk/LevelChunkMixin_API.java @@ -27,6 +27,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Registry; import net.minecraft.core.registries.Registries; +import net.minecraft.server.level.ServerLevel; import net.minecraft.util.Tuple; import net.minecraft.world.DifficultyInstance; import net.minecraft.world.level.BlockGetter; @@ -177,14 +178,20 @@ public Vector3i chunkPosition() { @Override public double regionalDifficultyFactor() { + if (!(this.level instanceof ServerLevel sl)) { + return 0; + } return new DifficultyInstance(this.level.getDifficulty(), this.level.getDayTime(), - this.inhabitedTime().ticks(), this.level.getMoonBrightness()).getEffectiveDifficulty(); + this.inhabitedTime().ticks(), sl.getMoonBrightness(sl.getRespawnData().pos())).getEffectiveDifficulty(); } @Override public double regionalDifficultyPercentage() { + if (!(this.level instanceof ServerLevel sl)) { + return 0; + } return new DifficultyInstance(this.level.getDifficulty(), this.level.getDayTime(), - this.inhabitedTime().ticks(), this.level.getMoonBrightness()).getSpecialMultiplier(); + this.inhabitedTime().ticks(), sl.getMoonBrightness(sl.getRespawnData().pos())).getSpecialMultiplier(); } @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/dimension/DimensionTypeMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/dimension/DimensionTypeMixin_API.java index f1cba73ef1e..c59ccf7f553 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/dimension/DimensionTypeMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/dimension/DimensionTypeMixin_API.java @@ -26,7 +26,7 @@ import net.minecraft.core.Registry; import net.minecraft.core.registries.Registries; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.level.dimension.DimensionType; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.api.data.persistence.DataContainer; @@ -57,7 +57,7 @@ public Context context() { } @Nullable - private ResourceLocation api$location() { + private Identifier api$location() { final Registry registry = SpongeCommon.vanillaRegistry(Registries.DIMENSION_TYPE); return registry.getKey((DimensionType) (Object) this); } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/HolderLookup_ProviderMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/HolderLookup_ProviderMixin.java index 6fa56d0aac3..61f7398dca1 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/HolderLookup_ProviderMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/HolderLookup_ProviderMixin.java @@ -25,7 +25,7 @@ package org.spongepowered.common.mixin.core; import net.minecraft.core.HolderLookup; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.spongepowered.api.ResourceKey; import org.spongepowered.api.registry.Registry; import org.spongepowered.api.registry.RegistryHolder; @@ -54,7 +54,7 @@ default Registry registry(final RegistryType type) { @SuppressWarnings({"rawtypes", "unchecked"}) @Override default Optional> findRegistry(final RegistryType type) { - return (Optional) this.shadow$lookup(ResourceKeyAccessor.invoker$create((ResourceLocation) (Object) type.root(), (ResourceLocation) (Object) type.location())); + return (Optional) this.shadow$lookup(ResourceKeyAccessor.invoker$create((Identifier) (Object) type.root(), (Identifier) (Object) type.location())); } @SuppressWarnings({"rawtypes", "unchecked"}) diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/advancements/AdvancementMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/advancements/AdvancementMixin.java index 23cabe709b7..4cc18f889b7 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/advancements/AdvancementMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/advancements/AdvancementMixin.java @@ -33,7 +33,7 @@ import net.minecraft.advancements.AdvancementType; import net.minecraft.advancements.Criterion; import net.minecraft.advancements.DisplayInfo; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.spongepowered.api.advancement.criteria.AdvancementCriterion; import org.spongepowered.api.advancement.criteria.AndCriterion; @@ -74,7 +74,7 @@ public abstract class AdvancementMixin implements AdvancementBridge { @SuppressWarnings({"ConstantConditions"}) @Inject(method = "(Ljava/util/Optional;Ljava/util/Optional;Lnet/minecraft/advancements/AdvancementRewards;Ljava/util/Map;Lnet/minecraft/advancements/AdvancementRequirements;Z)V", at = @At("RETURN")) - private void impl$setUpSpongeFields(final Optional parent, final Optional displayInfo, final AdvancementRewards $$2, + private void impl$setUpSpongeFields(final Optional parent, final Optional displayInfo, final AdvancementRewards $$2, final Map> criteria, final AdvancementRequirements requirements, final boolean sendsTelemetryEvent, final CallbackInfo ci) { displayInfo.ifPresent(info -> ((DisplayInfoBridge) info).bridge$setAdvancement((org.spongepowered.api.advancement.Advancement) this)); } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/advancements/AdvancementProgressMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/advancements/AdvancementProgressMixin.java index 256d15b6fc3..f259e49a37d 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/advancements/AdvancementProgressMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/advancements/AdvancementProgressMixin.java @@ -28,7 +28,7 @@ import net.minecraft.advancements.AdvancementHolder; import net.minecraft.advancements.AdvancementProgress; import net.minecraft.advancements.AdvancementRequirements; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.PlayerAdvancements; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.api.ResourceKey; @@ -81,7 +81,7 @@ public abstract class AdvancementProgressMixin implements AdvancementProgressBri // @formatter:on @Nullable private Map impl$progressMap; - @Nullable private ResourceLocation impl$advancementKey; + @Nullable private Identifier impl$advancementKey; @Nullable private PlayerAdvancements impl$playerAdvancements; @Override @@ -97,7 +97,7 @@ public abstract class AdvancementProgressMixin implements AdvancementProgressBri } @Override - public ResourceLocation bridge$getAdvancementKey() { + public Identifier bridge$getAdvancementKey() { Preconditions.checkState(this.impl$advancementKey != null, "The advancement is not yet initialized"); return this.impl$advancementKey; } @@ -116,7 +116,7 @@ public abstract class AdvancementProgressMixin implements AdvancementProgressBri } @Override - public void bridge$setAdvancementId(ResourceLocation key) { + public void bridge$setAdvancementId(Identifier key) { Preconditions.checkState(PlatformHooks.INSTANCE.getGeneralHooks().onServerThread()); this.impl$advancementKey = key; } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/adventure/KeyMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/adventure/KeyMixin.java index 44b643db01a..89bff5d64d4 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/adventure/KeyMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/adventure/KeyMixin.java @@ -25,7 +25,7 @@ package org.spongepowered.common.mixin.core.adventure; import net.kyori.adventure.key.Key; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.checkerframework.checker.nullness.qual.NonNull; import org.spongepowered.api.ResourceKey; import org.spongepowered.asm.mixin.Mixin; @@ -40,6 +40,6 @@ public interface KeyMixin { */ @Overwrite static @NonNull Key key(final @NonNull String namespace, final @NonNull String value) { - return (ResourceKey) (Object) ResourceLocation.fromNamespaceAndPath(namespace, value); + return (ResourceKey) (Object) Identifier.fromNamespaceAndPath(namespace, value); } } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/client/MinecraftMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/client/MinecraftMixin.java index 2d1259ad4fa..1dfa562ce15 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/client/MinecraftMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/client/MinecraftMixin.java @@ -121,7 +121,7 @@ public MinecraftMixin(String param0) { } } - @Inject(method = "close", at = @At(value = "INVOKE", target = "Lnet/minecraft/Util;shutdownExecutors()V")) + @Inject(method = "close", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Util;shutdownExecutors()V")) private void impl$callStoppedGame(final CallbackInfo ci) { Launch.instance().lifecycle().callStoppedGameEvent(); } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/commands/CommandFunctionMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/commands/CommandFunctionMixin.java index 88cd8826d2b..1251b726baa 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/commands/CommandFunctionMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/commands/CommandFunctionMixin.java @@ -29,7 +29,7 @@ import com.mojang.brigadier.CommandDispatcher; import net.minecraft.commands.ExecutionCommandSource; import net.minecraft.commands.functions.CommandFunction; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.spongepowered.api.command.CommandCause; import org.spongepowered.api.event.CauseStackManager; import org.spongepowered.api.service.permission.PermissionService; @@ -45,7 +45,7 @@ public interface CommandFunctionMixin { @WrapMethod(method = "fromLines") private static > CommandFunction impl$onFromLines( - final ResourceLocation $$0, final CommandDispatcher $$1, final T $$2, final List $$3, final Operation> original) { + final Identifier $$0, final CommandDispatcher $$1, final T $$2, final List $$3, final Operation> original) { if ($$1 instanceof final DelegatingCommandDispatcher delegatingCommandDispatcher) { try (final CauseStackManager.StackFrame frame = PhaseTracker.getInstance().pushCauseFrame()) { frame.pushCause(delegatingCommandDispatcher.permissionService().newSubjectReference(PermissionService.SUBJECTS_FUNCTION, $$0.toString()).resolve().join()); diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/commands/arguments/DimensionArgumentMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/commands/arguments/DimensionArgumentMixin.java index 73adc701a2b..a4dd0601e21 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/commands/arguments/DimensionArgumentMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/commands/arguments/DimensionArgumentMixin.java @@ -26,17 +26,17 @@ import com.mojang.brigadier.arguments.ArgumentType; import net.minecraft.commands.arguments.DimensionArgument; -import net.minecraft.commands.arguments.ResourceLocationArgument; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.commands.arguments.IdentifierArgument; +import net.minecraft.resources.Identifier; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.common.bridge.commands.arguments.CompletionsArgumentTypeBridge; @Mixin(DimensionArgument.class) -public abstract class DimensionArgumentMixin implements CompletionsArgumentTypeBridge { +public abstract class DimensionArgumentMixin implements CompletionsArgumentTypeBridge { @Override - public ArgumentType bridge$clientSideCompletionType() { - return ResourceLocationArgument.id(); + public ArgumentType bridge$clientSideCompletionType() { + return IdentifierArgument.id(); } } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/core/MappedRegistryMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/core/MappedRegistryMixin.java index 5a1e8c58bf0..112a355627f 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/core/MappedRegistryMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/core/MappedRegistryMixin.java @@ -31,7 +31,7 @@ import net.minecraft.core.MappedRegistry; import net.minecraft.core.RegistrationInfo; import net.minecraft.core.Registry; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.checkerframework.checker.nullness.qual.Nullable; import org.objectweb.asm.Opcodes; import org.spongepowered.api.ResourceKey; @@ -73,7 +73,7 @@ public abstract class MappedRegistryMixin implements RegistryBridge, Writa @Shadow private boolean frozen; @Shadow @Final private ObjectList> byId; @Shadow @Final private Reference2IntMap toId; - @Shadow @Final private Map> byLocation; + @Shadow @Final private Map> byLocation; @Shadow @Final private Map, Holder.Reference> byKey; @Shadow @Final private Map> byValue; @Shadow @Final private Map, RegistrationInfo> registrationInfos; @@ -108,7 +108,7 @@ public abstract class MappedRegistryMixin implements RegistryBridge, Writa private void impl$setType(final net.minecraft.resources.ResourceKey> key, final Lifecycle lifecycle, boolean $$2, final CallbackInfo ci) { this.impl$type = new SpongeRegistryType((ResourceKey) (Object) ((ResourceKeyAccessor) key).accessor$registryName(), - (ResourceKey) (Object) key.location()); + (ResourceKey) (Object) key.identifier()); } @@ -118,9 +118,9 @@ public abstract class MappedRegistryMixin implements RegistryBridge, Writa final net.minecraft.resources.ResourceKey> resourceKey = ((MappedRegistry) (Object) this).key(); final ResourceKey root = (ResourceKey) (Object) ((ResourceKeyAccessor) resourceKey).accessor$registryName(); - final ResourceKey location = (ResourceKey) (Object) resourceKey.location(); + final ResourceKey location = (ResourceKey) (Object) resourceKey.identifier(); this.bridge$register(new SpongeRegistryEntry<>(new SpongeRegistryType<>(root, location), - (ResourceKey) (Object) $$0.location(), $$1)); + (ResourceKey) (Object) $$0.identifier(), $$1)); } @Override @@ -157,10 +157,10 @@ public abstract class MappedRegistryMixin implements RegistryBridge, Writa for (int i = id; i < this.byId.size(); i++) { this.toId.put(this.byId.get(i).value(), i); } - this.byLocation.remove(key.location()); + this.byLocation.remove(key.identifier()); this.byValue.remove(value.value()); this.registrationInfos.remove(key); - this.impl$entries.remove((ResourceKey) (Object) key.location()); + this.impl$entries.remove((ResourceKey) (Object) key.identifier()); } @Inject(method = "freeze", at = @At(value = "FIELD", target = "Lnet/minecraft/core/MappedRegistry;frozen:Z", opcode = Opcodes.PUTFIELD)) @@ -195,7 +195,7 @@ public abstract class MappedRegistryMixin implements RegistryBridge, Writa private void impl$appendRegister(final Supplier> supplier) { supplier.get().forEach((vk, vi, vv) -> this.shadow$register( - net.minecraft.resources.ResourceKey.create(this.key, (ResourceLocation) (Object) vk), + net.minecraft.resources.ResourceKey.create(this.key, (Identifier) (Object) vk), vv, RegistrationInfo.BUILT_IN )); diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/network/protocol/login/ClientboundCustomQueryPacketMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/network/protocol/login/ClientboundCustomQueryPacketMixin.java index 2c3111d5464..874d59b41eb 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/network/protocol/login/ClientboundCustomQueryPacketMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/network/protocol/login/ClientboundCustomQueryPacketMixin.java @@ -27,7 +27,7 @@ import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.protocol.login.ClientboundCustomQueryPacket; import net.minecraft.network.protocol.login.custom.CustomQueryPayload; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -44,7 +44,7 @@ public abstract class ClientboundCustomQueryPacketMixin { // @formatter: on @Inject(method = "readPayload", at = @At("HEAD"), cancellable = true) - private static void impl$onReadUnknownPayload(final ResourceLocation $$0, final FriendlyByteBuf $$1, final CallbackInfoReturnable cir) { + private static void impl$onReadUnknownPayload(final Identifier $$0, final FriendlyByteBuf $$1, final CallbackInfoReturnable cir) { final int readableBytes = $$1.readableBytes(); if (readableBytes >= 0 && readableBytes <= ClientboundCustomQueryPacketMixin.MAX_PAYLOAD_SIZE) { final var payload = $$1.readBytes(readableBytes); diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/resources/RegistryDataLoaderMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/resources/RegistryDataLoaderMixin.java index 85e36189f3a..f580294ca6b 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/resources/RegistryDataLoaderMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/resources/RegistryDataLoaderMixin.java @@ -30,10 +30,10 @@ import net.minecraft.core.registries.Registries; import net.minecraft.network.chat.ChatType; import net.minecraft.network.chat.ChatTypeDecoration; +import net.minecraft.resources.Identifier; import net.minecraft.resources.RegistryDataLoader; import net.minecraft.resources.RegistryOps; import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.resources.ResourceManager; import org.spongepowered.api.adventure.ChatTypes; import org.spongepowered.asm.mixin.Mixin; @@ -58,8 +58,8 @@ public class RegistryDataLoaderMixin { { if (Registries.CHAT_TYPE.equals($$2.key())) { final ChatTypeDecoration narration = ChatTypeDecoration.withSender("chat.type.text.narrate"); - $$2.register(ResourceKey.create($$2.key(), (ResourceLocation) (Object) ChatTypes.CUSTOM_CHAT.location()), (E) new ChatType(ChatTypeDecoration.withSender("%s%s"), narration), RegistrationInfo.BUILT_IN); - $$2.register(ResourceKey.create($$2.key(), (ResourceLocation) (Object) ChatTypes.CUSTOM_MESSAGE.location()), (E) new ChatType(ChatTypeDecoration.teamMessage("%s%s%s"), narration), RegistrationInfo.BUILT_IN); + $$2.register(ResourceKey.create($$2.key(), (Identifier) (Object) ChatTypes.CUSTOM_CHAT.location()), (E) new ChatType(ChatTypeDecoration.withSender("%s%s"), narration), RegistrationInfo.BUILT_IN); + $$2.register(ResourceKey.create($$2.key(), (Identifier) (Object) ChatTypes.CUSTOM_MESSAGE.location()), (E) new ChatType(ChatTypeDecoration.teamMessage("%s%s%s"), narration), RegistrationInfo.BUILT_IN); } } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/server/MinecraftServerMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/server/MinecraftServerMixin.java index 3d1b37ee9be..7985beaa640 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/server/MinecraftServerMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/server/MinecraftServerMixin.java @@ -177,7 +177,7 @@ protected boolean shouldRun(@NonNull Runnable runnable) { final @Nullable ServerLevel level = this.shadow$getLevel(SpongeWorldManager.createRegistryKey(k)); if (level != null) { if (log) { - MinecraftServerMixin.LOGGER.info("Saving chunks for level '{}'/{}", level, level.dimension().location()); + MinecraftServerMixin.LOGGER.info("Saving chunks for level '{}'/{}", level, level.dimension().identifier()); } level.save(null, false, level.noSave); return true; @@ -412,7 +412,7 @@ public boolean saveAllChunks(final boolean suppressLog, final boolean flush, fin // Sponge end if (autoSave.log) { - LOGGER.info("Saving chunks for level '{}'/{}", level, level.dimension().location()); + LOGGER.info("Saving chunks for level '{}'/{}", level, level.dimension().identifier()); } level.save(null, flush, level.noSave && !isForced); diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/server/ServerAdvancementManagerMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/server/ServerAdvancementManagerMixin.java index bb1e1a3c9f2..9b835c58b54 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/server/ServerAdvancementManagerMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/server/ServerAdvancementManagerMixin.java @@ -29,7 +29,7 @@ import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import net.minecraft.advancements.Advancement; import net.minecraft.advancements.AdvancementNode; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.ServerAdvancementManager; import net.minecraft.server.packs.resources.ResourceManager; import net.minecraft.util.profiling.ProfilerFiller; @@ -59,7 +59,7 @@ public abstract class ServerAdvancementManagerMixin { @SuppressWarnings({"unchecked"}) @WrapMethod(method = "apply(Ljava/util/Map;Lnet/minecraft/server/packs/resources/ResourceManager;Lnet/minecraft/util/profiling/ProfilerFiller;)V") - private void impl$onApply(final Map $$0, final ResourceManager $$1, final ProfilerFiller $$2, final Operation original) { + private void impl$onApply(final Map $$0, final ResourceManager $$1, final ProfilerFiller $$2, final Operation original) { final RegistryHolderLogic registryHolder = ((SpongeRegistryHolder) $$1).registryHolder(); final Registry registry = (Registry) (Object) registryHolder.registry(RegistryTypes.ADVANCEMENT); $$0.forEach((k, v) -> registry.register((ResourceKey) (Object) k, v)); @@ -70,7 +70,7 @@ public abstract class ServerAdvancementManagerMixin { @WrapOperation(method = "apply(Ljava/util/Map;Lnet/minecraft/server/packs/resources/ResourceManager;Lnet/minecraft/util/profiling/ProfilerFiller;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/advancements/TreeNodePosition;run(Lnet/minecraft/advancements/AdvancementNode;)V")) private void impl$onLayout(final AdvancementNode instance, final Operation original, - final Map $$0, final ResourceManager $$1, final ProfilerFiller $$2) { + final Map $$0, final ResourceManager $$1, final ProfilerFiller $$2) { original.call(instance); final Cause cause = PhaseTracker.getInstance().currentCause(); diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ChunkHolderMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ChunkHolderMixin.java index 6b3535cd498..02072e21807 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ChunkHolderMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ChunkHolderMixin.java @@ -66,7 +66,7 @@ abstract class ChunkHolderMixin extends GenerationChunkHolderMixin { if (ShouldFire.CHUNK_EVENT_LOAD) { final Vector3i chunkPos = VecHelper.toVector3i(chunk.getPos()); final ChunkEvent.Load event = SpongeEventFactory.createChunkEventLoad(PhaseTracker.getInstance().currentCause(), - (WorldChunk) chunk, chunkPos, (ResourceKey) (Object) chunk.getLevel().dimension().location()); + (WorldChunk) chunk, chunkPos, (ResourceKey) (Object) chunk.getLevel().dimension().identifier()); SpongeCommon.post(event); } }); @@ -78,7 +78,7 @@ abstract class ChunkHolderMixin extends GenerationChunkHolderMixin { if (this.impl$loadedChunk != null && ShouldFire.CHUNK_EVENT_UNLOAD_PRE) { final Vector3i chunkPos = VecHelper.toVector3i(this.impl$loadedChunk.getPos()); final ChunkEvent.Unload event = SpongeEventFactory.createChunkEventUnloadPre(PhaseTracker.getInstance().currentCause(), - (WorldChunk) this.impl$loadedChunk, chunkPos, (ResourceKey) (Object) this.impl$loadedChunk.getLevel().dimension().location()); + (WorldChunk) this.impl$loadedChunk, chunkPos, (ResourceKey) (Object) this.impl$loadedChunk.getLevel().dimension().identifier()); SpongeCommon.post(event); } } @@ -88,7 +88,7 @@ abstract class ChunkHolderMixin extends GenerationChunkHolderMixin { if (this.impl$loadedChunk != null && ShouldFire.CHUNK_EVENT_UNLOAD_POST) { final Vector3i chunkPos = VecHelper.toVector3i(this.impl$loadedChunk.getPos()); final ChunkEvent.Unload event = SpongeEventFactory.createChunkEventUnloadPost(PhaseTracker.getInstance().currentCause(), chunkPos, - (ResourceKey) (Object) this.impl$loadedChunk.getLevel().dimension().location()); + (ResourceKey) (Object) this.impl$loadedChunk.getLevel().dimension().identifier()); SpongeCommon.post(event); } this.impl$loadedChunk = null; diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ChunkMapMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ChunkMapMixin.java index 396f56ec85b..ba9890194a2 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ChunkMapMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ChunkMapMixin.java @@ -136,7 +136,7 @@ public abstract class ChunkMapMixin implements ChunkMapBridge { if (ShouldFire.CHUNK_EVENT_BLOCKS_SAVE_PRE) { final Vector3i chunkPos = VecHelper.toVector3i(var1.getPos()); final ChunkEvent.Blocks.Save.Pre postSave = SpongeEventFactory.createChunkEventBlocksSavePre(PhaseTracker.getInstance().currentCause(), - ((BlockChunk) var1), chunkPos, (ResourceKey) (Object) this.level.dimension().location()); + ((BlockChunk) var1), chunkPos, (ResourceKey) (Object) this.level.dimension().identifier()); SpongeCommon.post(postSave); if (postSave.isCancelled()) { cir.setReturnValue(false); diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/server/level/GenerationChunkHolderMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/server/level/GenerationChunkHolderMixin.java index 20809321a9f..eef54ef2c0f 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/server/level/GenerationChunkHolderMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/server/level/GenerationChunkHolderMixin.java @@ -74,7 +74,7 @@ public abstract class GenerationChunkHolderMixin { final Vector3i chunkPos = VecHelper.toVector3i(chunk.getPos()); final ChunkEvent.Generated event = SpongeEventFactory.createChunkEventGenerated( PhaseTracker.getInstance().currentCause(), chunkPos, - (ResourceKey) (Object) chunk.getLevel().dimension().location() + (ResourceKey) (Object) chunk.getLevel().dimension().identifier() ); SpongeCommon.post(event); } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ServerLevelMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ServerLevelMixin.java index 465cd94be95..3aab053803f 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ServerLevelMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ServerLevelMixin.java @@ -29,7 +29,6 @@ import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import com.llamalad7.mixinextras.sugar.Share; import com.llamalad7.mixinextras.sugar.ref.LocalBooleanRef; -import net.minecraft.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.Holder; import net.minecraft.core.particles.BlockParticleOption; @@ -38,7 +37,7 @@ import net.minecraft.core.registries.Registries; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientboundExplodePacket; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.MinecraftServer; import net.minecraft.server.bossevents.CustomBossEvents; import net.minecraft.server.level.ServerChunkCache; @@ -48,6 +47,7 @@ import net.minecraft.server.players.PlayerList; import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvents; +import net.minecraft.util.Util; import net.minecraft.util.random.WeightedList; import net.minecraft.world.DifficultyInstance; import net.minecraft.world.RandomSequences; @@ -309,7 +309,7 @@ public abstract class ServerLevelMixin extends LevelMixin implements ServerLevel ParticleOptions particleData = new BlockParticleOption(ParticleTypes.BLOCK, Blocks.AIR.defaultBlockState()); // "no" particle particleData = packet.explosionParticle(); // TODO control sound in API - var soundEvent = Holder.direct(new SoundEvent(ResourceLocation.parse("sponge:none"), Optional.of(0f))); // "no" sound + var soundEvent = Holder.direct(new SoundEvent(Identifier.parse("sponge:none"), Optional.of(0f))); // "no" sound soundEvent = packet.explosionSound(); // TODO apiExplosion.shouldPlaySmoke() is not initialized correctly var newPacket = new ClientboundExplodePacket(packet.center(), packet.radius(), packet.blockCount(), packet.playerKnockback(), particleData, soundEvent, packet.blockParticles()); diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/server/network/ServerGamePacketListenerImplMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/server/network/ServerGamePacketListenerImplMixin.java index 90495ff6d64..0fc1f133681 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/server/network/ServerGamePacketListenerImplMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/server/network/ServerGamePacketListenerImplMixin.java @@ -423,7 +423,7 @@ public abstract class ServerGamePacketListenerImplMixin extends ServerCommonPack } } - @Inject(method = "handlePlayerAction", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/level/ServerPlayer;drop(Z)Z")) + @Inject(method = "handlePlayerAction", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/level/ServerPlayer;drop(Z)V")) public void impl$dropItem(final ServerboundPlayerActionPacket p_147345_1_, final CallbackInfo ci) { this.impl$ignorePackets++; } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/server/players/PlayerListMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/server/players/PlayerListMixin.java index 24fa09a364c..cbe81f39195 100755 --- a/src/mixins/java/org/spongepowered/common/mixin/core/server/players/PlayerListMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/server/players/PlayerListMixin.java @@ -46,8 +46,8 @@ import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.common.ClientboundDisconnectPacket; import net.minecraft.network.protocol.game.ClientboundPlayerInfoUpdatePacket; +import net.minecraft.resources.Identifier; import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; import net.minecraft.server.MinecraftServer; import net.minecraft.server.ServerScoreboard; import net.minecraft.server.bossevents.CustomBossEvents; @@ -605,7 +605,7 @@ public abstract class PlayerListMixin implements PlayerListBridge { return; } - boundChatType = ChatType.bind(ResourceKey.create(Registries.CHAT_TYPE, (ResourceLocation) (Object) event.chatType().location()), + boundChatType = ChatType.bind(ResourceKey.create(Registries.CHAT_TYPE, (Identifier) (Object) event.chatType().location()), this.server.registryAccess(), SpongeAdventure.asVanilla(event.sender())); if (event.target().isPresent()) { diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/tags/TagLoaderMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/tags/TagLoaderMixin.java index 4950eca4a53..51d2af3fda0 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/tags/TagLoaderMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/tags/TagLoaderMixin.java @@ -30,7 +30,7 @@ import net.minecraft.core.Registry; import net.minecraft.core.RegistryAccess; import net.minecraft.core.WritableRegistry; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.packs.resources.ResourceManager; import net.minecraft.tags.TagEntry; import net.minecraft.tags.TagLoader; @@ -69,20 +69,20 @@ public abstract class TagLoaderMixin implements TagLoaderBridge { private @MonotonicNonNull RegistryType impl$registryType; private @MonotonicNonNull Map> impl$modifiers; - private ResourceLocation impl$buildingTagKey; + private Identifier impl$buildingTagKey; @SuppressWarnings({"unchecked", "rawtypes"}) @Inject(method = "load", at = @At("TAIL")) - private void impl$onLoad(final ResourceManager $$0, final CallbackInfoReturnable>> cir) { + private void impl$onLoad(final ResourceManager $$0, final CallbackInfoReturnable>> cir) { final SpongePluginTags tags = ((ResourceManagerBridge) $$0).bridge$pluginProvidedTags(); tags.get(this.impl$registryType).ifPresent(m -> { this.impl$modifiers = (Map) m; m.forEach((tagKey, modifiers) -> { - final List entries = cir.getReturnValue().computeIfAbsent((ResourceLocation) (Object) tagKey, $ -> new ArrayList<>()); + final List entries = cir.getReturnValue().computeIfAbsent((Identifier) (Object) tagKey, $ -> new ArrayList<>()); modifiers.append().forEach((k, v) -> { final TagLoader.EntryWithSource entry = new TagLoader.EntryWithSource(k.tag() - ? TagEntry.optionalTag((ResourceLocation) (Object) k.key()) - : TagEntry.optionalElement((ResourceLocation) (Object) k.key()), "sponge"); + ? TagEntry.optionalTag((Identifier) (Object) k.key()) + : TagEntry.optionalElement((Identifier) (Object) k.key()), "sponge"); ((TagLoader_EntryWithSourceBridge) (Object) entry).bridge$predicates((Set) v); entries.add(entry); }); @@ -126,7 +126,7 @@ public abstract class TagLoaderMixin implements TagLoaderBridge { final Tag tag = Tag.of(this.impl$registryType, (ResourceKey) (Object) ((TagEntryAccessor) e.entry()).accessor$id()); for (final T value : values) { - final ResourceKey key = (ResourceKey) (Object) ((Holder.Reference) value).key().location(); + final ResourceKey key = (ResourceKey) (Object) ((Holder.Reference) value).key().identifier(); final DefaultedRegistryReference reference = RegistryKey.of(this.impl$registryType, key).asDefaultedReference(Sponge::game); for (final SpongePluginTagPredicate predicate : filters) { if (predicate.apply(reference, tag) == Tristate.TRUE) { @@ -148,7 +148,7 @@ public abstract class TagLoaderMixin implements TagLoaderBridge { } else if (((TagEntryAccessor) instance).accessor$tag()) { final Tag tag = Tag.of(this.impl$registryType, (ResourceKey) (Object) ((TagEntryAccessor) instance).accessor$id()); return original.accept(instance, lookup, i -> { - final ResourceKey key = (ResourceKey) (Object) ((Holder.Reference) i).key().location(); + final ResourceKey key = (ResourceKey) (Object) ((Holder.Reference) i).key().identifier(); final DefaultedRegistryReference reference = RegistryKey.of(this.impl$registryType, key).asDefaultedReference(Sponge::game); for (final SpongePluginTagPredicate predicate : modifier.filters()) { if (predicate.apply(reference, tag) == Tristate.FALSE) { @@ -208,11 +208,11 @@ public abstract class TagLoaderMixin implements TagLoaderBridge { @Override public void bridge$registryKey(final net.minecraft.resources.ResourceKey> registryKey) { this.impl$registryType = - RegistryType.of((ResourceKey) (Object) registryKey.registry(), (ResourceKey) (Object) registryKey.location()); + RegistryType.of((ResourceKey) (Object) registryKey.registry(), (ResourceKey) (Object) registryKey.identifier()); } @Override - public void bridge$buildingTagKey(final @Nullable ResourceLocation key) { + public void bridge$buildingTagKey(final @Nullable Identifier key) { this.impl$buildingTagKey = key; } } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/LivingEntityMixin_Damage.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/LivingEntityMixin_Damage.java index f5f25bf49ef..fc5ba2de9ca 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/LivingEntityMixin_Damage.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/LivingEntityMixin_Damage.java @@ -220,7 +220,7 @@ public abstract class LivingEntityMixin_Damage extends EntityMixin implements Li @ModifyVariable(method = "getDamageAfterMagicAbsorb", at = @At("STORE"), argsOnly = true, slice = @Slice( from = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/LivingEntity;getEffect(Lnet/minecraft/core/Holder;)Lnet/minecraft/world/effect/MobEffectInstance;"), - to = @At(value = "FIELD", target = "Lnet/minecraft/stats/Stats;DAMAGE_RESISTED:Lnet/minecraft/resources/ResourceLocation;"))) + to = @At(value = "FIELD", target = "Lnet/minecraft/stats/Stats;DAMAGE_RESISTED:Lnet/minecraft/resources/Identifier;"))) private float damage$modifyAfterDefensivePotionEffect(final float damage) { final SpongeDamageTracker tracker = this.damage$tracker(); return tracker == null ? damage : tracker.endStep(DamageStepTypes.DEFENSIVE_POTION_EFFECT, damage); diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/LivingEntityMixin_Shared_Damage.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/LivingEntityMixin_Shared_Damage.java index a37119cd297..0b4c0cde3e3 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/LivingEntityMixin_Shared_Damage.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/LivingEntityMixin_Shared_Damage.java @@ -25,7 +25,7 @@ package org.spongepowered.common.mixin.core.world.entity; import com.llamalad7.mixinextras.injector.v2.WrapWithCondition; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.LivingEntity; import org.spongepowered.api.event.cause.entity.damage.DamageStepTypes; @@ -65,8 +65,8 @@ public abstract class LivingEntityMixin_Shared_Damage implements TrackedDamageBr return tracker == null || !tracker.isSkipped(DamageStepTypes.ABSORPTION); } - @WrapWithCondition(method = "actuallyHurt", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/level/ServerPlayer;awardStat(Lnet/minecraft/resources/ResourceLocation;I)V")) - private boolean damage$skipAbsorptionStat(final ServerPlayer self, final ResourceLocation stat, final int amount) { + @WrapWithCondition(method = "actuallyHurt", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/level/ServerPlayer;awardStat(Lnet/minecraft/resources/Identifier;I)V")) + private boolean damage$skipAbsorptionStat(final ServerPlayer self, final Identifier stat, final int amount) { final SpongeDamageTracker tracker = this.damage$tracker(); return tracker == null || !tracker.isSkipped(DamageStepTypes.ABSORPTION); } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/player/PlayerMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/player/PlayerMixin.java index 5c2c9fe1070..8af4121ddf0 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/player/PlayerMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/player/PlayerMixin.java @@ -29,7 +29,7 @@ import net.kyori.adventure.bossbar.BossBar; import net.minecraft.core.BlockPos; import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.permissions.PermissionSet; import net.minecraft.sounds.SoundEvent; @@ -101,7 +101,7 @@ public abstract class PlayerMixin extends AvatarMixin implements PlayerBridge, G @Shadow public abstract FoodData shadow$getFoodData(); @Shadow public abstract boolean shadow$isCreative(); @Shadow public abstract String shadow$getScoreboardName(); - @Shadow public abstract void shadow$awardStat(ResourceLocation stat); + @Shadow public abstract void shadow$awardStat(Identifier stat); @Shadow public abstract Inventory shadow$getInventory(); @Shadow public abstract PermissionSet shadow$permissions(); @Shadow public Either shadow$startSleepInBed(final BlockPos param0) { diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/player/PlayerMixin_Attack.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/player/PlayerMixin_Attack.java index 22fc10c7cf3..bc777208c54 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/player/PlayerMixin_Attack.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/player/PlayerMixin_Attack.java @@ -77,8 +77,12 @@ public abstract class PlayerMixin_Attack extends LivingEntityMixin_Damage implem return this.attack$trackers.peekLast(); } - @ModifyVariable(method = "attack", at = @At("LOAD"), - slice = @Slice(to = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;getEnchantedDamage(Lnet/minecraft/world/entity/Entity;FLnet/minecraft/world/damagesource/DamageSource;)F", ordinal = 0))) + @ModifyVariable( + method = "attack(Lnet/minecraft/world/entity/Entity;)V", + ordinal = 1, + at = @At(value = "LOAD", ordinal = 0), + slice = @Slice(to = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;getEnchantedDamage(Lnet/minecraft/world/entity/Entity;FLnet/minecraft/world/damagesource/DamageSource;)F")) + ) private float attack$firePreEvent(final float damage, @Local(argsOnly = true) final Entity target, @Local final DamageSource source, @Local final ItemStack weapon, final @Cancellable CallbackInfo ci) { final SpongeAttackTracker tracker = SpongeAttackTracker.callAttackPreEvent((org.spongepowered.api.entity.Entity) target, source, damage, weapon); if (tracker == null) { @@ -203,7 +207,7 @@ public abstract class PlayerMixin_Attack extends LivingEntityMixin_Damage implem @WrapWithCondition(method = "attack", slice = @Slice(from = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;causeFoodExhaustion(F)V")), - at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;makeSound(Lnet/minecraft/sounds/SoundEvent;)V")) + at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;playServerSideSound(Lnet/minecraft/sounds/SoundEvent;)V")) private boolean attack$preventSound(Player instance, SoundEvent soundEvent) { final SpongeAttackTracker tracker = this.attack$tracker(); return tracker == null || !tracker.postEvent().isCancelled(); diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/player/PlayerMixin_Shared_Damage.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/player/PlayerMixin_Shared_Damage.java index 1dd64ca7ac7..4d5b7f1dd1e 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/player/PlayerMixin_Shared_Damage.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/player/PlayerMixin_Shared_Damage.java @@ -25,7 +25,7 @@ package org.spongepowered.common.mixin.core.world.entity.player; import com.llamalad7.mixinextras.injector.v2.WrapWithCondition; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.entity.player.Player; import org.spongepowered.api.event.cause.entity.damage.DamageStepTypes; import org.spongepowered.asm.mixin.Mixin; @@ -53,10 +53,10 @@ public abstract class PlayerMixin_Shared_Damage extends LivingEntityMixin_Damage return tracker == null || !tracker.isSkipped(DamageStepTypes.ABSORPTION); } - @WrapWithCondition(method = "actuallyHurt", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;awardStat(Lnet/minecraft/resources/ResourceLocation;I)V"), slice = @Slice( + @WrapWithCondition(method = "actuallyHurt", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;awardStat(Lnet/minecraft/resources/Identifier;I)V"), slice = @Slice( from = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;setAbsorptionAmount(F)V"), to = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;causeFoodExhaustion(F)V"))) - private boolean damage$skipAbsorptionStat(final Player self, final ResourceLocation stat, final int amount) { + private boolean damage$skipAbsorptionStat(final Player self, final Identifier stat, final int amount) { final SpongeDamageTracker tracker = this.damage$tracker(); return tracker == null || !tracker.isSkipped(DamageStepTypes.ABSORPTION); } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/item/ItemCooldownsMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/item/ItemCooldownsMixin.java index 113ff390aef..ca570f63e46 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/item/ItemCooldownsMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/item/ItemCooldownsMixin.java @@ -24,7 +24,7 @@ */ package org.spongepowered.common.mixin.core.world.item; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemCooldowns; import net.minecraft.world.item.ItemStack; @@ -50,7 +50,7 @@ public abstract class ItemCooldownsMixin implements ItemCooldownsBridge { // @formatter:off @Shadow @Final private Map cooldowns; - @Shadow public abstract ResourceLocation shadow$getCooldownGroup(final ItemStack $$0); + @Shadow public abstract Identifier shadow$getCooldownGroup(final ItemStack $$0); // @formatter:on @@ -58,7 +58,7 @@ public abstract class ItemCooldownsMixin implements ItemCooldownsBridge { private int impl$lastSetCooldownResult; @Inject( - method = "addCooldown(Lnet/minecraft/resources/ResourceLocation;I)V", + method = "addCooldown(Lnet/minecraft/resources/Identifier;I)V", at = @At( value = "HEAD", remap = false @@ -66,7 +66,7 @@ public abstract class ItemCooldownsMixin implements ItemCooldownsBridge { locals = LocalCapture.CAPTURE_FAILHARD, cancellable = true ) - private void impl$throwEventOnSetAndTrackResult(final ResourceLocation group, final int ticks, final CallbackInfo ci) { + private void impl$throwEventOnSetAndTrackResult(final Identifier group, final int ticks, final CallbackInfo ci) { this.impl$lastSetCooldownResult = this.impl$throwSetCooldownEvent(group, ticks); if (this.impl$lastSetCooldownResult == Constants.Sponge.Entity.Player.ITEM_COOLDOWN_CANCELLED) { ci.cancel(); @@ -74,7 +74,7 @@ public abstract class ItemCooldownsMixin implements ItemCooldownsBridge { } @ModifyVariable( - method = "addCooldown(Lnet/minecraft/resources/ResourceLocation;I)V", + method = "addCooldown(Lnet/minecraft/resources/Identifier;I)V", at = @At( value = "HEAD", remap = false @@ -86,16 +86,16 @@ public abstract class ItemCooldownsMixin implements ItemCooldownsBridge { } @Redirect(method = "tick", at = @At(value = "INVOKE", target = "Ljava/util/Map$Entry;getKey()Ljava/lang/Object;", remap = false)) - private Object onTick(final Map.Entry entry) { + private Object onTick(final Map.Entry entry) { this.impl$throwEndCooldownEvent(entry.getKey()); return entry.getKey(); } - protected int impl$throwSetCooldownEvent(final ResourceLocation group, final int ticks) { + protected int impl$throwSetCooldownEvent(final Identifier group, final int ticks) { return 0; } - protected void impl$throwEndCooldownEvent(final ResourceLocation group) { + protected void impl$throwEndCooldownEvent(final Identifier group) { } @@ -106,7 +106,7 @@ private Object onTick(final Map.Entry entry) { @Inject(method = "getCooldownPercent", at = @At("HEAD"), cancellable = true) private void impl$getCooldownPercentInfiniteCooldown(final ItemStack $$0, final float $$1, final CallbackInfoReturnable cir) { - ResourceLocation $$2 = this.shadow$getCooldownGroup($$0); + Identifier $$2 = this.shadow$getCooldownGroup($$0); final ItemCooldowns_CooldownInstanceAccessor cooldown = (ItemCooldowns_CooldownInstanceAccessor) this.cooldowns.get($$0); if (cooldown != null && cooldown.accessor$endTime() == cooldown.accessor$startTime() - 1) { cir.setReturnValue(1.0F); diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/item/ServerItemCooldownsMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/item/ServerItemCooldownsMixin.java index 44695146492..3799930c8be 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/item/ServerItemCooldownsMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/item/ServerItemCooldownsMixin.java @@ -24,7 +24,7 @@ */ package org.spongepowered.common.mixin.core.world.item; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.ServerItemCooldowns; import org.spongepowered.api.ResourceKey; import org.spongepowered.api.Sponge; @@ -50,11 +50,11 @@ public abstract class ServerItemCooldownsMixin extends ItemCooldownsMixin { // @formmater:off @Shadow @Final private net.minecraft.server.level.ServerPlayer player; - @Shadow protected abstract void shadow$onCooldownStarted(ResourceLocation group, int ticksIn); + @Shadow protected abstract void shadow$onCooldownStarted(Identifier group, int ticksIn); // @formmater:on @Override - protected int impl$throwSetCooldownEvent(final ResourceLocation group, final int ticks) { + protected int impl$throwSetCooldownEvent(final Identifier group, final int ticks) { if (ticks == 0) { return 0; } @@ -71,7 +71,7 @@ public abstract class ServerItemCooldownsMixin extends ItemCooldownsMixin { } @Override - protected void impl$throwEndCooldownEvent(final ResourceLocation group) { + protected void impl$throwEndCooldownEvent(final Identifier group) { final CooldownEvent.End event = SpongeEventFactory.createCooldownEventEnd(PhaseTracker.getInstance().currentCause(), (ResourceKey) (Object) group, (ServerPlayer) this.player); Sponge.eventManager().post(event); diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/item/crafting/RecipeManagerMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/item/crafting/RecipeManagerMixin.java index 99704db7bef..15907a1612b 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/item/crafting/RecipeManagerMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/item/crafting/RecipeManagerMixin.java @@ -33,8 +33,8 @@ import com.mojang.serialization.DynamicOps; import net.minecraft.core.HolderLookup; import net.minecraft.resources.FileToIdConverter; +import net.minecraft.resources.Identifier; import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.resources.ResourceManager; import net.minecraft.world.item.crafting.Recipe; import net.minecraft.world.item.crafting.RecipeManager; @@ -81,13 +81,13 @@ public abstract class RecipeManagerMixin { @WrapOperation(method = "prepare(Lnet/minecraft/server/packs/resources/ResourceManager;Lnet/minecraft/util/profiling/ProfilerFiller;)Lnet/minecraft/world/item/crafting/RecipeMap;", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/packs/resources/SimpleJsonResourceReloadListener;scanDirectory(Lnet/minecraft/server/packs/resources/ResourceManager;Lnet/minecraft/resources/FileToIdConverter;Lcom/mojang/serialization/DynamicOps;Lcom/mojang/serialization/Codec;Ljava/util/Map;)V")) private void impl$onPrepare(final ResourceManager $$0, final FileToIdConverter $$1, final DynamicOps $$2, final Codec> $$3, - final Map> $$4, final Operation original) { - SortedMap> result = new TreeMap<>(); + final Map> $$4, final Operation original) { + SortedMap> result = new TreeMap<>(); original.call($$0, $$1, $$2, $$3, result); final RegistryHolderLogic registryHolder = ((SpongeRegistryHolder) $$0).registryHolder(); final Registry> registry = (Registry>) (Object) registryHolder.registry(RegistryTypes.RECIPE); result.forEach((k, v) -> registry.register((org.spongepowered.api.ResourceKey) (Object) k, v)); Launch.instance().lifecycle().processServerRegistries((RegistryHolder) $$0, Stream.of(registry)); - registry.streamEntries().forEach(e -> $$4.put((ResourceLocation) (Object) e.key(), e.value())); + registry.streamEntries().forEach(e -> $$4.put((Identifier) (Object) e.key(), e.value())); } } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/block/NetherPortalBlockMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/block/NetherPortalBlockMixin.java index 8a39171148b..b96a261afa0 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/block/NetherPortalBlockMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/block/NetherPortalBlockMixin.java @@ -24,11 +24,11 @@ */ package org.spongepowered.common.mixin.core.world.level.block; -import net.minecraft.BlockUtil; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Vec3i; import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.BlockUtil; import net.minecraft.world.entity.ai.village.poi.PoiManager; import net.minecraft.world.entity.ai.village.poi.PoiRecord; import net.minecraft.world.entity.ai.village.poi.PoiTypes; diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/block/entity/AbstractFurnaceBlockEntityMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/block/entity/AbstractFurnaceBlockEntityMixin.java index c3763b9df18..40a3a3a8be7 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/block/entity/AbstractFurnaceBlockEntityMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/block/entity/AbstractFurnaceBlockEntityMixin.java @@ -85,7 +85,7 @@ public abstract class AbstractFurnaceBlockEntityMixin extends BaseContainerBlock final SlotTransaction transaction = new SlotTransaction(((FurnaceBlockEntity) entity).inventory().slot(1).get(), fuel, shrinkedFuel); final var recipe = ((AbstractFurnaceBlockEntityMixin) (Object) entity).bridge$getCurrentRecipe(); final CookingEvent.ConsumeFuel event = SpongeEventFactory.createCookingEventConsumeFuel(cause, (FurnaceBlockEntity) entity, Optional.of(fuel), - recipe.map(r -> (CookingRecipe) r.value()), recipe.map(r -> (ResourceKey) (Object) r.id().location()), Collections.singletonList(transaction)); + recipe.map(r -> (CookingRecipe) r.value()), recipe.map(r -> (ResourceKey) (Object) r.id().identifier()), Collections.singletonList(transaction)); SpongeCommon.post(event); if (event.isCancelled()) { ((AbstractFurnaceBlockEntityMixin) (Object) entity).cookingTotalTime = 0; @@ -143,7 +143,7 @@ public abstract class AbstractFurnaceBlockEntityMixin extends BaseContainerBlock final Cause cause = PhaseTracker.getInstance().currentCause(); final var recipe = this.bridge$getCurrentRecipe(); final CookingEvent.Interrupt event = SpongeEventFactory.createCookingEventInterrupt(cause, (FurnaceBlockEntity) this, Optional.of(fuel), - recipe.map(r -> (CookingRecipe) r.value()), recipe.map(r -> (ResourceKey) (Object) r.id().location())); + recipe.map(r -> (CookingRecipe) r.value()), recipe.map(r -> (ResourceKey) (Object) r.id().identifier())); SpongeCommon.post(event); } } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/block/entity/CampfireBlockEntityMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/block/entity/CampfireBlockEntityMixin.java index af2c801e379..157515157e2 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/block/entity/CampfireBlockEntityMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/block/entity/CampfireBlockEntityMixin.java @@ -89,7 +89,7 @@ public abstract class CampfireBlockEntityMixin { final ItemStackSnapshot stack = ItemStackUtil.snapshotOf(mixinSelf.items.get(i)); final RecipeHolder recipe = mixinSelf.impl$cookingRecipe[i]; final CookingEvent.Tick event = SpongeEventFactory.createCookingEventTick(cause, (Campfire) self, stack, Optional.empty(), - Optional.ofNullable(recipe).map(r -> (CookingRecipe) r.value()), Optional.ofNullable(recipe).map(r -> (ResourceKey) (Object) r.id().location())); + Optional.ofNullable(recipe).map(r -> (CookingRecipe) r.value()), Optional.ofNullable(recipe).map(r -> (ResourceKey) (Object) r.id().identifier())); SpongeCommon.post(event); if (event.isCancelled()) { mixinSelf.cookingProgress[i]--; @@ -109,7 +109,7 @@ public abstract class CampfireBlockEntityMixin { final SlotTransaction transaction = new SlotTransaction(((Campfire) self).inventory().slot(i).get(), ItemStackUtil.snapshotOf(itemStack1), ItemStackSnapshot.empty()); final RecipeHolder recipe = mixinSelf.impl$cookingRecipe[i]; final CookingEvent.Finish event = SpongeEventFactory.createCookingEventFinish(cause, (Campfire) self, - Optional.empty(), Optional.ofNullable(recipe).map(r -> (CookingRecipe) r.value()), Optional.ofNullable(recipe).map(r -> (ResourceKey) (Object) r.id().location()), + Optional.empty(), Optional.ofNullable(recipe).map(r -> (CookingRecipe) r.value()), Optional.ofNullable(recipe).map(r -> (ResourceKey) (Object) r.id().identifier()), Collections.singletonList(transaction)); SpongeCommon.post(event); mixinSelf.impl$cookingRecipe[i] = null; diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/chunk/ChunkStatusTasksMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/chunk/ChunkStatusTasksMixin.java index 0575009f31d..1f69cbbc2d0 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/chunk/ChunkStatusTasksMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/chunk/ChunkStatusTasksMixin.java @@ -101,7 +101,7 @@ static CompletableFuture generateBiomes(final WorldGenContext conte final Vector3i chunkPos = VecHelper.toVector3i(levelChunk.getPos()); if (ShouldFire.CHUNK_EVENT_BLOCKS_LOAD) { final ChunkEvent.Blocks.Load loadEvent = SpongeEventFactory.createChunkEventBlocksLoad(PhaseTracker.getInstance().currentCause(), - ((BlockChunk) levelChunk), chunkPos, (ResourceKey) (Object) levelChunk.getLevel().dimension().location()); + ((BlockChunk) levelChunk), chunkPos, (ResourceKey) (Object) levelChunk.getLevel().dimension().identifier()); SpongeCommon.post(loadEvent); } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/chunk/storage/EntityStorageMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/chunk/storage/EntityStorageMixin.java index 5eecfb80900..bf43ea2cd64 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/chunk/storage/EntityStorageMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/chunk/storage/EntityStorageMixin.java @@ -77,7 +77,7 @@ public abstract class EntityStorageMixin { final Vector3i chunkPos = VecHelper.toVector3i($$0x); final SpongeEntityChunk entities = new SpongeEntityChunk(this.level, chunkPos, cir.getReturnValue().getEntities().collect(Collectors.toList())); final ChunkEvent.Entities.Load loadEvent = SpongeEventFactory.createChunkEventEntitiesLoad(PhaseTracker.getInstance().currentCause(), - entities, chunkPos, (ResourceKey) (Object) this.level.dimension().location()); + entities, chunkPos, (ResourceKey) (Object) this.level.dimension().identifier()); SpongeCommon.post(loadEvent); @@ -94,7 +94,7 @@ public abstract class EntityStorageMixin { final SpongeEntityChunk entities = new SpongeEntityChunk(this.level, chunkPos, $$0.getEntities().collect(Collectors.toList())); final ChunkEvent.Entities.Save.Pre saveEvent = SpongeEventFactory.createChunkEventEntitiesSavePre(PhaseTracker.getInstance().currentCause(), - entities, chunkPos, (ResourceKey) (Object) this.level.dimension().location()); + entities, chunkPos, (ResourceKey) (Object) this.level.dimension().identifier()); if (SpongeCommon.post(saveEvent)) { return null; diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/chunk/storage/IOWorkerMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/chunk/storage/IOWorkerMixin.java index 9bac19268b8..dae1f194012 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/chunk/storage/IOWorkerMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/chunk/storage/IOWorkerMixin.java @@ -101,7 +101,7 @@ public abstract class IOWorkerMixin implements IOWorkerBridge { if (ShouldFire.CHUNK_EVENT_BLOCKS_SAVE_POST) { final Vector3i chunkPos = new Vector3i(param0.x, 0, param0.z); final ChunkEvent.Blocks.Save.Post postSave = SpongeEventFactory.createChunkEventBlocksSavePost(PhaseTracker.getInstance().currentCause(), chunkPos, - (org.spongepowered.api.ResourceKey) (Object) this.impl$dimension.location()); + (org.spongepowered.api.ResourceKey) (Object) this.impl$dimension.identifier()); SpongeCommon.post(postSave); } } @@ -109,7 +109,7 @@ else if (this.impl$type == SpongeIOWorkerType.ENTITY) { if (ShouldFire.CHUNK_EVENT_ENTITIES_SAVE_POST) { final Vector3i chunkPos = new Vector3i(param0.x, 0, param0.z); final ChunkEvent.Entities.Save.Post postSave = SpongeEventFactory.createChunkEventEntitiesSavePost(PhaseTracker.getInstance().currentCause(), chunkPos, - (org.spongepowered.api.ResourceKey) (Object) this.impl$dimension.location()); + (org.spongepowered.api.ResourceKey) (Object) this.impl$dimension.identifier()); SpongeCommon.post(postSave); } } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/storage/PlayerDataStorageMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/storage/PlayerDataStorageMixin.java index b695562105d..5853fe9133d 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/storage/PlayerDataStorageMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/storage/PlayerDataStorageMixin.java @@ -48,7 +48,7 @@ public abstract class PlayerDataStorageMixin { @Inject(method = "save", at = @At(value = "INVOKE", - target = "Lnet/minecraft/Util;safeReplaceFile(Ljava/nio/file/Path;Ljava/nio/file/Path;Ljava/nio/file/Path;)V", + target = "Lnet/minecraft/util/Util;safeReplaceFile(Ljava/nio/file/Path;Ljava/nio/file/Path;Ljava/nio/file/Path;)V", shift = At.Shift.AFTER)) private void impl$saveSpongePlayerData(final Player player, final CallbackInfo callbackInfo) { ((SpongeServer) SpongeCommon.server()).getPlayerDataManager().deleteLegacyPlayerData((ServerPlayer) player); diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/storage/PrimaryLevelDataMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/storage/PrimaryLevelDataMixin.java index c8932781dd1..7f91e1ac0d6 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/level/storage/PrimaryLevelDataMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/level/storage/PrimaryLevelDataMixin.java @@ -42,8 +42,8 @@ import net.minecraft.nbt.ListTag; import net.minecraft.nbt.Tag; import net.minecraft.network.protocol.game.ClientboundChangeDifficultyPacket; +import net.minecraft.resources.Identifier; import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.Difficulty; @@ -312,7 +312,7 @@ public abstract class PrimaryLevelDataMixin implements ServerLevelData, WorldDat public void bridge$readSpongeLevelData(final Dynamic dynamic) { dynamic.get(Constants.Sponge.Data.V2.SPONGE_DATA).get().ifSuccess(v2 -> { v2.get(Constants.Sponge.World.UNIQUE_ID).read(UUIDUtil.CODEC).result().ifPresent(this.impl$spongeData::setUniqueId); - v2.get(Constants.Sponge.World.WORLD_KEY).read(ResourceLocation.CODEC).result() + v2.get(Constants.Sponge.World.WORLD_KEY).read(Identifier.CODEC).result() .map(org.spongepowered.api.ResourceKey.class::cast).ifPresent(this.impl$spongeData::setKey); v2.get(Constants.Map.MAP_UUID_INDEX).readMap(Codec.STRING, UUIDUtil.CODEC).result().ifPresent(value -> { @@ -399,7 +399,7 @@ public String toString() { .listElements() .collect(Collectors.toMap(Holder.Reference::key, Holder.Reference::value)); if (this.impl$dimensionType != null && this.impl$chunkGenerator != null) { - dimensions.computeIfAbsent(ResourceKey.create(Registries.LEVEL_STEM, (ResourceLocation) (Object) this.impl$spongeData.key()), + dimensions.computeIfAbsent(ResourceKey.create(Registries.LEVEL_STEM, (Identifier) (Object) this.impl$spongeData.key()), $ -> new LevelStem($$2.lookupOrThrow(Registries.DIMENSION_TYPE).wrapAsHolder(this.impl$dimensionType), this.impl$chunkGenerator)); } return WorldGenSettings.encode($$0, $$1, new WorldDimensions(dimensions)); diff --git a/src/mixins/java/org/spongepowered/common/mixin/inventory/event/inventory/container/EnchantmentContainerMixin_Inventory.java b/src/mixins/java/org/spongepowered/common/mixin/inventory/event/inventory/container/EnchantmentContainerMixin_Inventory.java index e3a0315872f..f0b824647be 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/inventory/event/inventory/container/EnchantmentContainerMixin_Inventory.java +++ b/src/mixins/java/org/spongepowered/common/mixin/inventory/event/inventory/container/EnchantmentContainerMixin_Inventory.java @@ -93,7 +93,7 @@ public abstract class EnchantmentContainerMixin_Inventory { // enchantItem lambda @Inject(method = "lambda$clickMenuButton$1", cancellable = true, - at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;awardStat(Lnet/minecraft/resources/ResourceLocation;)V"), require = 1) + at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;awardStat(Lnet/minecraft/resources/Identifier;)V"), require = 1) private void impl$afterEnchantItem(final ItemStack itemstack, final int id, final Player playerIn, final int i, final ItemStack itemstack1, final Level arg5, final BlockPos arg6, final CallbackInfo ci) { final ItemStackSnapshot newItem = ItemStackUtil.snapshotOf(this.enchantSlots.getItem(0)); final ItemStackSnapshot newLapis = ItemStackUtil.snapshotOf(this.enchantSlots.getItem(1)); diff --git a/src/mixins/java/org/spongepowered/common/mixin/inventory/event/server/level/ServerPlayerMixin_Inventory.java b/src/mixins/java/org/spongepowered/common/mixin/inventory/event/server/level/ServerPlayerMixin_Inventory.java index 6476ad1c7ba..85edb4588c2 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/inventory/event/server/level/ServerPlayerMixin_Inventory.java +++ b/src/mixins/java/org/spongepowered/common/mixin/inventory/event/server/level/ServerPlayerMixin_Inventory.java @@ -62,7 +62,6 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import org.spongepowered.common.SpongeCommon; import org.spongepowered.common.bridge.world.entity.EntityBridge; import org.spongepowered.common.bridge.world.entity.player.PlayerInventoryBridge; @@ -121,17 +120,17 @@ public abstract class ServerPlayerMixin_Inventory extends PlayerMixin_Inventory } } - @Inject(method = "drop(Z)Z", + @Inject(method = "drop(Z)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Inventory;removeFromSelected(Z)Lnet/minecraft/world/item/ItemStack;")) - protected void impl$beforeRemoveItem(final boolean param0, final CallbackInfoReturnable cir) { + protected void impl$beforeRemoveItem(final boolean param0, final CallbackInfo cir) { final PhaseContext<@NonNull ?> context = PhaseTracker.getWorldInstance(this.shadow$level()).getPhaseContext(); final TransactionalCaptureSupplier transactor = context.getTransactor(); this.inventory$effectTransactor = transactor.logDropFromPlayerInventory((ServerPlayer) (Object) this, param0); } - @Inject(method = "drop(Z)Z", + @Inject(method = "drop(Z)V", at = @At(value = "RETURN")) - protected void impl$onPlayerDrop(final boolean param0, final CallbackInfoReturnable cir) { + protected void impl$onPlayerDrop(final boolean param0, final CallbackInfo cir) { try (final EffectTransactor ignored = this.inventory$effectTransactor) { this.containerMenu.broadcastChanges(); // for capture } finally { diff --git a/src/mixins/java/org/spongepowered/common/mixin/ipforward/network/protocol/game/ClientboundCommandsPacket_ArgumentNodeStub_IpForward.java b/src/mixins/java/org/spongepowered/common/mixin/ipforward/network/protocol/game/ClientboundCommandsPacket_ArgumentNodeStub_IpForward.java index bacf15322f2..eb926802337 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/ipforward/network/protocol/game/ClientboundCommandsPacket_ArgumentNodeStub_IpForward.java +++ b/src/mixins/java/org/spongepowered/common/mixin/ipforward/network/protocol/game/ClientboundCommandsPacket_ArgumentNodeStub_IpForward.java @@ -29,7 +29,7 @@ import net.minecraft.commands.synchronization.ArgumentTypeInfo; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -59,7 +59,7 @@ public final class ClientboundCommandsPacket_ArgumentNodeStub_IpForward { @Inject(method = "serializeCap(Lnet/minecraft/network/FriendlyByteBuf;Lnet/minecraft/commands/synchronization/ArgumentTypeInfo;Lnet/minecraft/commands/synchronization/ArgumentTypeInfo$Template;)V", at = @At("HEAD"), cancellable = true) private static , T extends ArgumentTypeInfo.Template> void ipForward$onSerializeCap( final FriendlyByteBuf buf, final ArgumentTypeInfo $$1, final ArgumentTypeInfo.Template $$2, final CallbackInfo ci) { - final @Nullable ResourceLocation key = BuiltInRegistries.COMMAND_ARGUMENT_TYPE.getKey($$1); + final @Nullable Identifier key = BuiltInRegistries.COMMAND_ARGUMENT_TYPE.getKey($$1); if (key == null || ClientboundCommandsPacket_ArgumentNodeStub_IpForward.ipForward$isVanillaArgument(key)) { return; } @@ -75,7 +75,7 @@ public final class ClientboundCommandsPacket_ArgumentNodeStub_IpForward { buf.writeBytes(commandData); } - private static boolean ipForward$isVanillaArgument(final ResourceLocation key) { + private static boolean ipForward$isVanillaArgument(final Identifier key) { return switch (key.getNamespace()) { case "brigadier" -> true; case "minecraft" -> switch (key.getPath()) { diff --git a/src/mixins/java/org/spongepowered/common/mixin/plugin/entityactivation/EntityActivationRange.java b/src/mixins/java/org/spongepowered/common/mixin/plugin/entityactivation/EntityActivationRange.java index dbf675e3c3e..6efeb3485e2 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/plugin/entityactivation/EntityActivationRange.java +++ b/src/mixins/java/org/spongepowered/common/mixin/plugin/entityactivation/EntityActivationRange.java @@ -25,7 +25,7 @@ package org.spongepowered.common.mixin.plugin.entityactivation; import com.google.common.collect.ImmutableMap; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.util.Mth; @@ -153,7 +153,7 @@ public static void initializeEntityActivationState(final Entity entity) { final EntityActivationRangeCategory config = configAdapter.get().entityActivationRange; final EntityTypeBridge type = (EntityTypeBridge) entity.getType(); - final ResourceLocation key = EntityType.getKey(entity.getType()); + final Identifier key = EntityType.getKey(entity.getType()); final byte activationType = spongeEntity.activation$getActivationType(); final String activationTypeName = EntityActivationRange.activationTypeMappings.getOrDefault(activationType, "misc"); if (!type.bridge$isActivationRangeInitialized()) { @@ -409,7 +409,7 @@ public static boolean checkIfActive(final Entity entity) { } public static void addEntityToConfig( - final boolean autoPopulate, final ResourceLocation key, final byte activationType, final String activationTypeName + final boolean autoPopulate, final Identifier key, final byte activationType, final String activationTypeName ) { final InheritableConfigHandle globalConfig = SpongeGameConfigs.getGlobalInheritable(); final EntityActivationRangeCategory activationConfig = globalConfig.get().entityActivationRange; diff --git a/src/mixins/resources/mixins.sponge.api.json b/src/mixins/resources/mixins.sponge.api.json index c3036244af6..2772f46d459 100644 --- a/src/mixins/resources/mixins.sponge.api.json +++ b/src/mixins/resources/mixins.sponge.api.json @@ -42,7 +42,7 @@ "minecraft.network.protocol.status.ServerStatus_PlayersMixin_API", "minecraft.network.protocol.status.ServerStatus_VersionMixin_API", "minecraft.network.protocol.status.ServerStatusMixin_API", - "minecraft.resources.ResourceLocationMixin_API", + "minecraft.resources.IdentifierMixin_API", "minecraft.server.MinecraftServerMixin_API", "minecraft.server.ServerScoreboardMixin_API", "minecraft.server.level.ChunkMapMixin_API", diff --git a/vanilla/src/main/java/org/spongepowered/vanilla/server/packs/PluginPackResources.java b/vanilla/src/main/java/org/spongepowered/vanilla/server/packs/PluginPackResources.java index 88c8c8ffe37..c1038dd41b0 100644 --- a/vanilla/src/main/java/org/spongepowered/vanilla/server/packs/PluginPackResources.java +++ b/vanilla/src/main/java/org/spongepowered/vanilla/server/packs/PluginPackResources.java @@ -26,7 +26,7 @@ import com.mojang.logging.LogUtils; import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.packs.AbstractPackResources; import net.minecraft.server.packs.PackLocationInfo; import net.minecraft.server.packs.PackType; @@ -82,7 +82,7 @@ private IoSupplier getResource(final String rawPath) { } @Override - public IoSupplier getResource(final PackType type, final ResourceLocation loc) { + public IoSupplier getResource(final PackType type, final Identifier loc) { return this.getResource(String.format(Locale.ROOT, "%s/%s/%s", type.getDirectory(), loc.getNamespace(), loc.getPath())); } @@ -105,9 +105,9 @@ public void listResources(final PackType type, final String namespace, final Str } @Nullable - private ResourceLocation convertResourcePath(final String namespace, final Path resourcePath) { + private Identifier convertResourcePath(final String namespace, final Path resourcePath) { final String path = resourcePath.toString(); - final ResourceLocation location = ResourceLocation.tryBuild(namespace, path); + final Identifier location = Identifier.tryBuild(namespace, path); if (location == null) LOGGER.warn("Invalid path in plugin pack: {}:{}, ignoring", namespace, path); return location; diff --git a/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/tags/TagLoaderMixin_Vanilla.java b/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/tags/TagLoaderMixin_Vanilla.java index c9195edbf28..ccc98e5e9cc 100644 --- a/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/tags/TagLoaderMixin_Vanilla.java +++ b/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/tags/TagLoaderMixin_Vanilla.java @@ -27,7 +27,7 @@ import com.llamalad7.mixinextras.injector.wrapoperation.Operation; import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import com.llamalad7.mixinextras.sugar.Local; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.tags.TagEntry; import net.minecraft.tags.TagLoader; import org.spongepowered.asm.mixin.Mixin; @@ -53,7 +53,7 @@ public abstract class TagLoaderMixin_Vanilla implements TagLoaderBridge { } @Inject(method = "lambda$build$5", at = @At("HEAD")) - private void vanilla$onStartBuildingTag(final TagEntry.Lookup $$0x, final Map> $$1x, final ResourceLocation $$2x, + private void vanilla$onStartBuildingTag(final TagEntry.Lookup $$0x, final Map> $$1x, final Identifier $$2x, final @Coerce Object $$3x, final CallbackInfo ci) { this.bridge$buildingTagKey($$2x); } diff --git a/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/entity/LivingEntityMixin_Vanilla_Damage.java b/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/entity/LivingEntityMixin_Vanilla_Damage.java index e62415ed374..cc0ae1270e8 100644 --- a/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/entity/LivingEntityMixin_Vanilla_Damage.java +++ b/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/entity/LivingEntityMixin_Vanilla_Damage.java @@ -42,7 +42,7 @@ public abstract class LivingEntityMixin_Vanilla_Damage implements TrackedDamageBridge { @ModifyVariable(method = "actuallyHurt", at = @At("LOAD"), argsOnly = true, slice = @Slice( - from = @At(value = "INVOKE", target = "Lnet/minecraft/server/level/ServerPlayer;awardStat(Lnet/minecraft/resources/ResourceLocation;I)V"), + from = @At(value = "INVOKE", target = "Lnet/minecraft/server/level/ServerPlayer;awardStat(Lnet/minecraft/resources/Identifier;I)V"), to = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/LivingEntity;getCombatTracker()Lnet/minecraft/world/damagesource/CombatTracker;"))) private float damage$firePostEvent_Living(final float damage) { return this.damage$firePostEvent(damage); diff --git a/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/entity/player/PlayerMixin_Vanilla_Damage.java b/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/entity/player/PlayerMixin_Vanilla_Damage.java index 26e6c1fb227..927f3c36760 100644 --- a/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/entity/player/PlayerMixin_Vanilla_Damage.java +++ b/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/entity/player/PlayerMixin_Vanilla_Damage.java @@ -35,7 +35,7 @@ public abstract class PlayerMixin_Vanilla_Damage extends LivingEntityMixin_Vanilla_Damage { @ModifyVariable(method = "actuallyHurt", at = @At("LOAD"), argsOnly = true, slice = @Slice( - from = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;awardStat(Lnet/minecraft/resources/ResourceLocation;I)V"), + from = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;awardStat(Lnet/minecraft/resources/Identifier;I)V"), to = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;causeFoodExhaustion(F)V"))) private float damage$firePostEvent_Player(final float damage) { return this.damage$firePostEvent(damage); diff --git a/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/level/block/entity/AbstractFurnaceBlockEntityMixin_Vanilla.java b/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/level/block/entity/AbstractFurnaceBlockEntityMixin_Vanilla.java index 704ddefeb7b..8fb75d67d7f 100644 --- a/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/level/block/entity/AbstractFurnaceBlockEntityMixin_Vanilla.java +++ b/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/level/block/entity/AbstractFurnaceBlockEntityMixin_Vanilla.java @@ -95,13 +95,13 @@ public abstract class AbstractFurnaceBlockEntityMixin_Vanilla extends BaseContai final Cause cause = PhaseTracker.getInstance().currentCause(); if (entity.cookingTimer == 0) { // Start final CookingEvent.Start event = SpongeEventFactory.createCookingEventStart(cause, (FurnaceBlockEntity) entityIn, Optional.of(fuel), - Optional.of((CookingRecipe) recipe.value()), Optional.of((ResourceKey) (Object) recipe.id().location())); + Optional.of((CookingRecipe) recipe.value()), Optional.of((ResourceKey) (Object) recipe.id().identifier())); SpongeCommon.post(event); return !event.isCancelled(); } else { // Tick up final ItemStackSnapshot cooking = ItemStackUtil.snapshotOf(entity.items.get(0)); final CookingEvent.Tick event = SpongeEventFactory.createCookingEventTick(cause, (FurnaceBlockEntity) entityIn, cooking, Optional.of(fuel), - Optional.of((CookingRecipe) recipe.value()), Optional.of((ResourceKey) (Object) recipe.id().location())); + Optional.of((CookingRecipe) recipe.value()), Optional.of((ResourceKey) (Object) recipe.id().identifier())); SpongeCommon.post(event); return !event.isCancelled(); } @@ -120,7 +120,7 @@ public abstract class AbstractFurnaceBlockEntityMixin_Vanilla extends BaseContai final var recipe = entity.bridge$getCurrentRecipe(); final ItemStackSnapshot cooking = ItemStackUtil.snapshotOf(entity.items.get(0)); final CookingEvent.Tick event = SpongeEventFactory.createCookingEventTick(cause, (FurnaceBlockEntity) entityIn, cooking, Optional.of(fuel), - recipe.map(r -> (CookingRecipe) r.value()), recipe.map(r -> (ResourceKey) (Object) r.id().location())); + recipe.map(r -> (CookingRecipe) r.value()), recipe.map(r -> (ResourceKey) (Object) r.id().identifier())); SpongeCommon.post(event); if (event.isCancelled()) { return entity.cookingTimer; // dont tick down @@ -180,7 +180,7 @@ public abstract class AbstractFurnaceBlockEntityMixin_Vanilla extends BaseContai } final Optional fuel = hasFuel && !slots.get(1).isEmpty() ? Optional.of(ItemStackUtil.snapshotOf(slots.get(1))) : Optional.empty(); final CookingEvent.Finish event = SpongeEventFactory.createCookingEventFinish(cause, entity, - fuel, Optional.of((CookingRecipe) recipe.value()), Optional.of((ResourceKey) (Object) recipe.id().location()), Collections.unmodifiableList(transactions)); + fuel, Optional.of((CookingRecipe) recipe.value()), Optional.of((ResourceKey) (Object) recipe.id().identifier()), Collections.unmodifiableList(transactions)); SpongeCommon.post(event); for (final SlotTransaction transaction : transactions) { From 3630664fe2a3adc30af867a854eb70eb1dfffd30 Mon Sep 17 00:00:00 2001 From: Gabriel Harris-Rouquette Date: Tue, 9 Dec 2025 20:27:01 -0800 Subject: [PATCH 07/13] feat(minecraft): update to 25w45a - Added `spear_mobs` trigger. - Added `netherite_horse_armor` item type. - Added `spawns_coral_variant_zombie_nautilus` biome tag. - Removed `without_patrol_spawns` biome tag. See https://minecraft.wiki/w/Java_Edition_25w45a --- SpongeAPI | 2 +- .../vanilla/generator/RegistryEntriesGenerator.java | 4 ++-- .../vanilla/generator/RegistryEntriesValidator.java | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/SpongeAPI b/SpongeAPI index 643c628d862..11cdb7039c9 160000 --- a/SpongeAPI +++ b/SpongeAPI @@ -1 +1 @@ -Subproject commit 643c628d86206dd6562951b6be28267509bdebd7 +Subproject commit 11cdb7039c99df92222c249a6f68e3a6060ac892 diff --git a/generator/src/main/java/org/spongepowered/vanilla/generator/RegistryEntriesGenerator.java b/generator/src/main/java/org/spongepowered/vanilla/generator/RegistryEntriesGenerator.java index 27d363626b3..97c04fbe46c 100644 --- a/generator/src/main/java/org/spongepowered/vanilla/generator/RegistryEntriesGenerator.java +++ b/generator/src/main/java/org/spongepowered/vanilla/generator/RegistryEntriesGenerator.java @@ -109,7 +109,7 @@ public RegistryEntriesGenerator(final String relativePackageName, @Override public String name() { - return "elements of registry " + this.registry.location(); + return "elements of registry " + this.registry.identifier(); } @Override @@ -122,7 +122,7 @@ public void generate(final Context ctx) throws IOException { clazz.addAnnotation(Types.suppressWarnings("unused")); final RegistryScope scopeType; - Registry registry = (Registry) BuiltInRegistries.REGISTRY.get(this.registry.location()).map(Holder.Reference::value).orElse(null); + Registry registry = (Registry) BuiltInRegistries.REGISTRY.get(this.registry.identifier()).map(Holder.Reference::value).orElse(null); if (registry == null) { registry = ctx.registries().lookup(this.registry).orElse(null); if (registry == null) { diff --git a/generator/src/main/java/org/spongepowered/vanilla/generator/RegistryEntriesValidator.java b/generator/src/main/java/org/spongepowered/vanilla/generator/RegistryEntriesValidator.java index c3293a09dd2..bf6202c06b1 100644 --- a/generator/src/main/java/org/spongepowered/vanilla/generator/RegistryEntriesValidator.java +++ b/generator/src/main/java/org/spongepowered/vanilla/generator/RegistryEntriesValidator.java @@ -85,7 +85,7 @@ public RegistryEntriesValidator( @Override public String name() { - return "elements of registry " + this.registry.location(); + return "elements of registry " + this.registry.identifier(); } @Override @@ -98,7 +98,7 @@ public void generate(final Context ctx) { Registry registry = ctx.registries().lookup(this.registry).orElse(null); if (registry == null) { - registry = (Registry) BuiltInRegistries.REGISTRY.get(this.registry.location()) + registry = (Registry) BuiltInRegistries.REGISTRY.get(this.registry.identifier()) .orElseThrow(() -> new IllegalArgumentException("Unknown registry " + this.registry)); } From a6ac4f1a699c37c35f0eb69b28f1b93ec631a5f7 Mon Sep 17 00:00:00 2001 From: Gabriel Harris-Rouquette Date: Tue, 9 Dec 2025 22:15:03 -0800 Subject: [PATCH 08/13] feat(minecraft): update to 25w46a Notable Changes: - AbstractMount for carrier handling for Horses and Nautili(sp?) See https://minecraft.wiki/w/Java_Edition_25w46a --- SpongeAPI | 2 +- .../vanilla/generator/GeneratorMain.java | 2 +- gradle.properties | 2 +- ...java => AbstractMountInventoryMenuAccessor.java} | 10 +++++----- .../resources/mixins.sponge.accessors.json | 2 +- .../common/inventory/util/ContainerUtil.java | 6 +++--- .../animal/nautilus/AbstractNautilusMixin_API.java | 13 +++++++++++++ .../world/entity/player/PlayerMixin_Attack.java | 2 +- .../server/level/ServerPlayerMixin_Inventory.java | 4 ++-- .../impl/TraitMixin_ContainerBridge_Inventory.java | 4 ++-- 10 files changed, 30 insertions(+), 17 deletions(-) rename src/accessors/java/org/spongepowered/common/accessor/world/inventory/{HorseInventoryMenuAccessor.java => AbstractMountInventoryMenuAccessor.java} (84%) diff --git a/SpongeAPI b/SpongeAPI index 11cdb7039c9..b0b09001136 160000 --- a/SpongeAPI +++ b/SpongeAPI @@ -1 +1 @@ -Subproject commit 11cdb7039c99df92222c249a6f68e3a6060ac892 +Subproject commit b0b09001136e6d81e8c15698778d56b35b5514f2 diff --git a/generator/src/main/java/org/spongepowered/vanilla/generator/GeneratorMain.java b/generator/src/main/java/org/spongepowered/vanilla/generator/GeneratorMain.java index 38fef394e64..e8f3505e0d1 100644 --- a/generator/src/main/java/org/spongepowered/vanilla/generator/GeneratorMain.java +++ b/generator/src/main/java/org/spongepowered/vanilla/generator/GeneratorMain.java @@ -27,7 +27,6 @@ import com.github.javaparser.utils.Log; import com.mojang.datafixers.util.Pair; import net.minecraft.SharedConstants; -import net.minecraft.util.Util; import net.minecraft.commands.Commands.CommandSelection; import net.minecraft.core.HolderLookup; import net.minecraft.core.LayeredRegistryAccess; @@ -44,6 +43,7 @@ import net.minecraft.server.packs.resources.MultiPackResourceManager; import net.minecraft.server.permissions.LevelBasedPermissionSet; import net.minecraft.tags.TagLoader; +import net.minecraft.util.Util; import net.minecraft.world.level.WorldDataConfiguration; import org.spongepowered.vanilla.generator.item.ItemRegistries; import org.spongepowered.vanilla.generator.world.TagRegistries; diff --git a/gradle.properties b/gradle.properties index 818109668c2..82c3d4e0d6d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ mixinConfigs=mixins.sponge.accessors.json,mixins.sponge.api.json,mixins.sponge.c mixins.sponge.entityactivation.json,mixins.sponge.exploit.json,mixins.sponge.inventory.json,mixins.sponge.movementcheck.json,\ mixins.sponge.tracker.json,mixins.sponge.ipforward.json,mixins.sponge.optimization.json,mixins.sponge.test.json -minecraftVersion=25w45a +minecraftVersion=25w46a recommendedVersion=0-SNAPSHOT org.gradle.dependency.verification.console=verbose diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/inventory/HorseInventoryMenuAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/inventory/AbstractMountInventoryMenuAccessor.java similarity index 84% rename from src/accessors/java/org/spongepowered/common/accessor/world/inventory/HorseInventoryMenuAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/world/inventory/AbstractMountInventoryMenuAccessor.java index 045f703fb0d..f676a038854 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/inventory/HorseInventoryMenuAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/inventory/AbstractMountInventoryMenuAccessor.java @@ -24,14 +24,14 @@ */ package org.spongepowered.common.accessor.world.inventory; -import net.minecraft.world.entity.animal.horse.AbstractHorse; -import net.minecraft.world.inventory.HorseInventoryMenu; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.inventory.AbstractMountInventoryMenu; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; -@Mixin(HorseInventoryMenu.class) -public interface HorseInventoryMenuAccessor { +@Mixin(AbstractMountInventoryMenu.class) +public interface AbstractMountInventoryMenuAccessor { - @Accessor("horse") AbstractHorse accessor$horse(); + @Accessor("mount") LivingEntity accessor$mount(); } diff --git a/src/accessors/resources/mixins.sponge.accessors.json b/src/accessors/resources/mixins.sponge.accessors.json index ebfaea3563c..ab6f9cd2478 100644 --- a/src/accessors/resources/mixins.sponge.accessors.json +++ b/src/accessors/resources/mixins.sponge.accessors.json @@ -138,7 +138,7 @@ "world.inventory.BrewingStandMenuAccessor", "world.inventory.DispenserMenuAccessor", "world.inventory.HopperMenuAccessor", - "world.inventory.HorseInventoryMenuAccessor", + "world.inventory.AbstractMountInventoryMenuAccessor", "world.inventory.ItemCombinerMenuAccessor", "world.inventory.MerchantMenuAccessor", "world.inventory.ResultSlotAccessor", diff --git a/src/main/java/org/spongepowered/common/inventory/util/ContainerUtil.java b/src/main/java/org/spongepowered/common/inventory/util/ContainerUtil.java index 87c3aa91285..480ed8b004e 100644 --- a/src/main/java/org/spongepowered/common/inventory/util/ContainerUtil.java +++ b/src/main/java/org/spongepowered/common/inventory/util/ContainerUtil.java @@ -49,11 +49,11 @@ import org.spongepowered.common.SpongeCommon; import org.spongepowered.common.accessor.world.inventory.AbstractContainerMenuAccessor; import org.spongepowered.common.accessor.world.inventory.AbstractFurnaceMenuAccessor; +import org.spongepowered.common.accessor.world.inventory.AbstractMountInventoryMenuAccessor; import org.spongepowered.common.accessor.world.inventory.BeaconMenuAccessor; import org.spongepowered.common.accessor.world.inventory.BrewingStandMenuAccessor; import org.spongepowered.common.accessor.world.inventory.DispenserMenuAccessor; import org.spongepowered.common.accessor.world.inventory.HopperMenuAccessor; -import org.spongepowered.common.accessor.world.inventory.HorseInventoryMenuAccessor; import org.spongepowered.common.accessor.world.inventory.ItemCombinerMenuAccessor; import org.spongepowered.common.accessor.world.inventory.MerchantMenuAccessor; import org.spongepowered.common.accessor.world.inventory.ResultSlotAccessor; @@ -291,8 +291,8 @@ private static Lens generateAdapterLens(final SlotLensProvider slots, final int return ContainerUtil.carrierOrNull(((BrewingStandMenuAccessor) container).accessor$brewingStand()); } else if (container instanceof BeaconMenu) { return new SpongeBlockEntityCarrier(((BeaconMenuAccessor) container).accessor$access().evaluate(Level::getBlockEntity).orElse(null), container); - } else if (container instanceof HorseInventoryMenuAccessor) { - return (Carrier) ((HorseInventoryMenuAccessor) container).accessor$horse(); + } else if (container instanceof AbstractMountInventoryMenuAccessor) { + return (Carrier) ((AbstractMountInventoryMenuAccessor) container).accessor$mount(); } else if (container instanceof MerchantMenuAccessor && ((MerchantMenuAccessor) container).accessor$trader() instanceof Carrier) { return (Carrier) ((MerchantMenuAccessor) container).accessor$trader(); } else if (container instanceof ItemCombinerMenuAccessor) { diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/nautilus/AbstractNautilusMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/nautilus/AbstractNautilusMixin_API.java index 017fc3a1fac..9104f1b2163 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/nautilus/AbstractNautilusMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/nautilus/AbstractNautilusMixin_API.java @@ -24,11 +24,16 @@ */ package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.nautilus; +import net.minecraft.world.SimpleContainer; import net.minecraft.world.entity.animal.nautilus.AbstractNautilus; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.entity.living.animal.NautilusLike; +import org.spongepowered.api.item.inventory.Carrier; +import org.spongepowered.api.item.inventory.type.CarriedInventory; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.common.inventory.util.InventoryUtil; import org.spongepowered.common.mixin.api.minecraft.world.entity.TamableAnimalMixin_API; import java.util.Set; @@ -36,6 +41,8 @@ @Mixin(AbstractNautilus.class) public abstract class AbstractNautilusMixin_API extends TamableAnimalMixin_API implements NautilusLike { + @Shadow protected SimpleContainer inventory; + @Override protected Set> api$getVanillaValues() { final Set> values = super.api$getVanillaValues(); @@ -47,4 +54,10 @@ public abstract class AbstractNautilusMixin_API extends TamableAnimalMixin_API i return values; } + + + @Override + public CarriedInventory inventory() { + return InventoryUtil.carriedWrapperInventory(this.inventory, this); + } } diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/player/PlayerMixin_Attack.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/player/PlayerMixin_Attack.java index bc777208c54..620c915aae9 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/player/PlayerMixin_Attack.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/player/PlayerMixin_Attack.java @@ -140,7 +140,7 @@ public abstract class PlayerMixin_Attack extends LivingEntityMixin_Damage implem } @Inject(method = "attack", - at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;makeSound(Lnet/minecraft/sounds/SoundEvent;)V"), slice = @Slice( + at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;playServerSideSound(Lnet/minecraft/sounds/SoundEvent;)V"), slice = @Slice( from = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;isSprinting()Z", ordinal = 0), to = @At(value = "INVOKE", target = "Lnet/minecraft/world/item/Item;getAttackDamageBonus(Lnet/minecraft/world/entity/Entity;FLnet/minecraft/world/damagesource/DamageSource;)F"))) private void attack$captureStrongSprint(final Entity target, final CallbackInfo ci) { diff --git a/src/mixins/java/org/spongepowered/common/mixin/inventory/event/server/level/ServerPlayerMixin_Inventory.java b/src/mixins/java/org/spongepowered/common/mixin/inventory/event/server/level/ServerPlayerMixin_Inventory.java index 85edb4588c2..e785812bec4 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/inventory/event/server/level/ServerPlayerMixin_Inventory.java +++ b/src/mixins/java/org/spongepowered/common/mixin/inventory/event/server/level/ServerPlayerMixin_Inventory.java @@ -29,7 +29,7 @@ import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import com.llamalad7.mixinextras.sugar.Cancellable; import net.minecraft.network.protocol.Packet; -import net.minecraft.network.protocol.game.ClientboundHorseScreenOpenPacket; +import net.minecraft.network.protocol.game.ClientboundMountScreenOpenPacket; import net.minecraft.network.protocol.game.ClientboundOpenScreenPacket; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; @@ -226,7 +226,7 @@ public abstract class ServerPlayerMixin_Inventory extends PlayerMixin_Inventory ci.cancel(); return menu; } - this.connection.send(new ClientboundHorseScreenOpenPacket(menu.containerId, $$4, $$3.getId())); + this.connection.send(new ClientboundMountScreenOpenPacket(menu.containerId, $$4, $$3.getId())); return menu; } diff --git a/src/mixins/java/org/spongepowered/common/mixin/inventory/impl/TraitMixin_ContainerBridge_Inventory.java b/src/mixins/java/org/spongepowered/common/mixin/inventory/impl/TraitMixin_ContainerBridge_Inventory.java index 240d7dbafec..36727641425 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/inventory/impl/TraitMixin_ContainerBridge_Inventory.java +++ b/src/mixins/java/org/spongepowered/common/mixin/inventory/impl/TraitMixin_ContainerBridge_Inventory.java @@ -27,6 +27,7 @@ import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.inventory.AbstractFurnaceMenu; +import net.minecraft.world.inventory.AbstractMountInventoryMenu; import net.minecraft.world.inventory.BeaconMenu; import net.minecraft.world.inventory.BrewingStandMenu; import net.minecraft.world.inventory.ChestMenu; @@ -34,7 +35,6 @@ import net.minecraft.world.inventory.DispenserMenu; import net.minecraft.world.inventory.EnchantmentMenu; import net.minecraft.world.inventory.HopperMenu; -import net.minecraft.world.inventory.HorseInventoryMenu; import net.minecraft.world.inventory.InventoryMenu; import net.minecraft.world.inventory.ItemCombinerMenu; import net.minecraft.world.inventory.MenuType; @@ -60,7 +60,7 @@ ItemCombinerMenu.class, BrewingStandMenu.class, BeaconMenu.class, - HorseInventoryMenu.class, + AbstractMountInventoryMenu.class, MerchantMenu.class, InventoryMenu.class, CraftingMenu.class From 4779343b9d05cc1eea452a4238eceec9619d3dbb Mon Sep 17 00:00:00 2001 From: Gabriel Harris-Rouquette Date: Wed, 10 Dec 2025 00:09:22 -0800 Subject: [PATCH 09/13] feat(minecraft): update to 1.21.11-pre1 Notable Changes: - Entity classes were reshuffled in packages Additions: - Added sound event See https://minecraft.wiki/w/Java_Edition_1.21.11_Pre-Release_1 --- SpongeAPI | 2 +- .../world/entities/EntityRegistries.java | 22 +- gradle.properties | 2 +- gradle/verification-metadata.xml | 14 ++ .../AbstractChestedHorseEntityAccessor.java | 4 +- .../AbstractMinecartAccessor.java | 4 +- .../animal/{ => cow}/MooshroomAccessor.java | 4 +- .../AbstractHorseAccessor.java | 4 +- .../{horse => equine}/HorseAccessor.java | 4 +- .../{horse => equine}/LlamaAccessor.java | 4 +- .../TraderLlamaAccessor.java | 4 +- .../animal/{ => feline}/CatAccessor.java | 6 +- .../animal/{ => feline}/OcelotAccessor.java | 4 +- .../animal/{ => fish}/PufferfishAccessor.java | 4 +- .../{ => fish}/TropicalFishAccessor.java | 4 +- .../entity/animal/{ => fox}/FoxAccessor.java | 4 +- .../animal/{ => panda}/PandaAccessor.java | 4 +- .../animal/{ => parrot}/ParrotAccessor.java | 4 +- .../entity/animal/{ => pig}/PigAccessor.java | 6 +- .../animal/{ => rabbit}/RabbitAccessor.java | 4 +- .../animal/{ => turtle}/TurtleAccessor.java | 4 +- .../{ => painting}/PaintingAccessor.java | 6 +- .../monster/{ => illager}/EvokerAccessor.java | 4 +- .../{ => illager}/PillagerAccessor.java | 4 +- .../SpellcasterIllagerAccessor.java | 4 +- .../{ => illager}/VindicatorAccessor.java | 4 +- .../{ => zombie}/ZombifiedPiglinAccessor.java | 4 +- .../AbstractVillagerAccessor.java | 4 +- .../{ => arrow}/AbstractArrowAccessor.java | 4 +- .../projectile/{ => arrow}/ArrowAccessor.java | 4 +- .../{ => boat}/AbstractBoatAccessor.java | 4 +- .../MinecartFurnaceAccessor.java | 4 +- .../resources/mixins.sponge.accessors.json | 56 ++--- .../provider/entity/AbstractArrowData.java | 4 +- .../entity/AbstractChestedHorseData.java | 2 +- .../provider/entity/AbstractHorseData.java | 4 +- .../provider/entity/AbstractMinecartData.java | 4 +- .../provider/entity/AbstractVillagerData.java | 2 +- .../data/provider/entity/ArrowData.java | 4 +- .../common/data/provider/entity/BoatData.java | 6 +- .../common/data/provider/entity/CatData.java | 6 +- .../data/provider/entity/ChickenData.java | 4 +- .../entity/CommandBlockMinecartData.java | 2 +- .../common/data/provider/entity/CowData.java | 4 +- .../entity/DamagingProjectileData.java | 2 +- .../data/provider/entity/DolphinData.java | 2 +- .../data/provider/entity/EvokerData.java | 2 +- .../common/data/provider/entity/FoxData.java | 4 +- .../provider/entity/FurnaceMinecartData.java | 2 +- .../data/provider/entity/HorseData.java | 4 +- .../data/provider/entity/IronGolemData.java | 2 +- .../data/provider/entity/LlamaData.java | 4 +- .../data/provider/entity/MooshroomData.java | 4 +- .../data/provider/entity/OcelotData.java | 2 +- .../data/provider/entity/PaintingData.java | 6 +- .../data/provider/entity/PandaData.java | 4 +- .../data/provider/entity/ParrotData.java | 4 +- .../common/data/provider/entity/PigData.java | 6 +- .../data/provider/entity/PillagerData.java | 4 +- .../data/provider/entity/PolarBearData.java | 2 +- .../data/provider/entity/PotionData.java | 2 +- .../data/provider/entity/PufferfishData.java | 4 +- .../data/provider/entity/RabbitData.java | 4 +- .../data/provider/entity/SalmonData.java | 2 +- .../entity/SpellcastingIllagerData.java | 4 +- .../data/provider/entity/SpiderData.java | 2 +- .../entity/ThrowableItemProjectileData.java | 2 +- .../data/provider/entity/TraderLlamaData.java | 2 +- .../provider/entity/TropicalFishData.java | 4 +- .../data/provider/entity/TurtleData.java | 4 +- .../data/provider/entity/VillagerData.java | 10 +- .../data/provider/entity/VindicatorData.java | 2 +- .../data/provider/entity/ZombieData.java | 2 +- .../provider/entity/ZombieVillagerData.java | 6 +- .../provider/entity/ZombifiedPiglinData.java | 2 +- .../data/provider/world/biome/BiomeData.java | 4 +- .../data/type/SpongeArtTypeBuilder.java | 2 +- .../SpongeRunAroundLikeCrazyAIBuilder.java | 2 +- .../entity/living/human/HumanEntity.java | 2 +- .../entity/projectile/ProjectileUtil.java | 26 +- .../inventory/InventoryEventFactory.java | 6 +- .../phase/packet/PacketPhaseUtil.java | 4 +- .../common/hooks/EntityHooks.java | 2 +- .../SpongeViewableInventoryBuilder.java | 4 +- .../inventory/lens/impl/LensRegistrar.java | 8 +- .../merchant/TradeOfferGeneratorWrapper.java | 2 +- .../loader/VanillaRegistryLoader.java | 24 +- .../world/server/SpongeWorldManager.java | 2 +- src/main/resources/common.accesswidener | 3 +- .../world/entity/SaddleableMixin_API.java | 2 +- .../entity/animal/{ => bee}/BeeMixin_API.java | 5 +- .../entity/animal/camel/CamelMixin_API.java | 2 +- .../{ => chicken}/ChickenMixin_API.java | 5 +- .../ChickenVariantMixin_API.java | 4 +- .../{ => cow}/AbstractCowMixin_API.java | 5 +- .../animal/{ => cow}/CowVariantMixin_API.java | 4 +- .../{ => cow}/MushroomCowMixin_API.java | 4 +- .../MushroomCow_MushroomTypeMixin_API.java | 4 +- .../{ => dolphin}/DolphinMixin_API.java | 5 +- .../AbstractChestedHorseMixin_API.java | 4 +- .../AbstractHorseMixin_API.java | 4 +- .../{horse => equine}/DonkeyMixin_API.java | 4 +- .../{horse => equine}/HorseMixin_API.java | 4 +- .../LLama_VariantMixin_API.java | 4 +- .../{horse => equine}/LlamaMixin_API.java | 4 +- .../{horse => equine}/MarkingsMixin_API.java | 4 +- .../{horse => equine}/MuleMixin_API.java | 4 +- .../SkeletonHorseMixin_API.java | 4 +- .../TraderLlamaMixin_API.java | 4 +- .../{horse => equine}/VariantMixin_API.java | 4 +- .../ZombieHorseMixin_API.java | 4 +- .../animal/{ => feline}/CatMixin_API.java | 4 +- .../{ => feline}/CatVariantMixin_API.java | 4 +- .../animal/{ => feline}/OcelotMixin_API.java | 5 +- .../{ => fish}/AbstractFishMixin_API.java | 4 +- .../AbstractSchoolingFishMixin_API.java | 4 +- .../animal/{ => fish}/CodMixin_API.java | 4 +- .../{ => fish}/PufferfishMixin_API.java | 4 +- .../animal/{ => fish}/SalmonMixin_API.java | 4 +- .../{ => fish}/SalmonVariantMixin_API.java | 4 +- .../{ => fish}/TropicalFishMixin_API.java | 4 +- .../TropicalFish_PatternMixin_API.java | 4 +- .../{ => fish}/WaterAnimalMixin_API.java | 4 +- .../entity/animal/{ => fox}/FoxMixin_API.java | 5 +- .../{ => fox}/Fox_VariantMixin_API.java | 4 +- .../{ => frog}/FrogVariantMixin_API.java | 2 +- .../entity/animal/frog/TadpoleMixin_API.java | 2 +- .../{ => golem}/AbstractGolemMixin_API.java | 4 +- .../animal/golem/CopperGolemMixin_API.java | 34 +++ .../{ => golem}/IronGolemMixin_API.java | 4 +- .../{ => golem}/SnowGolemMixin_API.java | 4 +- .../animal/{ => panda}/PandaMixin_API.java | 5 +- .../{ => panda}/Panda_GeneMixin_API.java | 4 +- .../animal/{ => parrot}/ParrotMixin_API.java | 4 +- .../{ => parrot}/Parrot_VariantMixin_API.java | 4 +- .../ShoulderRidingEntityMixin_API.java | 4 +- .../entity/animal/{ => pig}/PigMixin_API.java | 5 +- .../animal/{ => pig}/PigVariantMixin_API.java | 4 +- .../{ => polarbear}/PolarBearMixin_API.java | 5 +- .../animal/{ => rabbit}/RabbitMixin_API.java | 5 +- .../{ => rabbit}/Rabbit_VariantMixin_API.java | 4 +- .../squid}/GlowSquidMixin_API.java | 4 +- .../animal/{ => squid}/SquidMixin_API.java | 5 +- .../animal/{ => turtle}/TurtleMixin_API.java | 5 +- .../enderdragon/EnderDragonMixin_API.java | 4 +- .../EnderDragonPartMixin_API.java | 4 +- .../{ => painting}/PaintingMixin_API.java | 5 +- .../PaintingVariantMixin_API.java | 6 +- .../entity/monster/ShulkerMixin_API.java | 2 +- .../monster/{ => breeze}/BreezeMixin_API.java | 3 +- .../monster/{ => hoglin}/HoglinMixin_API.java | 2 +- .../AbstractIllagerMixin_API.java | 4 +- .../{ => illager}/EvokerMixin_API.java | 4 +- .../{ => illager}/IllusionerMixin_API.java | 4 +- .../{ => illager}/PillagerMixin_API.java | 4 +- .../SpellcasterIllagerMixin_API.java | 4 +- ...llcasterIllager_IllagerSpellMixin_API.java | 4 +- .../{ => illager}/VindicatorMixin_API.java | 4 +- .../{ => piglin}/AbstractPiglinMixin_API.java | 2 +- .../{ => piglin}/PiglinBruteMixin_API.java | 2 +- .../monster/{ => piglin}/PiglinMixin_API.java | 2 +- .../AbstractSkeletonMixin_API.java | 5 +- .../{ => skeleton}/BoggedMixin_API.java | 4 +- .../{ => skeleton}/ParchedMixin_API.java | 4 +- .../{ => skeleton}/SkeletonMixin_API.java | 4 +- .../{ => skeleton}/StrayMixin_API.java | 4 +- .../WitherSkeletonMixin_API.java | 4 +- .../{ => spider}/CaveSpiderMixin_API.java | 4 +- .../monster/{ => spider}/SpiderMixin_API.java | 5 +- .../{ => zombie}/DrownedMixin_API.java | 4 +- .../monster/{ => zombie}/HuskMixin_API.java | 4 +- .../monster/{ => zombie}/ZombieMixin_API.java | 5 +- .../{ => zombie}/ZombieVillagerMixin_API.java | 4 +- .../ZombifiedPiglinMixin_API.java | 4 +- .../AbstractVillagerMixin_API.java | 4 +- .../npc/{ => villager}/VillagerMixin_API.java | 4 +- .../VillagerProfessionMixin_API.java | 4 +- .../VillagerTrades_ItemListingMixin_API.java | 4 +- .../{ => villager}/VillagerTypeMixin_API.java | 4 +- .../WanderingTraderMixin_API.java | 5 +- .../{ => arrow}/AbstractArrowMixin_API.java | 5 +- .../AbstractArrow_PickupMixin_API.java | 4 +- .../{ => arrow}/ArrowMixin_API.java | 4 +- .../{ => arrow}/SpectralArrowMixin_API.java | 4 +- .../{ => arrow}/ThrownTridentMixin_API.java | 4 +- .../AbstractHurtingProjectileMixin_API.java | 5 +- .../DragonFireballMixin_API.java | 4 +- .../FireballMixin_API.java | 4 +- .../LargeFireballMixin_API.java | 4 +- .../SmallFireballMixin_API.java | 4 +- .../WitherSkullMixin_API.java | 4 +- .../AbstractWindChargeMixin_API.java | 4 +- .../windcharge/BreezeWindChargeMixin_API.java | 4 +- .../windcharge/WindChargeMixin_API.java | 4 +- .../SnowballMixin_API.java | 4 +- .../ThrowableItemProjectileMixin_API.java | 5 +- .../ThrownEggMixin_API.java | 4 +- .../ThrownEnderpearlMixin_API.java | 4 +- .../ThrownExperienceBottleMixin_API.java | 4 +- .../ThrownPotionMixin_API.java | 4 +- .../{ => boat}/AbstractBoatMixin_API.java | 4 +- .../AbstractChestBoatMixin_API.java | 4 +- .../AbstractMinecartContainerMixin_API.java | 4 +- .../AbstractMinecartMixin_API.java | 4 +- .../MinecartChestMixin_API.java | 4 +- .../MinecartCommandBlockMixin_API.java | 4 +- .../MinecartFurnaceMixin_API.java | 4 +- .../MinecartHopperMixin_API.java | 4 +- .../{ => minecart}/MinecartMixin_API.java | 4 +- .../MinecartSpawnerMixin_API.java | 4 +- .../{ => minecart}/MinecartTNTMixin_API.java | 4 +- .../service/permission/SubjectMixin_API.java | 2 +- .../core/server/level/ServerLevelMixin.java | 4 +- .../core/server/level/ServerPlayerMixin.java | 2 +- .../ServerGamePacketListenerImplMixin.java | 2 +- .../core/service/permission/SubjectMixin.java | 2 +- .../core/world/entity/EntityMaxAirMixin.java | 2 +- .../core/world/entity/GrieferBridgeMixin.java | 6 +- .../ai/behavior/HarvestFarmlandMixin.java | 4 +- .../ai/goal/RunAroundLikeCrazyGoalMixin.java | 6 +- .../{horse => equine}/AbstractHorseMixin.java | 4 +- .../Cat_CatRelaxOnOwnerGoalMixin.java | 10 +- .../animal/{ => feline}/OcelotMixin.java | 4 +- .../animal/{ => fish}/PufferfishMixin.java | 4 +- .../animal/{ => parrot}/ParrotMixin.java | 4 +- .../Rabbit_RaidGardenGoalMixin.java | 6 +- .../{ => zombie}/ZombifiedPiglinMixin.java | 5 +- .../{ => villager}/AbstractVillagerMixin.java | 4 +- .../npc/{ => villager}/VillagerMixin.java | 4 +- .../WanderingTraderMixin.java | 4 +- .../{ => arrow}/AbstractArrowMixin.java | 7 +- .../{ => arrow}/ThrownTridentMixin.java | 5 +- .../AbstractHurtingProjectileMixin.java | 7 +- .../LargeFireballMixin.java | 4 +- .../SmallFireballMixin.java | 4 +- .../WitherSkullMixin.java | 6 +- .../SnowballMixin.java | 5 +- .../ThrownEggMixin.java | 5 +- .../ThrownEnderpearlMixin.java | 5 +- .../vehicle/{ => boat}/AbstractBoatMixin.java | 4 +- .../AbstractMinecartContainerMixin.java | 4 +- .../{ => minecart}/AbstractMinecartMixin.java | 5 +- .../MinecartCommandBlockMixin.java | 4 +- ...CommandBlock_MinecartCommandBaseMixin.java | 6 +- .../{ => minecart}/MinecartFurnaceMixin.java | 4 +- .../{ => minecart}/MinecartTNTMixin.java | 6 +- .../OldMinecartBehaviourMixin.java | 8 +- ...ractArrowEntityMixin_EntityActivation.java | 4 +- .../TraitMixin_Viewable_Inventory_API.java | 4 +- ...tractHorseMixin_Carrier_Inventory_API.java | 4 +- .../PillagerMixin_Carrier_Inventory_API.java | 4 +- ...ctVillagerMixin_Carrier_Inventory_API.java | 4 +- ...tContainerMixin_Carried_Inventory_API.java | 4 +- ...tContainerMixin_Carrier_Inventory_API.java | 4 +- .../level/ServerPlayerMixin_Inventory.java | 4 +- .../TraitMixin_InventoryBridge_Inventory.java | 2 +- .../TraitMixin_ViewableBridge_Inventory.java | 4 +- ...raitMixin_TrackedMenuBridge_Inventory.java | 4 +- ...MenuMixin_TrackedMenuBridge_Inventory.java | 2 +- .../EntityActivationRange.java | 10 +- src/mixins/resources/mixins.sponge.api.json | 233 +++++++++--------- src/mixins/resources/mixins.sponge.core.json | 54 ++-- .../mixins.sponge.entityactivation.json | 2 +- .../resources/mixins.sponge.inventory.json | 10 +- .../{ => golem}/SnowGolemMixin_Vanilla.java | 4 +- .../{ => boat}/AbstractBoatMixin_Vanilla.java | 4 +- .../resources/mixins.spongevanilla.core.json | 4 +- 267 files changed, 793 insertions(+), 714 deletions(-) rename src/accessors/java/org/spongepowered/common/accessor/entity/{passive => animal/equine}/AbstractChestedHorseEntityAccessor.java (92%) rename src/accessors/java/org/spongepowered/common/accessor/entity/vehicle/{ => minecart}/AbstractMinecartAccessor.java (92%) rename src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/{ => cow}/MooshroomAccessor.java (92%) rename src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/{horse => equine}/AbstractHorseAccessor.java (92%) rename src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/{horse => equine}/HorseAccessor.java (92%) rename src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/{horse => equine}/LlamaAccessor.java (92%) rename src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/{horse => equine}/TraderLlamaAccessor.java (92%) rename src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/{ => feline}/CatAccessor.java (90%) rename src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/{ => feline}/OcelotAccessor.java (92%) rename src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/{ => fish}/PufferfishAccessor.java (92%) rename src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/{ => fish}/TropicalFishAccessor.java (94%) rename src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/{ => fox}/FoxAccessor.java (95%) rename src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/{ => panda}/PandaAccessor.java (92%) rename src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/{ => parrot}/ParrotAccessor.java (92%) rename src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/{ => pig}/PigAccessor.java (89%) rename src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/{ => rabbit}/RabbitAccessor.java (92%) rename src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/{ => turtle}/TurtleAccessor.java (94%) rename src/accessors/java/org/spongepowered/common/accessor/world/entity/decoration/{ => painting}/PaintingAccessor.java (91%) rename src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/{ => illager}/EvokerAccessor.java (92%) rename src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/{ => illager}/PillagerAccessor.java (92%) rename src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/{ => illager}/SpellcasterIllagerAccessor.java (92%) rename src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/{ => illager}/VindicatorAccessor.java (91%) rename src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/{ => zombie}/ZombifiedPiglinAccessor.java (92%) rename src/accessors/java/org/spongepowered/common/accessor/world/entity/npc/{ => villager}/AbstractVillagerAccessor.java (92%) rename src/accessors/java/org/spongepowered/common/accessor/world/entity/projectile/{ => arrow}/AbstractArrowAccessor.java (95%) rename src/accessors/java/org/spongepowered/common/accessor/world/entity/projectile/{ => arrow}/ArrowAccessor.java (96%) rename src/accessors/java/org/spongepowered/common/accessor/world/entity/vehicle/{ => boat}/AbstractBoatAccessor.java (91%) rename src/accessors/java/org/spongepowered/common/accessor/world/entity/vehicle/{ => minecart}/MinecartFurnaceAccessor.java (91%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => bee}/BeeMixin_API.java (90%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => chicken}/ChickenMixin_API.java (91%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => chicken}/ChickenVariantMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => cow}/AbstractCowMixin_API.java (89%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => cow}/CowVariantMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => cow}/MushroomCowMixin_API.java (96%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => cow}/MushroomCow_MushroomTypeMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => dolphin}/DolphinMixin_API.java (91%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{horse => equine}/AbstractChestedHorseMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{horse => equine}/AbstractHorseMixin_API.java (96%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{horse => equine}/DonkeyMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{horse => equine}/HorseMixin_API.java (96%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{horse => equine}/LLama_VariantMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{horse => equine}/LlamaMixin_API.java (96%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{horse => equine}/MarkingsMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{horse => equine}/MuleMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{horse => equine}/SkeletonHorseMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{horse => equine}/TraderLlamaMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{horse => equine}/VariantMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{horse => equine}/ZombieHorseMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => feline}/CatMixin_API.java (97%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => feline}/CatVariantMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => feline}/OcelotMixin_API.java (91%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => fish}/AbstractFishMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => fish}/AbstractSchoolingFishMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => fish}/CodMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => fish}/PufferfishMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => fish}/SalmonMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => fish}/SalmonVariantMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => fish}/TropicalFishMixin_API.java (96%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => fish}/TropicalFish_PatternMixin_API.java (96%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => fish}/WaterAnimalMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => fox}/FoxMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => fox}/Fox_VariantMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => frog}/FrogVariantMixin_API.java (99%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => golem}/AbstractGolemMixin_API.java (95%) create mode 100644 src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/golem/CopperGolemMixin_API.java rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => golem}/IronGolemMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => golem}/SnowGolemMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => panda}/PandaMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => panda}/Panda_GeneMixin_API.java (96%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => parrot}/ParrotMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => parrot}/Parrot_VariantMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => parrot}/ShoulderRidingEntityMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => pig}/PigMixin_API.java (92%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => pig}/PigVariantMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => polarbear}/PolarBearMixin_API.java (91%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => rabbit}/RabbitMixin_API.java (91%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => rabbit}/Rabbit_VariantMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/{ => animal/squid}/GlowSquidMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => squid}/SquidMixin_API.java (89%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/{ => turtle}/TurtleMixin_API.java (92%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/boss/{ => enderdragon}/EnderDragonPartMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/decoration/{ => painting}/PaintingMixin_API.java (90%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/decoration/{ => painting}/PaintingVariantMixin_API.java (87%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/{ => breeze}/BreezeMixin_API.java (93%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/{ => hoglin}/HoglinMixin_API.java (98%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/{ => illager}/AbstractIllagerMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/{ => illager}/EvokerMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/{ => illager}/IllusionerMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/{ => illager}/PillagerMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/{ => illager}/SpellcasterIllagerMixin_API.java (96%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/{ => illager}/SpellcasterIllager_IllagerSpellMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/{ => illager}/VindicatorMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/{ => piglin}/AbstractPiglinMixin_API.java (98%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/{ => piglin}/PiglinBruteMixin_API.java (98%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/{ => piglin}/PiglinMixin_API.java (98%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/{ => skeleton}/AbstractSkeletonMixin_API.java (89%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/{ => skeleton}/BoggedMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/{ => skeleton}/ParchedMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/{ => skeleton}/SkeletonMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/{ => skeleton}/StrayMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/{ => skeleton}/WitherSkeletonMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/{ => spider}/CaveSpiderMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/{ => spider}/SpiderMixin_API.java (91%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/{ => zombie}/DrownedMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/{ => zombie}/HuskMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/{ => zombie}/ZombieMixin_API.java (91%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/{ => zombie}/ZombieVillagerMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/{ => zombie}/ZombifiedPiglinMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/{ => villager}/AbstractVillagerMixin_API.java (96%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/{ => villager}/VillagerMixin_API.java (96%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/{ => villager}/VillagerProfessionMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/{ => villager}/VillagerTrades_ItemListingMixin_API.java (96%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/{ => villager}/VillagerTypeMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/{ => wanderingtrader}/WanderingTraderMixin_API.java (90%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/{ => arrow}/AbstractArrowMixin_API.java (92%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/{ => arrow}/AbstractArrow_PickupMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/{ => arrow}/ArrowMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/{ => arrow}/SpectralArrowMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/{ => arrow}/ThrownTridentMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/{ => hurtingprojectile}/AbstractHurtingProjectileMixin_API.java (89%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/{ => hurtingprojectile}/DragonFireballMixin_API.java (93%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/{ => hurtingprojectile}/FireballMixin_API.java (93%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/{ => hurtingprojectile}/LargeFireballMixin_API.java (96%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/{ => hurtingprojectile}/SmallFireballMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/{ => hurtingprojectile}/WitherSkullMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/{ => hurtingprojectile}/windcharge/AbstractWindChargeMixin_API.java (93%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/{ => hurtingprojectile}/windcharge/BreezeWindChargeMixin_API.java (91%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/{ => hurtingprojectile}/windcharge/WindChargeMixin_API.java (91%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/{ => throwableitemprojectile}/SnowballMixin_API.java (92%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/{ => throwableitemprojectile}/ThrowableItemProjectileMixin_API.java (88%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/{ => throwableitemprojectile}/ThrownEggMixin_API.java (92%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/{ => throwableitemprojectile}/ThrownEnderpearlMixin_API.java (92%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/{ => throwableitemprojectile}/ThrownExperienceBottleMixin_API.java (92%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/{ => throwableitemprojectile}/ThrownPotionMixin_API.java (93%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/{ => boat}/AbstractBoatMixin_API.java (96%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/{ => boat}/AbstractChestBoatMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/{ => minecart}/AbstractMinecartContainerMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/{ => minecart}/AbstractMinecartMixin_API.java (96%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/{ => minecart}/MinecartChestMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/{ => minecart}/MinecartCommandBlockMixin_API.java (96%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/{ => minecart}/MinecartFurnaceMixin_API.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/{ => minecart}/MinecartHopperMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/{ => minecart}/MinecartMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/{ => minecart}/MinecartSpawnerMixin_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/{ => minecart}/MinecartTNTMixin_API.java (96%) rename src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/{horse => equine}/AbstractHorseMixin.java (97%) rename src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/{ => feline}/Cat_CatRelaxOnOwnerGoalMixin.java (86%) rename src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/{ => feline}/OcelotMixin.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/{ => fish}/PufferfishMixin.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/{ => parrot}/ParrotMixin.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/{ => rabbit}/Rabbit_RaidGardenGoalMixin.java (92%) rename src/mixins/java/org/spongepowered/common/mixin/core/world/entity/monster/{ => zombie}/ZombifiedPiglinMixin.java (93%) rename src/mixins/java/org/spongepowered/common/mixin/core/world/entity/npc/{ => villager}/AbstractVillagerMixin.java (91%) rename src/mixins/java/org/spongepowered/common/mixin/core/world/entity/npc/{ => villager}/VillagerMixin.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/core/world/entity/npc/{ => wanderingtrader}/WanderingTraderMixin.java (93%) rename src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/{ => arrow}/AbstractArrowMixin.java (97%) rename src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/{ => arrow}/ThrownTridentMixin.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/{ => hurtingprojectile}/AbstractHurtingProjectileMixin.java (86%) rename src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/{ => hurtingprojectile}/LargeFireballMixin.java (97%) rename src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/{ => hurtingprojectile}/SmallFireballMixin.java (96%) rename src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/{ => hurtingprojectile}/WitherSkullMixin.java (96%) rename src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/{ => throwableitemprojectile}/SnowballMixin.java (90%) rename src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/{ => throwableitemprojectile}/ThrownEggMixin.java (90%) rename src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/{ => throwableitemprojectile}/ThrownEnderpearlMixin.java (93%) rename src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/{ => boat}/AbstractBoatMixin.java (98%) rename src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/{ => minecart}/AbstractMinecartContainerMixin.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/{ => minecart}/AbstractMinecartMixin.java (97%) rename src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/{ => minecart}/MinecartCommandBlockMixin.java (97%) rename src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/{ => minecart}/MinecartCommandBlock_MinecartCommandBaseMixin.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/{ => minecart}/MinecartFurnaceMixin.java (96%) rename src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/{ => minecart}/MinecartTNTMixin.java (96%) rename src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/{ => minecart}/OldMinecartBehaviourMixin.java (88%) rename src/mixins/java/org/spongepowered/common/mixin/entityactivation/entity/projectile/{ => arrow}/AbstractArrowEntityMixin_EntityActivation.java (95%) rename src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/animal/{horse => equine}/AbstractHorseMixin_Carrier_Inventory_API.java (96%) rename src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/monster/{ => illager}/PillagerMixin_Carrier_Inventory_API.java (96%) rename src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/npc/{ => villager}/AbstractVillagerMixin_Carrier_Inventory_API.java (96%) rename src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/vehicle/{ => minecart}/AbstractMinecartContainerMixin_Carried_Inventory_API.java (94%) rename src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/vehicle/{ => minecart}/AbstractMinecartContainerMixin_Carrier_Inventory_API.java (94%) rename vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/entity/animal/{ => golem}/SnowGolemMixin_Vanilla.java (96%) rename vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/entity/vehicle/{ => boat}/AbstractBoatMixin_Vanilla.java (96%) diff --git a/SpongeAPI b/SpongeAPI index b0b09001136..307eddfad1f 160000 --- a/SpongeAPI +++ b/SpongeAPI @@ -1 +1 @@ -Subproject commit b0b09001136e6d81e8c15698778d56b35b5514f2 +Subproject commit 307eddfad1f2a9b84071039bb10949f8d138c8dd diff --git a/generator/src/main/java/org/spongepowered/vanilla/generator/world/entities/EntityRegistries.java b/generator/src/main/java/org/spongepowered/vanilla/generator/world/entities/EntityRegistries.java index a56cd09d1fa..cc947bd5e67 100644 --- a/generator/src/main/java/org/spongepowered/vanilla/generator/world/entities/EntityRegistries.java +++ b/generator/src/main/java/org/spongepowered/vanilla/generator/world/entities/EntityRegistries.java @@ -30,18 +30,18 @@ import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.EquipmentSlotGroup; import net.minecraft.world.entity.MobCategory; -import net.minecraft.world.entity.animal.Fox; -import net.minecraft.world.entity.animal.MushroomCow; -import net.minecraft.world.entity.animal.Panda; -import net.minecraft.world.entity.animal.Parrot; -import net.minecraft.world.entity.animal.Rabbit; -import net.minecraft.world.entity.animal.Salmon; -import net.minecraft.world.entity.animal.TropicalFish; import net.minecraft.world.entity.animal.axolotl.Axolotl; -import net.minecraft.world.entity.animal.horse.Llama; -import net.minecraft.world.entity.animal.horse.Markings; -import net.minecraft.world.entity.animal.horse.Variant; -import net.minecraft.world.entity.monster.SpellcasterIllager; +import net.minecraft.world.entity.animal.cow.MushroomCow; +import net.minecraft.world.entity.animal.equine.Llama; +import net.minecraft.world.entity.animal.equine.Markings; +import net.minecraft.world.entity.animal.equine.Variant; +import net.minecraft.world.entity.animal.fish.Salmon; +import net.minecraft.world.entity.animal.fish.TropicalFish; +import net.minecraft.world.entity.animal.fox.Fox; +import net.minecraft.world.entity.animal.panda.Panda; +import net.minecraft.world.entity.animal.parrot.Parrot; +import net.minecraft.world.entity.animal.rabbit.Rabbit; +import net.minecraft.world.entity.monster.illager.SpellcasterIllager; import org.spongepowered.vanilla.generator.Context; import org.spongepowered.vanilla.generator.EnumEntriesValidator; import org.spongepowered.vanilla.generator.Generator; diff --git a/gradle.properties b/gradle.properties index 82c3d4e0d6d..b5c947e420d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ mixinConfigs=mixins.sponge.accessors.json,mixins.sponge.api.json,mixins.sponge.c mixins.sponge.entityactivation.json,mixins.sponge.exploit.json,mixins.sponge.inventory.json,mixins.sponge.movementcheck.json,\ mixins.sponge.tracker.json,mixins.sponge.ipforward.json,mixins.sponge.optimization.json,mixins.sponge.test.json -minecraftVersion=25w46a +minecraftVersion=1.21.11-pre1 recommendedVersion=0-SNAPSHOT org.gradle.dependency.verification.console=verbose diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index a4addc207b8..94cd74e12d1 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -1811,6 +1811,20 @@ + + + + + + + + + + + + + + diff --git a/src/accessors/java/org/spongepowered/common/accessor/entity/passive/AbstractChestedHorseEntityAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/entity/animal/equine/AbstractChestedHorseEntityAccessor.java similarity index 92% rename from src/accessors/java/org/spongepowered/common/accessor/entity/passive/AbstractChestedHorseEntityAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/entity/animal/equine/AbstractChestedHorseEntityAccessor.java index da4386c2b96..45d68eaf136 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/entity/passive/AbstractChestedHorseEntityAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/entity/animal/equine/AbstractChestedHorseEntityAccessor.java @@ -22,10 +22,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.entity.passive; +package org.spongepowered.common.accessor.entity.animal.equine; import net.minecraft.network.syncher.EntityDataAccessor; -import net.minecraft.world.entity.animal.horse.AbstractChestedHorse; +import net.minecraft.world.entity.animal.equine.AbstractChestedHorse; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; import org.spongepowered.common.UntransformedAccessorError; diff --git a/src/accessors/java/org/spongepowered/common/accessor/entity/vehicle/AbstractMinecartAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/entity/vehicle/minecart/AbstractMinecartAccessor.java similarity index 92% rename from src/accessors/java/org/spongepowered/common/accessor/entity/vehicle/AbstractMinecartAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/entity/vehicle/minecart/AbstractMinecartAccessor.java index 49108ce7dcb..a95b583c59f 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/entity/vehicle/AbstractMinecartAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/entity/vehicle/minecart/AbstractMinecartAccessor.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.entity.vehicle; +package org.spongepowered.common.accessor.entity.vehicle.minecart; -import net.minecraft.world.entity.vehicle.AbstractMinecart; +import net.minecraft.world.entity.vehicle.minecart.AbstractMinecart; import net.minecraft.world.level.block.state.BlockState; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Invoker; diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/MooshroomAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/cow/MooshroomAccessor.java similarity index 92% rename from src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/MooshroomAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/cow/MooshroomAccessor.java index 90a3a1b3400..2a0c87e9d7f 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/MooshroomAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/cow/MooshroomAccessor.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.world.entity.animal; +package org.spongepowered.common.accessor.world.entity.animal.cow; -import net.minecraft.world.entity.animal.MushroomCow; +import net.minecraft.world.entity.animal.cow.MushroomCow; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Invoker; diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/horse/AbstractHorseAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/equine/AbstractHorseAccessor.java similarity index 92% rename from src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/horse/AbstractHorseAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/equine/AbstractHorseAccessor.java index db34c538344..1d66b24c54b 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/horse/AbstractHorseAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/equine/AbstractHorseAccessor.java @@ -22,11 +22,11 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.world.entity.animal.horse; +package org.spongepowered.common.accessor.world.entity.animal.equine; import net.minecraft.world.entity.EntityReference; import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.animal.horse.AbstractHorse; +import net.minecraft.world.entity.animal.equine.AbstractHorse; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/horse/HorseAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/equine/HorseAccessor.java similarity index 92% rename from src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/horse/HorseAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/equine/HorseAccessor.java index 3e51d825acc..44c8194f034 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/horse/HorseAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/equine/HorseAccessor.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.world.entity.animal.horse; +package org.spongepowered.common.accessor.world.entity.animal.equine; -import net.minecraft.world.entity.animal.horse.Horse; +import net.minecraft.world.entity.animal.equine.Horse; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Invoker; diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/horse/LlamaAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/equine/LlamaAccessor.java similarity index 92% rename from src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/horse/LlamaAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/equine/LlamaAccessor.java index 71dbf4dce10..5b00f50fa55 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/horse/LlamaAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/equine/LlamaAccessor.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.world.entity.animal.horse; +package org.spongepowered.common.accessor.world.entity.animal.equine; -import net.minecraft.world.entity.animal.horse.Llama; +import net.minecraft.world.entity.animal.equine.Llama; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Invoker; diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/horse/TraderLlamaAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/equine/TraderLlamaAccessor.java similarity index 92% rename from src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/horse/TraderLlamaAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/equine/TraderLlamaAccessor.java index 68de982a58d..52bbd33c7cc 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/horse/TraderLlamaAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/equine/TraderLlamaAccessor.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.world.entity.animal.horse; +package org.spongepowered.common.accessor.world.entity.animal.equine; -import net.minecraft.world.entity.animal.horse.TraderLlama; +import net.minecraft.world.entity.animal.equine.TraderLlama; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/CatAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/feline/CatAccessor.java similarity index 90% rename from src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/CatAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/feline/CatAccessor.java index 22d4b2e3cf4..25a48474b53 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/CatAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/feline/CatAccessor.java @@ -22,11 +22,11 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.world.entity.animal; +package org.spongepowered.common.accessor.world.entity.animal.feline; import net.minecraft.core.Holder; -import net.minecraft.world.entity.animal.Cat; -import net.minecraft.world.entity.animal.CatVariant; +import net.minecraft.world.entity.animal.feline.Cat; +import net.minecraft.world.entity.animal.feline.CatVariant; import net.minecraft.world.item.DyeColor; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Invoker; diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/OcelotAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/feline/OcelotAccessor.java similarity index 92% rename from src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/OcelotAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/feline/OcelotAccessor.java index 79c98363632..1ede97ac4d1 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/OcelotAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/feline/OcelotAccessor.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.world.entity.animal; +package org.spongepowered.common.accessor.world.entity.animal.feline; -import net.minecraft.world.entity.animal.Ocelot; +import net.minecraft.world.entity.animal.feline.Ocelot; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Invoker; diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/PufferfishAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/fish/PufferfishAccessor.java similarity index 92% rename from src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/PufferfishAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/fish/PufferfishAccessor.java index e3ae8be5138..5060c719199 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/PufferfishAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/fish/PufferfishAccessor.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.world.entity.animal; +package org.spongepowered.common.accessor.world.entity.animal.fish; -import net.minecraft.world.entity.animal.Pufferfish; +import net.minecraft.world.entity.animal.fish.Pufferfish; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Invoker; import org.spongepowered.common.UntransformedInvokerError; diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/TropicalFishAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/fish/TropicalFishAccessor.java similarity index 94% rename from src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/TropicalFishAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/fish/TropicalFishAccessor.java index 1da1181ff1a..13f3b955bb4 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/TropicalFishAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/fish/TropicalFishAccessor.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.world.entity.animal; +package org.spongepowered.common.accessor.world.entity.animal.fish; -import net.minecraft.world.entity.animal.TropicalFish; +import net.minecraft.world.entity.animal.fish.TropicalFish; import net.minecraft.world.item.DyeColor; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Invoker; diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/FoxAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/fox/FoxAccessor.java similarity index 95% rename from src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/FoxAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/fox/FoxAccessor.java index 60245abf302..140de226c25 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/FoxAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/fox/FoxAccessor.java @@ -22,12 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.world.entity.animal; +package org.spongepowered.common.accessor.world.entity.animal.fox; import net.minecraft.network.syncher.EntityDataAccessor; import net.minecraft.world.entity.EntityReference; import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.animal.Fox; +import net.minecraft.world.entity.animal.fox.Fox; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; import org.spongepowered.asm.mixin.gen.Invoker; diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/PandaAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/panda/PandaAccessor.java similarity index 92% rename from src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/PandaAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/panda/PandaAccessor.java index 108632523f4..399206e5794 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/PandaAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/panda/PandaAccessor.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.world.entity.animal; +package org.spongepowered.common.accessor.world.entity.animal.panda; -import net.minecraft.world.entity.animal.Panda; +import net.minecraft.world.entity.animal.panda.Panda; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Invoker; diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/ParrotAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/parrot/ParrotAccessor.java similarity index 92% rename from src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/ParrotAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/parrot/ParrotAccessor.java index 2a8964e32ee..a22b68a2e17 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/ParrotAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/parrot/ParrotAccessor.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.world.entity.animal; +package org.spongepowered.common.accessor.world.entity.animal.parrot; -import net.minecraft.world.entity.animal.Parrot; +import net.minecraft.world.entity.animal.parrot.Parrot; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Invoker; diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/PigAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/pig/PigAccessor.java similarity index 89% rename from src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/PigAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/pig/PigAccessor.java index dfaef2f422e..e0ad6acb08d 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/PigAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/pig/PigAccessor.java @@ -22,11 +22,11 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.world.entity.animal; +package org.spongepowered.common.accessor.world.entity.animal.pig; import net.minecraft.core.Holder; -import net.minecraft.world.entity.animal.Pig; -import net.minecraft.world.entity.animal.PigVariant; +import net.minecraft.world.entity.animal.pig.Pig; +import net.minecraft.world.entity.animal.pig.PigVariant; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Invoker; diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/RabbitAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/rabbit/RabbitAccessor.java similarity index 92% rename from src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/RabbitAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/rabbit/RabbitAccessor.java index 167e4e0ef4d..8bc5ce21117 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/RabbitAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/rabbit/RabbitAccessor.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.world.entity.animal; +package org.spongepowered.common.accessor.world.entity.animal.rabbit; -import net.minecraft.world.entity.animal.Rabbit; +import net.minecraft.world.entity.animal.rabbit.Rabbit; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Invoker; diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/TurtleAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/turtle/TurtleAccessor.java similarity index 94% rename from src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/TurtleAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/turtle/TurtleAccessor.java index 1ade4b94020..84408ef5102 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/TurtleAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/animal/turtle/TurtleAccessor.java @@ -22,10 +22,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.world.entity.animal; +package org.spongepowered.common.accessor.world.entity.animal.turtle; import net.minecraft.core.BlockPos; -import net.minecraft.world.entity.animal.Turtle; +import net.minecraft.world.entity.animal.turtle.Turtle; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; import org.spongepowered.asm.mixin.gen.Invoker; diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/decoration/PaintingAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/decoration/painting/PaintingAccessor.java similarity index 91% rename from src/accessors/java/org/spongepowered/common/accessor/world/entity/decoration/PaintingAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/world/entity/decoration/painting/PaintingAccessor.java index c9f442fadfa..eb4b8a1f96d 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/decoration/PaintingAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/decoration/painting/PaintingAccessor.java @@ -22,11 +22,11 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.world.entity.decoration; +package org.spongepowered.common.accessor.world.entity.decoration.painting; import net.minecraft.core.Holder; -import net.minecraft.world.entity.decoration.Painting; -import net.minecraft.world.entity.decoration.PaintingVariant; +import net.minecraft.world.entity.decoration.painting.Painting; +import net.minecraft.world.entity.decoration.painting.PaintingVariant; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Invoker; diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/EvokerAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/illager/EvokerAccessor.java similarity index 92% rename from src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/EvokerAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/illager/EvokerAccessor.java index 0c4d871b379..29293ef376c 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/EvokerAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/illager/EvokerAccessor.java @@ -22,10 +22,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.world.entity.monster; +package org.spongepowered.common.accessor.world.entity.monster.illager; import net.minecraft.world.entity.animal.sheep.Sheep; -import net.minecraft.world.entity.monster.Evoker; +import net.minecraft.world.entity.monster.illager.Evoker; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/PillagerAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/illager/PillagerAccessor.java similarity index 92% rename from src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/PillagerAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/illager/PillagerAccessor.java index 7096fe2af7c..328797e1e1c 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/PillagerAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/illager/PillagerAccessor.java @@ -22,10 +22,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.world.entity.monster; +package org.spongepowered.common.accessor.world.entity.monster.illager; import net.minecraft.network.syncher.EntityDataAccessor; -import net.minecraft.world.entity.monster.Pillager; +import net.minecraft.world.entity.monster.illager.Pillager; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; import org.spongepowered.common.UntransformedAccessorError; diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/SpellcasterIllagerAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/illager/SpellcasterIllagerAccessor.java similarity index 92% rename from src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/SpellcasterIllagerAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/illager/SpellcasterIllagerAccessor.java index 9ef5b5fa2f0..456016fb8b8 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/SpellcasterIllagerAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/illager/SpellcasterIllagerAccessor.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.world.entity.monster; +package org.spongepowered.common.accessor.world.entity.monster.illager; -import net.minecraft.world.entity.monster.SpellcasterIllager; +import net.minecraft.world.entity.monster.illager.SpellcasterIllager; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; import org.spongepowered.asm.mixin.gen.Invoker; diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/VindicatorAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/illager/VindicatorAccessor.java similarity index 91% rename from src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/VindicatorAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/illager/VindicatorAccessor.java index 4cfb51723b1..afedae4c32e 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/VindicatorAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/illager/VindicatorAccessor.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.world.entity.monster; +package org.spongepowered.common.accessor.world.entity.monster.illager; -import net.minecraft.world.entity.monster.Vindicator; +import net.minecraft.world.entity.monster.illager.Vindicator; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/ZombifiedPiglinAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/zombie/ZombifiedPiglinAccessor.java similarity index 92% rename from src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/ZombifiedPiglinAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/zombie/ZombifiedPiglinAccessor.java index 644030a22c0..321b56e95aa 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/ZombifiedPiglinAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/monster/zombie/ZombifiedPiglinAccessor.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.world.entity.monster; +package org.spongepowered.common.accessor.world.entity.monster.zombie; -import net.minecraft.world.entity.monster.ZombifiedPiglin; +import net.minecraft.world.entity.monster.zombie.ZombifiedPiglin; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/npc/AbstractVillagerAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/npc/villager/AbstractVillagerAccessor.java similarity index 92% rename from src/accessors/java/org/spongepowered/common/accessor/world/entity/npc/AbstractVillagerAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/world/entity/npc/villager/AbstractVillagerAccessor.java index 3bcb04f866b..4f78ae7cfd8 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/npc/AbstractVillagerAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/npc/villager/AbstractVillagerAccessor.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.world.entity.npc; +package org.spongepowered.common.accessor.world.entity.npc.villager; -import net.minecraft.world.entity.npc.AbstractVillager; +import net.minecraft.world.entity.npc.villager.AbstractVillager; import net.minecraft.world.item.trading.MerchantOffers; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/projectile/AbstractArrowAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/projectile/arrow/AbstractArrowAccessor.java similarity index 95% rename from src/accessors/java/org/spongepowered/common/accessor/world/entity/projectile/AbstractArrowAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/world/entity/projectile/arrow/AbstractArrowAccessor.java index 812c3a52ca9..b1933f77215 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/projectile/AbstractArrowAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/projectile/arrow/AbstractArrowAccessor.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.world.entity.projectile; +package org.spongepowered.common.accessor.world.entity.projectile.arrow; -import net.minecraft.world.entity.projectile.AbstractArrow; +import net.minecraft.world.entity.projectile.arrow.AbstractArrow; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/projectile/ArrowAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/projectile/arrow/ArrowAccessor.java similarity index 96% rename from src/accessors/java/org/spongepowered/common/accessor/world/entity/projectile/ArrowAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/world/entity/projectile/arrow/ArrowAccessor.java index 7e197ba4819..a8b2151b4d6 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/projectile/ArrowAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/projectile/arrow/ArrowAccessor.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.world.entity.projectile; +package org.spongepowered.common.accessor.world.entity.projectile.arrow; -import net.minecraft.world.entity.projectile.Arrow; +import net.minecraft.world.entity.projectile.arrow.Arrow; import net.minecraft.world.item.alchemy.PotionContents; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Invoker; diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/vehicle/AbstractBoatAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/vehicle/boat/AbstractBoatAccessor.java similarity index 91% rename from src/accessors/java/org/spongepowered/common/accessor/world/entity/vehicle/AbstractBoatAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/world/entity/vehicle/boat/AbstractBoatAccessor.java index 36f4de0698a..21008dca1ce 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/vehicle/AbstractBoatAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/vehicle/boat/AbstractBoatAccessor.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.world.entity.vehicle; +package org.spongepowered.common.accessor.world.entity.vehicle.boat; -import net.minecraft.world.entity.vehicle.AbstractBoat; +import net.minecraft.world.entity.vehicle.boat.AbstractBoat; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/vehicle/MinecartFurnaceAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/vehicle/minecart/MinecartFurnaceAccessor.java similarity index 91% rename from src/accessors/java/org/spongepowered/common/accessor/world/entity/vehicle/MinecartFurnaceAccessor.java rename to src/accessors/java/org/spongepowered/common/accessor/world/entity/vehicle/minecart/MinecartFurnaceAccessor.java index 12dbc06a13e..b60733608e3 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/vehicle/MinecartFurnaceAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/vehicle/minecart/MinecartFurnaceAccessor.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.accessor.world.entity.vehicle; +package org.spongepowered.common.accessor.world.entity.vehicle.minecart; -import net.minecraft.world.entity.vehicle.MinecartFurnace; +import net.minecraft.world.entity.vehicle.minecart.MinecartFurnace; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; diff --git a/src/accessors/resources/mixins.sponge.accessors.json b/src/accessors/resources/mixins.sponge.accessors.json index ab6f9cd2478..f2abde481fd 100644 --- a/src/accessors/resources/mixins.sponge.accessors.json +++ b/src/accessors/resources/mixins.sponge.accessors.json @@ -18,8 +18,8 @@ "commands.arguments.selector.options.EntitySelectorOptionsAccessor", "core.MappedRegistryAccessor", "entity.animal.frog.FrogAccessor", - "entity.passive.AbstractChestedHorseEntityAccessor", - "entity.vehicle.AbstractMinecartAccessor", + "entity.animal.equine.AbstractChestedHorseEntityAccessor", + "entity.vehicle.minecart.AbstractMinecartAccessor", "network.ConnectionAccessor", "network.chat.StyleAccessor", "network.protocol.game.ClientboundAddEntityPacketAccessor", @@ -75,22 +75,22 @@ "world.entity.PortalProcessorAccessor", "world.entity.ai.targeting.TargetingConditionsAccessor", "world.entity.animal.AnimalAccessor", - "world.entity.animal.CatAccessor", - "world.entity.animal.FoxAccessor", - "world.entity.animal.MooshroomAccessor", - "world.entity.animal.OcelotAccessor", - "world.entity.animal.PandaAccessor", - "world.entity.animal.ParrotAccessor", - "world.entity.animal.PigAccessor", - "world.entity.animal.PufferfishAccessor", - "world.entity.animal.RabbitAccessor", - "world.entity.animal.TropicalFishAccessor", - "world.entity.animal.TurtleAccessor", + "world.entity.animal.feline.CatAccessor", + "world.entity.animal.fox.FoxAccessor", + "world.entity.animal.cow.MooshroomAccessor", + "world.entity.animal.feline.OcelotAccessor", + "world.entity.animal.panda.PandaAccessor", + "world.entity.animal.parrot.ParrotAccessor", + "world.entity.animal.pig.PigAccessor", + "world.entity.animal.fish.PufferfishAccessor", + "world.entity.animal.rabbit.RabbitAccessor", + "world.entity.animal.fish.TropicalFishAccessor", + "world.entity.animal.turtle.TurtleAccessor", "world.entity.animal.frog.TadpoleAccessor", - "world.entity.animal.horse.AbstractHorseAccessor", - "world.entity.animal.horse.HorseAccessor", - "world.entity.animal.horse.LlamaAccessor", - "world.entity.animal.horse.TraderLlamaAccessor", + "world.entity.animal.equine.AbstractHorseAccessor", + "world.entity.animal.equine.HorseAccessor", + "world.entity.animal.equine.LlamaAccessor", + "world.entity.animal.equine.TraderLlamaAccessor", "world.entity.animal.sheep.SheepAccessor", "world.entity.animal.wolf.WolfAccessor", "world.entity.boss.enderdragon.phases.EnderDragonPhaseAccessor", @@ -98,29 +98,29 @@ "world.entity.decoration.ArmorStandAccessor", "world.entity.decoration.HangingEntityAccessor", "world.entity.decoration.ItemFrameAccessor", - "world.entity.decoration.PaintingAccessor", + "world.entity.decoration.painting.PaintingAccessor", "world.entity.item.FallingBlockEntityAccessor", "world.entity.item.PrimedTntAccessor", "world.entity.monster.BlazeAccessor", "world.entity.monster.CreeperAccessor", "world.entity.monster.EnderManAccessor", "world.entity.monster.EndermiteAccessor", - "world.entity.monster.EvokerAccessor", + "world.entity.monster.illager.EvokerAccessor", "world.entity.monster.GuardianAccessor", "world.entity.monster.PatrollingMonsterAccessor", "world.entity.monster.PhantomAccessor", - "world.entity.monster.PillagerAccessor", + "world.entity.monster.illager.PillagerAccessor", "world.entity.monster.RavagerAccessor", "world.entity.monster.SlimeAccessor", - "world.entity.monster.SpellcasterIllagerAccessor", + "world.entity.monster.illager.SpellcasterIllagerAccessor", "world.entity.monster.VexAccessor", - "world.entity.monster.VindicatorAccessor", - "world.entity.monster.ZombifiedPiglinAccessor", - "world.entity.npc.AbstractVillagerAccessor", + "world.entity.monster.illager.VindicatorAccessor", + "world.entity.monster.zombie.ZombifiedPiglinAccessor", + "world.entity.npc.villager.AbstractVillagerAccessor", "world.entity.player.AbilitiesAccessor", "world.entity.player.PlayerAccessor", - "world.entity.projectile.AbstractArrowAccessor", - "world.entity.projectile.ArrowAccessor", + "world.entity.projectile.arrow.AbstractArrowAccessor", + "world.entity.projectile.arrow.ArrowAccessor", "world.entity.projectile.EyeOfEnderAccessor", "world.entity.projectile.FireworkRocketEntityAccessor", "world.entity.projectile.FishingHookAccessor", @@ -128,8 +128,8 @@ "world.entity.raid.RaidAccessor", "world.entity.raid.RaiderAccessor", "world.entity.raid.RaidsAccessor", - "world.entity.vehicle.AbstractBoatAccessor", - "world.entity.vehicle.MinecartFurnaceAccessor", + "world.entity.vehicle.boat.AbstractBoatAccessor", + "world.entity.vehicle.minecart.MinecartFurnaceAccessor", "world.food.FoodDataAccessor", "world.inventory.AbstractContainerMenuAccessor", "world.inventory.AbstractCraftingMenuAccessor", diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/AbstractArrowData.java b/src/main/java/org/spongepowered/common/data/provider/entity/AbstractArrowData.java index df9f20c0230..da8e6203e2b 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/AbstractArrowData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/AbstractArrowData.java @@ -24,10 +24,10 @@ */ package org.spongepowered.common.data.provider.entity; -import net.minecraft.world.entity.projectile.AbstractArrow; +import net.minecraft.world.entity.projectile.arrow.AbstractArrow; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.type.PickupRule; -import org.spongepowered.common.accessor.world.entity.projectile.AbstractArrowAccessor; +import org.spongepowered.common.accessor.world.entity.projectile.arrow.AbstractArrowAccessor; import org.spongepowered.common.bridge.world.entity.projectile.AbstractArrowBridge; import org.spongepowered.common.data.provider.DataProviderRegistrator; diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/AbstractChestedHorseData.java b/src/main/java/org/spongepowered/common/data/provider/entity/AbstractChestedHorseData.java index 58958516445..ee091a26e54 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/AbstractChestedHorseData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/AbstractChestedHorseData.java @@ -24,7 +24,7 @@ */ package org.spongepowered.common.data.provider.entity; -import net.minecraft.world.entity.animal.horse.AbstractChestedHorse; +import net.minecraft.world.entity.animal.equine.AbstractChestedHorse; import org.spongepowered.api.data.Keys; import org.spongepowered.common.data.provider.DataProviderRegistrator; diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/AbstractHorseData.java b/src/main/java/org/spongepowered/common/data/provider/entity/AbstractHorseData.java index 4576e7471f5..96b72955d2f 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/AbstractHorseData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/AbstractHorseData.java @@ -25,9 +25,9 @@ package org.spongepowered.common.data.provider.entity; import net.minecraft.world.entity.EntityReference; -import net.minecraft.world.entity.animal.horse.AbstractHorse; +import net.minecraft.world.entity.animal.equine.AbstractHorse; import org.spongepowered.api.data.Keys; -import org.spongepowered.common.accessor.world.entity.animal.horse.AbstractHorseAccessor; +import org.spongepowered.common.accessor.world.entity.animal.equine.AbstractHorseAccessor; import org.spongepowered.common.bridge.world.entity.animal.horse.AbstractHorseBridge; import org.spongepowered.common.data.provider.DataProviderRegistrator; diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/AbstractMinecartData.java b/src/main/java/org/spongepowered/common/data/provider/entity/AbstractMinecartData.java index da6a08db815..64d14454958 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/AbstractMinecartData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/AbstractMinecartData.java @@ -26,12 +26,12 @@ import net.minecraft.core.BlockPos; import net.minecraft.tags.BlockTags; -import net.minecraft.world.entity.vehicle.AbstractMinecart; +import net.minecraft.world.entity.vehicle.minecart.AbstractMinecart; import org.spongepowered.api.ResourceKey; import org.spongepowered.api.block.BlockState; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.persistence.DataContentUpdater; -import org.spongepowered.common.accessor.entity.vehicle.AbstractMinecartAccessor; +import org.spongepowered.common.accessor.entity.vehicle.minecart.AbstractMinecartAccessor; import org.spongepowered.common.bridge.world.entity.vehicle.AbstractMinecartBridge; import org.spongepowered.common.data.ByteToBooleanContentUpdater; import org.spongepowered.common.data.SpongeDataManager; diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/AbstractVillagerData.java b/src/main/java/org/spongepowered/common/data/provider/entity/AbstractVillagerData.java index 52735629ee3..2befbf97419 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/AbstractVillagerData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/AbstractVillagerData.java @@ -24,7 +24,7 @@ */ package org.spongepowered.common.data.provider.entity; -import net.minecraft.world.entity.npc.AbstractVillager; +import net.minecraft.world.entity.npc.villager.AbstractVillager; import org.spongepowered.api.data.Keys; import org.spongepowered.api.entity.living.player.Player; import org.spongepowered.common.data.provider.DataProviderRegistrator; diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/ArrowData.java b/src/main/java/org/spongepowered/common/data/provider/entity/ArrowData.java index d10b56dbd69..f16ecd6df2e 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/ArrowData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/ArrowData.java @@ -25,13 +25,13 @@ package org.spongepowered.common.data.provider.entity; import net.minecraft.world.effect.MobEffectInstance; -import net.minecraft.world.entity.projectile.Arrow; +import net.minecraft.world.entity.projectile.arrow.Arrow; import net.minecraft.world.item.alchemy.PotionContents; import org.apache.commons.lang3.stream.Streams; import org.jetbrains.annotations.NotNull; import org.spongepowered.api.data.Keys; import org.spongepowered.api.effect.potion.PotionEffect; -import org.spongepowered.common.accessor.world.entity.projectile.ArrowAccessor; +import org.spongepowered.common.accessor.world.entity.projectile.arrow.ArrowAccessor; import org.spongepowered.common.data.provider.DataProviderRegistrator; import java.util.List; diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/BoatData.java b/src/main/java/org/spongepowered/common/data/provider/entity/BoatData.java index f5146dd7d27..df9d50fb6a9 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/BoatData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/BoatData.java @@ -24,12 +24,12 @@ */ package org.spongepowered.common.data.provider.entity; -import net.minecraft.world.entity.vehicle.AbstractBoat; -import net.minecraft.world.entity.vehicle.Boat; +import net.minecraft.world.entity.vehicle.boat.AbstractBoat; +import net.minecraft.world.entity.vehicle.boat.Boat; import org.spongepowered.api.ResourceKey; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.persistence.DataContentUpdater; -import org.spongepowered.common.accessor.world.entity.vehicle.AbstractBoatAccessor; +import org.spongepowered.common.accessor.world.entity.vehicle.boat.AbstractBoatAccessor; import org.spongepowered.common.bridge.world.entity.vehicle.AbstractBoatBridge; import org.spongepowered.common.data.ByteToBooleanContentUpdater; import org.spongepowered.common.data.SpongeDataManager; diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/CatData.java b/src/main/java/org/spongepowered/common/data/provider/entity/CatData.java index b8b0442bc8d..cac638ca49b 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/CatData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/CatData.java @@ -25,12 +25,12 @@ package org.spongepowered.common.data.provider.entity; import net.minecraft.core.Holder; -import net.minecraft.world.entity.animal.Cat; -import net.minecraft.world.entity.animal.CatVariant; +import net.minecraft.world.entity.animal.feline.Cat; +import net.minecraft.world.entity.animal.feline.CatVariant; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.type.CatType; import org.spongepowered.api.data.type.DyeColor; -import org.spongepowered.common.accessor.world.entity.animal.CatAccessor; +import org.spongepowered.common.accessor.world.entity.animal.feline.CatAccessor; import org.spongepowered.common.data.provider.DataProviderRegistrator; import org.spongepowered.common.util.MissingImplementationException; diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/ChickenData.java b/src/main/java/org/spongepowered/common/data/provider/entity/ChickenData.java index ddfe38d8e2f..5289fbef991 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/ChickenData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/ChickenData.java @@ -25,7 +25,7 @@ package org.spongepowered.common.data.provider.entity; import net.minecraft.core.registries.Registries; -import net.minecraft.world.entity.animal.Chicken; +import net.minecraft.world.entity.animal.chicken.Chicken; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.type.ChickenVariant; import org.spongepowered.common.data.provider.DataProviderRegistrator; @@ -54,7 +54,7 @@ public static void register(final DataProviderRegistrator registrator) { .get(h -> (ChickenVariant) (Object) h.getVariant().value()) .set((h, v) -> { final var holder = h.level().registryAccess().lookupOrThrow(Registries.CHICKEN_VARIANT) - .wrapAsHolder((net.minecraft.world.entity.animal.ChickenVariant) (Object) v); + .wrapAsHolder((net.minecraft.world.entity.animal.chicken.ChickenVariant) (Object) v); h.setVariant(holder); }); } diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/CommandBlockMinecartData.java b/src/main/java/org/spongepowered/common/data/provider/entity/CommandBlockMinecartData.java index ee00c87f8a6..1065855f7e8 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/CommandBlockMinecartData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/CommandBlockMinecartData.java @@ -25,7 +25,7 @@ package org.spongepowered.common.data.provider.entity; import net.minecraft.network.chat.Component; -import net.minecraft.world.entity.vehicle.MinecartCommandBlock; +import net.minecraft.world.entity.vehicle.minecart.MinecartCommandBlock; import org.spongepowered.api.data.Keys; import org.spongepowered.common.accessor.world.level.BaseCommandBlockAccessor; import org.spongepowered.common.adventure.SpongeAdventure; diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/CowData.java b/src/main/java/org/spongepowered/common/data/provider/entity/CowData.java index a86cfcaf9d4..017f734d8b9 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/CowData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/CowData.java @@ -25,7 +25,7 @@ package org.spongepowered.common.data.provider.entity; import net.minecraft.core.registries.Registries; -import net.minecraft.world.entity.animal.Cow; +import net.minecraft.world.entity.animal.cow.Cow; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.type.CowVariant; import org.spongepowered.common.data.provider.DataProviderRegistrator; @@ -43,7 +43,7 @@ public static void register(final DataProviderRegistrator registrator) { .get(h -> (CowVariant) (Object) h.getVariant().value()) .set((h, v) -> { final var holder = h.level().registryAccess().lookupOrThrow(Registries.COW_VARIANT) - .wrapAsHolder((net.minecraft.world.entity.animal.CowVariant) (Object) v); + .wrapAsHolder((net.minecraft.world.entity.animal.cow.CowVariant) (Object) v); h.setVariant(holder); }); } diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/DamagingProjectileData.java b/src/main/java/org/spongepowered/common/data/provider/entity/DamagingProjectileData.java index 637e43bf59b..3ee14260859 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/DamagingProjectileData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/DamagingProjectileData.java @@ -24,7 +24,7 @@ */ package org.spongepowered.common.data.provider.entity; -import net.minecraft.world.entity.projectile.AbstractHurtingProjectile; +import net.minecraft.world.entity.projectile.hurtingprojectile.AbstractHurtingProjectile; import org.spongepowered.api.data.Keys; import org.spongepowered.common.data.provider.DataProviderRegistrator; diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/DolphinData.java b/src/main/java/org/spongepowered/common/data/provider/entity/DolphinData.java index be838cdebb3..4a5aa9d00a2 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/DolphinData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/DolphinData.java @@ -24,7 +24,7 @@ */ package org.spongepowered.common.data.provider.entity; -import net.minecraft.world.entity.animal.Dolphin; +import net.minecraft.world.entity.animal.dolphin.Dolphin; import org.spongepowered.api.data.Keys; import org.spongepowered.common.data.provider.DataProviderRegistrator; diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/EvokerData.java b/src/main/java/org/spongepowered/common/data/provider/entity/EvokerData.java index 50ba45c0ba3..050aa8e4cc6 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/EvokerData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/EvokerData.java @@ -26,7 +26,7 @@ import org.spongepowered.api.data.Keys; import org.spongepowered.api.entity.living.animal.Sheep; -import org.spongepowered.common.accessor.world.entity.monster.EvokerAccessor; +import org.spongepowered.common.accessor.world.entity.monster.illager.EvokerAccessor; import org.spongepowered.common.data.provider.DataProviderRegistrator; public final class EvokerData { diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/FoxData.java b/src/main/java/org/spongepowered/common/data/provider/entity/FoxData.java index 1325ffea14b..163203e22ed 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/FoxData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/FoxData.java @@ -25,10 +25,10 @@ package org.spongepowered.common.data.provider.entity; import net.minecraft.world.entity.EntityReference; -import net.minecraft.world.entity.animal.Fox; +import net.minecraft.world.entity.animal.fox.Fox; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.type.FoxType; -import org.spongepowered.common.accessor.world.entity.animal.FoxAccessor; +import org.spongepowered.common.accessor.world.entity.animal.fox.FoxAccessor; import org.spongepowered.common.data.provider.DataProviderRegistrator; import java.util.Optional; diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/FurnaceMinecartData.java b/src/main/java/org/spongepowered/common/data/provider/entity/FurnaceMinecartData.java index c0b85677851..dc257ecd559 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/FurnaceMinecartData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/FurnaceMinecartData.java @@ -25,7 +25,7 @@ package org.spongepowered.common.data.provider.entity; import org.spongepowered.api.data.Keys; -import org.spongepowered.common.accessor.world.entity.vehicle.MinecartFurnaceAccessor; +import org.spongepowered.common.accessor.world.entity.vehicle.minecart.MinecartFurnaceAccessor; import org.spongepowered.common.data.provider.DataProviderRegistrator; public final class FurnaceMinecartData { diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/HorseData.java b/src/main/java/org/spongepowered/common/data/provider/entity/HorseData.java index 2f40374ac79..38a8585dadb 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/HorseData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/HorseData.java @@ -25,13 +25,13 @@ package org.spongepowered.common.data.provider.entity; import net.minecraft.core.MappedRegistry; -import net.minecraft.world.entity.animal.horse.Horse; +import net.minecraft.world.entity.animal.equine.Horse; import org.spongepowered.api.Sponge; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.type.HorseColor; import org.spongepowered.api.data.type.HorseStyle; import org.spongepowered.api.registry.RegistryTypes; -import org.spongepowered.common.accessor.world.entity.animal.horse.HorseAccessor; +import org.spongepowered.common.accessor.world.entity.animal.equine.HorseAccessor; import org.spongepowered.common.data.provider.DataProviderRegistrator; public final class HorseData { diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/IronGolemData.java b/src/main/java/org/spongepowered/common/data/provider/entity/IronGolemData.java index 53441f770ff..83f3a585789 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/IronGolemData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/IronGolemData.java @@ -24,7 +24,7 @@ */ package org.spongepowered.common.data.provider.entity; -import net.minecraft.world.entity.animal.IronGolem; +import net.minecraft.world.entity.animal.golem.IronGolem; import org.spongepowered.api.data.Keys; import org.spongepowered.common.data.provider.DataProviderRegistrator; diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/LlamaData.java b/src/main/java/org/spongepowered/common/data/provider/entity/LlamaData.java index 9ef0758d1ca..21245664a2d 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/LlamaData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/LlamaData.java @@ -24,10 +24,10 @@ */ package org.spongepowered.common.data.provider.entity; -import net.minecraft.world.entity.animal.horse.Llama; +import net.minecraft.world.entity.animal.equine.Llama; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.type.LlamaType; -import org.spongepowered.common.accessor.world.entity.animal.horse.LlamaAccessor; +import org.spongepowered.common.accessor.world.entity.animal.equine.LlamaAccessor; import org.spongepowered.common.data.provider.DataProviderRegistrator; public final class LlamaData { diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/MooshroomData.java b/src/main/java/org/spongepowered/common/data/provider/entity/MooshroomData.java index e340e1f6774..e9cb7e00fa0 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/MooshroomData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/MooshroomData.java @@ -24,10 +24,10 @@ */ package org.spongepowered.common.data.provider.entity; -import net.minecraft.world.entity.animal.MushroomCow; +import net.minecraft.world.entity.animal.cow.MushroomCow; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.type.MooshroomType; -import org.spongepowered.common.accessor.world.entity.animal.MooshroomAccessor; +import org.spongepowered.common.accessor.world.entity.animal.cow.MooshroomAccessor; import org.spongepowered.common.data.provider.DataProviderRegistrator; public final class MooshroomData { diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/OcelotData.java b/src/main/java/org/spongepowered/common/data/provider/entity/OcelotData.java index 636404e2d3a..361b5167a1f 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/OcelotData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/OcelotData.java @@ -25,7 +25,7 @@ package org.spongepowered.common.data.provider.entity; import org.spongepowered.api.data.Keys; -import org.spongepowered.common.accessor.world.entity.animal.OcelotAccessor; +import org.spongepowered.common.accessor.world.entity.animal.feline.OcelotAccessor; import org.spongepowered.common.data.provider.DataProviderRegistrator; public final class OcelotData { diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/PaintingData.java b/src/main/java/org/spongepowered/common/data/provider/entity/PaintingData.java index 33b1260e63a..e8e1fce95e8 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/PaintingData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/PaintingData.java @@ -29,15 +29,15 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.network.ServerPlayerConnection; -import net.minecraft.world.entity.decoration.Painting; -import net.minecraft.world.entity.decoration.PaintingVariant; +import net.minecraft.world.entity.decoration.painting.Painting; +import net.minecraft.world.entity.decoration.painting.PaintingVariant; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.type.ArtType; import org.spongepowered.common.SpongeCommon; import org.spongepowered.common.accessor.server.level.ChunkMapAccessor; import org.spongepowered.common.accessor.server.level.ChunkMap_TrackedEntityAccessor; import org.spongepowered.common.accessor.world.entity.decoration.HangingEntityAccessor; -import org.spongepowered.common.accessor.world.entity.decoration.PaintingAccessor; +import org.spongepowered.common.accessor.world.entity.decoration.painting.PaintingAccessor; import org.spongepowered.common.data.provider.DataProviderRegistrator; public final class PaintingData { diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/PandaData.java b/src/main/java/org/spongepowered/common/data/provider/entity/PandaData.java index 108618c2361..ebc827147ff 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/PandaData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/PandaData.java @@ -24,10 +24,10 @@ */ package org.spongepowered.common.data.provider.entity; -import net.minecraft.world.entity.animal.Panda; +import net.minecraft.world.entity.animal.panda.Panda; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.type.PandaGene; -import org.spongepowered.common.accessor.world.entity.animal.PandaAccessor; +import org.spongepowered.common.accessor.world.entity.animal.panda.PandaAccessor; import org.spongepowered.common.data.provider.DataProviderRegistrator; import org.spongepowered.common.util.SpongeTicks; diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/ParrotData.java b/src/main/java/org/spongepowered/common/data/provider/entity/ParrotData.java index b3b80751a6d..7c88008a879 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/ParrotData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/ParrotData.java @@ -24,10 +24,10 @@ */ package org.spongepowered.common.data.provider.entity; -import net.minecraft.world.entity.animal.Parrot; +import net.minecraft.world.entity.animal.parrot.Parrot; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.type.ParrotType; -import org.spongepowered.common.accessor.world.entity.animal.ParrotAccessor; +import org.spongepowered.common.accessor.world.entity.animal.parrot.ParrotAccessor; import org.spongepowered.common.data.provider.DataProviderRegistrator; public final class ParrotData { diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/PigData.java b/src/main/java/org/spongepowered/common/data/provider/entity/PigData.java index 539849f5758..c95735b4a19 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/PigData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/PigData.java @@ -26,13 +26,13 @@ import net.minecraft.core.registries.Registries; import net.minecraft.world.entity.EquipmentSlot; -import net.minecraft.world.entity.animal.Pig; -import net.minecraft.world.entity.animal.PigVariant; +import net.minecraft.world.entity.animal.pig.Pig; +import net.minecraft.world.entity.animal.pig.PigVariant; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.type.PigType; -import org.spongepowered.common.accessor.world.entity.animal.PigAccessor; +import org.spongepowered.common.accessor.world.entity.animal.pig.PigAccessor; import org.spongepowered.common.data.provider.DataProviderRegistrator; public final class PigData { diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/PillagerData.java b/src/main/java/org/spongepowered/common/data/provider/entity/PillagerData.java index 63165c7b34d..8976d5740be 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/PillagerData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/PillagerData.java @@ -24,9 +24,9 @@ */ package org.spongepowered.common.data.provider.entity; -import net.minecraft.world.entity.monster.Pillager; +import net.minecraft.world.entity.monster.illager.Pillager; import org.spongepowered.api.data.Keys; -import org.spongepowered.common.accessor.world.entity.monster.PillagerAccessor; +import org.spongepowered.common.accessor.world.entity.monster.illager.PillagerAccessor; import org.spongepowered.common.data.provider.DataProviderRegistrator; public final class PillagerData { diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/PolarBearData.java b/src/main/java/org/spongepowered/common/data/provider/entity/PolarBearData.java index 3bdbffef841..095dc447729 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/PolarBearData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/PolarBearData.java @@ -24,7 +24,7 @@ */ package org.spongepowered.common.data.provider.entity; -import net.minecraft.world.entity.animal.PolarBear; +import net.minecraft.world.entity.animal.polarbear.PolarBear; import org.spongepowered.api.data.Keys; import org.spongepowered.common.data.provider.DataProviderRegistrator; diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/PotionData.java b/src/main/java/org/spongepowered/common/data/provider/entity/PotionData.java index b800abdf95d..f0f35429966 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/PotionData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/PotionData.java @@ -26,7 +26,7 @@ import net.minecraft.core.component.DataComponents; import net.minecraft.world.effect.MobEffectInstance; -import net.minecraft.world.entity.projectile.AbstractThrownPotion; +import net.minecraft.world.entity.projectile.throwableitemprojectile.AbstractThrownPotion; import net.minecraft.world.item.alchemy.PotionContents; import org.apache.commons.lang3.stream.Streams; import org.spongepowered.api.data.Keys; diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/PufferfishData.java b/src/main/java/org/spongepowered/common/data/provider/entity/PufferfishData.java index a637ed6ce87..2fa89155b3b 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/PufferfishData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/PufferfishData.java @@ -24,9 +24,9 @@ */ package org.spongepowered.common.data.provider.entity; -import net.minecraft.world.entity.animal.Pufferfish; +import net.minecraft.world.entity.animal.fish.Pufferfish; import org.spongepowered.api.data.Keys; -import org.spongepowered.common.accessor.world.entity.animal.PufferfishAccessor; +import org.spongepowered.common.accessor.world.entity.animal.fish.PufferfishAccessor; import org.spongepowered.common.data.provider.DataProviderRegistrator; public final class PufferfishData { diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/RabbitData.java b/src/main/java/org/spongepowered/common/data/provider/entity/RabbitData.java index ddf8e108a5d..54ee3619aca 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/RabbitData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/RabbitData.java @@ -24,10 +24,10 @@ */ package org.spongepowered.common.data.provider.entity; -import net.minecraft.world.entity.animal.Rabbit; +import net.minecraft.world.entity.animal.rabbit.Rabbit; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.type.RabbitType; -import org.spongepowered.common.accessor.world.entity.animal.RabbitAccessor; +import org.spongepowered.common.accessor.world.entity.animal.rabbit.RabbitAccessor; import org.spongepowered.common.data.provider.DataProviderRegistrator; public final class RabbitData { diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/SalmonData.java b/src/main/java/org/spongepowered/common/data/provider/entity/SalmonData.java index bbb56f00e43..2e55974f395 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/SalmonData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/SalmonData.java @@ -25,7 +25,7 @@ package org.spongepowered.common.data.provider.entity; import net.minecraft.core.component.DataComponents; -import net.minecraft.world.entity.animal.Salmon; +import net.minecraft.world.entity.animal.fish.Salmon; import org.spongepowered.api.data.Keys; import org.spongepowered.common.data.provider.DataProviderRegistrator; diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/SpellcastingIllagerData.java b/src/main/java/org/spongepowered/common/data/provider/entity/SpellcastingIllagerData.java index 6cad9021fe5..8f515a26359 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/SpellcastingIllagerData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/SpellcastingIllagerData.java @@ -24,10 +24,10 @@ */ package org.spongepowered.common.data.provider.entity; -import net.minecraft.world.entity.monster.SpellcasterIllager; +import net.minecraft.world.entity.monster.illager.SpellcasterIllager; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.type.SpellType; -import org.spongepowered.common.accessor.world.entity.monster.SpellcasterIllagerAccessor; +import org.spongepowered.common.accessor.world.entity.monster.illager.SpellcasterIllagerAccessor; import org.spongepowered.common.data.provider.DataProviderRegistrator; public final class SpellcastingIllagerData { diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/SpiderData.java b/src/main/java/org/spongepowered/common/data/provider/entity/SpiderData.java index c66df4b8cf4..871ae19ed64 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/SpiderData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/SpiderData.java @@ -24,7 +24,7 @@ */ package org.spongepowered.common.data.provider.entity; -import net.minecraft.world.entity.monster.Spider; +import net.minecraft.world.entity.monster.spider.Spider; import org.spongepowered.api.data.Keys; import org.spongepowered.common.data.provider.DataProviderRegistrator; diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/ThrowableItemProjectileData.java b/src/main/java/org/spongepowered/common/data/provider/entity/ThrowableItemProjectileData.java index 605b675f489..6e140cd74b6 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/ThrowableItemProjectileData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/ThrowableItemProjectileData.java @@ -24,7 +24,7 @@ */ package org.spongepowered.common.data.provider.entity; -import net.minecraft.world.entity.projectile.ThrowableItemProjectile; +import net.minecraft.world.entity.projectile.throwableitemprojectile.ThrowableItemProjectile; import org.spongepowered.api.data.Keys; import org.spongepowered.common.data.provider.DataProviderRegistrator; import org.spongepowered.common.item.util.ItemStackUtil; diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/TraderLlamaData.java b/src/main/java/org/spongepowered/common/data/provider/entity/TraderLlamaData.java index 79bfc39773f..05b2b1c43b5 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/TraderLlamaData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/TraderLlamaData.java @@ -28,7 +28,7 @@ import org.spongepowered.api.data.Keys; import org.spongepowered.api.util.Ticks; import org.spongepowered.common.accessor.world.entity.MobAccessor; -import org.spongepowered.common.accessor.world.entity.animal.horse.TraderLlamaAccessor; +import org.spongepowered.common.accessor.world.entity.animal.equine.TraderLlamaAccessor; import org.spongepowered.common.data.provider.DataProviderRegistrator; import org.spongepowered.common.util.SpongeTicks; diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/TropicalFishData.java b/src/main/java/org/spongepowered/common/data/provider/entity/TropicalFishData.java index 204556b1a10..5ec5bf46e69 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/TropicalFishData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/TropicalFishData.java @@ -24,11 +24,11 @@ */ package org.spongepowered.common.data.provider.entity; -import net.minecraft.world.entity.animal.TropicalFish; +import net.minecraft.world.entity.animal.fish.TropicalFish; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.type.DyeColor; import org.spongepowered.api.data.type.TropicalFishShape; -import org.spongepowered.common.accessor.world.entity.animal.TropicalFishAccessor; +import org.spongepowered.common.accessor.world.entity.animal.fish.TropicalFishAccessor; import org.spongepowered.common.data.provider.DataProviderRegistrator; public final class TropicalFishData { diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/TurtleData.java b/src/main/java/org/spongepowered/common/data/provider/entity/TurtleData.java index 8a9f62cca76..8a969650f69 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/TurtleData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/TurtleData.java @@ -24,9 +24,9 @@ */ package org.spongepowered.common.data.provider.entity; -import net.minecraft.world.entity.animal.Turtle; +import net.minecraft.world.entity.animal.turtle.Turtle; import org.spongepowered.api.data.Keys; -import org.spongepowered.common.accessor.world.entity.animal.TurtleAccessor; +import org.spongepowered.common.accessor.world.entity.animal.turtle.TurtleAccessor; import org.spongepowered.common.data.provider.DataProviderRegistrator; import org.spongepowered.common.util.VecHelper; diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/VillagerData.java b/src/main/java/org/spongepowered/common/data/provider/entity/VillagerData.java index cc7a7f11909..071ac8731bc 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/VillagerData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/VillagerData.java @@ -25,9 +25,9 @@ package org.spongepowered.common.data.provider.entity; import net.minecraft.core.registries.Registries; -import net.minecraft.world.entity.npc.Villager; -import net.minecraft.world.entity.npc.VillagerProfession; -import net.minecraft.world.entity.npc.WanderingTrader; +import net.minecraft.world.entity.npc.villager.Villager; +import net.minecraft.world.entity.npc.villager.VillagerProfession; +import net.minecraft.world.entity.npc.wanderingtrader.WanderingTrader; import net.minecraft.world.item.trading.MerchantOffer; import net.minecraft.world.item.trading.MerchantOffers; import org.spongepowered.api.data.Keys; @@ -35,7 +35,7 @@ import org.spongepowered.api.data.type.VillagerType; import org.spongepowered.api.item.merchant.TradeOffer; import org.spongepowered.common.SpongeCommon; -import org.spongepowered.common.accessor.world.entity.npc.AbstractVillagerAccessor; +import org.spongepowered.common.accessor.world.entity.npc.villager.AbstractVillagerAccessor; import org.spongepowered.common.data.provider.DataProviderRegistrator; import org.spongepowered.common.util.SpongeTicks; @@ -80,7 +80,7 @@ public static void register(final DataProviderRegistrator registrator) { .get(h -> (VillagerType) (Object) h.getVillagerData().type()) .set((h, v) -> { final var villagerType = SpongeCommon.vanillaRegistry(Registries.VILLAGER_TYPE) - .wrapAsHolder((net.minecraft.world.entity.npc.VillagerType) (Object) v); + .wrapAsHolder((net.minecraft.world.entity.npc.villager.VillagerType) (Object) v); h.setVillagerData(h.getVillagerData().withType(villagerType)); }) .create(Keys.IS_UNHAPPY) diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/VindicatorData.java b/src/main/java/org/spongepowered/common/data/provider/entity/VindicatorData.java index 4c442dfaa6b..7ad33e0f335 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/VindicatorData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/VindicatorData.java @@ -25,7 +25,7 @@ package org.spongepowered.common.data.provider.entity; import org.spongepowered.api.data.Keys; -import org.spongepowered.common.accessor.world.entity.monster.VindicatorAccessor; +import org.spongepowered.common.accessor.world.entity.monster.illager.VindicatorAccessor; import org.spongepowered.common.data.provider.DataProviderRegistrator; public final class VindicatorData { diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/ZombieData.java b/src/main/java/org/spongepowered/common/data/provider/entity/ZombieData.java index 713841f069c..1b4d42c074e 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/ZombieData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/ZombieData.java @@ -24,7 +24,7 @@ */ package org.spongepowered.common.data.provider.entity; -import net.minecraft.world.entity.monster.Zombie; +import net.minecraft.world.entity.monster.zombie.Zombie; import org.spongepowered.api.data.Keys; import org.spongepowered.common.data.provider.DataProviderRegistrator; diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/ZombieVillagerData.java b/src/main/java/org/spongepowered/common/data/provider/entity/ZombieVillagerData.java index 990da40d732..6315e33ca84 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/ZombieVillagerData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/ZombieVillagerData.java @@ -25,8 +25,8 @@ package org.spongepowered.common.data.provider.entity; import net.minecraft.core.registries.Registries; -import net.minecraft.world.entity.monster.ZombieVillager; -import net.minecraft.world.entity.npc.VillagerProfession; +import net.minecraft.world.entity.monster.zombie.ZombieVillager; +import net.minecraft.world.entity.npc.villager.VillagerProfession; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.type.ProfessionType; import org.spongepowered.api.data.type.VillagerType; @@ -54,7 +54,7 @@ public static void register(final DataProviderRegistrator registrator) { .create(Keys.VILLAGER_TYPE) .get(h -> (VillagerType) (Object) h.getVillagerData().type()) .set((h, v) -> { - final var villagerType = SpongeCommon.vanillaRegistry(Registries.VILLAGER_TYPE).wrapAsHolder((net.minecraft.world.entity.npc.VillagerType) (Object) v); + final var villagerType = SpongeCommon.vanillaRegistry(Registries.VILLAGER_TYPE).wrapAsHolder((net.minecraft.world.entity.npc.villager.VillagerType) (Object) v); h.setVillagerData(h.getVillagerData().withType(villagerType)); }); } diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/ZombifiedPiglinData.java b/src/main/java/org/spongepowered/common/data/provider/entity/ZombifiedPiglinData.java index 5f188d08b21..292afe3a555 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/ZombifiedPiglinData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/ZombifiedPiglinData.java @@ -25,7 +25,7 @@ package org.spongepowered.common.data.provider.entity; import org.spongepowered.api.data.Keys; -import org.spongepowered.common.accessor.world.entity.monster.ZombifiedPiglinAccessor; +import org.spongepowered.common.accessor.world.entity.monster.zombie.ZombifiedPiglinAccessor; import org.spongepowered.common.data.provider.DataProviderRegistrator; import java.util.SplittableRandom; diff --git a/src/main/java/org/spongepowered/common/data/provider/world/biome/BiomeData.java b/src/main/java/org/spongepowered/common/data/provider/world/biome/BiomeData.java index e25b188ab68..8d5fa86f272 100644 --- a/src/main/java/org/spongepowered/common/data/provider/world/biome/BiomeData.java +++ b/src/main/java/org/spongepowered/common/data/provider/world/biome/BiomeData.java @@ -115,12 +115,12 @@ public static void register(final DataProviderRegistrator registrator) { .create(Keys.BACKGROUND_MUSIC) .get(h -> { final var value = h.getAttributes().applyModifier(EnvironmentAttributes.BACKGROUND_MUSIC, EnvironmentAttributes.BACKGROUND_MUSIC.defaultValue()); - return (SoundConfig.BackgroundMusic) (Object) value; + return (SoundConfig.BackgroundMusic) (Object) value.defaultMusic().orElse(null); }) .create(Keys.AMBIENT_ADDITIONAL_SOUND) .get(h -> { final var value = h.getAttributes().applyModifier(EnvironmentAttributes.AMBIENT_SOUNDS, EnvironmentAttributes.AMBIENT_SOUNDS.defaultValue()); - return (SoundConfig.Additional) (Object) value; + return (SoundConfig.Additional) (Object) value.additions().stream().findFirst().orElse(null); }) .create(Keys.AMBIENT_MOOD) .get(h -> h.getAttributes().applyModifier(EnvironmentAttributes.AMBIENT_SOUNDS, AmbientSounds.EMPTY).mood().map(SoundConfig.Mood.class::cast).orElse(null)) diff --git a/src/main/java/org/spongepowered/common/data/type/SpongeArtTypeBuilder.java b/src/main/java/org/spongepowered/common/data/type/SpongeArtTypeBuilder.java index 823a3e268d8..fe9da7ba032 100644 --- a/src/main/java/org/spongepowered/common/data/type/SpongeArtTypeBuilder.java +++ b/src/main/java/org/spongepowered/common/data/type/SpongeArtTypeBuilder.java @@ -25,7 +25,7 @@ package org.spongepowered.common.data.type; import net.minecraft.resources.Identifier; -import net.minecraft.world.entity.decoration.PaintingVariant; +import net.minecraft.world.entity.decoration.painting.PaintingVariant; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.api.ResourceKey; import org.spongepowered.api.data.type.ArtType; diff --git a/src/main/java/org/spongepowered/common/entity/ai/goal/builtin/creature/horse/SpongeRunAroundLikeCrazyAIBuilder.java b/src/main/java/org/spongepowered/common/entity/ai/goal/builtin/creature/horse/SpongeRunAroundLikeCrazyAIBuilder.java index c4e1bcd75af..a024c9fd3fa 100644 --- a/src/main/java/org/spongepowered/common/entity/ai/goal/builtin/creature/horse/SpongeRunAroundLikeCrazyAIBuilder.java +++ b/src/main/java/org/spongepowered/common/entity/ai/goal/builtin/creature/horse/SpongeRunAroundLikeCrazyAIBuilder.java @@ -60,6 +60,6 @@ public RunAroundLikeCrazyGoal.Builder reset() { @Override public RunAroundLikeCrazyGoal build(HorseLike owner) { Objects.requireNonNull(owner); - return (RunAroundLikeCrazyGoal) new net.minecraft.world.entity.ai.goal.RunAroundLikeCrazyGoal((net.minecraft.world.entity.animal.horse.Horse) owner, this.speed); + return (RunAroundLikeCrazyGoal) new net.minecraft.world.entity.ai.goal.RunAroundLikeCrazyGoal((net.minecraft.world.entity.animal.equine.Horse) owner, this.speed); } } diff --git a/src/main/java/org/spongepowered/common/entity/living/human/HumanEntity.java b/src/main/java/org/spongepowered/common/entity/living/human/HumanEntity.java index e0922d877b2..1e562c7e0d6 100644 --- a/src/main/java/org/spongepowered/common/entity/living/human/HumanEntity.java +++ b/src/main/java/org/spongepowered/common/entity/living/human/HumanEntity.java @@ -66,7 +66,7 @@ import net.minecraft.world.entity.ai.goal.WaterAvoidingRandomStrollGoal; import net.minecraft.world.entity.monster.RangedAttackMob; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.entity.projectile.Arrow; +import net.minecraft.world.entity.projectile.arrow.Arrow; import net.minecraft.world.item.ArrowItem; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; diff --git a/src/main/java/org/spongepowered/common/entity/projectile/ProjectileUtil.java b/src/main/java/org/spongepowered/common/entity/projectile/ProjectileUtil.java index ac10e3be464..653feb40438 100644 --- a/src/main/java/org/spongepowered/common/entity/projectile/ProjectileUtil.java +++ b/src/main/java/org/spongepowered/common/entity/projectile/ProjectileUtil.java @@ -28,18 +28,18 @@ import net.minecraft.core.Direction; import net.minecraft.util.Mth; import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.animal.horse.Llama; +import net.minecraft.world.entity.animal.equine.Llama; import net.minecraft.world.entity.decoration.ArmorStand; import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.projectile.FireworkRocketEntity; import net.minecraft.world.entity.projectile.FishingHook; -import net.minecraft.world.entity.projectile.LargeFireball; +import net.minecraft.world.entity.projectile.hurtingprojectile.LargeFireball; import net.minecraft.world.entity.projectile.ThrowableProjectile; -import net.minecraft.world.entity.projectile.ThrownEgg; -import net.minecraft.world.entity.projectile.ThrownEnderpearl; -import net.minecraft.world.entity.projectile.ThrownExperienceBottle; -import net.minecraft.world.entity.projectile.ThrownLingeringPotion; -import net.minecraft.world.entity.projectile.ThrownSplashPotion; +import net.minecraft.world.entity.projectile.throwableitemprojectile.ThrownEgg; +import net.minecraft.world.entity.projectile.throwableitemprojectile.ThrownEnderpearl; +import net.minecraft.world.entity.projectile.throwableitemprojectile.ThrownExperienceBottle; +import net.minecraft.world.entity.projectile.throwableitemprojectile.ThrownLingeringPotion; +import net.minecraft.world.entity.projectile.throwableitemprojectile.ThrownSplashPotion; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.level.block.entity.DispenserBlockEntity; @@ -179,7 +179,7 @@ static

Optional

doLaunch(final World extent, final P p @Override protected Optional createProjectile(final LivingEntity source, final ServerLocation loc) { - final var arrow = new net.minecraft.world.entity.projectile.Arrow(source.level(), source, new ItemStack(this.item), source.getWeaponItem()); + final var arrow = new net.minecraft.world.entity.projectile.arrow.Arrow(source.level(), source, new ItemStack(this.item), source.getWeaponItem()); arrow.shoot(source.getXRot(), source.getYRot(), 0.0F, 3.0F, 0); return ProjectileUtil.doLaunch(loc.world(), (Arrow) arrow); } @@ -189,7 +189,7 @@ protected Optional createProjectile(final LivingEntity source, final Serv @Override protected Optional createProjectile(final LivingEntity source, final ServerLocation loc) { - final var arrow = new net.minecraft.world.entity.projectile.SpectralArrow(source.level(), source, new ItemStack(this.item), source.getWeaponItem()); + final var arrow = new net.minecraft.world.entity.projectile.arrow.SpectralArrow(source.level(), source, new ItemStack(this.item), source.getWeaponItem()); arrow.shoot(source.getXRot(), source.getYRot(), 0.0F, 3.0F, 0); return ProjectileUtil.doLaunch(loc.world(), (SpectralArrow) arrow); } @@ -209,7 +209,7 @@ protected Optional createProjectile(final LivingEntity source, final Server @Override protected Optional createProjectile(final LivingEntity source, final ServerLocation loc) { final net.minecraft.world.phys.Vec3 lookVec = source.getViewVector(1); - final var fireball = new net.minecraft.world.entity.projectile.SmallFireball(source.level(), source, lookVec.scale(4)); + final var fireball = new net.minecraft.world.entity.projectile.hurtingprojectile.SmallFireball(source.level(), source, lookVec.scale(4)); fireball.setPos(fireball.getX(), fireball.getY() + source.getEyeHeight(), fireball.getZ()); return ProjectileUtil.doLaunch(loc.world(), (SmallFireball) fireball); } @@ -227,7 +227,7 @@ protected Optional createProjectile(final LivingEntity source, f @Override protected Optional createProjectile(final LivingEntity source, final ServerLocation loc) { - final net.minecraft.world.entity.projectile.Snowball snowball = new net.minecraft.world.entity.projectile.Snowball( + final var snowball = new net.minecraft.world.entity.projectile.throwableitemprojectile.Snowball( source.level(), source, new ItemStack(Items.SNOWBALL)); snowball.shoot(source.getXRot(), source.getYRot(), 0.0F, 1.5F, 0); return ProjectileUtil.doLaunch(loc.world(), (Snowball) snowball); @@ -285,7 +285,7 @@ public Optional createProjectile(final ProjectileSource sourc @Override protected Optional createProjectile(final LivingEntity source, final ServerLocation loc) { final net.minecraft.world.phys.Vec3 lookVec = source.getViewVector(1); - final var skull = new net.minecraft.world.entity.projectile.WitherSkull(source.level(), source, lookVec.scale(4)); + final var skull = new net.minecraft.world.entity.projectile.hurtingprojectile.WitherSkull(source.level(), source, lookVec.scale(4)); skull.setPos(skull.getX(), skull.getY() + source.getEyeHeight(), skull.getZ()); return ProjectileUtil.doLaunch(loc.world(), (WitherSkull) skull); } @@ -350,7 +350,7 @@ public Optional createProjectile(final ProjectileSource source, @Override protected Optional createProjectile(final LivingEntity source, final ServerLocation loc) { final net.minecraft.world.phys.Vec3 lookVec = source.getViewVector(1); - final var fireball = new net.minecraft.world.entity.projectile.DragonFireball(source.level(), source, lookVec.scale(4)); + final var fireball = new net.minecraft.world.entity.projectile.hurtingprojectile.DragonFireball(source.level(), source, lookVec.scale(4)); fireball.setPos(fireball.getX(), fireball.getY() + source.getEyeHeight(), fireball.getZ()); return ProjectileUtil.doLaunch(loc.world(), (DragonFireball) fireball); } diff --git a/src/main/java/org/spongepowered/common/event/inventory/InventoryEventFactory.java b/src/main/java/org/spongepowered/common/event/inventory/InventoryEventFactory.java index fde99c753bf..4808d06264a 100644 --- a/src/main/java/org/spongepowered/common/event/inventory/InventoryEventFactory.java +++ b/src/main/java/org/spongepowered/common/event/inventory/InventoryEventFactory.java @@ -31,10 +31,10 @@ import net.minecraft.world.MenuProvider; import net.minecraft.world.SimpleMenuProvider; import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.animal.horse.AbstractHorse; +import net.minecraft.world.entity.animal.equine.AbstractHorse; import net.minecraft.world.entity.item.ItemEntity; -import net.minecraft.world.entity.npc.Villager; -import net.minecraft.world.entity.npc.WanderingTrader; +import net.minecraft.world.entity.npc.villager.Villager; +import net.minecraft.world.entity.npc.wanderingtrader.WanderingTrader; import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.inventory.AnvilMenu; diff --git a/src/main/java/org/spongepowered/common/event/tracking/phase/packet/PacketPhaseUtil.java b/src/main/java/org/spongepowered/common/event/tracking/phase/packet/PacketPhaseUtil.java index 9013c2e40b7..c3c1ffe64fd 100644 --- a/src/main/java/org/spongepowered/common/event/tracking/phase/packet/PacketPhaseUtil.java +++ b/src/main/java/org/spongepowered/common/event/tracking/phase/packet/PacketPhaseUtil.java @@ -39,7 +39,7 @@ import net.minecraft.world.InteractionHand; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.animal.horse.AbstractChestedHorse; +import net.minecraft.world.entity.animal.equine.AbstractChestedHorse; import net.minecraft.world.entity.animal.sheep.Sheep; import net.minecraft.world.entity.animal.wolf.Wolf; import net.minecraft.world.entity.player.Inventory; @@ -61,7 +61,7 @@ import org.spongepowered.api.event.CauseStackManager; import org.spongepowered.api.item.inventory.ItemStackSnapshot; import org.spongepowered.api.item.inventory.transaction.SlotTransaction; -import org.spongepowered.common.accessor.entity.passive.AbstractChestedHorseEntityAccessor; +import org.spongepowered.common.accessor.entity.animal.equine.AbstractChestedHorseEntityAccessor; import org.spongepowered.common.accessor.network.protocol.game.ServerboundMovePlayerPacketAccessor; import org.spongepowered.common.accessor.world.entity.EntityAccessor; import org.spongepowered.common.accessor.world.entity.animal.sheep.SheepAccessor; diff --git a/src/main/java/org/spongepowered/common/hooks/EntityHooks.java b/src/main/java/org/spongepowered/common/hooks/EntityHooks.java index 471609a73b9..8b600f5147f 100644 --- a/src/main/java/org/spongepowered/common/hooks/EntityHooks.java +++ b/src/main/java/org/spongepowered/common/hooks/EntityHooks.java @@ -25,7 +25,7 @@ package org.spongepowered.common.hooks; import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.boss.EnderDragonPart; +import net.minecraft.world.entity.boss.enderdragon.EnderDragonPart; public interface EntityHooks { diff --git a/src/main/java/org/spongepowered/common/inventory/custom/SpongeViewableInventoryBuilder.java b/src/main/java/org/spongepowered/common/inventory/custom/SpongeViewableInventoryBuilder.java index 00455d01cda..479c408fa4b 100644 --- a/src/main/java/org/spongepowered/common/inventory/custom/SpongeViewableInventoryBuilder.java +++ b/src/main/java/org/spongepowered/common/inventory/custom/SpongeViewableInventoryBuilder.java @@ -26,8 +26,8 @@ import net.minecraft.world.Container; import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.animal.horse.AbstractHorse; -import net.minecraft.world.entity.npc.Villager; +import net.minecraft.world.entity.animal.equine.AbstractHorse; +import net.minecraft.world.entity.npc.villager.Villager; import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.inventory.AnvilMenu; diff --git a/src/main/java/org/spongepowered/common/inventory/lens/impl/LensRegistrar.java b/src/main/java/org/spongepowered/common/inventory/lens/impl/LensRegistrar.java index 6a9b485b44f..e3822ac0ea5 100644 --- a/src/main/java/org/spongepowered/common/inventory/lens/impl/LensRegistrar.java +++ b/src/main/java/org/spongepowered/common/inventory/lens/impl/LensRegistrar.java @@ -27,10 +27,10 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import net.minecraft.world.CompoundContainer; -import net.minecraft.world.entity.npc.AbstractVillager; -import net.minecraft.world.entity.npc.Villager; -import net.minecraft.world.entity.npc.WanderingTrader; -import net.minecraft.world.entity.vehicle.MinecartChest; +import net.minecraft.world.entity.npc.villager.AbstractVillager; +import net.minecraft.world.entity.npc.villager.Villager; +import net.minecraft.world.entity.npc.wanderingtrader.WanderingTrader; +import net.minecraft.world.entity.vehicle.minecart.MinecartChest; import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.inventory.AnvilMenu; import net.minecraft.world.inventory.CraftingContainer; diff --git a/src/main/java/org/spongepowered/common/item/merchant/TradeOfferGeneratorWrapper.java b/src/main/java/org/spongepowered/common/item/merchant/TradeOfferGeneratorWrapper.java index 916b7f1dfee..1f84b336cef 100644 --- a/src/main/java/org/spongepowered/common/item/merchant/TradeOfferGeneratorWrapper.java +++ b/src/main/java/org/spongepowered/common/item/merchant/TradeOfferGeneratorWrapper.java @@ -27,7 +27,7 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.util.RandomSource; import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.npc.VillagerTrades; +import net.minecraft.world.entity.npc.villager.VillagerTrades; import net.minecraft.world.item.trading.MerchantOffer; import org.spongepowered.api.item.merchant.TradeOffer; import org.spongepowered.api.item.merchant.TradeOfferGenerator; diff --git a/src/main/java/org/spongepowered/common/registry/loader/VanillaRegistryLoader.java b/src/main/java/org/spongepowered/common/registry/loader/VanillaRegistryLoader.java index 59bb0878af7..d794771f31e 100644 --- a/src/main/java/org/spongepowered/common/registry/loader/VanillaRegistryLoader.java +++ b/src/main/java/org/spongepowered/common/registry/loader/VanillaRegistryLoader.java @@ -40,22 +40,22 @@ import net.minecraft.world.entity.HumanoidArm; import net.minecraft.world.entity.MobCategory; import net.minecraft.world.entity.ai.attributes.AttributeModifier; -import net.minecraft.world.entity.animal.Fox; -import net.minecraft.world.entity.animal.MushroomCow; -import net.minecraft.world.entity.animal.Panda; -import net.minecraft.world.entity.animal.Parrot; -import net.minecraft.world.entity.animal.Rabbit; -import net.minecraft.world.entity.animal.Salmon; -import net.minecraft.world.entity.animal.TropicalFish; +import net.minecraft.world.entity.animal.fox.Fox; +import net.minecraft.world.entity.animal.cow.MushroomCow; +import net.minecraft.world.entity.animal.panda.Panda; +import net.minecraft.world.entity.animal.parrot.Parrot; +import net.minecraft.world.entity.animal.rabbit.Rabbit; +import net.minecraft.world.entity.animal.fish.Salmon; +import net.minecraft.world.entity.animal.fish.TropicalFish; import net.minecraft.world.entity.animal.axolotl.Axolotl; -import net.minecraft.world.entity.animal.horse.Llama; -import net.minecraft.world.entity.animal.horse.Markings; -import net.minecraft.world.entity.animal.horse.Variant; +import net.minecraft.world.entity.animal.equine.Llama; +import net.minecraft.world.entity.animal.equine.Markings; +import net.minecraft.world.entity.animal.equine.Variant; import net.minecraft.world.entity.boss.enderdragon.phases.EnderDragonPhase; import net.minecraft.world.entity.monster.Phantom; -import net.minecraft.world.entity.monster.SpellcasterIllager; +import net.minecraft.world.entity.monster.illager.SpellcasterIllager; import net.minecraft.world.entity.player.ChatVisiblity; -import net.minecraft.world.entity.projectile.AbstractArrow; +import net.minecraft.world.entity.projectile.arrow.AbstractArrow; import net.minecraft.world.entity.raid.Raid; import net.minecraft.world.item.DyeColor; import net.minecraft.world.item.ItemDisplayContext; diff --git a/src/main/java/org/spongepowered/common/world/server/SpongeWorldManager.java b/src/main/java/org/spongepowered/common/world/server/SpongeWorldManager.java index 4d34b4b0199..1374024d73b 100644 --- a/src/main/java/org/spongepowered/common/world/server/SpongeWorldManager.java +++ b/src/main/java/org/spongepowered/common/world/server/SpongeWorldManager.java @@ -45,7 +45,7 @@ import net.minecraft.util.Util; import net.minecraft.world.entity.ai.village.VillageSiege; import net.minecraft.world.entity.npc.CatSpawner; -import net.minecraft.world.entity.npc.WanderingTraderSpawner; +import net.minecraft.world.entity.npc.wanderingtrader.WanderingTraderSpawner; import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.CustomSpawner; import net.minecraft.world.level.Level; diff --git a/src/main/resources/common.accesswidener b/src/main/resources/common.accesswidener index ab0f0901043..fcfa8e442b0 100644 --- a/src/main/resources/common.accesswidener +++ b/src/main/resources/common.accesswidener @@ -19,4 +19,5 @@ accessible class net/minecraft/network/protocol/game/ServerboundInteractPacket$A accessible class net/minecraft/world/entity/monster/SpellcasterIllager$IllagerSpell accessible class net/minecraft/world/level/biome/Biome$ClimateSettings accessible class net/minecraft/core/MappedRegistry$TagSet -accessible class net/minecraft/world/level/BaseCommandBlock$CloseableCommandBlockSource \ No newline at end of file +accessible class net/minecraft/world/level/BaseCommandBlock$CloseableCommandBlockSource +accessible class net/minecraft/world/entity/monster/illager/SpellcasterIllager$IllagerSpell diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/SaddleableMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/SaddleableMixin_API.java index 02a39854d39..78599dd577f 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/SaddleableMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/SaddleableMixin_API.java @@ -25,7 +25,7 @@ package org.spongepowered.common.mixin.api.minecraft.world.entity; import net.minecraft.world.entity.ItemSteerable; -import net.minecraft.world.entity.animal.horse.AbstractHorse; +import net.minecraft.world.entity.animal.equine.AbstractHorse; import org.spongepowered.asm.mixin.Mixin; // TODO - the interface is gone, but the premise of being able to use the saddle diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/BeeMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/bee/BeeMixin_API.java similarity index 90% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/BeeMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/bee/BeeMixin_API.java index 6240a3fb372..1ba919e52be 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/BeeMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/bee/BeeMixin_API.java @@ -22,12 +22,13 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.bee; import org.spongepowered.api.entity.living.animal.Bee; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.common.mixin.api.minecraft.world.entity.animal.AnimalMixin_API; -@Mixin(net.minecraft.world.entity.animal.Bee.class) +@Mixin(net.minecraft.world.entity.animal.bee.Bee.class) public abstract class BeeMixin_API extends AnimalMixin_API implements Bee { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/camel/CamelMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/camel/CamelMixin_API.java index 6bd2c701383..a4d4a4ddfb2 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/camel/CamelMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/camel/CamelMixin_API.java @@ -26,7 +26,7 @@ import net.minecraft.world.entity.animal.camel.Camel; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.common.mixin.api.minecraft.world.entity.animal.horse.AbstractHorseMixin_API; +import org.spongepowered.common.mixin.api.minecraft.world.entity.animal.equine.AbstractHorseMixin_API; @Mixin(Camel.class) public abstract class CamelMixin_API extends AbstractHorseMixin_API implements org.spongepowered.api.entity.living.animal.camel.Camel { diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/ChickenMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/chicken/ChickenMixin_API.java similarity index 91% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/ChickenMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/chicken/ChickenMixin_API.java index f118e88bf8c..6c6d746ded8 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/ChickenMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/chicken/ChickenMixin_API.java @@ -22,16 +22,17 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.chicken; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.entity.living.animal.Chicken; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.common.mixin.api.minecraft.world.entity.animal.AnimalMixin_API; import java.util.Set; -@Mixin(net.minecraft.world.entity.animal.Chicken.class) +@Mixin(net.minecraft.world.entity.animal.chicken.Chicken.class) public abstract class ChickenMixin_API extends AnimalMixin_API implements Chicken { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/ChickenVariantMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/chicken/ChickenVariantMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/ChickenVariantMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/chicken/ChickenVariantMixin_API.java index deded3ad5d8..22f67fd08dd 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/ChickenVariantMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/chicken/ChickenVariantMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.chicken; -import net.minecraft.world.entity.animal.ChickenVariant; +import net.minecraft.world.entity.animal.chicken.ChickenVariant; import org.spongepowered.asm.mixin.Mixin; @Mixin(ChickenVariant.class) diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/AbstractCowMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/cow/AbstractCowMixin_API.java similarity index 89% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/AbstractCowMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/cow/AbstractCowMixin_API.java index fe2a7abd0a9..5177b50a11e 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/AbstractCowMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/cow/AbstractCowMixin_API.java @@ -22,12 +22,13 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.cow; import org.spongepowered.api.entity.living.animal.cow.Cow; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.common.mixin.api.minecraft.world.entity.animal.AnimalMixin_API; -@Mixin(net.minecraft.world.entity.animal.AbstractCow.class) +@Mixin(net.minecraft.world.entity.animal.cow.AbstractCow.class) public abstract class AbstractCowMixin_API extends AnimalMixin_API implements Cow { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/CowVariantMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/cow/CowVariantMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/CowVariantMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/cow/CowVariantMixin_API.java index 3b1c66dadec..bd48197db3a 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/CowVariantMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/cow/CowVariantMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.cow; -import net.minecraft.world.entity.animal.CowVariant; +import net.minecraft.world.entity.animal.cow.CowVariant; import org.spongepowered.asm.mixin.Mixin; @Mixin(CowVariant.class) diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/MushroomCowMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/cow/MushroomCowMixin_API.java similarity index 96% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/MushroomCowMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/cow/MushroomCowMixin_API.java index 5eb015f2ca3..7acf88dae03 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/MushroomCowMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/cow/MushroomCowMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.cow; -import net.minecraft.world.entity.animal.MushroomCow; +import net.minecraft.world.entity.animal.cow.MushroomCow; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.entity.living.animal.cow.Mooshroom; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/MushroomCow_MushroomTypeMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/cow/MushroomCow_MushroomTypeMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/MushroomCow_MushroomTypeMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/cow/MushroomCow_MushroomTypeMixin_API.java index d9c14c85fb8..7cc2ed7cd13 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/MushroomCow_MushroomTypeMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/cow/MushroomCow_MushroomTypeMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.cow; -import net.minecraft.world.entity.animal.MushroomCow; +import net.minecraft.world.entity.animal.cow.MushroomCow; import org.spongepowered.api.data.type.MooshroomType; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/DolphinMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/dolphin/DolphinMixin_API.java similarity index 91% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/DolphinMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/dolphin/DolphinMixin_API.java index 2cd310baace..913c2e43aad 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/DolphinMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/dolphin/DolphinMixin_API.java @@ -22,16 +22,17 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.dolphin; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.entity.living.aquatic.Dolphin; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.common.mixin.api.minecraft.world.entity.animal.AgeableWaterCreatureMixin_API; import java.util.Set; -@Mixin(net.minecraft.world.entity.animal.Dolphin.class) +@Mixin(net.minecraft.world.entity.animal.dolphin.Dolphin.class) public abstract class DolphinMixin_API extends AgeableWaterCreatureMixin_API implements Dolphin { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/AbstractChestedHorseMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/AbstractChestedHorseMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/AbstractChestedHorseMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/AbstractChestedHorseMixin_API.java index bcfa475021b..d01a3c75354 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/AbstractChestedHorseMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/AbstractChestedHorseMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.horse; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.equine; -import net.minecraft.world.entity.animal.horse.AbstractChestedHorse; +import net.minecraft.world.entity.animal.equine.AbstractChestedHorse; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.entity.living.animal.horse.PackHorse; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/AbstractHorseMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/AbstractHorseMixin_API.java similarity index 96% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/AbstractHorseMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/AbstractHorseMixin_API.java index 40361de0a52..928067e27ac 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/AbstractHorseMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/AbstractHorseMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.horse; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.equine; -import net.minecraft.world.entity.animal.horse.AbstractHorse; +import net.minecraft.world.entity.animal.equine.AbstractHorse; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.entity.living.animal.horse.HorseLike; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/DonkeyMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/DonkeyMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/DonkeyMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/DonkeyMixin_API.java index 91ea7ac9fde..dcc5844e28c 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/DonkeyMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/DonkeyMixin_API.java @@ -22,12 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.horse; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.equine; import org.spongepowered.api.entity.living.animal.horse.Donkey; import org.spongepowered.asm.mixin.Mixin; -@Mixin(net.minecraft.world.entity.animal.horse.Donkey.class) +@Mixin(net.minecraft.world.entity.animal.equine.Donkey.class) public abstract class DonkeyMixin_API extends AbstractChestedHorseMixin_API implements Donkey { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/HorseMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/HorseMixin_API.java similarity index 96% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/HorseMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/HorseMixin_API.java index a2c8b02512b..a0f8c98e931 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/HorseMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/HorseMixin_API.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.horse; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.equine; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; @@ -31,7 +31,7 @@ import java.util.Set; -@Mixin(net.minecraft.world.entity.animal.horse.Horse.class) +@Mixin(net.minecraft.world.entity.animal.equine.Horse.class) public abstract class HorseMixin_API extends AbstractHorseMixin_API implements Horse { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/LLama_VariantMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/LLama_VariantMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/LLama_VariantMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/LLama_VariantMixin_API.java index 4eecb60c0db..358d10d77d1 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/LLama_VariantMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/LLama_VariantMixin_API.java @@ -22,12 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.horse; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.equine; import org.spongepowered.api.data.type.LlamaType; import org.spongepowered.asm.mixin.Mixin; -@Mixin(net.minecraft.world.entity.animal.horse.Llama.Variant.class) +@Mixin(net.minecraft.world.entity.animal.equine.Llama.Variant.class) public abstract class LLama_VariantMixin_API implements LlamaType { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/LlamaMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/LlamaMixin_API.java similarity index 96% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/LlamaMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/LlamaMixin_API.java index 8d4a0ad8d70..23043e38db9 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/LlamaMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/LlamaMixin_API.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.horse; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.equine; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; @@ -31,7 +31,7 @@ import java.util.Set; -@Mixin(net.minecraft.world.entity.animal.horse.Llama.class) +@Mixin(net.minecraft.world.entity.animal.equine.Llama.class) public abstract class LlamaMixin_API extends AbstractChestedHorseMixin_API implements Llama { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/MarkingsMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/MarkingsMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/MarkingsMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/MarkingsMixin_API.java index 94b206d3e46..34d0c42a4d4 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/MarkingsMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/MarkingsMixin_API.java @@ -22,12 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.horse; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.equine; import org.spongepowered.api.data.type.HorseStyle; import org.spongepowered.asm.mixin.Mixin; -@Mixin(net.minecraft.world.entity.animal.horse.Markings.class) +@Mixin(net.minecraft.world.entity.animal.equine.Markings.class) public abstract class MarkingsMixin_API implements HorseStyle { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/MuleMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/MuleMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/MuleMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/MuleMixin_API.java index 1e353d79fa3..a9b64f76717 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/MuleMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/MuleMixin_API.java @@ -22,12 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.horse; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.equine; import org.spongepowered.api.entity.living.animal.horse.Mule; import org.spongepowered.asm.mixin.Mixin; -@Mixin(net.minecraft.world.entity.animal.horse.Mule.class) +@Mixin(net.minecraft.world.entity.animal.equine.Mule.class) public abstract class MuleMixin_API extends AbstractChestedHorseMixin_API implements Mule { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/SkeletonHorseMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/SkeletonHorseMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/SkeletonHorseMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/SkeletonHorseMixin_API.java index 200470d74e1..ae45c84d937 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/SkeletonHorseMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/SkeletonHorseMixin_API.java @@ -22,12 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.horse; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.equine; import org.spongepowered.api.entity.living.animal.horse.SkeletonHorse; import org.spongepowered.asm.mixin.Mixin; -@Mixin(net.minecraft.world.entity.animal.horse.SkeletonHorse.class) +@Mixin(net.minecraft.world.entity.animal.equine.SkeletonHorse.class) public abstract class SkeletonHorseMixin_API extends AbstractHorseMixin_API implements SkeletonHorse { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/TraderLlamaMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/TraderLlamaMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/TraderLlamaMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/TraderLlamaMixin_API.java index a9b6f1326bd..bfe88eb7699 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/TraderLlamaMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/TraderLlamaMixin_API.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.horse; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.equine; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; @@ -31,7 +31,7 @@ import java.util.Set; -@Mixin(net.minecraft.world.entity.animal.horse.TraderLlama.class) +@Mixin(net.minecraft.world.entity.animal.equine.TraderLlama.class) public abstract class TraderLlamaMixin_API extends LlamaMixin_API implements TraderLlama { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/VariantMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/VariantMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/VariantMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/VariantMixin_API.java index 5b2000ff06b..485c8aad0cd 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/VariantMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/VariantMixin_API.java @@ -22,12 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.horse; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.equine; import org.spongepowered.api.data.type.HorseColor; import org.spongepowered.asm.mixin.Mixin; -@Mixin(net.minecraft.world.entity.animal.horse.Variant.class) +@Mixin(net.minecraft.world.entity.animal.equine.Variant.class) public abstract class VariantMixin_API implements HorseColor { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/ZombieHorseMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/ZombieHorseMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/ZombieHorseMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/ZombieHorseMixin_API.java index f0a45b55f61..a0d97e58088 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/horse/ZombieHorseMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/equine/ZombieHorseMixin_API.java @@ -22,12 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.horse; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.equine; import org.spongepowered.api.entity.living.animal.horse.ZombieHorse; import org.spongepowered.asm.mixin.Mixin; -@Mixin(net.minecraft.world.entity.animal.horse.ZombieHorse.class) +@Mixin(net.minecraft.world.entity.animal.equine.ZombieHorse.class) public abstract class ZombieHorseMixin_API extends AbstractHorseMixin_API implements ZombieHorse { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/CatMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/feline/CatMixin_API.java similarity index 97% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/CatMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/feline/CatMixin_API.java index d2b9f0e2f6e..49a7468a23f 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/CatMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/feline/CatMixin_API.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.feline; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; @@ -32,7 +32,7 @@ import java.util.Set; -@Mixin(net.minecraft.world.entity.animal.Cat.class) +@Mixin(net.minecraft.world.entity.animal.feline.Cat.class) public abstract class CatMixin_API extends TamableAnimalMixin_API implements Cat { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/CatVariantMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/feline/CatVariantMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/CatVariantMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/feline/CatVariantMixin_API.java index 35500e6c8f6..cc34f8928c5 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/CatVariantMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/feline/CatVariantMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.feline; -import net.minecraft.world.entity.animal.CatVariant; +import net.minecraft.world.entity.animal.feline.CatVariant; import org.spongepowered.api.data.type.CatType; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/OcelotMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/feline/OcelotMixin_API.java similarity index 91% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/OcelotMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/feline/OcelotMixin_API.java index ec8c142d6d5..67ee26ea5b9 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/OcelotMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/feline/OcelotMixin_API.java @@ -22,16 +22,17 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.feline; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.entity.living.animal.Ocelot; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.common.mixin.api.minecraft.world.entity.animal.AnimalMixin_API; import java.util.Set; -@Mixin(net.minecraft.world.entity.animal.Ocelot.class) +@Mixin(net.minecraft.world.entity.animal.feline.Ocelot.class) public abstract class OcelotMixin_API extends AnimalMixin_API implements Ocelot { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/AbstractFishMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fish/AbstractFishMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/AbstractFishMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fish/AbstractFishMixin_API.java index be40d35ffc3..dd07e93ece7 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/AbstractFishMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fish/AbstractFishMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.fish; -import net.minecraft.world.entity.animal.AbstractFish; +import net.minecraft.world.entity.animal.fish.AbstractFish; import org.spongepowered.api.entity.living.aquatic.fish.Fish; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/AbstractSchoolingFishMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fish/AbstractSchoolingFishMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/AbstractSchoolingFishMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fish/AbstractSchoolingFishMixin_API.java index bbb9cfd9779..93a63da464e 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/AbstractSchoolingFishMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fish/AbstractSchoolingFishMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.fish; -import net.minecraft.world.entity.animal.AbstractSchoolingFish; +import net.minecraft.world.entity.animal.fish.AbstractSchoolingFish; import org.spongepowered.api.entity.living.aquatic.fish.school.SchoolingFish; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/CodMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fish/CodMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/CodMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fish/CodMixin_API.java index 5861ec74078..543e8b13f6c 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/CodMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fish/CodMixin_API.java @@ -22,12 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.fish; import org.spongepowered.api.entity.living.aquatic.fish.school.Cod; import org.spongepowered.asm.mixin.Mixin; -@Mixin(net.minecraft.world.entity.animal.Cod.class) +@Mixin(net.minecraft.world.entity.animal.fish.Cod.class) public abstract class CodMixin_API extends AbstractSchoolingFishMixin_API implements Cod { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/PufferfishMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fish/PufferfishMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/PufferfishMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fish/PufferfishMixin_API.java index 08db79bbddb..584d634143c 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/PufferfishMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fish/PufferfishMixin_API.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.fish; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; @@ -31,7 +31,7 @@ import java.util.Set; -@Mixin(net.minecraft.world.entity.animal.Pufferfish.class) +@Mixin(net.minecraft.world.entity.animal.fish.Pufferfish.class) public abstract class PufferfishMixin_API extends AbstractFishMixin_API implements Pufferfish { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/SalmonMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fish/SalmonMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/SalmonMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fish/SalmonMixin_API.java index 77c0cbd43b2..a42d21c43bc 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/SalmonMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fish/SalmonMixin_API.java @@ -22,12 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.fish; import org.spongepowered.api.entity.living.aquatic.fish.school.Salmon; import org.spongepowered.asm.mixin.Mixin; -@Mixin(net.minecraft.world.entity.animal.Salmon.class) +@Mixin(net.minecraft.world.entity.animal.fish.Salmon.class) public abstract class SalmonMixin_API extends AbstractSchoolingFishMixin_API implements Salmon { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/SalmonVariantMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fish/SalmonVariantMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/SalmonVariantMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fish/SalmonVariantMixin_API.java index 6830b15c2c1..605c6e1b15f 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/SalmonVariantMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fish/SalmonVariantMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.fish; -import net.minecraft.world.entity.animal.Salmon; +import net.minecraft.world.entity.animal.fish.Salmon; import org.spongepowered.api.data.type.SalmonSize; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/TropicalFishMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fish/TropicalFishMixin_API.java similarity index 96% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/TropicalFishMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fish/TropicalFishMixin_API.java index c899e8468dc..eaba0d4a2d7 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/TropicalFishMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fish/TropicalFishMixin_API.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.fish; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; @@ -31,7 +31,7 @@ import java.util.Set; -@Mixin(net.minecraft.world.entity.animal.TropicalFish.class) +@Mixin(net.minecraft.world.entity.animal.fish.TropicalFish.class) public abstract class TropicalFishMixin_API extends AbstractSchoolingFishMixin_API implements TropicalFish { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/TropicalFish_PatternMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fish/TropicalFish_PatternMixin_API.java similarity index 96% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/TropicalFish_PatternMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fish/TropicalFish_PatternMixin_API.java index f4fe5383e8c..1eddb7e0c7e 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/TropicalFish_PatternMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fish/TropicalFish_PatternMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.fish; -import net.minecraft.world.entity.animal.TropicalFish; +import net.minecraft.world.entity.animal.fish.TropicalFish; import org.spongepowered.api.data.type.TropicalFishShape; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/WaterAnimalMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fish/WaterAnimalMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/WaterAnimalMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fish/WaterAnimalMixin_API.java index 8ae63dc801e..bff1d7b0200 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/WaterAnimalMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fish/WaterAnimalMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.fish; -import net.minecraft.world.entity.animal.WaterAnimal; +import net.minecraft.world.entity.animal.fish.WaterAnimal; import org.spongepowered.api.entity.living.aquatic.Aquatic; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.common.mixin.api.minecraft.world.entity.MobMixin_API; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/FoxMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fox/FoxMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/FoxMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fox/FoxMixin_API.java index 8cff309148a..b3bcea4ad09 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/FoxMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fox/FoxMixin_API.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.fox; import net.minecraft.world.entity.EntityReference; import net.minecraft.world.entity.LivingEntity; @@ -35,12 +35,13 @@ import org.spongepowered.asm.mixin.Intrinsic; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.common.mixin.api.minecraft.world.entity.animal.AnimalMixin_API; import java.util.Set; import java.util.UUID; import java.util.stream.Stream; -@Mixin(net.minecraft.world.entity.animal.Fox.class) +@Mixin(net.minecraft.world.entity.animal.fox.Fox.class) @Implements(@Interface(iface = Fox.class, prefix = "fox$", remap = Remap.NONE)) public abstract class FoxMixin_API extends AnimalMixin_API implements Fox { diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/Fox_VariantMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fox/Fox_VariantMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/Fox_VariantMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fox/Fox_VariantMixin_API.java index b7af53b114c..9b44a0350a4 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/Fox_VariantMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/fox/Fox_VariantMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.fox; -import net.minecraft.world.entity.animal.Fox; +import net.minecraft.world.entity.animal.fox.Fox; import org.spongepowered.api.data.type.FoxType; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/FrogVariantMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/frog/FrogVariantMixin_API.java similarity index 99% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/FrogVariantMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/frog/FrogVariantMixin_API.java index 6de70dbb983..91b73533871 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/FrogVariantMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/frog/FrogVariantMixin_API.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.frog; import net.minecraft.world.entity.animal.frog.FrogVariant; import org.spongepowered.api.data.type.FrogType; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/frog/TadpoleMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/frog/TadpoleMixin_API.java index aee39cf5fc7..36bbe9578c0 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/frog/TadpoleMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/frog/TadpoleMixin_API.java @@ -27,7 +27,7 @@ import org.spongepowered.api.data.value.Value; import org.spongepowered.api.entity.living.animal.frog.Tadpole; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.common.mixin.api.minecraft.world.entity.animal.AbstractFishMixin_API; +import org.spongepowered.common.mixin.api.minecraft.world.entity.animal.fish.AbstractFishMixin_API; import java.util.Set; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/AbstractGolemMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/golem/AbstractGolemMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/AbstractGolemMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/golem/AbstractGolemMixin_API.java index bc1a53beaa9..58bb6ad99fe 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/AbstractGolemMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/golem/AbstractGolemMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.golem; -import net.minecraft.world.entity.animal.AbstractGolem; +import net.minecraft.world.entity.animal.golem.AbstractGolem; import org.spongepowered.api.entity.living.golem.Golem; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.common.mixin.api.minecraft.world.entity.PathfinderMobMixin_API; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/golem/CopperGolemMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/golem/CopperGolemMixin_API.java new file mode 100644 index 00000000000..daaf5c310c1 --- /dev/null +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/golem/CopperGolemMixin_API.java @@ -0,0 +1,34 @@ +/* + * This file is part of Sponge, licensed under the MIT License (MIT). + * + * Copyright (c) SpongePowered + * Copyright (c) contributors + * + * 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. + */ +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.golem; + +import org.spongepowered.api.entity.living.golem.CopperGolem; +import org.spongepowered.api.entity.living.golem.SnowGolem; +import org.spongepowered.asm.mixin.Mixin; + +@Mixin(net.minecraft.world.entity.animal.golem.CopperGolem.class) +public abstract class CopperGolemMixin_API extends AbstractGolemMixin_API implements CopperGolem { + +} diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/IronGolemMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/golem/IronGolemMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/IronGolemMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/golem/IronGolemMixin_API.java index d6917022ae5..6c98ba3f6e2 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/IronGolemMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/golem/IronGolemMixin_API.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.golem; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; @@ -31,7 +31,7 @@ import java.util.Set; -@Mixin(net.minecraft.world.entity.animal.IronGolem.class) +@Mixin(net.minecraft.world.entity.animal.golem.IronGolem.class) public abstract class IronGolemMixin_API extends AbstractGolemMixin_API implements IronGolem { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/SnowGolemMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/golem/SnowGolemMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/SnowGolemMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/golem/SnowGolemMixin_API.java index e8c23f3e482..6c3f2ed4d08 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/SnowGolemMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/golem/SnowGolemMixin_API.java @@ -22,12 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.golem; import org.spongepowered.api.entity.living.golem.SnowGolem; import org.spongepowered.asm.mixin.Mixin; -@Mixin(net.minecraft.world.entity.animal.SnowGolem.class) +@Mixin(net.minecraft.world.entity.animal.golem.SnowGolem.class) public abstract class SnowGolemMixin_API extends AbstractGolemMixin_API implements SnowGolem { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/PandaMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/panda/PandaMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/PandaMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/panda/PandaMixin_API.java index 1c801518f22..8ed5f345a23 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/PandaMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/panda/PandaMixin_API.java @@ -22,16 +22,17 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.panda; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.entity.living.animal.Panda; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.common.mixin.api.minecraft.world.entity.animal.AnimalMixin_API; import java.util.Set; -@Mixin(net.minecraft.world.entity.animal.Panda.class) +@Mixin(net.minecraft.world.entity.animal.panda.Panda.class) public abstract class PandaMixin_API extends AnimalMixin_API implements Panda { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/Panda_GeneMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/panda/Panda_GeneMixin_API.java similarity index 96% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/Panda_GeneMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/panda/Panda_GeneMixin_API.java index b4648c09241..b200fa35273 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/Panda_GeneMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/panda/Panda_GeneMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.panda; -import net.minecraft.world.entity.animal.Panda; +import net.minecraft.world.entity.animal.panda.Panda; import org.spongepowered.api.data.type.PandaGene; import org.spongepowered.asm.mixin.Implements; import org.spongepowered.asm.mixin.Interface; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/ParrotMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/parrot/ParrotMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/ParrotMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/parrot/ParrotMixin_API.java index 4b11b38bb91..71d2039381f 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/ParrotMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/parrot/ParrotMixin_API.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.parrot; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; @@ -31,7 +31,7 @@ import java.util.Set; -@Mixin(net.minecraft.world.entity.animal.Parrot.class) +@Mixin(net.minecraft.world.entity.animal.parrot.Parrot.class) public abstract class ParrotMixin_API extends ShoulderRidingEntityMixin_API implements Parrot { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/Parrot_VariantMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/parrot/Parrot_VariantMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/Parrot_VariantMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/parrot/Parrot_VariantMixin_API.java index b9b6f5798a9..4e83cb7e5a3 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/Parrot_VariantMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/parrot/Parrot_VariantMixin_API.java @@ -22,12 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.parrot; import org.spongepowered.api.data.type.ParrotType; import org.spongepowered.asm.mixin.Mixin; -@Mixin(net.minecraft.world.entity.animal.Parrot.Variant.class) +@Mixin(net.minecraft.world.entity.animal.parrot.Parrot.Variant.class) public abstract class Parrot_VariantMixin_API implements ParrotType { diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/ShoulderRidingEntityMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/parrot/ShoulderRidingEntityMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/ShoulderRidingEntityMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/parrot/ShoulderRidingEntityMixin_API.java index 44e88b5417b..50a696ee04d 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/ShoulderRidingEntityMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/parrot/ShoulderRidingEntityMixin_API.java @@ -22,12 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.parrot; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.common.mixin.api.minecraft.world.entity.TamableAnimalMixin_API; -@Mixin(net.minecraft.world.entity.animal.ShoulderRidingEntity.class) +@Mixin(net.minecraft.world.entity.animal.parrot.ShoulderRidingEntity.class) public abstract class ShoulderRidingEntityMixin_API extends TamableAnimalMixin_API { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/PigMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/pig/PigMixin_API.java similarity index 92% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/PigMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/pig/PigMixin_API.java index 99a9bb2709b..a77790bf21d 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/PigMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/pig/PigMixin_API.java @@ -22,16 +22,17 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.pig; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.entity.living.animal.Pig; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.common.mixin.api.minecraft.world.entity.animal.AnimalMixin_API; import java.util.Set; -@Mixin(net.minecraft.world.entity.animal.Pig.class) +@Mixin(net.minecraft.world.entity.animal.pig.Pig.class) public abstract class PigMixin_API extends AnimalMixin_API implements Pig { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/PigVariantMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/pig/PigVariantMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/PigVariantMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/pig/PigVariantMixin_API.java index cd55ac4eed2..b374b70822d 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/PigVariantMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/pig/PigVariantMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.pig; -import net.minecraft.world.entity.animal.PigVariant; +import net.minecraft.world.entity.animal.pig.PigVariant; import org.spongepowered.api.data.type.PigType; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/PolarBearMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/polarbear/PolarBearMixin_API.java similarity index 91% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/PolarBearMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/polarbear/PolarBearMixin_API.java index ffc308a242b..60bdbd05d19 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/PolarBearMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/polarbear/PolarBearMixin_API.java @@ -22,16 +22,17 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.polarbear; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.entity.living.animal.PolarBear; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.common.mixin.api.minecraft.world.entity.animal.AnimalMixin_API; import java.util.Set; -@Mixin(net.minecraft.world.entity.animal.PolarBear.class) +@Mixin(net.minecraft.world.entity.animal.polarbear.PolarBear.class) public abstract class PolarBearMixin_API extends AnimalMixin_API implements PolarBear { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/RabbitMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/rabbit/RabbitMixin_API.java similarity index 91% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/RabbitMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/rabbit/RabbitMixin_API.java index a4a60b1fef3..23262a67025 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/RabbitMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/rabbit/RabbitMixin_API.java @@ -22,16 +22,17 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.rabbit; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.entity.living.animal.Rabbit; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.common.mixin.api.minecraft.world.entity.animal.AnimalMixin_API; import java.util.Set; -@Mixin(net.minecraft.world.entity.animal.Rabbit.class) +@Mixin(net.minecraft.world.entity.animal.rabbit.Rabbit.class) public abstract class RabbitMixin_API extends AnimalMixin_API implements Rabbit { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/Rabbit_VariantMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/rabbit/Rabbit_VariantMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/Rabbit_VariantMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/rabbit/Rabbit_VariantMixin_API.java index 424366ea007..94a1fb9e31e 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/Rabbit_VariantMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/rabbit/Rabbit_VariantMixin_API.java @@ -22,12 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.rabbit; import org.spongepowered.api.data.type.RabbitType; import org.spongepowered.asm.mixin.Mixin; -@Mixin(net.minecraft.world.entity.animal.Rabbit.Variant.class) +@Mixin(net.minecraft.world.entity.animal.rabbit.Rabbit.Variant.class) public abstract class Rabbit_VariantMixin_API implements RabbitType { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/GlowSquidMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/squid/GlowSquidMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/GlowSquidMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/squid/GlowSquidMixin_API.java index de783fb269b..08daa57f927 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/GlowSquidMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/squid/GlowSquidMixin_API.java @@ -22,11 +22,11 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.squid; import org.spongepowered.api.entity.living.aquatic.GlowSquid; import org.spongepowered.asm.mixin.Mixin; -@Mixin(net.minecraft.world.entity.GlowSquid.class) +@Mixin(net.minecraft.world.entity.animal.squid.GlowSquid.class) public abstract class GlowSquidMixin_API implements GlowSquid { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/SquidMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/squid/SquidMixin_API.java similarity index 89% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/SquidMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/squid/SquidMixin_API.java index 91950d3f8bd..7f20da49d1e 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/SquidMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/squid/SquidMixin_API.java @@ -22,12 +22,13 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.squid; import org.spongepowered.api.entity.living.aquatic.Squid; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.common.mixin.api.minecraft.world.entity.animal.AgeableWaterCreatureMixin_API; -@Mixin(net.minecraft.world.entity.animal.Squid.class) +@Mixin(net.minecraft.world.entity.animal.squid.Squid.class) public abstract class SquidMixin_API extends AgeableWaterCreatureMixin_API implements Squid { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/TurtleMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/turtle/TurtleMixin_API.java similarity index 92% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/TurtleMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/turtle/TurtleMixin_API.java index af8c0ac2d78..b1790c8a505 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/TurtleMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/turtle/TurtleMixin_API.java @@ -22,16 +22,17 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.animal; +package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.turtle; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.entity.living.animal.Turtle; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.common.mixin.api.minecraft.world.entity.animal.AnimalMixin_API; import java.util.Set; -@Mixin(net.minecraft.world.entity.animal.Turtle.class) +@Mixin(net.minecraft.world.entity.animal.turtle.Turtle.class) public abstract class TurtleMixin_API extends AnimalMixin_API implements Turtle { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/boss/enderdragon/EnderDragonMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/boss/enderdragon/EnderDragonMixin_API.java index 1d5ea3ce658..593c5647d80 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/boss/enderdragon/EnderDragonMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/boss/enderdragon/EnderDragonMixin_API.java @@ -43,7 +43,7 @@ public abstract class EnderDragonMixin_API extends MobMixin_API implements EnderDragon { // @formatter:off - @Shadow @Final private net.minecraft.world.entity.boss.EnderDragonPart[] subEntities; + @Shadow @Final private net.minecraft.world.entity.boss.enderdragon.EnderDragonPart[] subEntities; @Shadow @Final private EnderDragonPhaseManager phaseManager; // @formatter:on @@ -51,7 +51,7 @@ public abstract class EnderDragonMixin_API extends MobMixin_API implements Ender public Set parts() { Builder builder = ImmutableSet.builder(); - for (net.minecraft.world.entity.boss.EnderDragonPart part : this.subEntities) { + for (net.minecraft.world.entity.boss.enderdragon.EnderDragonPart part : this.subEntities) { builder.add((EnderDragonPart) part); } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/boss/EnderDragonPartMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/boss/enderdragon/EnderDragonPartMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/boss/EnderDragonPartMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/boss/enderdragon/EnderDragonPartMixin_API.java index 2018ad2420b..75068e50e3c 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/boss/EnderDragonPartMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/boss/enderdragon/EnderDragonPartMixin_API.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.boss; +package org.spongepowered.common.mixin.api.minecraft.world.entity.boss.enderdragon; import org.spongepowered.api.entity.living.monster.boss.dragon.EnderDragon; import org.spongepowered.api.entity.living.monster.boss.dragon.EnderDragonPart; @@ -31,7 +31,7 @@ import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.common.mixin.api.minecraft.world.entity.EntityMixin_API; -@Mixin(net.minecraft.world.entity.boss.EnderDragonPart.class) +@Mixin(net.minecraft.world.entity.boss.enderdragon.EnderDragonPart.class) public abstract class EnderDragonPartMixin_API extends EntityMixin_API implements EnderDragonPart { // @formatter:off diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/decoration/PaintingMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/decoration/painting/PaintingMixin_API.java similarity index 90% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/decoration/PaintingMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/decoration/painting/PaintingMixin_API.java index 6182867cd8c..d3da6aea61a 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/decoration/PaintingMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/decoration/painting/PaintingMixin_API.java @@ -22,16 +22,17 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.decoration; +package org.spongepowered.common.mixin.api.minecraft.world.entity.decoration.painting; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.entity.hanging.Painting; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.common.mixin.api.minecraft.world.entity.decoration.HangingEntityMixin_API; import java.util.Set; -@Mixin(net.minecraft.world.entity.decoration.Painting.class) +@Mixin(net.minecraft.world.entity.decoration.painting.Painting.class) public abstract class PaintingMixin_API extends HangingEntityMixin_API implements Painting { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/decoration/PaintingVariantMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/decoration/painting/PaintingVariantMixin_API.java similarity index 87% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/decoration/PaintingVariantMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/decoration/painting/PaintingVariantMixin_API.java index fcad5395cb3..21d95cde7a4 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/decoration/PaintingVariantMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/decoration/painting/PaintingVariantMixin_API.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.decoration; +package org.spongepowered.common.mixin.api.minecraft.world.entity.decoration.painting; import org.spongepowered.api.data.persistence.DataContainer; import org.spongepowered.api.data.type.ArtType; @@ -32,11 +32,11 @@ import java.util.Optional; -@Mixin(net.minecraft.world.entity.decoration.PaintingVariant.class) +@Mixin(net.minecraft.world.entity.decoration.painting.PaintingVariant.class) public abstract class PaintingVariantMixin_API implements ArtType { @Override public Optional toDataPack(final RegistryHolder registryHolder) { - return DataPackUtil.toDataContainer(registryHolder, net.minecraft.world.entity.decoration.PaintingVariant.DIRECT_CODEC, (net.minecraft.world.entity.decoration.PaintingVariant) (Object) this); + return DataPackUtil.toDataContainer(registryHolder, net.minecraft.world.entity.decoration.painting.PaintingVariant.DIRECT_CODEC, (net.minecraft.world.entity.decoration.painting.PaintingVariant) (Object) this); } } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/ShulkerMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/ShulkerMixin_API.java index 3a0ed7b26d7..28a25f70e15 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/ShulkerMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/ShulkerMixin_API.java @@ -32,7 +32,7 @@ import org.spongepowered.api.entity.projectile.Projectile; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.common.entity.projectile.ProjectileUtil; -import org.spongepowered.common.mixin.api.minecraft.world.entity.animal.AbstractGolemMixin_API; +import org.spongepowered.common.mixin.api.minecraft.world.entity.animal.golem.AbstractGolemMixin_API; import java.util.Objects; import java.util.Optional; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/BreezeMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/breeze/BreezeMixin_API.java similarity index 93% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/BreezeMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/breeze/BreezeMixin_API.java index dc84063fb15..0edbfbb5754 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/BreezeMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/breeze/BreezeMixin_API.java @@ -22,10 +22,11 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.monster; +package org.spongepowered.common.mixin.api.minecraft.world.entity.monster.breeze; import org.spongepowered.api.entity.living.monster.breeze.Breeze; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.common.mixin.api.minecraft.world.entity.monster.MonsterMixin_API; @Mixin(net.minecraft.world.entity.monster.breeze.Breeze.class) public abstract class BreezeMixin_API extends MonsterMixin_API implements Breeze { diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/HoglinMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/hoglin/HoglinMixin_API.java similarity index 98% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/HoglinMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/hoglin/HoglinMixin_API.java index 566a80e54ca..d1af4d6b6de 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/HoglinMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/hoglin/HoglinMixin_API.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.monster; +package org.spongepowered.common.mixin.api.minecraft.world.entity.monster.hoglin; import org.spongepowered.api.entity.living.animal.Hoglin; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/AbstractIllagerMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/illager/AbstractIllagerMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/AbstractIllagerMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/illager/AbstractIllagerMixin_API.java index 8843ee358c6..c9ce5d9216f 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/AbstractIllagerMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/illager/AbstractIllagerMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.monster; +package org.spongepowered.common.mixin.api.minecraft.world.entity.monster.illager; -import net.minecraft.world.entity.monster.AbstractIllager; +import net.minecraft.world.entity.monster.illager.AbstractIllager; import org.spongepowered.api.entity.living.monster.raider.illager.Illager; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.common.mixin.api.minecraft.world.entity.raid.RaiderMixin_API; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/EvokerMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/illager/EvokerMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/EvokerMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/illager/EvokerMixin_API.java index bfa2e906e67..08f90069f81 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/EvokerMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/illager/EvokerMixin_API.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.monster; +package org.spongepowered.common.mixin.api.minecraft.world.entity.monster.illager; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; @@ -31,7 +31,7 @@ import java.util.Set; -@Mixin(net.minecraft.world.entity.monster.Evoker.class) +@Mixin(net.minecraft.world.entity.monster.illager.Evoker.class) public abstract class EvokerMixin_API extends SpellcasterIllagerMixin_API implements Evoker { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/IllusionerMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/illager/IllusionerMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/IllusionerMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/illager/IllusionerMixin_API.java index d3543f85819..b24b6f7f2a2 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/IllusionerMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/illager/IllusionerMixin_API.java @@ -22,12 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.monster; +package org.spongepowered.common.mixin.api.minecraft.world.entity.monster.illager; import org.spongepowered.api.entity.living.monster.raider.illager.spellcaster.Illusioner; import org.spongepowered.asm.mixin.Mixin; -@Mixin(net.minecraft.world.entity.monster.Illusioner.class) +@Mixin(net.minecraft.world.entity.monster.illager.Illusioner.class) public abstract class IllusionerMixin_API extends SpellcasterIllagerMixin_API implements Illusioner { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/PillagerMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/illager/PillagerMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/PillagerMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/illager/PillagerMixin_API.java index 64e7ef99122..0fc56689a09 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/PillagerMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/illager/PillagerMixin_API.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.monster; +package org.spongepowered.common.mixin.api.minecraft.world.entity.monster.illager; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; @@ -31,7 +31,7 @@ import java.util.Set; -@Mixin(net.minecraft.world.entity.monster.Pillager.class) +@Mixin(net.minecraft.world.entity.monster.illager.Pillager.class) public abstract class PillagerMixin_API extends AbstractIllagerMixin_API implements Pillager { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/SpellcasterIllagerMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/illager/SpellcasterIllagerMixin_API.java similarity index 96% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/SpellcasterIllagerMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/illager/SpellcasterIllagerMixin_API.java index 76a27df8baf..e421c14e7be 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/SpellcasterIllagerMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/illager/SpellcasterIllagerMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.monster; +package org.spongepowered.common.mixin.api.minecraft.world.entity.monster.illager; -import net.minecraft.world.entity.monster.SpellcasterIllager; +import net.minecraft.world.entity.monster.illager.SpellcasterIllager; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.entity.living.monster.raider.illager.spellcaster.Spellcaster; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/SpellcasterIllager_IllagerSpellMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/illager/SpellcasterIllager_IllagerSpellMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/SpellcasterIllager_IllagerSpellMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/illager/SpellcasterIllager_IllagerSpellMixin_API.java index e7b900dbfc9..74477199c0e 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/SpellcasterIllager_IllagerSpellMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/illager/SpellcasterIllager_IllagerSpellMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.monster; +package org.spongepowered.common.mixin.api.minecraft.world.entity.monster.illager; -import net.minecraft.world.entity.monster.SpellcasterIllager; +import net.minecraft.world.entity.monster.illager.SpellcasterIllager; import org.spongepowered.api.data.type.SpellType; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/VindicatorMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/illager/VindicatorMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/VindicatorMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/illager/VindicatorMixin_API.java index 2053431df08..f5f5cdff131 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/VindicatorMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/illager/VindicatorMixin_API.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.monster; +package org.spongepowered.common.mixin.api.minecraft.world.entity.monster.illager; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; @@ -31,7 +31,7 @@ import java.util.Set; -@Mixin(net.minecraft.world.entity.monster.Vindicator.class) +@Mixin(net.minecraft.world.entity.monster.illager.Vindicator.class) public abstract class VindicatorMixin_API extends AbstractIllagerMixin_API implements Vindicator { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/AbstractPiglinMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/piglin/AbstractPiglinMixin_API.java similarity index 98% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/AbstractPiglinMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/piglin/AbstractPiglinMixin_API.java index a06f5e83730..d4d7686e79b 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/AbstractPiglinMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/piglin/AbstractPiglinMixin_API.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.monster; +package org.spongepowered.common.mixin.api.minecraft.world.entity.monster.piglin; import net.minecraft.world.entity.monster.piglin.AbstractPiglin; import org.spongepowered.api.entity.living.monster.piglin.PiglinLike; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/PiglinBruteMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/piglin/PiglinBruteMixin_API.java similarity index 98% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/PiglinBruteMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/piglin/PiglinBruteMixin_API.java index ff57494d1e7..90869eb2712 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/PiglinBruteMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/piglin/PiglinBruteMixin_API.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.monster; +package org.spongepowered.common.mixin.api.minecraft.world.entity.monster.piglin; import org.spongepowered.api.entity.living.monster.piglin.PiglinBrute; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/PiglinMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/piglin/PiglinMixin_API.java similarity index 98% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/PiglinMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/piglin/PiglinMixin_API.java index 07d859aa8cf..6447ac82a16 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/PiglinMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/piglin/PiglinMixin_API.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.monster; +package org.spongepowered.common.mixin.api.minecraft.world.entity.monster.piglin; import org.spongepowered.api.entity.living.monster.piglin.Piglin; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/AbstractSkeletonMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/skeleton/AbstractSkeletonMixin_API.java similarity index 89% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/AbstractSkeletonMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/skeleton/AbstractSkeletonMixin_API.java index da02f7d8a40..dd8833642cd 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/AbstractSkeletonMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/skeleton/AbstractSkeletonMixin_API.java @@ -22,11 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.monster; +package org.spongepowered.common.mixin.api.minecraft.world.entity.monster.skeleton; -import net.minecraft.world.entity.monster.AbstractSkeleton; +import net.minecraft.world.entity.monster.skeleton.AbstractSkeleton; import org.spongepowered.api.entity.living.monster.skeleton.SkeletonLike; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.common.mixin.api.minecraft.world.entity.monster.MonsterMixin_API; @Mixin(AbstractSkeleton.class) public abstract class AbstractSkeletonMixin_API extends MonsterMixin_API implements SkeletonLike { diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/BoggedMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/skeleton/BoggedMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/BoggedMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/skeleton/BoggedMixin_API.java index 6dc064db04e..2cb15655d58 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/BoggedMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/skeleton/BoggedMixin_API.java @@ -22,12 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.monster; +package org.spongepowered.common.mixin.api.minecraft.world.entity.monster.skeleton; import org.spongepowered.api.entity.living.monster.skeleton.Bogged; import org.spongepowered.asm.mixin.Mixin; -@Mixin(net.minecraft.world.entity.monster.Bogged.class) +@Mixin(net.minecraft.world.entity.monster.skeleton.Bogged.class) public abstract class BoggedMixin_API extends AbstractSkeletonMixin_API implements Bogged { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/ParchedMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/skeleton/ParchedMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/ParchedMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/skeleton/ParchedMixin_API.java index c9f2db7934f..f201b9abd60 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/ParchedMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/skeleton/ParchedMixin_API.java @@ -22,12 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.monster; +package org.spongepowered.common.mixin.api.minecraft.world.entity.monster.skeleton; import org.spongepowered.api.entity.living.monster.skeleton.Parched; import org.spongepowered.asm.mixin.Mixin; -@Mixin(net.minecraft.world.entity.monster.Parched.class) +@Mixin(net.minecraft.world.entity.monster.skeleton.Parched.class) public abstract class ParchedMixin_API extends AbstractSkeletonMixin_API implements Parched { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/SkeletonMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/skeleton/SkeletonMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/SkeletonMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/skeleton/SkeletonMixin_API.java index 5256da67b7e..10a4b5cff05 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/SkeletonMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/skeleton/SkeletonMixin_API.java @@ -22,12 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.monster; +package org.spongepowered.common.mixin.api.minecraft.world.entity.monster.skeleton; import org.spongepowered.api.entity.living.monster.skeleton.Skeleton; import org.spongepowered.asm.mixin.Mixin; -@Mixin(net.minecraft.world.entity.monster.Skeleton.class) +@Mixin(net.minecraft.world.entity.monster.skeleton.Skeleton.class) public abstract class SkeletonMixin_API extends AbstractSkeletonMixin_API implements Skeleton { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/StrayMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/skeleton/StrayMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/StrayMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/skeleton/StrayMixin_API.java index 598393f3d6e..a9753f77498 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/StrayMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/skeleton/StrayMixin_API.java @@ -22,12 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.monster; +package org.spongepowered.common.mixin.api.minecraft.world.entity.monster.skeleton; import org.spongepowered.api.entity.living.monster.skeleton.Stray; import org.spongepowered.asm.mixin.Mixin; -@Mixin(net.minecraft.world.entity.monster.Stray.class) +@Mixin(net.minecraft.world.entity.monster.skeleton.Stray.class) public abstract class StrayMixin_API extends AbstractSkeletonMixin_API implements Stray { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/WitherSkeletonMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/skeleton/WitherSkeletonMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/WitherSkeletonMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/skeleton/WitherSkeletonMixin_API.java index 0b2370c82f4..d094112c222 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/WitherSkeletonMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/skeleton/WitherSkeletonMixin_API.java @@ -22,12 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.monster; +package org.spongepowered.common.mixin.api.minecraft.world.entity.monster.skeleton; import org.spongepowered.api.entity.living.monster.skeleton.WitherSkeleton; import org.spongepowered.asm.mixin.Mixin; -@Mixin(net.minecraft.world.entity.monster.WitherSkeleton.class) +@Mixin(net.minecraft.world.entity.monster.skeleton.WitherSkeleton.class) public abstract class WitherSkeletonMixin_API extends AbstractSkeletonMixin_API implements WitherSkeleton { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/CaveSpiderMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/spider/CaveSpiderMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/CaveSpiderMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/spider/CaveSpiderMixin_API.java index d4642c10802..f6d75889526 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/CaveSpiderMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/spider/CaveSpiderMixin_API.java @@ -22,12 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.monster; +package org.spongepowered.common.mixin.api.minecraft.world.entity.monster.spider; import org.spongepowered.api.entity.living.monster.spider.CaveSpider; import org.spongepowered.asm.mixin.Mixin; -@Mixin(net.minecraft.world.entity.monster.CaveSpider.class) +@Mixin(net.minecraft.world.entity.monster.spider.CaveSpider.class) public abstract class CaveSpiderMixin_API extends SpiderMixin_API implements CaveSpider { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/SpiderMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/spider/SpiderMixin_API.java similarity index 91% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/SpiderMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/spider/SpiderMixin_API.java index dee3c008865..c2c2009a9d1 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/SpiderMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/spider/SpiderMixin_API.java @@ -22,16 +22,17 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.monster; +package org.spongepowered.common.mixin.api.minecraft.world.entity.monster.spider; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.entity.living.monster.spider.Spider; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.common.mixin.api.minecraft.world.entity.monster.MonsterMixin_API; import java.util.Set; -@Mixin(net.minecraft.world.entity.monster.Spider.class) +@Mixin(net.minecraft.world.entity.monster.spider.Spider.class) public abstract class SpiderMixin_API extends MonsterMixin_API implements Spider { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/DrownedMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/zombie/DrownedMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/DrownedMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/zombie/DrownedMixin_API.java index 1df42a64f8a..b016c59527a 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/DrownedMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/zombie/DrownedMixin_API.java @@ -22,12 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.monster; +package org.spongepowered.common.mixin.api.minecraft.world.entity.monster.zombie; import org.spongepowered.api.entity.living.monster.zombie.Drowned; import org.spongepowered.asm.mixin.Mixin; -@Mixin(net.minecraft.world.entity.monster.Drowned.class) +@Mixin(net.minecraft.world.entity.monster.zombie.Drowned.class) public abstract class DrownedMixin_API extends ZombieMixin_API implements Drowned { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/HuskMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/zombie/HuskMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/HuskMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/zombie/HuskMixin_API.java index 977efde3f47..fe5303be2c4 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/HuskMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/zombie/HuskMixin_API.java @@ -22,12 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.monster; +package org.spongepowered.common.mixin.api.minecraft.world.entity.monster.zombie; import org.spongepowered.api.entity.living.monster.zombie.Husk; import org.spongepowered.asm.mixin.Mixin; -@Mixin(net.minecraft.world.entity.monster.Husk.class) +@Mixin(net.minecraft.world.entity.monster.zombie.Husk.class) public abstract class HuskMixin_API extends ZombieMixin_API implements Husk { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/ZombieMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/zombie/ZombieMixin_API.java similarity index 91% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/ZombieMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/zombie/ZombieMixin_API.java index f2bda1f4acb..bf5b20f310b 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/ZombieMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/zombie/ZombieMixin_API.java @@ -22,16 +22,17 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.monster; +package org.spongepowered.common.mixin.api.minecraft.world.entity.monster.zombie; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.entity.living.monster.zombie.Zombie; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.common.mixin.api.minecraft.world.entity.monster.MonsterMixin_API; import java.util.Set; -@Mixin(net.minecraft.world.entity.monster.Zombie.class) +@Mixin(net.minecraft.world.entity.monster.zombie.Zombie.class) public abstract class ZombieMixin_API extends MonsterMixin_API implements Zombie { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/ZombieVillagerMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/zombie/ZombieVillagerMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/ZombieVillagerMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/zombie/ZombieVillagerMixin_API.java index c649140cf59..41061c9d42b 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/ZombieVillagerMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/zombie/ZombieVillagerMixin_API.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.monster; +package org.spongepowered.common.mixin.api.minecraft.world.entity.monster.zombie; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; @@ -31,7 +31,7 @@ import java.util.Set; -@Mixin(net.minecraft.world.entity.monster.ZombieVillager.class) +@Mixin(net.minecraft.world.entity.monster.zombie.ZombieVillager.class) public abstract class ZombieVillagerMixin_API extends ZombieMixin_API implements ZombieVillager { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/ZombifiedPiglinMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/zombie/ZombifiedPiglinMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/ZombifiedPiglinMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/zombie/ZombifiedPiglinMixin_API.java index a86f41dfb40..09d78f74d03 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/ZombifiedPiglinMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/monster/zombie/ZombifiedPiglinMixin_API.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.monster; +package org.spongepowered.common.mixin.api.minecraft.world.entity.monster.zombie; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; @@ -31,7 +31,7 @@ import java.util.Set; -@Mixin(net.minecraft.world.entity.monster.ZombifiedPiglin.class) +@Mixin(net.minecraft.world.entity.monster.zombie.ZombifiedPiglin.class) public abstract class ZombifiedPiglinMixin_API extends ZombieMixin_API implements ZombifiedPiglin { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/AbstractVillagerMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/villager/AbstractVillagerMixin_API.java similarity index 96% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/AbstractVillagerMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/villager/AbstractVillagerMixin_API.java index e60b8d0166d..d0ea92835ad 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/AbstractVillagerMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/villager/AbstractVillagerMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.npc; +package org.spongepowered.common.mixin.api.minecraft.world.entity.npc.villager; -import net.minecraft.world.entity.npc.AbstractVillager; +import net.minecraft.world.entity.npc.villager.AbstractVillager; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.entity.living.trader.VillagerLike; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/VillagerMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/villager/VillagerMixin_API.java similarity index 96% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/VillagerMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/villager/VillagerMixin_API.java index 1b3603129df..c2fdcddd70c 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/VillagerMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/villager/VillagerMixin_API.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.npc; +package org.spongepowered.common.mixin.api.minecraft.world.entity.npc.villager; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; @@ -31,7 +31,7 @@ import java.util.Set; -@Mixin(net.minecraft.world.entity.npc.Villager.class) +@Mixin(net.minecraft.world.entity.npc.villager.Villager.class) public abstract class VillagerMixin_API extends AbstractVillagerMixin_API implements Villager { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/VillagerProfessionMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/villager/VillagerProfessionMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/VillagerProfessionMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/villager/VillagerProfessionMixin_API.java index 2f6d3d6700e..bcf1e8769d5 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/VillagerProfessionMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/villager/VillagerProfessionMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.npc; +package org.spongepowered.common.mixin.api.minecraft.world.entity.npc.villager; -import net.minecraft.world.entity.npc.VillagerProfession; +import net.minecraft.world.entity.npc.villager.VillagerProfession; import org.spongepowered.api.data.type.ProfessionType; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/VillagerTrades_ItemListingMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/villager/VillagerTrades_ItemListingMixin_API.java similarity index 96% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/VillagerTrades_ItemListingMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/villager/VillagerTrades_ItemListingMixin_API.java index aa40f796fab..5776537988f 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/VillagerTrades_ItemListingMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/villager/VillagerTrades_ItemListingMixin_API.java @@ -22,12 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.npc; +package org.spongepowered.common.mixin.api.minecraft.world.entity.npc.villager; import net.minecraft.server.level.ServerLevel; import net.minecraft.util.RandomSource; import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.npc.VillagerTrades; +import net.minecraft.world.entity.npc.villager.VillagerTrades; import net.minecraft.world.item.trading.MerchantOffer; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.api.item.merchant.TradeOffer; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/VillagerTypeMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/villager/VillagerTypeMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/VillagerTypeMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/villager/VillagerTypeMixin_API.java index bbe9082a9a4..0c87bd0aa47 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/VillagerTypeMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/villager/VillagerTypeMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.npc; +package org.spongepowered.common.mixin.api.minecraft.world.entity.npc.villager; -import net.minecraft.world.entity.npc.VillagerType; +import net.minecraft.world.entity.npc.villager.VillagerType; import org.spongepowered.asm.mixin.Mixin; @Mixin(VillagerType.class) diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/WanderingTraderMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/wanderingtrader/WanderingTraderMixin_API.java similarity index 90% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/WanderingTraderMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/wanderingtrader/WanderingTraderMixin_API.java index f9e31164eae..11a4667f181 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/WanderingTraderMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/npc/wanderingtrader/WanderingTraderMixin_API.java @@ -22,16 +22,17 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.npc; +package org.spongepowered.common.mixin.api.minecraft.world.entity.npc.wanderingtrader; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.entity.living.trader.WanderingTrader; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.common.mixin.api.minecraft.world.entity.npc.villager.AbstractVillagerMixin_API; import java.util.Set; -@Mixin(net.minecraft.world.entity.npc.WanderingTrader.class) +@Mixin(net.minecraft.world.entity.npc.wanderingtrader.WanderingTrader.class) public abstract class WanderingTraderMixin_API extends AbstractVillagerMixin_API implements WanderingTrader { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/AbstractArrowMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/arrow/AbstractArrowMixin_API.java similarity index 92% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/AbstractArrowMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/arrow/AbstractArrowMixin_API.java index 14702b4832c..677e9cd3641 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/AbstractArrowMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/arrow/AbstractArrowMixin_API.java @@ -22,13 +22,14 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile; +package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile.arrow; -import net.minecraft.world.entity.projectile.AbstractArrow; +import net.minecraft.world.entity.projectile.arrow.AbstractArrow; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.entity.projectile.arrow.ArrowLike; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.common.mixin.api.minecraft.world.entity.projectile.ProjectileMixin_API; import java.util.Set; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/AbstractArrow_PickupMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/arrow/AbstractArrow_PickupMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/AbstractArrow_PickupMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/arrow/AbstractArrow_PickupMixin_API.java index 2b6317f72bc..af2ee6cfd1f 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/AbstractArrow_PickupMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/arrow/AbstractArrow_PickupMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile; +package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile.arrow; -import net.minecraft.world.entity.projectile.AbstractArrow; +import net.minecraft.world.entity.projectile.arrow.AbstractArrow; import org.spongepowered.api.data.type.PickupRule; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/ArrowMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/arrow/ArrowMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/ArrowMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/arrow/ArrowMixin_API.java index af7f6e134e5..aacaed6b0ec 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/ArrowMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/arrow/ArrowMixin_API.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile; +package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile.arrow; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; @@ -31,7 +31,7 @@ import java.util.Set; -@Mixin(net.minecraft.world.entity.projectile.Arrow.class) +@Mixin(net.minecraft.world.entity.projectile.arrow.Arrow.class) public abstract class ArrowMixin_API extends AbstractArrowMixin_API implements Arrow { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/SpectralArrowMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/arrow/SpectralArrowMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/SpectralArrowMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/arrow/SpectralArrowMixin_API.java index f7b1de3429b..54817227838 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/SpectralArrowMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/arrow/SpectralArrowMixin_API.java @@ -22,12 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile; +package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile.arrow; import org.spongepowered.api.entity.projectile.arrow.SpectralArrow; import org.spongepowered.asm.mixin.Mixin; -@Mixin(net.minecraft.world.entity.projectile.SpectralArrow.class) +@Mixin(net.minecraft.world.entity.projectile.arrow.SpectralArrow.class) public abstract class SpectralArrowMixin_API extends AbstractArrowMixin_API implements SpectralArrow { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/ThrownTridentMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/arrow/ThrownTridentMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/ThrownTridentMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/arrow/ThrownTridentMixin_API.java index 4dcadc05ee9..41509d0537f 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/ThrownTridentMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/arrow/ThrownTridentMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile; +package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile.arrow; -import net.minecraft.world.entity.projectile.ThrownTrident; +import net.minecraft.world.entity.projectile.arrow.ThrownTrident; import org.spongepowered.api.entity.projectile.arrow.Trident; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/AbstractHurtingProjectileMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/hurtingprojectile/AbstractHurtingProjectileMixin_API.java similarity index 89% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/AbstractHurtingProjectileMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/hurtingprojectile/AbstractHurtingProjectileMixin_API.java index e709112d51e..4b96313a9e8 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/AbstractHurtingProjectileMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/hurtingprojectile/AbstractHurtingProjectileMixin_API.java @@ -22,13 +22,14 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile; +package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile.hurtingprojectile; -import net.minecraft.world.entity.projectile.AbstractHurtingProjectile; +import net.minecraft.world.entity.projectile.hurtingprojectile.AbstractHurtingProjectile; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.entity.projectile.AcceleratingProjectile; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.common.mixin.api.minecraft.world.entity.projectile.ProjectileMixin_API; import java.util.Set; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/DragonFireballMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/hurtingprojectile/DragonFireballMixin_API.java similarity index 93% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/DragonFireballMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/hurtingprojectile/DragonFireballMixin_API.java index 49758fd8b01..a38feff5816 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/DragonFireballMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/hurtingprojectile/DragonFireballMixin_API.java @@ -22,12 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile; +package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile.hurtingprojectile; import org.spongepowered.api.entity.projectile.explosive.fireball.DragonFireball; import org.spongepowered.asm.mixin.Mixin; -@Mixin(net.minecraft.world.entity.projectile.DragonFireball.class) +@Mixin(net.minecraft.world.entity.projectile.hurtingprojectile.DragonFireball.class) public abstract class DragonFireballMixin_API extends AbstractHurtingProjectileMixin_API implements DragonFireball { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/FireballMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/hurtingprojectile/FireballMixin_API.java similarity index 93% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/FireballMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/hurtingprojectile/FireballMixin_API.java index 3ee190cad57..1c958da47f4 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/FireballMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/hurtingprojectile/FireballMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile; +package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile.hurtingprojectile; -import net.minecraft.world.entity.projectile.Fireball; +import net.minecraft.world.entity.projectile.hurtingprojectile.Fireball; import org.spongepowered.api.entity.projectile.IgnitingProjectile; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/LargeFireballMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/hurtingprojectile/LargeFireballMixin_API.java similarity index 96% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/LargeFireballMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/hurtingprojectile/LargeFireballMixin_API.java index 52af501a93a..f8a822382b0 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/LargeFireballMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/hurtingprojectile/LargeFireballMixin_API.java @@ -22,10 +22,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile; +package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile.hurtingprojectile; import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.entity.projectile.LargeFireball; +import net.minecraft.world.entity.projectile.hurtingprojectile.LargeFireball; import net.minecraft.world.level.Level; import net.minecraft.world.level.gamerules.GameRules; import org.spongepowered.api.data.Keys; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/SmallFireballMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/hurtingprojectile/SmallFireballMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/SmallFireballMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/hurtingprojectile/SmallFireballMixin_API.java index c7b55172d1d..8bffdf58b1b 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/SmallFireballMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/hurtingprojectile/SmallFireballMixin_API.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile; +package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile.hurtingprojectile; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; @@ -31,7 +31,7 @@ import java.util.Set; -@Mixin(net.minecraft.world.entity.projectile.SmallFireball.class) +@Mixin(net.minecraft.world.entity.projectile.hurtingprojectile.SmallFireball.class) public abstract class SmallFireballMixin_API extends FireballMixin_API implements SmallFireball { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/WitherSkullMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/hurtingprojectile/WitherSkullMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/WitherSkullMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/hurtingprojectile/WitherSkullMixin_API.java index 72742b09d19..ed258a11ad1 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/WitherSkullMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/hurtingprojectile/WitherSkullMixin_API.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile; +package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile.hurtingprojectile; import net.minecraft.world.level.Level; import org.spongepowered.api.data.Keys; @@ -33,7 +33,7 @@ import java.util.Set; -@Mixin(net.minecraft.world.entity.projectile.WitherSkull.class) +@Mixin(net.minecraft.world.entity.projectile.hurtingprojectile.WitherSkull.class) public abstract class WitherSkullMixin_API extends AbstractHurtingProjectileMixin_API implements WitherSkull { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/windcharge/AbstractWindChargeMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/hurtingprojectile/windcharge/AbstractWindChargeMixin_API.java similarity index 93% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/windcharge/AbstractWindChargeMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/hurtingprojectile/windcharge/AbstractWindChargeMixin_API.java index 863d312b601..72f44feb2e5 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/windcharge/AbstractWindChargeMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/hurtingprojectile/windcharge/AbstractWindChargeMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile.windcharge; +package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile.hurtingprojectile.windcharge; -import net.minecraft.world.entity.projectile.windcharge.AbstractWindCharge; +import net.minecraft.world.entity.projectile.hurtingprojectile.windcharge.AbstractWindCharge; import net.minecraft.world.phys.Vec3; import org.spongepowered.api.entity.explosive.Explosive; import org.spongepowered.api.entity.projectile.windcharge.WindChargeLike; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/windcharge/BreezeWindChargeMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/hurtingprojectile/windcharge/BreezeWindChargeMixin_API.java similarity index 91% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/windcharge/BreezeWindChargeMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/hurtingprojectile/windcharge/BreezeWindChargeMixin_API.java index f5313aff01b..5f42a87470d 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/windcharge/BreezeWindChargeMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/hurtingprojectile/windcharge/BreezeWindChargeMixin_API.java @@ -22,11 +22,11 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile.windcharge; +package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile.hurtingprojectile.windcharge; import org.spongepowered.api.entity.projectile.windcharge.BreezeWindCharge; import org.spongepowered.asm.mixin.Mixin; -@Mixin(net.minecraft.world.entity.projectile.windcharge.BreezeWindCharge.class) +@Mixin(net.minecraft.world.entity.projectile.hurtingprojectile.windcharge.BreezeWindCharge.class) public abstract class BreezeWindChargeMixin_API extends AbstractWindChargeMixin_API implements BreezeWindCharge { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/windcharge/WindChargeMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/hurtingprojectile/windcharge/WindChargeMixin_API.java similarity index 91% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/windcharge/WindChargeMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/hurtingprojectile/windcharge/WindChargeMixin_API.java index 5988ba9f4d0..2f85850c616 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/windcharge/WindChargeMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/hurtingprojectile/windcharge/WindChargeMixin_API.java @@ -22,11 +22,11 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile.windcharge; +package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile.hurtingprojectile.windcharge; import org.spongepowered.api.entity.projectile.windcharge.WindCharge; import org.spongepowered.asm.mixin.Mixin; -@Mixin(net.minecraft.world.entity.projectile.windcharge.WindCharge.class) +@Mixin(net.minecraft.world.entity.projectile.hurtingprojectile.windcharge.WindCharge.class) public abstract class WindChargeMixin_API extends AbstractWindChargeMixin_API implements WindCharge { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/SnowballMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/throwableitemprojectile/SnowballMixin_API.java similarity index 92% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/SnowballMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/throwableitemprojectile/SnowballMixin_API.java index 48f40eef4aa..ff855ac10e6 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/SnowballMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/throwableitemprojectile/SnowballMixin_API.java @@ -22,12 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile; +package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile.throwableitemprojectile; import org.spongepowered.api.entity.projectile.Snowball; import org.spongepowered.asm.mixin.Mixin; -@Mixin(net.minecraft.world.entity.projectile.Snowball.class) +@Mixin(net.minecraft.world.entity.projectile.throwableitemprojectile.Snowball.class) public abstract class SnowballMixin_API extends ThrowableItemProjectileMixin_API implements Snowball { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/ThrowableItemProjectileMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/throwableitemprojectile/ThrowableItemProjectileMixin_API.java similarity index 88% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/ThrowableItemProjectileMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/throwableitemprojectile/ThrowableItemProjectileMixin_API.java index 4c837849ac9..f7715097f66 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/ThrowableItemProjectileMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/throwableitemprojectile/ThrowableItemProjectileMixin_API.java @@ -22,16 +22,17 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile; +package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile.throwableitemprojectile; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.entity.projectile.ThrowableItemProjectile; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.common.mixin.api.minecraft.world.entity.projectile.ThrowableProjectileMixin_API; import java.util.Set; -@Mixin(net.minecraft.world.entity.projectile.ThrowableItemProjectile.class) +@Mixin(net.minecraft.world.entity.projectile.throwableitemprojectile.ThrowableItemProjectile.class) public abstract class ThrowableItemProjectileMixin_API extends ThrowableProjectileMixin_API implements ThrowableItemProjectile { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/ThrownEggMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/throwableitemprojectile/ThrownEggMixin_API.java similarity index 92% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/ThrownEggMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/throwableitemprojectile/ThrownEggMixin_API.java index c0d3cf6129f..dc134e7f5a2 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/ThrownEggMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/throwableitemprojectile/ThrownEggMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile; +package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile.throwableitemprojectile; -import net.minecraft.world.entity.projectile.ThrownEgg; +import net.minecraft.world.entity.projectile.throwableitemprojectile.ThrownEgg; import org.spongepowered.api.entity.projectile.Egg; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/ThrownEnderpearlMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/throwableitemprojectile/ThrownEnderpearlMixin_API.java similarity index 92% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/ThrownEnderpearlMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/throwableitemprojectile/ThrownEnderpearlMixin_API.java index 534361f9473..d500aec68d8 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/ThrownEnderpearlMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/throwableitemprojectile/ThrownEnderpearlMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile; +package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile.throwableitemprojectile; -import net.minecraft.world.entity.projectile.ThrownEnderpearl; +import net.minecraft.world.entity.projectile.throwableitemprojectile.ThrownEnderpearl; import org.spongepowered.api.entity.projectile.EnderPearl; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/ThrownExperienceBottleMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/throwableitemprojectile/ThrownExperienceBottleMixin_API.java similarity index 92% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/ThrownExperienceBottleMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/throwableitemprojectile/ThrownExperienceBottleMixin_API.java index 1ec7c1b777e..c44afc19677 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/ThrownExperienceBottleMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/throwableitemprojectile/ThrownExperienceBottleMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile; +package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile.throwableitemprojectile; -import net.minecraft.world.entity.projectile.ThrownExperienceBottle; +import net.minecraft.world.entity.projectile.throwableitemprojectile.ThrownExperienceBottle; import org.spongepowered.api.entity.projectile.ExperienceBottle; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/ThrownPotionMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/throwableitemprojectile/ThrownPotionMixin_API.java similarity index 93% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/ThrownPotionMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/throwableitemprojectile/ThrownPotionMixin_API.java index 96450dea666..fb503acbad3 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/ThrownPotionMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/throwableitemprojectile/ThrownPotionMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile; +package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile.throwableitemprojectile; -import net.minecraft.world.entity.projectile.AbstractThrownPotion; +import net.minecraft.world.entity.projectile.throwableitemprojectile.AbstractThrownPotion; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.entity.projectile.Potion; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/AbstractBoatMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/boat/AbstractBoatMixin_API.java similarity index 96% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/AbstractBoatMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/boat/AbstractBoatMixin_API.java index a3c3c926942..aef5b5d68ff 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/AbstractBoatMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/boat/AbstractBoatMixin_API.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.vehicle; +package org.spongepowered.common.mixin.api.minecraft.world.entity.vehicle.boat; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; @@ -34,7 +34,7 @@ import java.util.Set; -@Mixin(net.minecraft.world.entity.vehicle.AbstractBoat.class) +@Mixin(net.minecraft.world.entity.vehicle.boat.AbstractBoat.class) @Implements(@Interface(iface = Boat.class, prefix = "apiBoat$")) public abstract class AbstractBoatMixin_API extends EntityMixin_API implements Boat { diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/AbstractChestBoatMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/boat/AbstractChestBoatMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/AbstractChestBoatMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/boat/AbstractChestBoatMixin_API.java index ee842169990..d8c51298e93 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/AbstractChestBoatMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/boat/AbstractChestBoatMixin_API.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.vehicle; +package org.spongepowered.common.mixin.api.minecraft.world.entity.vehicle.boat; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.entity.vehicle.ChestBoat; @@ -30,7 +30,7 @@ import java.util.Set; -@Mixin(net.minecraft.world.entity.vehicle.AbstractChestBoat.class) +@Mixin(net.minecraft.world.entity.vehicle.boat.AbstractChestBoat.class) public abstract class AbstractChestBoatMixin_API extends AbstractBoatMixin_API implements ChestBoat { @Override diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/AbstractMinecartContainerMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/minecart/AbstractMinecartContainerMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/AbstractMinecartContainerMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/minecart/AbstractMinecartContainerMixin_API.java index be06c2e6cb9..b112b1914ad 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/AbstractMinecartContainerMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/minecart/AbstractMinecartContainerMixin_API.java @@ -22,10 +22,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.vehicle; +package org.spongepowered.common.mixin.api.minecraft.world.entity.vehicle.minecart; -import net.minecraft.world.entity.vehicle.AbstractMinecartContainer; +import net.minecraft.world.entity.vehicle.minecart.AbstractMinecartContainer; import org.spongepowered.api.entity.vehicle.minecart.carrier.CarrierMinecart; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/AbstractMinecartMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/minecart/AbstractMinecartMixin_API.java similarity index 96% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/AbstractMinecartMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/minecart/AbstractMinecartMixin_API.java index b4f4074fb83..9a2207db953 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/AbstractMinecartMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/minecart/AbstractMinecartMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.vehicle; +package org.spongepowered.common.mixin.api.minecraft.world.entity.vehicle.minecart; -import net.minecraft.world.entity.vehicle.AbstractMinecart; +import net.minecraft.world.entity.vehicle.minecart.AbstractMinecart; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.entity.vehicle.minecart.MinecartLike; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/MinecartChestMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/minecart/MinecartChestMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/MinecartChestMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/minecart/MinecartChestMixin_API.java index b930cd56408..2bf826b2468 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/MinecartChestMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/minecart/MinecartChestMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.vehicle; +package org.spongepowered.common.mixin.api.minecraft.world.entity.vehicle.minecart; -import net.minecraft.world.entity.vehicle.MinecartChest; +import net.minecraft.world.entity.vehicle.minecart.MinecartChest; import org.spongepowered.api.entity.vehicle.minecart.carrier.ChestMinecart; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/MinecartCommandBlockMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/minecart/MinecartCommandBlockMixin_API.java similarity index 96% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/MinecartCommandBlockMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/minecart/MinecartCommandBlockMixin_API.java index a53afd2da02..52e3f4c9fb1 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/MinecartCommandBlockMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/minecart/MinecartCommandBlockMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.vehicle; +package org.spongepowered.common.mixin.api.minecraft.world.entity.vehicle.minecart; -import net.minecraft.world.entity.vehicle.MinecartCommandBlock; +import net.minecraft.world.entity.vehicle.minecart.MinecartCommandBlock; import net.minecraft.world.level.BaseCommandBlock; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/MinecartFurnaceMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/minecart/MinecartFurnaceMixin_API.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/MinecartFurnaceMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/minecart/MinecartFurnaceMixin_API.java index ddb17dd9cc3..b384d470155 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/MinecartFurnaceMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/minecart/MinecartFurnaceMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.vehicle; +package org.spongepowered.common.mixin.api.minecraft.world.entity.vehicle.minecart; -import net.minecraft.world.entity.vehicle.MinecartFurnace; +import net.minecraft.world.entity.vehicle.minecart.MinecartFurnace; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.entity.vehicle.minecart.FurnaceMinecart; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/MinecartHopperMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/minecart/MinecartHopperMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/MinecartHopperMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/minecart/MinecartHopperMixin_API.java index 0fcceb8049a..4f5e4b3389a 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/MinecartHopperMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/minecart/MinecartHopperMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.vehicle; +package org.spongepowered.common.mixin.api.minecraft.world.entity.vehicle.minecart; -import net.minecraft.world.entity.vehicle.MinecartHopper; +import net.minecraft.world.entity.vehicle.minecart.MinecartHopper; import org.spongepowered.api.entity.vehicle.minecart.carrier.HopperMinecart; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/MinecartMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/minecart/MinecartMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/MinecartMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/minecart/MinecartMixin_API.java index aa186ec4187..db76e281ef2 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/MinecartMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/minecart/MinecartMixin_API.java @@ -22,12 +22,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.vehicle; +package org.spongepowered.common.mixin.api.minecraft.world.entity.vehicle.minecart; import org.spongepowered.api.entity.vehicle.minecart.Minecart; import org.spongepowered.asm.mixin.Mixin; -@Mixin(net.minecraft.world.entity.vehicle.Minecart.class) +@Mixin(net.minecraft.world.entity.vehicle.minecart.Minecart.class) public abstract class MinecartMixin_API extends AbstractMinecartMixin_API implements Minecart { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/MinecartSpawnerMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/minecart/MinecartSpawnerMixin_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/MinecartSpawnerMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/minecart/MinecartSpawnerMixin_API.java index 5c9f7acbdcf..62026b7cc23 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/MinecartSpawnerMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/minecart/MinecartSpawnerMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.vehicle; +package org.spongepowered.common.mixin.api.minecraft.world.entity.vehicle.minecart; -import net.minecraft.world.entity.vehicle.MinecartSpawner; +import net.minecraft.world.entity.vehicle.minecart.MinecartSpawner; import org.spongepowered.api.entity.vehicle.minecart.SpawnerMinecart; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/MinecartTNTMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/minecart/MinecartTNTMixin_API.java similarity index 96% rename from src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/MinecartTNTMixin_API.java rename to src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/minecart/MinecartTNTMixin_API.java index 5ed1652b6e3..effee95c015 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/MinecartTNTMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/vehicle/minecart/MinecartTNTMixin_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.api.minecraft.world.entity.vehicle; +package org.spongepowered.common.mixin.api.minecraft.world.entity.vehicle.minecart; -import net.minecraft.world.entity.vehicle.MinecartTNT; +import net.minecraft.world.entity.vehicle.minecart.MinecartTNT; import org.spongepowered.api.data.Keys; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.entity.vehicle.minecart.TNTMinecart; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/service/permission/SubjectMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/service/permission/SubjectMixin_API.java index e50c4b7698e..5cfd85d9854 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/service/permission/SubjectMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/service/permission/SubjectMixin_API.java @@ -26,7 +26,7 @@ import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.rcon.RconConsoleSource; -import net.minecraft.world.entity.vehicle.MinecartCommandBlock; +import net.minecraft.world.entity.vehicle.minecart.MinecartCommandBlock; import net.minecraft.world.level.block.entity.CommandBlockEntity; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.common.service.server.permission.BridgeSubject; diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ServerLevelMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ServerLevelMixin.java index 3aab053803f..c45e077e024 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ServerLevelMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ServerLevelMixin.java @@ -60,9 +60,9 @@ import net.minecraft.world.entity.ai.village.poi.PoiType; import net.minecraft.world.entity.decoration.ArmorStand; import net.minecraft.world.entity.decoration.HangingEntity; -import net.minecraft.world.entity.decoration.Painting; +import net.minecraft.world.entity.decoration.painting.Painting; import net.minecraft.world.entity.item.ItemEntity; -import net.minecraft.world.entity.projectile.ThrownEnderpearl; +import net.minecraft.world.entity.projectile.throwableitemprojectile.ThrownEnderpearl; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.level.CustomSpawner; diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ServerPlayerMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ServerPlayerMixin.java index 9590730b9f1..904ddf9309d 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ServerPlayerMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/server/level/ServerPlayerMixin.java @@ -61,7 +61,7 @@ import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.Mob; import net.minecraft.world.entity.Relative; -import net.minecraft.world.entity.animal.AbstractFish; +import net.minecraft.world.entity.animal.fish.AbstractFish; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/server/network/ServerGamePacketListenerImplMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/server/network/ServerGamePacketListenerImplMixin.java index 0fc1f133681..e44213cb7bf 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/server/network/ServerGamePacketListenerImplMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/server/network/ServerGamePacketListenerImplMixin.java @@ -211,7 +211,7 @@ public abstract class ServerGamePacketListenerImplMixin extends ServerCommonPack cancellable = true, slice = @Slice( // TODO - confirm we are injecting at the right spot given the subtle changes - from = @At(value = "INVOKE", target = "Lnet/minecraft/server/level/ServerPlayer;hasClientLoaded()Z"), + from = @At(value = "INVOKE", target = "Lnet/minecraft/server/network/ServerGamePacketListenerImpl;hasClientLoaded()Z"), to = @At(value = "INVOKE", target = "Lnet/minecraft/server/network/ServerGamePacketListenerImpl;updateAwaitingTeleport()Z"))) private void impl$callMoveEntityEvent(final ServerboundMovePlayerPacket packetIn, final CallbackInfo ci) { final boolean fireMoveEvent = packetIn.hasPosition(); diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/service/permission/SubjectMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/service/permission/SubjectMixin.java index cf03857795d..111c2e8f0bb 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/service/permission/SubjectMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/service/permission/SubjectMixin.java @@ -26,7 +26,7 @@ import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.rcon.RconConsoleSource; -import net.minecraft.world.entity.vehicle.MinecartCommandBlock; +import net.minecraft.world.entity.vehicle.minecart.MinecartCommandBlock; import net.minecraft.world.level.block.entity.CommandBlockEntity; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.api.service.permission.Subject; diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/EntityMaxAirMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/EntityMaxAirMixin.java index 2a8f7da99c2..8fc76c652fb 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/EntityMaxAirMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/EntityMaxAirMixin.java @@ -25,7 +25,7 @@ package org.spongepowered.common.mixin.core.world.entity; import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.animal.Dolphin; +import net.minecraft.world.entity.animal.dolphin.Dolphin; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.api.data.Keys; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/GrieferBridgeMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/GrieferBridgeMixin.java index 023be957be2..45d6df44d5c 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/GrieferBridgeMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/GrieferBridgeMixin.java @@ -25,9 +25,9 @@ package org.spongepowered.common.mixin.core.world.entity; import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.projectile.LargeFireball; -import net.minecraft.world.entity.projectile.SmallFireball; -import net.minecraft.world.entity.projectile.WitherSkull; +import net.minecraft.world.entity.projectile.hurtingprojectile.LargeFireball; +import net.minecraft.world.entity.projectile.hurtingprojectile.SmallFireball; +import net.minecraft.world.entity.projectile.hurtingprojectile.WitherSkull; import org.spongepowered.api.data.Keys; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.common.bridge.data.SpongeDataHolderBridge; diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/ai/behavior/HarvestFarmlandMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/ai/behavior/HarvestFarmlandMixin.java index 93b201f05d6..18883133a52 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/ai/behavior/HarvestFarmlandMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/ai/behavior/HarvestFarmlandMixin.java @@ -26,7 +26,7 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.ai.behavior.HarvestFarmland; -import net.minecraft.world.entity.npc.Villager; +import net.minecraft.world.entity.npc.villager.Villager; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -42,7 +42,7 @@ public abstract class HarvestFarmlandMixin { * would fail in forge environments. This changes the injection to a predictable * place where we still can forcibly call things but still cancel as needed. */ - @Inject(method = "canStillUse(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/entity/npc/Villager;J)Z", at = @At(value = "HEAD"), cancellable = true) + @Inject(method = "canStillUse(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/entity/npc/villager/Villager;J)Z", at = @At(value = "HEAD"), cancellable = true) private void onCanGrief(ServerLevel level, Villager owner, long $$2, CallbackInfoReturnable cir) { if (!((GrieferBridge) owner).bridge$canGrief()) { cir.setReturnValue(false); diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/ai/goal/RunAroundLikeCrazyGoalMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/ai/goal/RunAroundLikeCrazyGoalMixin.java index 46eab5028f0..beef75b6dc5 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/ai/goal/RunAroundLikeCrazyGoalMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/ai/goal/RunAroundLikeCrazyGoalMixin.java @@ -25,7 +25,7 @@ package org.spongepowered.common.mixin.core.world.entity.ai.goal; import net.minecraft.world.entity.ai.goal.RunAroundLikeCrazyGoal; -import net.minecraft.world.entity.animal.horse.AbstractHorse; +import net.minecraft.world.entity.animal.equine.AbstractHorse; import org.spongepowered.api.entity.living.animal.horse.HorseLike; import org.spongepowered.api.event.CauseStackManager; import org.spongepowered.api.event.SpongeEventFactory; @@ -51,7 +51,7 @@ public abstract class RunAroundLikeCrazyGoalMixin extends GoalMixin { method = "tick", at = @At( value = "INVOKE", - target = "Lnet/minecraft/world/entity/animal/horse/AbstractHorse;tameWithName(Lnet/minecraft/world/entity/player/Player;)Z" + target = "Lnet/minecraft/world/entity/animal/equine/AbstractHorse;tameWithName(Lnet/minecraft/world/entity/player/Player;)Z" ), cancellable = true ) @@ -68,7 +68,7 @@ public abstract class RunAroundLikeCrazyGoalMixin extends GoalMixin { method = "tick", at = @At( value = "INVOKE", - target = "Lnet/minecraft/world/entity/animal/horse/AbstractHorse;ejectPassengers()V" + target = "Lnet/minecraft/world/entity/animal/equine/AbstractHorse;ejectPassengers()V" ), cancellable = true ) diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/horse/AbstractHorseMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/equine/AbstractHorseMixin.java similarity index 97% rename from src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/horse/AbstractHorseMixin.java rename to src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/equine/AbstractHorseMixin.java index c223d6299b1..95ee43bfccc 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/horse/AbstractHorseMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/equine/AbstractHorseMixin.java @@ -22,11 +22,11 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.core.world.entity.animal.horse; +package org.spongepowered.common.mixin.core.world.entity.animal.equine; import net.minecraft.world.SimpleContainer; import net.minecraft.world.entity.EquipmentSlot; -import net.minecraft.world.entity.animal.horse.AbstractHorse; +import net.minecraft.world.entity.animal.equine.AbstractHorse; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/Cat_CatRelaxOnOwnerGoalMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/feline/Cat_CatRelaxOnOwnerGoalMixin.java similarity index 86% rename from src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/Cat_CatRelaxOnOwnerGoalMixin.java rename to src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/feline/Cat_CatRelaxOnOwnerGoalMixin.java index f4181d3b388..8d45ca231e6 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/Cat_CatRelaxOnOwnerGoalMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/feline/Cat_CatRelaxOnOwnerGoalMixin.java @@ -22,22 +22,22 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.core.world.entity.animal; +package org.spongepowered.common.mixin.core.world.entity.animal.feline; -import net.minecraft.world.entity.animal.Cat; +import net.minecraft.world.entity.animal.feline.Cat; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Redirect; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -@Mixin(targets = "net/minecraft/world/entity/animal/Cat$CatRelaxOnOwnerGoal") +@Mixin(targets = "net/minecraft/world/entity/animal/feline/Cat$CatRelaxOnOwnerGoal") public abstract class Cat_CatRelaxOnOwnerGoalMixin { private boolean impl$teleportResult; @Redirect(method = "giveMorningGift()V", - at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/animal/Cat;randomTeleport(DDDZ)Z")) + at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/animal/feline/Cat;randomTeleport(DDDZ)Z")) private boolean impl$storeTeleportResult(Cat entity, double x, double y, double z, boolean changeState) { this.impl$teleportResult = entity.randomTeleport(x, y, z, changeState); return this.impl$teleportResult; @@ -45,7 +45,7 @@ public abstract class Cat_CatRelaxOnOwnerGoalMixin { @Inject(method = "giveMorningGift()V", at = @At(value = "INVOKE_ASSIGN", - target = "Lnet/minecraft/world/entity/animal/Cat;randomTeleport(DDDZ)Z", + target = "Lnet/minecraft/world/entity/animal/feline/Cat;randomTeleport(DDDZ)Z", shift = At.Shift.AFTER), cancellable = true) private void impl$makeCatsRespectTeleportResult(final CallbackInfo ci) { diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/OcelotMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/feline/OcelotMixin.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/OcelotMixin.java rename to src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/feline/OcelotMixin.java index 6ac10940bc5..ed1788b7a36 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/OcelotMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/feline/OcelotMixin.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.core.world.entity.animal; +package org.spongepowered.common.mixin.core.world.entity.animal.feline; import net.minecraft.util.RandomSource; import net.minecraft.world.InteractionHand; @@ -38,7 +38,7 @@ import org.spongepowered.common.event.tracking.PhaseTracker; import org.spongepowered.common.mixin.core.world.entity.AgableMobMixin; -@Mixin(net.minecraft.world.entity.animal.Ocelot.class) +@Mixin(net.minecraft.world.entity.animal.feline.Ocelot.class) public abstract class OcelotMixin extends AgableMobMixin { @Redirect(method = "mobInteract", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/RandomSource;nextInt(I)I")) diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/PufferfishMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/fish/PufferfishMixin.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/PufferfishMixin.java rename to src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/fish/PufferfishMixin.java index 69bdc94b064..7cd65a66812 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/PufferfishMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/fish/PufferfishMixin.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.core.world.entity.animal; +package org.spongepowered.common.mixin.core.world.entity.animal.fish; import com.llamalad7.mixinextras.injector.wrapoperation.Operation; import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; @@ -30,7 +30,7 @@ import net.minecraft.tags.TagKey; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.animal.Pufferfish; +import net.minecraft.world.entity.animal.fish.Pufferfish; import net.minecraft.world.entity.player.Player; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/ParrotMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/parrot/ParrotMixin.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/ParrotMixin.java rename to src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/parrot/ParrotMixin.java index ba87ad79146..38dd761cfa7 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/ParrotMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/parrot/ParrotMixin.java @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.core.world.entity.animal; +package org.spongepowered.common.mixin.core.world.entity.animal.parrot; import net.minecraft.util.RandomSource; import net.minecraft.world.InteractionHand; @@ -38,7 +38,7 @@ import org.spongepowered.common.event.tracking.PhaseTracker; import org.spongepowered.common.mixin.core.world.entity.AgableMobMixin; -@Mixin(net.minecraft.world.entity.animal.Parrot.class) +@Mixin(net.minecraft.world.entity.animal.parrot.Parrot.class) public abstract class ParrotMixin extends AgableMobMixin { @Redirect(method = "mobInteract", diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/Rabbit_RaidGardenGoalMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/rabbit/Rabbit_RaidGardenGoalMixin.java similarity index 92% rename from src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/Rabbit_RaidGardenGoalMixin.java rename to src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/rabbit/Rabbit_RaidGardenGoalMixin.java index de97d0704e0..8f8cbe8ff08 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/Rabbit_RaidGardenGoalMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/animal/rabbit/Rabbit_RaidGardenGoalMixin.java @@ -22,11 +22,11 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.core.world.entity.animal; +package org.spongepowered.common.mixin.core.world.entity.animal.rabbit; import net.minecraft.world.entity.PathfinderMob; import net.minecraft.world.entity.ai.goal.MoveToBlockGoal; -import net.minecraft.world.entity.animal.Rabbit; +import net.minecraft.world.entity.animal.rabbit.Rabbit; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -35,7 +35,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import org.spongepowered.common.bridge.world.entity.GrieferBridge; -@Mixin(targets = "net/minecraft/world/entity/animal/Rabbit$RaidGardenGoal") +@Mixin(targets = "net/minecraft/world/entity/animal/rabbit/Rabbit$RaidGardenGoal") public abstract class Rabbit_RaidGardenGoalMixin extends MoveToBlockGoal { // @formatter:off diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/monster/ZombifiedPiglinMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/monster/zombie/ZombifiedPiglinMixin.java similarity index 93% rename from src/mixins/java/org/spongepowered/common/mixin/core/world/entity/monster/ZombifiedPiglinMixin.java rename to src/mixins/java/org/spongepowered/common/mixin/core/world/entity/monster/zombie/ZombifiedPiglinMixin.java index b2e7acfcc76..4f617112c41 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/monster/ZombifiedPiglinMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/monster/zombie/ZombifiedPiglinMixin.java @@ -22,13 +22,14 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.core.world.entity.monster; +package org.spongepowered.common.mixin.core.world.entity.monster.zombie; import net.minecraft.world.entity.NeutralMob; -import net.minecraft.world.entity.monster.ZombifiedPiglin; +import net.minecraft.world.entity.monster.zombie.ZombifiedPiglin; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.common.bridge.world.entity.AggressiveEntityBridge; +import org.spongepowered.common.mixin.core.world.entity.monster.MonsterMixin; @Mixin(ZombifiedPiglin.class) public abstract class ZombifiedPiglinMixin extends MonsterMixin implements AggressiveEntityBridge { diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/npc/AbstractVillagerMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/npc/villager/AbstractVillagerMixin.java similarity index 91% rename from src/mixins/java/org/spongepowered/common/mixin/core/world/entity/npc/AbstractVillagerMixin.java rename to src/mixins/java/org/spongepowered/common/mixin/core/world/entity/npc/villager/AbstractVillagerMixin.java index 9bd38e94a91..ecfd4220a5a 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/npc/AbstractVillagerMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/npc/villager/AbstractVillagerMixin.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.core.world.entity.npc; +package org.spongepowered.common.mixin.core.world.entity.npc.villager; -import net.minecraft.world.entity.npc.AbstractVillager; +import net.minecraft.world.entity.npc.villager.AbstractVillager; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.common.mixin.core.world.entity.AgableMobMixin; diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/npc/VillagerMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/npc/villager/VillagerMixin.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/core/world/entity/npc/VillagerMixin.java rename to src/mixins/java/org/spongepowered/common/mixin/core/world/entity/npc/villager/VillagerMixin.java index e34c6aeeabe..eb5d8f41915 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/npc/VillagerMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/npc/villager/VillagerMixin.java @@ -22,10 +22,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.core.world.entity.npc; +package org.spongepowered.common.mixin.core.world.entity.npc.villager; import net.minecraft.core.BlockPos; -import net.minecraft.world.entity.npc.Villager; +import net.minecraft.world.entity.npc.villager.Villager; import org.slf4j.Logger; import org.spongepowered.api.Sponge; import org.spongepowered.api.block.BlockSnapshot; diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/npc/WanderingTraderMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/npc/wanderingtrader/WanderingTraderMixin.java similarity index 93% rename from src/mixins/java/org/spongepowered/common/mixin/core/world/entity/npc/WanderingTraderMixin.java rename to src/mixins/java/org/spongepowered/common/mixin/core/world/entity/npc/wanderingtrader/WanderingTraderMixin.java index 251de521ef6..c8afe7fcfbf 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/npc/WanderingTraderMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/npc/wanderingtrader/WanderingTraderMixin.java @@ -22,10 +22,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.core.world.entity.npc; +package org.spongepowered.common.mixin.core.world.entity.npc.wanderingtrader; import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.entity.npc.WanderingTraderSpawner; +import net.minecraft.world.entity.npc.wanderingtrader.WanderingTraderSpawner; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/AbstractArrowMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/arrow/AbstractArrowMixin.java similarity index 97% rename from src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/AbstractArrowMixin.java rename to src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/arrow/AbstractArrowMixin.java index 54790720d92..0cbb1ce6fc6 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/AbstractArrowMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/arrow/AbstractArrowMixin.java @@ -22,13 +22,13 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.core.world.entity.projectile; +package org.spongepowered.common.mixin.core.world.entity.projectile.arrow; import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundEvents; import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.projectile.AbstractArrow; +import net.minecraft.world.entity.projectile.arrow.AbstractArrow; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.BlockHitResult; @@ -45,6 +45,7 @@ import org.spongepowered.common.bridge.world.entity.projectile.AbstractArrowBridge; import org.spongepowered.common.bridge.world.level.LevelBridge; import org.spongepowered.common.event.SpongeCommonEventFactory; +import org.spongepowered.common.mixin.core.world.entity.projectile.ProjectileMixin; @Mixin(AbstractArrow.class) public abstract class AbstractArrowMixin extends ProjectileMixin implements AbstractArrowBridge { @@ -149,7 +150,7 @@ private void onProjectileHit(final EntityHitResult hitResult, final CallbackInfo @Inject( method = "tickDespawn", - at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/projectile/AbstractArrow;discard()V") + at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/projectile/arrow/AbstractArrow;discard()V") ) private void impl$throwExpireArrow(final CallbackInfo ci) { this.impl$callExpireEntityEvent(); diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/ThrownTridentMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/arrow/ThrownTridentMixin.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/ThrownTridentMixin.java rename to src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/arrow/ThrownTridentMixin.java index d5abc0c2954..c5b4589a0c3 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/ThrownTridentMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/arrow/ThrownTridentMixin.java @@ -22,10 +22,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.core.world.entity.projectile; +package org.spongepowered.common.mixin.core.world.entity.projectile.arrow; import net.minecraft.sounds.SoundEvents; -import net.minecraft.world.entity.projectile.ThrownTrident; +import net.minecraft.world.entity.projectile.arrow.ThrownTrident; import net.minecraft.world.phys.EntityHitResult; import net.minecraft.world.phys.HitResult; import org.spongepowered.asm.mixin.Mixin; @@ -35,6 +35,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.common.bridge.world.level.LevelBridge; import org.spongepowered.common.event.SpongeCommonEventFactory; +import org.spongepowered.common.mixin.core.world.entity.projectile.ProjectileMixin; @Mixin(ThrownTrident.class) public abstract class ThrownTridentMixin extends ProjectileMixin { diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/AbstractHurtingProjectileMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/hurtingprojectile/AbstractHurtingProjectileMixin.java similarity index 86% rename from src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/AbstractHurtingProjectileMixin.java rename to src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/hurtingprojectile/AbstractHurtingProjectileMixin.java index b909d0e1e36..dd91edf01b5 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/AbstractHurtingProjectileMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/hurtingprojectile/AbstractHurtingProjectileMixin.java @@ -22,10 +22,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.core.world.entity.projectile; +package org.spongepowered.common.mixin.core.world.entity.projectile.hurtingprojectile; import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.projectile.AbstractHurtingProjectile; +import net.minecraft.world.entity.projectile.hurtingprojectile.AbstractHurtingProjectile; import net.minecraft.world.entity.projectile.ProjectileDeflection; import net.minecraft.world.phys.HitResult; import org.spongepowered.asm.mixin.Mixin; @@ -33,11 +33,12 @@ import org.spongepowered.asm.mixin.injection.Redirect; import org.spongepowered.common.bridge.world.level.LevelBridge; import org.spongepowered.common.event.SpongeCommonEventFactory; +import org.spongepowered.common.mixin.core.world.entity.projectile.ProjectileMixin; @Mixin(AbstractHurtingProjectile.class) public abstract class AbstractHurtingProjectileMixin extends ProjectileMixin { - @Redirect(method = "tick()V", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/projectile/AbstractHurtingProjectile;hitTargetOrDeflectSelf(Lnet/minecraft/world/phys/HitResult;)Lnet/minecraft/world/entity/projectile/ProjectileDeflection;")) + @Redirect(method = "tick()V", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/projectile/hurtingprojectile/AbstractHurtingProjectile;hitTargetOrDeflectSelf(Lnet/minecraft/world/phys/HitResult;)Lnet/minecraft/world/entity/projectile/ProjectileDeflection;")) private ProjectileDeflection impl$callCollideImpactEvent(AbstractHurtingProjectile projectile, HitResult result) { if (result.getType() == HitResult.Type.MISS || ((LevelBridge) this.shadow$level()).bridge$isFake()) { return this.shadow$hitTargetOrDeflectSelf(result); diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/LargeFireballMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/hurtingprojectile/LargeFireballMixin.java similarity index 97% rename from src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/LargeFireballMixin.java rename to src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/hurtingprojectile/LargeFireballMixin.java index 711996a198f..0ea2b682b46 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/LargeFireballMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/hurtingprojectile/LargeFireballMixin.java @@ -22,10 +22,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.core.world.entity.projectile; +package org.spongepowered.common.mixin.core.world.entity.projectile.hurtingprojectile; import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.projectile.LargeFireball; +import net.minecraft.world.entity.projectile.hurtingprojectile.LargeFireball; import net.minecraft.world.level.Level; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.api.data.Keys; diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/SmallFireballMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/hurtingprojectile/SmallFireballMixin.java similarity index 96% rename from src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/SmallFireballMixin.java rename to src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/hurtingprojectile/SmallFireballMixin.java index c63e625c155..2c5a7ac1cde 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/SmallFireballMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/hurtingprojectile/SmallFireballMixin.java @@ -22,10 +22,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.core.world.entity.projectile; +package org.spongepowered.common.mixin.core.world.entity.projectile.hurtingprojectile; import net.minecraft.core.BlockPos; -import net.minecraft.world.entity.projectile.SmallFireball; +import net.minecraft.world.entity.projectile.hurtingprojectile.SmallFireball; import net.minecraft.world.level.Level; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/WitherSkullMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/hurtingprojectile/WitherSkullMixin.java similarity index 96% rename from src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/WitherSkullMixin.java rename to src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/hurtingprojectile/WitherSkullMixin.java index 5a93b6709a6..b65f0b5b3a7 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/WitherSkullMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/hurtingprojectile/WitherSkullMixin.java @@ -22,10 +22,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.core.world.entity.projectile; +package org.spongepowered.common.mixin.core.world.entity.projectile.hurtingprojectile; import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.projectile.WitherSkull; +import net.minecraft.world.entity.projectile.hurtingprojectile.WitherSkull; import net.minecraft.world.level.Level; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.api.data.Keys; @@ -43,7 +43,7 @@ import java.util.Optional; -@Mixin(net.minecraft.world.entity.projectile.WitherSkull.class) +@Mixin(net.minecraft.world.entity.projectile.hurtingprojectile.WitherSkull.class) public abstract class WitherSkullMixin extends AbstractHurtingProjectileMixin implements WitherSkullBridge, ExplosiveBridge { private float impl$explosionRadius = Constants.Entity.WitherSkull.DEFAULT_EXPLOSION_RADIUS; diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/SnowballMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/throwableitemprojectile/SnowballMixin.java similarity index 90% rename from src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/SnowballMixin.java rename to src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/throwableitemprojectile/SnowballMixin.java index 00ec313c112..b07e81e60cc 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/SnowballMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/throwableitemprojectile/SnowballMixin.java @@ -22,14 +22,15 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.core.world.entity.projectile; +package org.spongepowered.common.mixin.core.world.entity.projectile.throwableitemprojectile; import org.spongepowered.api.entity.projectile.Snowball; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.ModifyArg; +import org.spongepowered.common.mixin.core.world.entity.projectile.ThrowableProjectileMixin; -@Mixin(net.minecraft.world.entity.projectile.Snowball.class) +@Mixin(net.minecraft.world.entity.projectile.throwableitemprojectile.Snowball.class) public abstract class SnowballMixin extends ThrowableProjectileMixin implements Snowball { // TODO Key not implemented diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/ThrownEggMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/throwableitemprojectile/ThrownEggMixin.java similarity index 90% rename from src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/ThrownEggMixin.java rename to src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/throwableitemprojectile/ThrownEggMixin.java index 40bebdc1d5b..592656ff2b4 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/ThrownEggMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/throwableitemprojectile/ThrownEggMixin.java @@ -22,12 +22,13 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.core.world.entity.projectile; +package org.spongepowered.common.mixin.core.world.entity.projectile.throwableitemprojectile; -import net.minecraft.world.entity.projectile.ThrownEgg; +import net.minecraft.world.entity.projectile.throwableitemprojectile.ThrownEgg; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.ModifyArg; +import org.spongepowered.common.mixin.core.world.entity.projectile.ThrowableProjectileMixin; @Mixin(ThrownEgg.class) public abstract class ThrownEggMixin extends ThrowableProjectileMixin { diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/ThrownEnderpearlMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/throwableitemprojectile/ThrownEnderpearlMixin.java similarity index 93% rename from src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/ThrownEnderpearlMixin.java rename to src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/throwableitemprojectile/ThrownEnderpearlMixin.java index 9bd4d1b0e25..07b38137601 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/ThrownEnderpearlMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/throwableitemprojectile/ThrownEnderpearlMixin.java @@ -22,10 +22,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.core.world.entity.projectile; +package org.spongepowered.common.mixin.core.world.entity.projectile.throwableitemprojectile; import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.projectile.ThrownEnderpearl; +import net.minecraft.world.entity.projectile.throwableitemprojectile.ThrownEnderpearl; import net.minecraft.world.level.portal.TeleportTransition; import org.spongepowered.api.event.CauseStackManager; import org.spongepowered.api.event.EventContextKeys; @@ -35,6 +35,7 @@ import org.spongepowered.asm.mixin.injection.ModifyArg; import org.spongepowered.asm.mixin.injection.Redirect; import org.spongepowered.common.event.tracking.PhaseTracker; +import org.spongepowered.common.mixin.core.world.entity.projectile.ThrowableProjectileMixin; @Mixin(ThrownEnderpearl.class) public abstract class ThrownEnderpearlMixin extends ThrowableProjectileMixin { diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/AbstractBoatMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/boat/AbstractBoatMixin.java similarity index 98% rename from src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/AbstractBoatMixin.java rename to src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/boat/AbstractBoatMixin.java index 26b135e677a..c5d72fe7604 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/AbstractBoatMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/boat/AbstractBoatMixin.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.core.world.entity.vehicle; +package org.spongepowered.common.mixin.core.world.entity.vehicle.boat; -import net.minecraft.world.entity.vehicle.AbstractBoat; +import net.minecraft.world.entity.vehicle.boat.AbstractBoat; import org.spongepowered.api.data.Keys; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.Constant; diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/AbstractMinecartContainerMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/minecart/AbstractMinecartContainerMixin.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/AbstractMinecartContainerMixin.java rename to src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/minecart/AbstractMinecartContainerMixin.java index 5cee1271dad..8d40d43a1f3 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/AbstractMinecartContainerMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/minecart/AbstractMinecartContainerMixin.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.core.world.entity.vehicle; +package org.spongepowered.common.mixin.core.world.entity.vehicle.minecart; -import net.minecraft.world.entity.vehicle.AbstractMinecartContainer; +import net.minecraft.world.entity.vehicle.minecart.AbstractMinecartContainer; import org.spongepowered.asm.mixin.Mixin; @Mixin(AbstractMinecartContainer.class) diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/AbstractMinecartMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/minecart/AbstractMinecartMixin.java similarity index 97% rename from src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/AbstractMinecartMixin.java rename to src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/minecart/AbstractMinecartMixin.java index 9844796031e..a2be1bcb455 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/AbstractMinecartMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/minecart/AbstractMinecartMixin.java @@ -22,10 +22,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.core.world.entity.vehicle; +package org.spongepowered.common.mixin.core.world.entity.vehicle.minecart; import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.entity.vehicle.AbstractMinecart; +import net.minecraft.world.entity.vehicle.minecart.AbstractMinecart; import net.minecraft.world.phys.Vec3; import org.spongepowered.api.data.Keys; import org.spongepowered.asm.mixin.Mixin; @@ -35,6 +35,7 @@ import org.spongepowered.asm.mixin.injection.Slice; import org.spongepowered.common.bridge.data.SpongeDataHolderBridge; import org.spongepowered.common.bridge.world.entity.vehicle.AbstractMinecartBridge; +import org.spongepowered.common.mixin.core.world.entity.vehicle.VehicleEntityMixin; import org.spongepowered.common.util.Constants; import org.spongepowered.math.vector.Vector3d; diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/MinecartCommandBlockMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/minecart/MinecartCommandBlockMixin.java similarity index 97% rename from src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/MinecartCommandBlockMixin.java rename to src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/minecart/MinecartCommandBlockMixin.java index 70ac4854a67..5f4a6ab62d2 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/MinecartCommandBlockMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/minecart/MinecartCommandBlockMixin.java @@ -22,10 +22,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.core.world.entity.vehicle; +package org.spongepowered.common.mixin.core.world.entity.vehicle.minecart; import net.minecraft.commands.CommandSourceStack; -import net.minecraft.world.entity.vehicle.MinecartCommandBlock; +import net.minecraft.world.entity.vehicle.minecart.MinecartCommandBlock; import net.minecraft.world.level.BaseCommandBlock; import org.spongepowered.api.event.Cause; import org.spongepowered.api.service.permission.PermissionService; diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/MinecartCommandBlock_MinecartCommandBaseMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/minecart/MinecartCommandBlock_MinecartCommandBaseMixin.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/MinecartCommandBlock_MinecartCommandBaseMixin.java rename to src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/minecart/MinecartCommandBlock_MinecartCommandBaseMixin.java index 6eb7efd46ae..25e5e41a1d4 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/MinecartCommandBlock_MinecartCommandBaseMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/minecart/MinecartCommandBlock_MinecartCommandBaseMixin.java @@ -22,14 +22,14 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.core.world.entity.vehicle; +package org.spongepowered.common.mixin.core.world.entity.vehicle.minecart; import net.kyori.adventure.audience.MessageType; import net.kyori.adventure.identity.Identity; import net.kyori.adventure.text.Component; import net.minecraft.commands.CommandSourceStack; import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.entity.vehicle.MinecartCommandBlock; +import net.minecraft.world.entity.vehicle.minecart.MinecartCommandBlock; import org.checkerframework.checker.nullness.qual.NonNull; import org.spongepowered.api.event.Cause; import org.spongepowered.api.service.permission.Subject; @@ -40,7 +40,7 @@ import org.spongepowered.common.adventure.SpongeAdventure; import org.spongepowered.common.mixin.core.world.BaseCommandBlockMixin; -@Mixin(targets = "net.minecraft.world.entity.vehicle.MinecartCommandBlock$MinecartCommandBase") +@Mixin(targets = "net.minecraft.world.entity.vehicle.minecart.MinecartCommandBlock$MinecartCommandBase") public abstract class MinecartCommandBlock_MinecartCommandBaseMixin extends BaseCommandBlockMixin implements SubjectProxy { // @formatter:off diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/MinecartFurnaceMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/minecart/MinecartFurnaceMixin.java similarity index 96% rename from src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/MinecartFurnaceMixin.java rename to src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/minecart/MinecartFurnaceMixin.java index 69ce2149a1a..10f0b276bec 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/MinecartFurnaceMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/minecart/MinecartFurnaceMixin.java @@ -22,10 +22,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.core.world.entity.vehicle; +package org.spongepowered.common.mixin.core.world.entity.vehicle.minecart; import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.entity.vehicle.MinecartFurnace; +import net.minecraft.world.entity.vehicle.minecart.MinecartFurnace; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Overwrite; import org.spongepowered.asm.mixin.injection.At; diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/MinecartTNTMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/minecart/MinecartTNTMixin.java similarity index 96% rename from src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/MinecartTNTMixin.java rename to src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/minecart/MinecartTNTMixin.java index b6fd2c3435d..158f2490746 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/MinecartTNTMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/minecart/MinecartTNTMixin.java @@ -22,11 +22,11 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.core.world.entity.vehicle; +package org.spongepowered.common.mixin.core.world.entity.vehicle.minecart; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.damagesource.DamageSource; -import net.minecraft.world.entity.vehicle.MinecartTNT; +import net.minecraft.world.entity.vehicle.minecart.MinecartTNT; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.api.data.Keys; import org.spongepowered.api.world.server.ServerWorld; @@ -147,7 +147,7 @@ public abstract class MinecartTNTMixin extends AbstractMinecartMixin implements } @Inject(method = "hurtServer", cancellable = true, at = @At(value = "INVOKE", - target = "Lnet/minecraft/world/entity/vehicle/MinecartTNT;explode(Lnet/minecraft/world/damagesource/DamageSource;D)V")) + target = "Lnet/minecraft/world/entity/vehicle/minecart/MinecartTNT;explode(Lnet/minecraft/world/damagesource/DamageSource;D)V")) private void attackImpl$postOnAttackEntityFrom(final ServerLevel level, final DamageSource source, final float damage, final CallbackInfoReturnable cir) { if (SpongeDamageTracker.callDamageEvents((org.spongepowered.api.entity.Entity) this, source, damage) == null) { cir.setReturnValue(true); diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/OldMinecartBehaviourMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/minecart/OldMinecartBehaviourMixin.java similarity index 88% rename from src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/OldMinecartBehaviourMixin.java rename to src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/minecart/OldMinecartBehaviourMixin.java index c08dbd2504b..88d6dd7e0cc 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/OldMinecartBehaviourMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/vehicle/minecart/OldMinecartBehaviourMixin.java @@ -22,10 +22,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.core.world.entity.vehicle; +package org.spongepowered.common.mixin.core.world.entity.vehicle.minecart; -import net.minecraft.world.entity.vehicle.AbstractMinecart; -import net.minecraft.world.entity.vehicle.OldMinecartBehavior; +import net.minecraft.world.entity.vehicle.minecart.AbstractMinecart; +import net.minecraft.world.entity.vehicle.minecart.OldMinecartBehavior; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; @@ -34,7 +34,7 @@ @Mixin(OldMinecartBehavior.class) public abstract class OldMinecartBehaviourMixin { - @Redirect(method = "getSlowdownFactor", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/vehicle/AbstractMinecart;isVehicle()Z")) + @Redirect(method = "getSlowdownFactor", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/vehicle/minecart/AbstractMinecart;isVehicle()Z")) private boolean impl$applyDragIfEmpty(final AbstractMinecart minecart) { return !((AbstractMinecartBridge) minecart).bridge$getSlowWhenEmpty() || minecart.isVehicle(); } diff --git a/src/mixins/java/org/spongepowered/common/mixin/entityactivation/entity/projectile/AbstractArrowEntityMixin_EntityActivation.java b/src/mixins/java/org/spongepowered/common/mixin/entityactivation/entity/projectile/arrow/AbstractArrowEntityMixin_EntityActivation.java similarity index 95% rename from src/mixins/java/org/spongepowered/common/mixin/entityactivation/entity/projectile/AbstractArrowEntityMixin_EntityActivation.java rename to src/mixins/java/org/spongepowered/common/mixin/entityactivation/entity/projectile/arrow/AbstractArrowEntityMixin_EntityActivation.java index c0bdbb05971..602bccdb92a 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/entityactivation/entity/projectile/AbstractArrowEntityMixin_EntityActivation.java +++ b/src/mixins/java/org/spongepowered/common/mixin/entityactivation/entity/projectile/arrow/AbstractArrowEntityMixin_EntityActivation.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.entityactivation.entity.projectile; +package org.spongepowered.common.mixin.entityactivation.entity.projectile.arrow; -import net.minecraft.world.entity.projectile.AbstractArrow; +import net.minecraft.world.entity.projectile.arrow.AbstractArrow; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.common.mixin.entityactivation.entity.EntityMixin_EntityActivation; diff --git a/src/mixins/java/org/spongepowered/common/mixin/inventory/api/TraitMixin_Viewable_Inventory_API.java b/src/mixins/java/org/spongepowered/common/mixin/inventory/api/TraitMixin_Viewable_Inventory_API.java index 5d5e2f794fa..aa64527414e 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/inventory/api/TraitMixin_Viewable_Inventory_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/inventory/api/TraitMixin_Viewable_Inventory_API.java @@ -26,10 +26,10 @@ import net.minecraft.world.CompoundContainer; import net.minecraft.world.Container; -import net.minecraft.world.entity.npc.AbstractVillager; +import net.minecraft.world.entity.npc.villager.AbstractVillager; import net.minecraft.world.entity.npc.ClientSideMerchant; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.entity.vehicle.AbstractMinecartContainer; +import net.minecraft.world.entity.vehicle.minecart.AbstractMinecartContainer; import net.minecraft.world.inventory.PlayerEnderChestContainer; import net.minecraft.world.level.block.entity.BaseContainerBlockEntity; import net.minecraft.world.level.block.entity.LecternBlockEntity; diff --git a/src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/animal/horse/AbstractHorseMixin_Carrier_Inventory_API.java b/src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/animal/equine/AbstractHorseMixin_Carrier_Inventory_API.java similarity index 96% rename from src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/animal/horse/AbstractHorseMixin_Carrier_Inventory_API.java rename to src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/animal/equine/AbstractHorseMixin_Carrier_Inventory_API.java index 3e0ab03763a..5088f481a98 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/animal/horse/AbstractHorseMixin_Carrier_Inventory_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/animal/equine/AbstractHorseMixin_Carrier_Inventory_API.java @@ -22,10 +22,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.inventory.api.world.entity.animal.horse; +package org.spongepowered.common.mixin.inventory.api.world.entity.animal.equine; import net.minecraft.world.SimpleContainer; -import net.minecraft.world.entity.animal.horse.AbstractHorse; +import net.minecraft.world.entity.animal.equine.AbstractHorse; import org.spongepowered.api.item.inventory.Carrier; import org.spongepowered.api.item.inventory.type.CarriedInventory; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/monster/PillagerMixin_Carrier_Inventory_API.java b/src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/monster/illager/PillagerMixin_Carrier_Inventory_API.java similarity index 96% rename from src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/monster/PillagerMixin_Carrier_Inventory_API.java rename to src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/monster/illager/PillagerMixin_Carrier_Inventory_API.java index 7b3da8a4f4c..b631114f78e 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/monster/PillagerMixin_Carrier_Inventory_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/monster/illager/PillagerMixin_Carrier_Inventory_API.java @@ -22,10 +22,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.inventory.api.world.entity.monster; +package org.spongepowered.common.mixin.inventory.api.world.entity.monster.illager; import net.minecraft.world.SimpleContainer; -import net.minecraft.world.entity.monster.Pillager; +import net.minecraft.world.entity.monster.illager.Pillager; import org.spongepowered.api.item.inventory.Carrier; import org.spongepowered.api.item.inventory.type.CarriedInventory; import org.spongepowered.asm.mixin.Final; diff --git a/src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/npc/AbstractVillagerMixin_Carrier_Inventory_API.java b/src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/npc/villager/AbstractVillagerMixin_Carrier_Inventory_API.java similarity index 96% rename from src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/npc/AbstractVillagerMixin_Carrier_Inventory_API.java rename to src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/npc/villager/AbstractVillagerMixin_Carrier_Inventory_API.java index 31ebb802dae..9a80f099b20 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/npc/AbstractVillagerMixin_Carrier_Inventory_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/npc/villager/AbstractVillagerMixin_Carrier_Inventory_API.java @@ -22,10 +22,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.inventory.api.world.entity.npc; +package org.spongepowered.common.mixin.inventory.api.world.entity.npc.villager; import net.minecraft.world.SimpleContainer; -import net.minecraft.world.entity.npc.AbstractVillager; +import net.minecraft.world.entity.npc.villager.AbstractVillager; import org.spongepowered.api.item.inventory.Carrier; import org.spongepowered.api.item.inventory.type.CarriedInventory; import org.spongepowered.asm.mixin.Final; diff --git a/src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/vehicle/AbstractMinecartContainerMixin_Carried_Inventory_API.java b/src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/vehicle/minecart/AbstractMinecartContainerMixin_Carried_Inventory_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/vehicle/AbstractMinecartContainerMixin_Carried_Inventory_API.java rename to src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/vehicle/minecart/AbstractMinecartContainerMixin_Carried_Inventory_API.java index 66aea21b821..59686c3b50d 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/vehicle/AbstractMinecartContainerMixin_Carried_Inventory_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/vehicle/minecart/AbstractMinecartContainerMixin_Carried_Inventory_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.inventory.api.world.entity.vehicle; +package org.spongepowered.common.mixin.inventory.api.world.entity.vehicle.minecart; -import net.minecraft.world.entity.vehicle.AbstractMinecartContainer; +import net.minecraft.world.entity.vehicle.minecart.AbstractMinecartContainer; import org.spongepowered.api.entity.vehicle.minecart.carrier.CarrierMinecart; import org.spongepowered.api.item.inventory.type.CarriedInventory; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/vehicle/AbstractMinecartContainerMixin_Carrier_Inventory_API.java b/src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/vehicle/minecart/AbstractMinecartContainerMixin_Carrier_Inventory_API.java similarity index 94% rename from src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/vehicle/AbstractMinecartContainerMixin_Carrier_Inventory_API.java rename to src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/vehicle/minecart/AbstractMinecartContainerMixin_Carrier_Inventory_API.java index c770d7e904c..dace7bfd2e5 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/vehicle/AbstractMinecartContainerMixin_Carrier_Inventory_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/inventory/api/world/entity/vehicle/minecart/AbstractMinecartContainerMixin_Carrier_Inventory_API.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.common.mixin.inventory.api.world.entity.vehicle; +package org.spongepowered.common.mixin.inventory.api.world.entity.vehicle.minecart; -import net.minecraft.world.entity.vehicle.AbstractMinecartContainer; +import net.minecraft.world.entity.vehicle.minecart.AbstractMinecartContainer; import org.spongepowered.api.entity.vehicle.minecart.carrier.CarrierMinecart; import org.spongepowered.api.item.inventory.Carrier; import org.spongepowered.api.item.inventory.type.CarriedInventory; diff --git a/src/mixins/java/org/spongepowered/common/mixin/inventory/event/server/level/ServerPlayerMixin_Inventory.java b/src/mixins/java/org/spongepowered/common/mixin/inventory/event/server/level/ServerPlayerMixin_Inventory.java index e785812bec4..5b2270743fa 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/inventory/event/server/level/ServerPlayerMixin_Inventory.java +++ b/src/mixins/java/org/spongepowered/common/mixin/inventory/event/server/level/ServerPlayerMixin_Inventory.java @@ -40,7 +40,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.animal.horse.AbstractHorse; +import net.minecraft.world.entity.animal.equine.AbstractHorse; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.AbstractContainerMenu; @@ -214,7 +214,7 @@ public abstract class ServerPlayerMixin_Inventory extends PlayerMixin_Inventory method = "openHorseInventory", at = @At( value = "NEW", - target = "(ILnet/minecraft/world/entity/player/Inventory;Lnet/minecraft/world/Container;Lnet/minecraft/world/entity/animal/horse/AbstractHorse;I)Lnet/minecraft/world/inventory/HorseInventoryMenu;" + target = "(ILnet/minecraft/world/entity/player/Inventory;Lnet/minecraft/world/Container;Lnet/minecraft/world/entity/animal/equine/AbstractHorse;I)Lnet/minecraft/world/inventory/HorseInventoryMenu;" ) ) private HorseInventoryMenu impl$transactHorseInventoryMenuCreationWithEffect( diff --git a/src/mixins/java/org/spongepowered/common/mixin/inventory/impl/TraitMixin_InventoryBridge_Inventory.java b/src/mixins/java/org/spongepowered/common/mixin/inventory/impl/TraitMixin_InventoryBridge_Inventory.java index 259d84bbe9d..bca9ba50105 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/inventory/impl/TraitMixin_InventoryBridge_Inventory.java +++ b/src/mixins/java/org/spongepowered/common/mixin/inventory/impl/TraitMixin_InventoryBridge_Inventory.java @@ -30,7 +30,7 @@ import net.minecraft.world.entity.Mob; import net.minecraft.world.entity.decoration.ArmorStand; import net.minecraft.world.entity.player.Inventory; -import net.minecraft.world.entity.vehicle.AbstractMinecartContainer; +import net.minecraft.world.entity.vehicle.minecart.AbstractMinecartContainer; import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.inventory.MerchantContainer; import net.minecraft.world.inventory.ResultContainer; diff --git a/src/mixins/java/org/spongepowered/common/mixin/inventory/impl/TraitMixin_ViewableBridge_Inventory.java b/src/mixins/java/org/spongepowered/common/mixin/inventory/impl/TraitMixin_ViewableBridge_Inventory.java index 69fa5771b1e..0a94588bee9 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/inventory/impl/TraitMixin_ViewableBridge_Inventory.java +++ b/src/mixins/java/org/spongepowered/common/mixin/inventory/impl/TraitMixin_ViewableBridge_Inventory.java @@ -26,9 +26,9 @@ import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.CompoundContainer; -import net.minecraft.world.entity.npc.AbstractVillager; +import net.minecraft.world.entity.npc.villager.AbstractVillager; import net.minecraft.world.entity.npc.ClientSideMerchant; -import net.minecraft.world.entity.vehicle.AbstractMinecartContainer; +import net.minecraft.world.entity.vehicle.minecart.AbstractMinecartContainer; import net.minecraft.world.inventory.PlayerEnderChestContainer; import net.minecraft.world.level.block.entity.BaseContainerBlockEntity; import net.minecraft.world.level.block.entity.LecternBlockEntity; diff --git a/src/mixins/java/org/spongepowered/common/mixin/inventory/impl/world/TraitMixin_TrackedMenuBridge_Inventory.java b/src/mixins/java/org/spongepowered/common/mixin/inventory/impl/world/TraitMixin_TrackedMenuBridge_Inventory.java index 22771af4874..2e53bbb1954 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/inventory/impl/world/TraitMixin_TrackedMenuBridge_Inventory.java +++ b/src/mixins/java/org/spongepowered/common/mixin/inventory/impl/world/TraitMixin_TrackedMenuBridge_Inventory.java @@ -27,8 +27,8 @@ import net.minecraft.world.CompoundContainer; import net.minecraft.world.SimpleContainer; import net.minecraft.world.entity.player.Inventory; -import net.minecraft.world.entity.vehicle.AbstractMinecartContainer; -import net.minecraft.world.entity.vehicle.ChestBoat; +import net.minecraft.world.entity.vehicle.minecart.AbstractMinecartContainer; +import net.minecraft.world.entity.vehicle.boat.ChestBoat; import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.inventory.MerchantContainer; import net.minecraft.world.inventory.ResultContainer; diff --git a/src/mixins/java/org/spongepowered/common/mixin/inventory/impl/world/inventory/HorseInventoryMenuMixin_TrackedMenuBridge_Inventory.java b/src/mixins/java/org/spongepowered/common/mixin/inventory/impl/world/inventory/HorseInventoryMenuMixin_TrackedMenuBridge_Inventory.java index 4566094a93a..c82724ff7a6 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/inventory/impl/world/inventory/HorseInventoryMenuMixin_TrackedMenuBridge_Inventory.java +++ b/src/mixins/java/org/spongepowered/common/mixin/inventory/impl/world/inventory/HorseInventoryMenuMixin_TrackedMenuBridge_Inventory.java @@ -25,7 +25,7 @@ package org.spongepowered.common.mixin.inventory.impl.world.inventory; import net.minecraft.world.Container; -import net.minecraft.world.entity.animal.horse.AbstractHorse; +import net.minecraft.world.entity.animal.equine.AbstractHorse; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.inventory.HorseInventoryMenu; diff --git a/src/mixins/java/org/spongepowered/common/mixin/plugin/entityactivation/EntityActivationRange.java b/src/mixins/java/org/spongepowered/common/mixin/plugin/entityactivation/EntityActivationRange.java index 6efeb3485e2..67761185c8a 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/plugin/entityactivation/EntityActivationRange.java +++ b/src/mixins/java/org/spongepowered/common/mixin/plugin/entityactivation/EntityActivationRange.java @@ -36,19 +36,19 @@ import net.minecraft.world.entity.Mob; import net.minecraft.world.entity.ambient.AmbientCreature; import net.minecraft.world.entity.animal.Animal; -import net.minecraft.world.entity.animal.WaterAnimal; +import net.minecraft.world.entity.animal.fish.WaterAnimal; import net.minecraft.world.entity.animal.sheep.Sheep; -import net.minecraft.world.entity.boss.EnderDragonPart; +import net.minecraft.world.entity.boss.enderdragon.EnderDragonPart; import net.minecraft.world.entity.boss.enderdragon.EndCrystal; import net.minecraft.world.entity.boss.enderdragon.EnderDragon; import net.minecraft.world.entity.boss.wither.WitherBoss; -import net.minecraft.world.entity.decoration.Painting; +import net.minecraft.world.entity.decoration.painting.Painting; import net.minecraft.world.entity.item.FallingBlockEntity; import net.minecraft.world.entity.item.PrimedTnt; import net.minecraft.world.entity.monster.Enemy; -import net.minecraft.world.entity.npc.Villager; +import net.minecraft.world.entity.npc.villager.Villager; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.entity.projectile.AbstractHurtingProjectile; +import net.minecraft.world.entity.projectile.hurtingprojectile.AbstractHurtingProjectile; import net.minecraft.world.entity.projectile.FireworkRocketEntity; import net.minecraft.world.entity.projectile.ThrowableProjectile; import net.minecraft.world.level.chunk.LevelChunk; diff --git a/src/mixins/resources/mixins.sponge.api.json b/src/mixins/resources/mixins.sponge.api.json index 2772f46d459..5b7cd2e650e 100644 --- a/src/mixins/resources/mixins.sponge.api.json +++ b/src/mixins/resources/mixins.sponge.api.json @@ -108,7 +108,6 @@ "minecraft.world.entity.EntityTypeMixin_API", "minecraft.world.entity.ExperienceOrbMixin_API", "minecraft.world.entity.FlyingAnimalMixin_API", - "minecraft.world.entity.GlowSquidMixin_API", "minecraft.world.entity.HumanoidArmMixin_API", "minecraft.world.entity.InteractionMixin_API", "minecraft.world.entity.LeashableMixin_API", @@ -144,47 +143,43 @@ "minecraft.world.entity.ai.goal.target.TargetGoalMixin_API", "minecraft.world.entity.ambient.AmbientCreatureMixin_API", "minecraft.world.entity.ambient.BatMixin_API", - "minecraft.world.entity.animal.AbstractCowMixin_API", - "minecraft.world.entity.animal.AbstractFishMixin_API", - "minecraft.world.entity.animal.AbstractGolemMixin_API", - "minecraft.world.entity.animal.AbstractSchoolingFishMixin_API", + "minecraft.world.entity.animal.cow.AbstractCowMixin_API", + "minecraft.world.entity.animal.fish.AbstractFishMixin_API", + "minecraft.world.entity.animal.fish.AbstractSchoolingFishMixin_API", "minecraft.world.entity.animal.AgeableWaterCreatureMixin_API", "minecraft.world.entity.animal.AnimalMixin_API", - "minecraft.world.entity.animal.BeeMixin_API", - "minecraft.world.entity.animal.CatMixin_API", - "minecraft.world.entity.animal.CatVariantMixin_API", - "minecraft.world.entity.animal.ChickenMixin_API", - "minecraft.world.entity.animal.ChickenVariantMixin_API", - "minecraft.world.entity.animal.CodMixin_API", - "minecraft.world.entity.animal.CowVariantMixin_API", - "minecraft.world.entity.animal.DolphinMixin_API", + "minecraft.world.entity.animal.bee.BeeMixin_API", + "minecraft.world.entity.animal.feline.CatMixin_API", + "minecraft.world.entity.animal.feline.CatVariantMixin_API", + "minecraft.world.entity.animal.chicken.ChickenMixin_API", + "minecraft.world.entity.animal.chicken.ChickenVariantMixin_API", + "minecraft.world.entity.animal.fish.CodMixin_API", + "minecraft.world.entity.animal.cow.CowVariantMixin_API", + "minecraft.world.entity.animal.dolphin.DolphinMixin_API", "minecraft.world.entity.animal.FlyingAnimalMixin_API", - "minecraft.world.entity.animal.Fox_VariantMixin_API", - "minecraft.world.entity.animal.FoxMixin_API", - "minecraft.world.entity.animal.FrogVariantMixin_API", - "minecraft.world.entity.animal.IronGolemMixin_API", - "minecraft.world.entity.animal.MushroomCow_MushroomTypeMixin_API", - "minecraft.world.entity.animal.MushroomCowMixin_API", - "minecraft.world.entity.animal.OcelotMixin_API", - "minecraft.world.entity.animal.Panda_GeneMixin_API", - "minecraft.world.entity.animal.PandaMixin_API", - "minecraft.world.entity.animal.Parrot_VariantMixin_API", - "minecraft.world.entity.animal.ParrotMixin_API", - "minecraft.world.entity.animal.PigMixin_API", - "minecraft.world.entity.animal.PigVariantMixin_API", - "minecraft.world.entity.animal.PolarBearMixin_API", - "minecraft.world.entity.animal.PufferfishMixin_API", - "minecraft.world.entity.animal.Rabbit_VariantMixin_API", - "minecraft.world.entity.animal.RabbitMixin_API", - "minecraft.world.entity.animal.SalmonMixin_API", - "minecraft.world.entity.animal.SalmonVariantMixin_API", - "minecraft.world.entity.animal.ShoulderRidingEntityMixin_API", - "minecraft.world.entity.animal.SnowGolemMixin_API", - "minecraft.world.entity.animal.SquidMixin_API", - "minecraft.world.entity.animal.TropicalFish_PatternMixin_API", - "minecraft.world.entity.animal.TropicalFishMixin_API", - "minecraft.world.entity.animal.TurtleMixin_API", - "minecraft.world.entity.animal.WaterAnimalMixin_API", + "minecraft.world.entity.animal.fox.Fox_VariantMixin_API", + "minecraft.world.entity.animal.fox.FoxMixin_API", + "minecraft.world.entity.animal.frog.FrogVariantMixin_API", + "minecraft.world.entity.animal.cow.MushroomCow_MushroomTypeMixin_API", + "minecraft.world.entity.animal.cow.MushroomCowMixin_API", + "minecraft.world.entity.animal.feline.OcelotMixin_API", + "minecraft.world.entity.animal.panda.Panda_GeneMixin_API", + "minecraft.world.entity.animal.panda.PandaMixin_API", + "minecraft.world.entity.animal.parrot.Parrot_VariantMixin_API", + "minecraft.world.entity.animal.parrot.ParrotMixin_API", + "minecraft.world.entity.animal.pig.PigMixin_API", + "minecraft.world.entity.animal.pig.PigVariantMixin_API", + "minecraft.world.entity.animal.polarbear.PolarBearMixin_API", + "minecraft.world.entity.animal.fish.PufferfishMixin_API", + "minecraft.world.entity.animal.rabbit.Rabbit_VariantMixin_API", + "minecraft.world.entity.animal.rabbit.RabbitMixin_API", + "minecraft.world.entity.animal.fish.SalmonMixin_API", + "minecraft.world.entity.animal.fish.SalmonVariantMixin_API", + "minecraft.world.entity.animal.parrot.ShoulderRidingEntityMixin_API", + "minecraft.world.entity.animal.fish.TropicalFish_PatternMixin_API", + "minecraft.world.entity.animal.fish.TropicalFishMixin_API", + "minecraft.world.entity.animal.turtle.TurtleMixin_API", + "minecraft.world.entity.animal.fish.WaterAnimalMixin_API", "minecraft.world.entity.animal.allay.AllayMixin_API", "minecraft.world.entity.animal.armadillo.ArmadilloMixin_API", "minecraft.world.entity.animal.axolotl.AxolotlMixin_API", @@ -194,27 +189,33 @@ "minecraft.world.entity.animal.frog.FrogMixin_API", "minecraft.world.entity.animal.frog.TadpoleMixin_API", "minecraft.world.entity.animal.goat.GoatMixin_API", - "minecraft.world.entity.animal.horse.AbstractChestedHorseMixin_API", - "minecraft.world.entity.animal.horse.AbstractHorseMixin_API", - "minecraft.world.entity.animal.horse.DonkeyMixin_API", - "minecraft.world.entity.animal.horse.HorseMixin_API", - "minecraft.world.entity.animal.horse.LLama_VariantMixin_API", - "minecraft.world.entity.animal.horse.LlamaMixin_API", - "minecraft.world.entity.animal.horse.MarkingsMixin_API", - "minecraft.world.entity.animal.horse.MuleMixin_API", - "minecraft.world.entity.animal.horse.SkeletonHorseMixin_API", - "minecraft.world.entity.animal.horse.TraderLlamaMixin_API", - "minecraft.world.entity.animal.horse.VariantMixin_API", - "minecraft.world.entity.animal.horse.ZombieHorseMixin_API", + "minecraft.world.entity.animal.golem.AbstractGolemMixin_API", + "minecraft.world.entity.animal.golem.CopperGolemMixin_API", + "minecraft.world.entity.animal.golem.IronGolemMixin_API", + "minecraft.world.entity.animal.golem.SnowGolemMixin_API", + "minecraft.world.entity.animal.equine.AbstractChestedHorseMixin_API", + "minecraft.world.entity.animal.equine.AbstractHorseMixin_API", + "minecraft.world.entity.animal.equine.DonkeyMixin_API", + "minecraft.world.entity.animal.equine.HorseMixin_API", + "minecraft.world.entity.animal.equine.LLama_VariantMixin_API", + "minecraft.world.entity.animal.equine.LlamaMixin_API", + "minecraft.world.entity.animal.equine.MarkingsMixin_API", + "minecraft.world.entity.animal.equine.MuleMixin_API", + "minecraft.world.entity.animal.equine.SkeletonHorseMixin_API", + "minecraft.world.entity.animal.equine.TraderLlamaMixin_API", + "minecraft.world.entity.animal.equine.VariantMixin_API", + "minecraft.world.entity.animal.equine.ZombieHorseMixin_API", "minecraft.world.entity.animal.nautilus.AbstractNautilusMixin_API", "minecraft.world.entity.animal.nautilus.NautilusMixin_API", "minecraft.world.entity.animal.nautilus.ZombieNautilusMixin_API", "minecraft.world.entity.animal.sheep.SheepMixin_API", "minecraft.world.entity.animal.sniffer.SnifferMixin_API", + "minecraft.world.entity.animal.squid.GlowSquidMixin_API", + "minecraft.world.entity.animal.squid.SquidMixin_API", "minecraft.world.entity.animal.wolf.WolfMixin_API", "minecraft.world.entity.animal.wolf.WolfSoundVariantMixin_API", "minecraft.world.entity.animal.wolf.WolfVariantMixin_API", - "minecraft.world.entity.boss.EnderDragonPartMixin_API", + "minecraft.world.entity.boss.enderdragon.EnderDragonPartMixin_API", "minecraft.world.entity.boss.enderdragon.EndCrystalMixin_API", "minecraft.world.entity.boss.enderdragon.EnderDragonMixin_API", "minecraft.world.entity.boss.enderdragon.phases.DragonPhaseInstanceMixin_API", @@ -226,112 +227,112 @@ "minecraft.world.entity.decoration.HangingEntityMixin_API", "minecraft.world.entity.decoration.ItemFrameMixin_API", "minecraft.world.entity.decoration.LeashFenceKnotEntityMixin_API", - "minecraft.world.entity.decoration.PaintingMixin_API", - "minecraft.world.entity.decoration.PaintingVariantMixin_API", + "minecraft.world.entity.decoration.painting.PaintingMixin_API", + "minecraft.world.entity.decoration.painting.PaintingVariantMixin_API", "minecraft.world.entity.item.FallingBlockEntityMixin_API", "minecraft.world.entity.item.ItemEntityMixin_API", "minecraft.world.entity.item.PrimedTntMixin_API", - "minecraft.world.entity.monster.AbstractIllagerMixin_API", - "minecraft.world.entity.monster.AbstractPiglinMixin_API", - "minecraft.world.entity.monster.AbstractSkeletonMixin_API", "minecraft.world.entity.monster.BlazeMixin_API", - "minecraft.world.entity.monster.BoggedMixin_API", - "minecraft.world.entity.monster.BreezeMixin_API", - "minecraft.world.entity.monster.CaveSpiderMixin_API", "minecraft.world.entity.monster.CreeperMixin_API", - "minecraft.world.entity.monster.DrownedMixin_API", "minecraft.world.entity.monster.ElderGuardianMixin_API", "minecraft.world.entity.monster.EnderManMixin_API", "minecraft.world.entity.monster.EndermiteMixin_API", "minecraft.world.entity.monster.EnemyMixin_API", - "minecraft.world.entity.monster.EvokerMixin_API", "minecraft.world.entity.monster.GhastMixin_API", "minecraft.world.entity.monster.GiantMixin_API", "minecraft.world.entity.monster.GuardianMixin_API", - "minecraft.world.entity.monster.HoglinMixin_API", - "minecraft.world.entity.monster.HuskMixin_API", - "minecraft.world.entity.monster.IllusionerMixin_API", "minecraft.world.entity.monster.MagmaCubeMixin_API", "minecraft.world.entity.monster.MonsterMixin_API", - "minecraft.world.entity.monster.ParchedMixin_API", "minecraft.world.entity.monster.PatrollingMonsterMixin_API", "minecraft.world.entity.monster.Phantom_AttackPhaseMixin_API", "minecraft.world.entity.monster.PhantomMixin_API", - "minecraft.world.entity.monster.PiglinBruteMixin_API", - "minecraft.world.entity.monster.PiglinMixin_API", - "minecraft.world.entity.monster.PillagerMixin_API", "minecraft.world.entity.monster.RangedAttackMobMixin_API", "minecraft.world.entity.monster.RavagerMixin_API", "minecraft.world.entity.monster.ShulkerMixin_API", "minecraft.world.entity.monster.SilverfishMixin_API", - "minecraft.world.entity.monster.SkeletonMixin_API", "minecraft.world.entity.monster.SlimeMixin_API", - "minecraft.world.entity.monster.SpellcasterIllager_IllagerSpellMixin_API", - "minecraft.world.entity.monster.SpellcasterIllagerMixin_API", - "minecraft.world.entity.monster.SpiderMixin_API", - "minecraft.world.entity.monster.StrayMixin_API", "minecraft.world.entity.monster.StriderMixin_API", "minecraft.world.entity.monster.VexMixin_API", - "minecraft.world.entity.monster.VindicatorMixin_API", "minecraft.world.entity.monster.WitchMixin_API", - "minecraft.world.entity.monster.WitherSkeletonMixin_API", "minecraft.world.entity.monster.ZoglinMixin_API", - "minecraft.world.entity.monster.ZombieMixin_API", - "minecraft.world.entity.monster.ZombieVillagerMixin_API", - "minecraft.world.entity.monster.ZombifiedPiglinMixin_API", + "minecraft.world.entity.monster.breeze.BreezeMixin_API", + "minecraft.world.entity.monster.hoglin.HoglinMixin_API", + "minecraft.world.entity.monster.illager.AbstractIllagerMixin_API", + "minecraft.world.entity.monster.illager.EvokerMixin_API", + "minecraft.world.entity.monster.illager.IllusionerMixin_API", + "minecraft.world.entity.monster.illager.PillagerMixin_API", + "minecraft.world.entity.monster.illager.SpellcasterIllager_IllagerSpellMixin_API", + "minecraft.world.entity.monster.illager.SpellcasterIllagerMixin_API", + "minecraft.world.entity.monster.illager.VindicatorMixin_API", + "minecraft.world.entity.monster.piglin.AbstractPiglinMixin_API", + "minecraft.world.entity.monster.piglin.PiglinBruteMixin_API", + "minecraft.world.entity.monster.piglin.PiglinMixin_API", + "minecraft.world.entity.monster.skeleton.AbstractSkeletonMixin_API", + "minecraft.world.entity.monster.skeleton.BoggedMixin_API", + "minecraft.world.entity.monster.skeleton.ParchedMixin_API", + "minecraft.world.entity.monster.skeleton.SkeletonMixin_API", + "minecraft.world.entity.monster.skeleton.StrayMixin_API", + "minecraft.world.entity.monster.skeleton.WitherSkeletonMixin_API", + "minecraft.world.entity.monster.spider.CaveSpiderMixin_API", + "minecraft.world.entity.monster.spider.SpiderMixin_API", "minecraft.world.entity.monster.warden.WardenMixin_API", - "minecraft.world.entity.npc.AbstractVillagerMixin_API", - "minecraft.world.entity.npc.VillagerMixin_API", - "minecraft.world.entity.npc.VillagerProfessionMixin_API", - "minecraft.world.entity.npc.VillagerTrades_ItemListingMixin_API", - "minecraft.world.entity.npc.VillagerTypeMixin_API", - "minecraft.world.entity.npc.WanderingTraderMixin_API", + "minecraft.world.entity.monster.zombie.DrownedMixin_API", + "minecraft.world.entity.monster.zombie.HuskMixin_API", + "minecraft.world.entity.monster.zombie.ZombieMixin_API", + "minecraft.world.entity.monster.zombie.ZombieVillagerMixin_API", + "minecraft.world.entity.monster.zombie.ZombifiedPiglinMixin_API", + "minecraft.world.entity.npc.villager.AbstractVillagerMixin_API", + "minecraft.world.entity.npc.villager.VillagerMixin_API", + "minecraft.world.entity.npc.villager.VillagerProfessionMixin_API", + "minecraft.world.entity.npc.villager.VillagerTrades_ItemListingMixin_API", + "minecraft.world.entity.npc.villager.VillagerTypeMixin_API", + "minecraft.world.entity.npc.wanderingtrader.WanderingTraderMixin_API", "minecraft.world.entity.player.ChatVisiblityMixin_API", "minecraft.world.entity.player.PlayerMixin_API", - "minecraft.world.entity.projectile.AbstractArrow_PickupMixin_API", - "minecraft.world.entity.projectile.AbstractArrowMixin_API", - "minecraft.world.entity.projectile.AbstractHurtingProjectileMixin_API", - "minecraft.world.entity.projectile.ArrowMixin_API", - "minecraft.world.entity.projectile.DragonFireballMixin_API", "minecraft.world.entity.projectile.EvokerFangsMixin_API", "minecraft.world.entity.projectile.EyeOfEnderMixin_API", - "minecraft.world.entity.projectile.FireballMixin_API", "minecraft.world.entity.projectile.FireworkRocketEntityMixin_API", "minecraft.world.entity.projectile.FishingHookMixin_API", "minecraft.world.entity.projectile.ItemSupplierMixin_API", - "minecraft.world.entity.projectile.LargeFireballMixin_API", "minecraft.world.entity.projectile.LlamaSpitMixin_API", "minecraft.world.entity.projectile.ProjectileMixin_API", "minecraft.world.entity.projectile.ShulkerBulletMixin_API", - "minecraft.world.entity.projectile.SmallFireballMixin_API", - "minecraft.world.entity.projectile.SnowballMixin_API", - "minecraft.world.entity.projectile.SpectralArrowMixin_API", - "minecraft.world.entity.projectile.ThrowableItemProjectileMixin_API", "minecraft.world.entity.projectile.ThrowableProjectileMixin_API", - "minecraft.world.entity.projectile.ThrownEggMixin_API", - "minecraft.world.entity.projectile.ThrownEnderpearlMixin_API", - "minecraft.world.entity.projectile.ThrownExperienceBottleMixin_API", - "minecraft.world.entity.projectile.ThrownPotionMixin_API", - "minecraft.world.entity.projectile.ThrownTridentMixin_API", - "minecraft.world.entity.projectile.WitherSkullMixin_API", - "minecraft.world.entity.projectile.windcharge.AbstractWindChargeMixin_API", - "minecraft.world.entity.projectile.windcharge.BreezeWindChargeMixin_API", - "minecraft.world.entity.projectile.windcharge.WindChargeMixin_API", + "minecraft.world.entity.projectile.arrow.AbstractArrow_PickupMixin_API", + "minecraft.world.entity.projectile.arrow.AbstractArrowMixin_API", + "minecraft.world.entity.projectile.arrow.ArrowMixin_API", + "minecraft.world.entity.projectile.arrow.SpectralArrowMixin_API", + "minecraft.world.entity.projectile.arrow.ThrownTridentMixin_API", + "minecraft.world.entity.projectile.hurtingprojectile.AbstractHurtingProjectileMixin_API", + "minecraft.world.entity.projectile.hurtingprojectile.DragonFireballMixin_API", + "minecraft.world.entity.projectile.hurtingprojectile.FireballMixin_API", + "minecraft.world.entity.projectile.hurtingprojectile.LargeFireballMixin_API", + "minecraft.world.entity.projectile.hurtingprojectile.SmallFireballMixin_API", + "minecraft.world.entity.projectile.hurtingprojectile.WitherSkullMixin_API", + "minecraft.world.entity.projectile.hurtingprojectile.windcharge.AbstractWindChargeMixin_API", + "minecraft.world.entity.projectile.hurtingprojectile.windcharge.BreezeWindChargeMixin_API", + "minecraft.world.entity.projectile.hurtingprojectile.windcharge.WindChargeMixin_API", + "minecraft.world.entity.projectile.throwableitemprojectile.SnowballMixin_API", + "minecraft.world.entity.projectile.throwableitemprojectile.ThrowableItemProjectileMixin_API", + "minecraft.world.entity.projectile.throwableitemprojectile.ThrownEggMixin_API", + "minecraft.world.entity.projectile.throwableitemprojectile.ThrownEnderpearlMixin_API", + "minecraft.world.entity.projectile.throwableitemprojectile.ThrownExperienceBottleMixin_API", + "minecraft.world.entity.projectile.throwableitemprojectile.ThrownPotionMixin_API", "minecraft.world.entity.raid.Raid_RaidStatusMixin_API", "minecraft.world.entity.raid.RaiderMixin_API", "minecraft.world.entity.raid.RaidMixin_API", - "minecraft.world.entity.vehicle.AbstractBoatMixin_API", - "minecraft.world.entity.vehicle.AbstractChestBoatMixin_API", - "minecraft.world.entity.vehicle.AbstractMinecartContainerMixin_API", - "minecraft.world.entity.vehicle.AbstractMinecartMixin_API", - "minecraft.world.entity.vehicle.MinecartChestMixin_API", - "minecraft.world.entity.vehicle.MinecartCommandBlockMixin_API", - "minecraft.world.entity.vehicle.MinecartFurnaceMixin_API", - "minecraft.world.entity.vehicle.MinecartHopperMixin_API", - "minecraft.world.entity.vehicle.MinecartMixin_API", - "minecraft.world.entity.vehicle.MinecartSpawnerMixin_API", - "minecraft.world.entity.vehicle.MinecartTNTMixin_API", "minecraft.world.entity.vehicle.VehicleEntityMixin_API", + "minecraft.world.entity.vehicle.boat.AbstractBoatMixin_API", + "minecraft.world.entity.vehicle.boat.AbstractChestBoatMixin_API", + "minecraft.world.entity.vehicle.minecart.AbstractMinecartContainerMixin_API", + "minecraft.world.entity.vehicle.minecart.AbstractMinecartMixin_API", + "minecraft.world.entity.vehicle.minecart.MinecartChestMixin_API", + "minecraft.world.entity.vehicle.minecart.MinecartCommandBlockMixin_API", + "minecraft.world.entity.vehicle.minecart.MinecartFurnaceMixin_API", + "minecraft.world.entity.vehicle.minecart.MinecartHopperMixin_API", + "minecraft.world.entity.vehicle.minecart.MinecartMixin_API", + "minecraft.world.entity.vehicle.minecart.MinecartSpawnerMixin_API", + "minecraft.world.entity.vehicle.minecart.MinecartTNTMixin_API", "minecraft.world.item.ArmorMaterialMixin_API", "minecraft.world.item.DyeColorMixin_API", "minecraft.world.item.FireworkExplosion_ShapeMixin_API", diff --git a/src/mixins/resources/mixins.sponge.core.json b/src/mixins/resources/mixins.sponge.core.json index 89f424f51e9..ce7a1f480d1 100644 --- a/src/mixins/resources/mixins.sponge.core.json +++ b/src/mixins/resources/mixins.sponge.core.json @@ -143,12 +143,12 @@ "world.entity.ai.sensing.NearestLivingEntitySensorMixin", "world.entity.ai.sensing.SensorMixin", "world.entity.animal.AnimalMixin", - "world.entity.animal.Cat_CatRelaxOnOwnerGoalMixin", - "world.entity.animal.OcelotMixin", - "world.entity.animal.ParrotMixin", - "world.entity.animal.PufferfishMixin", - "world.entity.animal.Rabbit_RaidGardenGoalMixin", - "world.entity.animal.horse.AbstractHorseMixin", + "world.entity.animal.feline.Cat_CatRelaxOnOwnerGoalMixin", + "world.entity.animal.feline.OcelotMixin", + "world.entity.animal.parrot.ParrotMixin", + "world.entity.animal.fish.PufferfishMixin", + "world.entity.animal.rabbit.Rabbit_RaidGardenGoalMixin", + "world.entity.animal.equine.AbstractHorseMixin", "world.entity.animal.wolf.WolfMixin", "world.entity.boss.enderdragon.EndCrystalMixin", "world.entity.decoration.ArmorStandMixin", @@ -168,37 +168,37 @@ "world.entity.monster.ShulkerMixin", "world.entity.monster.Silverfish_SilverfishMergeWithStoneGoalMixin", "world.entity.monster.Silverfish_SilverfishWakeUpFriendsGoalMixin", - "world.entity.monster.ZombifiedPiglinMixin", - "world.entity.npc.AbstractVillagerMixin", - "world.entity.npc.VillagerMixin", - "world.entity.npc.WanderingTraderMixin", + "world.entity.monster.zombie.ZombifiedPiglinMixin", + "world.entity.npc.villager.AbstractVillagerMixin", + "world.entity.npc.villager.VillagerMixin", + "world.entity.npc.wanderingtrader.WanderingTraderMixin", "world.entity.player.PlayerMixin", "world.entity.player.PlayerMixin_Attack", - "world.entity.projectile.AbstractArrowMixin", - "world.entity.projectile.AbstractHurtingProjectileMixin", + "world.entity.projectile.arrow.AbstractArrowMixin", + "world.entity.projectile.hurtingprojectile.AbstractHurtingProjectileMixin", "world.entity.projectile.EyeOfEnderMixin", "world.entity.projectile.FireworkRocketEntityMixin", "world.entity.projectile.FishingHookMixin", - "world.entity.projectile.LargeFireballMixin", + "world.entity.projectile.hurtingprojectile.LargeFireballMixin", "world.entity.projectile.LlamaSpitMixin", "world.entity.projectile.ProjectileMixin", "world.entity.projectile.ProjectileUtilMixin", "world.entity.projectile.ShulkerBulletMixin", - "world.entity.projectile.SmallFireballMixin", - "world.entity.projectile.SnowballMixin", + "world.entity.projectile.hurtingprojectile.SmallFireballMixin", + "world.entity.projectile.throwableitemprojectile.SnowballMixin", "world.entity.projectile.ThrowableProjectileMixin", - "world.entity.projectile.ThrownEggMixin", - "world.entity.projectile.ThrownEnderpearlMixin", - "world.entity.projectile.ThrownTridentMixin", - "world.entity.projectile.WitherSkullMixin", - "world.entity.vehicle.AbstractBoatMixin", - "world.entity.vehicle.AbstractMinecartContainerMixin", - "world.entity.vehicle.AbstractMinecartMixin", - "world.entity.vehicle.MinecartCommandBlock_MinecartCommandBaseMixin", - "world.entity.vehicle.MinecartCommandBlockMixin", - "world.entity.vehicle.MinecartFurnaceMixin", - "world.entity.vehicle.MinecartTNTMixin", - "world.entity.vehicle.OldMinecartBehaviourMixin", + "world.entity.projectile.throwableitemprojectile.ThrownEggMixin", + "world.entity.projectile.throwableitemprojectile.ThrownEnderpearlMixin", + "world.entity.projectile.arrow.ThrownTridentMixin", + "world.entity.projectile.hurtingprojectile.WitherSkullMixin", + "world.entity.vehicle.boat.AbstractBoatMixin", + "world.entity.vehicle.minecart.AbstractMinecartContainerMixin", + "world.entity.vehicle.minecart.AbstractMinecartMixin", + "world.entity.vehicle.minecart.MinecartCommandBlock_MinecartCommandBaseMixin", + "world.entity.vehicle.minecart.MinecartCommandBlockMixin", + "world.entity.vehicle.minecart.MinecartFurnaceMixin", + "world.entity.vehicle.minecart.MinecartTNTMixin", + "world.entity.vehicle.minecart.OldMinecartBehaviourMixin", "world.entity.vehicle.VehicleEntityMixin", "world.food.FoodDataMixin", "world.inventory.StonecutterMenuMixin", diff --git a/src/mixins/resources/mixins.sponge.entityactivation.json b/src/mixins/resources/mixins.sponge.entityactivation.json index 79fd4a3428c..7e0303e48d3 100644 --- a/src/mixins/resources/mixins.sponge.entityactivation.json +++ b/src/mixins/resources/mixins.sponge.entityactivation.json @@ -8,7 +8,7 @@ "entity.LivingEntityMixin_Activation", "entity.item.FireworkRocketEntityMixin_EntityActivation", "entity.item.ItemEntityMixin_EntityActivation", - "entity.projectile.AbstractArrowEntityMixin_EntityActivation", + "entity.projectile.arrow.AbstractArrowEntityMixin_EntityActivation", "world.server.ServerLevelMixin_EntityActivation" ] } diff --git a/src/mixins/resources/mixins.sponge.inventory.json b/src/mixins/resources/mixins.sponge.inventory.json index 6ea796e028c..27918fbc51a 100644 --- a/src/mixins/resources/mixins.sponge.inventory.json +++ b/src/mixins/resources/mixins.sponge.inventory.json @@ -20,14 +20,14 @@ "api.world.entity.EquipmentSlot_TypeMixin_Inventory_API", "api.world.entity.EquipmentSlotGroupMixin_Inventory_API", "api.world.entity.EquipmentSlotMixin_Inventory_API", - "api.world.entity.animal.horse.AbstractHorseMixin_Carrier_Inventory_API", - "api.world.entity.monster.PillagerMixin_Carrier_Inventory_API", - "api.world.entity.npc.AbstractVillagerMixin_Carrier_Inventory_API", + "api.world.entity.animal.equine.AbstractHorseMixin_Carrier_Inventory_API", + "api.world.entity.monster.illager.PillagerMixin_Carrier_Inventory_API", + "api.world.entity.npc.villager.AbstractVillagerMixin_Carrier_Inventory_API", "api.world.entity.player.InventoryMixin_Carried_Inventory_API", "api.world.entity.player.InventoryMixin_Inventory_API", "api.world.entity.player.PlayerMixin_Inventory_API", - "api.world.entity.vehicle.AbstractMinecartContainerMixin_Carried_Inventory_API", - "api.world.entity.vehicle.AbstractMinecartContainerMixin_Carrier_Inventory_API", + "api.world.entity.vehicle.minecart.AbstractMinecartContainerMixin_Carried_Inventory_API", + "api.world.entity.vehicle.minecart.AbstractMinecartContainerMixin_Carrier_Inventory_API", "api.world.inventory.AnvilMenuMixin_BlockCarrier_Inventory_API", "api.world.inventory.ArmorSlot_Inventory_API", "api.world.inventory.BrewingStandMenu_PotionSlotMixin_Inventory_API", diff --git a/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/entity/animal/SnowGolemMixin_Vanilla.java b/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/entity/animal/golem/SnowGolemMixin_Vanilla.java similarity index 96% rename from vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/entity/animal/SnowGolemMixin_Vanilla.java rename to vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/entity/animal/golem/SnowGolemMixin_Vanilla.java index 95b2c7ea3d0..23198ebae2e 100644 --- a/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/entity/animal/SnowGolemMixin_Vanilla.java +++ b/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/entity/animal/golem/SnowGolemMixin_Vanilla.java @@ -22,10 +22,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.vanilla.mixin.core.world.entity.animal; +package org.spongepowered.vanilla.mixin.core.world.entity.animal.golem; -import net.minecraft.world.entity.animal.SnowGolem; +import net.minecraft.world.entity.animal.golem.SnowGolem; import net.minecraft.world.level.gamerules.GameRule; import net.minecraft.world.level.gamerules.GameRules; import org.spongepowered.asm.mixin.Mixin; diff --git a/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/entity/vehicle/AbstractBoatMixin_Vanilla.java b/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/entity/vehicle/boat/AbstractBoatMixin_Vanilla.java similarity index 96% rename from vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/entity/vehicle/AbstractBoatMixin_Vanilla.java rename to vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/entity/vehicle/boat/AbstractBoatMixin_Vanilla.java index 693141a973a..fddc1321515 100644 --- a/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/entity/vehicle/AbstractBoatMixin_Vanilla.java +++ b/vanilla/src/mixins/java/org/spongepowered/vanilla/mixin/core/world/entity/vehicle/boat/AbstractBoatMixin_Vanilla.java @@ -22,9 +22,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.vanilla.mixin.core.world.entity.vehicle; +package org.spongepowered.vanilla.mixin.core.world.entity.vehicle.boat; -import net.minecraft.world.entity.vehicle.AbstractBoat; +import net.minecraft.world.entity.vehicle.boat.AbstractBoat; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import org.spongepowered.asm.mixin.Mixin; diff --git a/vanilla/src/mixins/resources/mixins.spongevanilla.core.json b/vanilla/src/mixins/resources/mixins.spongevanilla.core.json index 6c6e9c2c14b..887d035d10a 100644 --- a/vanilla/src/mixins/resources/mixins.spongevanilla.core.json +++ b/vanilla/src/mixins/resources/mixins.spongevanilla.core.json @@ -35,10 +35,10 @@ "world.entity.LivingEntityMixin_Vanilla", "world.entity.LivingEntityMixin_Vanilla_Damage", "world.entity.ai.attributes.DefaultAttributesMixin", - "world.entity.animal.SnowGolemMixin_Vanilla", + "world.entity.animal.golem.SnowGolemMixin_Vanilla", "world.entity.item.ItemEntityMixin_Vanilla", "world.entity.player.PlayerMixin_Vanilla_Damage", - "world.entity.vehicle.AbstractBoatMixin_Vanilla", + "world.entity.vehicle.boat.AbstractBoatMixin_Vanilla", "world.level.ServerExplosionMixin_Vanilla", "world.level.block.FireBlockMixin_Vanilla", "world.level.block.entity.AbstractFurnaceBlockEntityMixin_Vanilla", From a50bebcd30b1fa36b680a085566e80f9c00dc524 Mon Sep 17 00:00:00 2001 From: Gabriel Harris-Rouquette Date: Wed, 10 Dec 2025 00:43:13 -0800 Subject: [PATCH 10/13] feat(minecraft): update to 1.21.11-pre2 Notable Changes: - Minor package class shuffles - Updated verification metadata See https://minecraft.wiki/w/Java_Edition_1.21.11_Pre-Release_2 --- gradle.properties | 2 +- gradle/verification-metadata.xml | 6 ++++++ .../common/entity/projectile/ProjectileUtil.java | 2 +- .../registry/loader/VanillaRegistryLoader.java | 14 +++++++------- .../entity/animal/golem/CopperGolemMixin_API.java | 1 - .../AbstractHurtingProjectileMixin.java | 2 +- .../api/TraitMixin_Viewable_Inventory_API.java | 2 +- .../impl/TraitMixin_ViewableBridge_Inventory.java | 2 +- .../TraitMixin_TrackedMenuBridge_Inventory.java | 2 +- .../entityactivation/EntityActivationRange.java | 4 ++-- 10 files changed, 21 insertions(+), 16 deletions(-) diff --git a/gradle.properties b/gradle.properties index b5c947e420d..5041998aa68 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ mixinConfigs=mixins.sponge.accessors.json,mixins.sponge.api.json,mixins.sponge.c mixins.sponge.entityactivation.json,mixins.sponge.exploit.json,mixins.sponge.inventory.json,mixins.sponge.movementcheck.json,\ mixins.sponge.tracker.json,mixins.sponge.ipforward.json,mixins.sponge.optimization.json,mixins.sponge.test.json -minecraftVersion=1.21.11-pre1 +minecraftVersion=1.21.11-pre2 recommendedVersion=0-SNAPSHOT org.gradle.dependency.verification.console=verbose diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 94cd74e12d1..8a3e0c5c8f2 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -1812,12 +1812,18 @@ + + + + + + diff --git a/src/main/java/org/spongepowered/common/entity/projectile/ProjectileUtil.java b/src/main/java/org/spongepowered/common/entity/projectile/ProjectileUtil.java index 653feb40438..83883aaf397 100644 --- a/src/main/java/org/spongepowered/common/entity/projectile/ProjectileUtil.java +++ b/src/main/java/org/spongepowered/common/entity/projectile/ProjectileUtil.java @@ -33,8 +33,8 @@ import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.projectile.FireworkRocketEntity; import net.minecraft.world.entity.projectile.FishingHook; -import net.minecraft.world.entity.projectile.hurtingprojectile.LargeFireball; import net.minecraft.world.entity.projectile.ThrowableProjectile; +import net.minecraft.world.entity.projectile.hurtingprojectile.LargeFireball; import net.minecraft.world.entity.projectile.throwableitemprojectile.ThrownEgg; import net.minecraft.world.entity.projectile.throwableitemprojectile.ThrownEnderpearl; import net.minecraft.world.entity.projectile.throwableitemprojectile.ThrownExperienceBottle; diff --git a/src/main/java/org/spongepowered/common/registry/loader/VanillaRegistryLoader.java b/src/main/java/org/spongepowered/common/registry/loader/VanillaRegistryLoader.java index d794771f31e..aa2f8449fbd 100644 --- a/src/main/java/org/spongepowered/common/registry/loader/VanillaRegistryLoader.java +++ b/src/main/java/org/spongepowered/common/registry/loader/VanillaRegistryLoader.java @@ -40,17 +40,17 @@ import net.minecraft.world.entity.HumanoidArm; import net.minecraft.world.entity.MobCategory; import net.minecraft.world.entity.ai.attributes.AttributeModifier; -import net.minecraft.world.entity.animal.fox.Fox; -import net.minecraft.world.entity.animal.cow.MushroomCow; -import net.minecraft.world.entity.animal.panda.Panda; -import net.minecraft.world.entity.animal.parrot.Parrot; -import net.minecraft.world.entity.animal.rabbit.Rabbit; -import net.minecraft.world.entity.animal.fish.Salmon; -import net.minecraft.world.entity.animal.fish.TropicalFish; import net.minecraft.world.entity.animal.axolotl.Axolotl; +import net.minecraft.world.entity.animal.cow.MushroomCow; import net.minecraft.world.entity.animal.equine.Llama; import net.minecraft.world.entity.animal.equine.Markings; import net.minecraft.world.entity.animal.equine.Variant; +import net.minecraft.world.entity.animal.fish.Salmon; +import net.minecraft.world.entity.animal.fish.TropicalFish; +import net.minecraft.world.entity.animal.fox.Fox; +import net.minecraft.world.entity.animal.panda.Panda; +import net.minecraft.world.entity.animal.parrot.Parrot; +import net.minecraft.world.entity.animal.rabbit.Rabbit; import net.minecraft.world.entity.boss.enderdragon.phases.EnderDragonPhase; import net.minecraft.world.entity.monster.Phantom; import net.minecraft.world.entity.monster.illager.SpellcasterIllager; diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/golem/CopperGolemMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/golem/CopperGolemMixin_API.java index daaf5c310c1..e759e96fcf0 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/golem/CopperGolemMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/animal/golem/CopperGolemMixin_API.java @@ -25,7 +25,6 @@ package org.spongepowered.common.mixin.api.minecraft.world.entity.animal.golem; import org.spongepowered.api.entity.living.golem.CopperGolem; -import org.spongepowered.api.entity.living.golem.SnowGolem; import org.spongepowered.asm.mixin.Mixin; @Mixin(net.minecraft.world.entity.animal.golem.CopperGolem.class) diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/hurtingprojectile/AbstractHurtingProjectileMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/hurtingprojectile/AbstractHurtingProjectileMixin.java index dd91edf01b5..d1354b772d2 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/hurtingprojectile/AbstractHurtingProjectileMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/projectile/hurtingprojectile/AbstractHurtingProjectileMixin.java @@ -25,8 +25,8 @@ package org.spongepowered.common.mixin.core.world.entity.projectile.hurtingprojectile; import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.projectile.hurtingprojectile.AbstractHurtingProjectile; import net.minecraft.world.entity.projectile.ProjectileDeflection; +import net.minecraft.world.entity.projectile.hurtingprojectile.AbstractHurtingProjectile; import net.minecraft.world.phys.HitResult; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; diff --git a/src/mixins/java/org/spongepowered/common/mixin/inventory/api/TraitMixin_Viewable_Inventory_API.java b/src/mixins/java/org/spongepowered/common/mixin/inventory/api/TraitMixin_Viewable_Inventory_API.java index aa64527414e..a1b2efe37c7 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/inventory/api/TraitMixin_Viewable_Inventory_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/inventory/api/TraitMixin_Viewable_Inventory_API.java @@ -26,8 +26,8 @@ import net.minecraft.world.CompoundContainer; import net.minecraft.world.Container; -import net.minecraft.world.entity.npc.villager.AbstractVillager; import net.minecraft.world.entity.npc.ClientSideMerchant; +import net.minecraft.world.entity.npc.villager.AbstractVillager; import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.vehicle.minecart.AbstractMinecartContainer; import net.minecraft.world.inventory.PlayerEnderChestContainer; diff --git a/src/mixins/java/org/spongepowered/common/mixin/inventory/impl/TraitMixin_ViewableBridge_Inventory.java b/src/mixins/java/org/spongepowered/common/mixin/inventory/impl/TraitMixin_ViewableBridge_Inventory.java index 0a94588bee9..743832b4643 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/inventory/impl/TraitMixin_ViewableBridge_Inventory.java +++ b/src/mixins/java/org/spongepowered/common/mixin/inventory/impl/TraitMixin_ViewableBridge_Inventory.java @@ -26,8 +26,8 @@ import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.CompoundContainer; -import net.minecraft.world.entity.npc.villager.AbstractVillager; import net.minecraft.world.entity.npc.ClientSideMerchant; +import net.minecraft.world.entity.npc.villager.AbstractVillager; import net.minecraft.world.entity.vehicle.minecart.AbstractMinecartContainer; import net.minecraft.world.inventory.PlayerEnderChestContainer; import net.minecraft.world.level.block.entity.BaseContainerBlockEntity; diff --git a/src/mixins/java/org/spongepowered/common/mixin/inventory/impl/world/TraitMixin_TrackedMenuBridge_Inventory.java b/src/mixins/java/org/spongepowered/common/mixin/inventory/impl/world/TraitMixin_TrackedMenuBridge_Inventory.java index 2e53bbb1954..6a27e19b411 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/inventory/impl/world/TraitMixin_TrackedMenuBridge_Inventory.java +++ b/src/mixins/java/org/spongepowered/common/mixin/inventory/impl/world/TraitMixin_TrackedMenuBridge_Inventory.java @@ -27,8 +27,8 @@ import net.minecraft.world.CompoundContainer; import net.minecraft.world.SimpleContainer; import net.minecraft.world.entity.player.Inventory; -import net.minecraft.world.entity.vehicle.minecart.AbstractMinecartContainer; import net.minecraft.world.entity.vehicle.boat.ChestBoat; +import net.minecraft.world.entity.vehicle.minecart.AbstractMinecartContainer; import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.inventory.MerchantContainer; import net.minecraft.world.inventory.ResultContainer; diff --git a/src/mixins/java/org/spongepowered/common/mixin/plugin/entityactivation/EntityActivationRange.java b/src/mixins/java/org/spongepowered/common/mixin/plugin/entityactivation/EntityActivationRange.java index 67761185c8a..381d1dd41ed 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/plugin/entityactivation/EntityActivationRange.java +++ b/src/mixins/java/org/spongepowered/common/mixin/plugin/entityactivation/EntityActivationRange.java @@ -38,9 +38,9 @@ import net.minecraft.world.entity.animal.Animal; import net.minecraft.world.entity.animal.fish.WaterAnimal; import net.minecraft.world.entity.animal.sheep.Sheep; -import net.minecraft.world.entity.boss.enderdragon.EnderDragonPart; import net.minecraft.world.entity.boss.enderdragon.EndCrystal; import net.minecraft.world.entity.boss.enderdragon.EnderDragon; +import net.minecraft.world.entity.boss.enderdragon.EnderDragonPart; import net.minecraft.world.entity.boss.wither.WitherBoss; import net.minecraft.world.entity.decoration.painting.Painting; import net.minecraft.world.entity.item.FallingBlockEntity; @@ -48,9 +48,9 @@ import net.minecraft.world.entity.monster.Enemy; import net.minecraft.world.entity.npc.villager.Villager; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.entity.projectile.hurtingprojectile.AbstractHurtingProjectile; import net.minecraft.world.entity.projectile.FireworkRocketEntity; import net.minecraft.world.entity.projectile.ThrowableProjectile; +import net.minecraft.world.entity.projectile.hurtingprojectile.AbstractHurtingProjectile; import net.minecraft.world.level.chunk.LevelChunk; import net.minecraft.world.level.entity.EntitySection; import net.minecraft.world.level.entity.EntitySectionStorage; From db788f75293b2aeac3238b6f7c6443c77621167f Mon Sep 17 00:00:00 2001 From: Gabriel Harris-Rouquette Date: Wed, 10 Dec 2025 01:08:55 -0800 Subject: [PATCH 11/13] feat(minecraft): update to 1.21.11 Notable Changes: - Updated to the stable release of 1.21.11 See https://minecraft.wiki/w/Java_Edition_1.21.11 --- gradle.properties | 2 +- gradle/verification-metadata.xml | 8 ++++++++ .../common/mixin/core/client/MinecraftMixin.java | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index 5041998aa68..32043ccde3d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ mixinConfigs=mixins.sponge.accessors.json,mixins.sponge.api.json,mixins.sponge.c mixins.sponge.entityactivation.json,mixins.sponge.exploit.json,mixins.sponge.inventory.json,mixins.sponge.movementcheck.json,\ mixins.sponge.tracker.json,mixins.sponge.ipforward.json,mixins.sponge.optimization.json,mixins.sponge.test.json -minecraftVersion=1.21.11-pre2 +minecraftVersion=1.21.11 recommendedVersion=0-SNAPSHOT org.gradle.dependency.verification.console=verbose diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 8a3e0c5c8f2..3c0e3f57ae9 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -33,6 +33,14 @@ + + + + + + + + diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/client/MinecraftMixin.java b/src/mixins/java/org/spongepowered/common/mixin/core/client/MinecraftMixin.java index 1dfa562ce15..e2cc02207db 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/client/MinecraftMixin.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/client/MinecraftMixin.java @@ -105,7 +105,7 @@ public MinecraftMixin(String param0) { Launch.instance().lifecycle().callStoppingEngineEvent(this); } - @Redirect(method = "disconnect(Lnet/minecraft/client/gui/screens/Screen;Z)V", at = @At(value = "FIELD", target = "Lnet/minecraft/client/Minecraft;singleplayerServer:Lnet/minecraft/client/server/IntegratedServer;", opcode = + @Redirect(method = "disconnect(Lnet/minecraft/client/gui/screens/Screen;ZZ)V", at = @At(value = "FIELD", target = "Lnet/minecraft/client/Minecraft;singleplayerServer:Lnet/minecraft/client/server/IntegratedServer;", opcode = Opcodes.PUTFIELD)) private void impl$storeTemporaryServerRef(Minecraft minecraft, IntegratedServer server) { ((MinecraftBridge) minecraft).bridge$setTemporaryIntegratedServer(this.singleplayerServer); From cf63e894402c7771b7963912e917324a8627b4f7 Mon Sep 17 00:00:00 2001 From: Gabriel Harris-Rouquette Date: Wed, 10 Dec 2025 13:35:01 -0800 Subject: [PATCH 12/13] feat(forge): update to 1.21.11 See https://minecraft.wiki/w/Java_Edition_1.21.11 See https://maven.minecraftforge.net/net/minecraftforge/forge/1.21.11-61.0.1/forge-1.21.11-61.0.1-changelog.txt --- .../bootstrap/dev/DevClasspath.java | 14 +- forge/gradle.properties | 2 +- .../registries/ForgeRegistryMixin_Forge.java | 2 +- .../ReloadableServerResourcesMixin_Forge.java | 11 +- .../vehicle/{ => boat}/BoatMixin_Forge.java | 4 +- ...AbstractFurnaceBlockEntityMixin_Forge.java | 8 +- .../resources/mixins.spongeforge.core.json | 2 +- gradle/verification-metadata.xml | 178 ++++++++++++++++++ .../entity/player/PlayerMixin_Attack.java | 53 ++++-- 9 files changed, 249 insertions(+), 25 deletions(-) rename forge/src/mixins/java/org/spongepowered/forge/mixin/core/world/entity/vehicle/{ => boat}/BoatMixin_Forge.java (95%) diff --git a/bootstrap/src/main/java/org/spongepowered/bootstrap/dev/DevClasspath.java b/bootstrap/src/main/java/org/spongepowered/bootstrap/dev/DevClasspath.java index fb7b3ddf7db..708594f063a 100644 --- a/bootstrap/src/main/java/org/spongepowered/bootstrap/dev/DevClasspath.java +++ b/bootstrap/src/main/java/org/spongepowered/bootstrap/dev/DevClasspath.java @@ -58,6 +58,7 @@ public static List resolve() { final AtomicBoolean hasAPISourceSet = new AtomicBoolean(false); + boolean skipMixinExtras = false; for (final String str : cp) { final Path path = Paths.get(str); if (!Files.exists(path)) { @@ -96,6 +97,9 @@ public static List resolve() { } break; case "", "vanilla", "forge", "neoforge": + if ("forge".equals(projectName)) { + skipMixinExtras = true; + } final WeightedPath weightedPath = new WeightedPath(projectName.isEmpty() ? 1 : 2, path); switch (sourceSet.name()) { case "applaunchConfig": @@ -132,6 +136,14 @@ public static List resolve() { } continue; } + // We need to skip mixinextras-common in Forge's UserDev mode as this will cause duplicate module + // errors with JPMS. + if (fileName.startsWith("mixinextras-common") && skipMixinExtras) { + if (Bootstrap.DEBUG) { + System.out.println("Ignored: " + path); + } + continue; + } if (bootNames.contains(fileName) || fileName.startsWith("org.jacoco.core-") || fileName.startsWith("mockito-") || fileName.startsWith("objenesis-")) { if (Bootstrap.DEBUG) { @@ -158,7 +170,7 @@ public static List resolve() { final List classpath = new ArrayList<>(); for (final Path lib : bootLibs) { - classpath.add(new Path[] { lib }); + classpath.add(new Path[]{lib}); } for (final List sourceSets : bootUnions.values()) { diff --git a/forge/gradle.properties b/forge/gradle.properties index 6759ac977d5..1ca22cd4a56 100644 --- a/forge/gradle.properties +++ b/forge/gradle.properties @@ -2,5 +2,5 @@ name=SpongeForge implementation=Forge description=The SpongeAPI implementation for MinecraftForge -forgeVersion=60.0.1 +forgeVersion=61.0.1 mixinConfigs=mixins.spongeforge.accessors.json,mixins.spongeforge.api.json,mixins.spongeforge.inventory.json,mixins.spongeforge.inventory.shared.json,mixins.spongeforge.core.json,mixins.spongeforge.core.shared.json,mixins.spongeforge.tracker.json diff --git a/forge/src/mixins/java/org/spongepowered/forge/mixin/core/minecraftforge/registries/ForgeRegistryMixin_Forge.java b/forge/src/mixins/java/org/spongepowered/forge/mixin/core/minecraftforge/registries/ForgeRegistryMixin_Forge.java index d00213424b6..7d447c466e1 100644 --- a/forge/src/mixins/java/org/spongepowered/forge/mixin/core/minecraftforge/registries/ForgeRegistryMixin_Forge.java +++ b/forge/src/mixins/java/org/spongepowered/forge/mixin/core/minecraftforge/registries/ForgeRegistryMixin_Forge.java @@ -58,7 +58,7 @@ public abstract class ForgeRegistryMixin_Forge { @Inject(method = "add(ILnet/minecraft/resources/Identifier;Ljava/lang/Object;Ljava/lang/String;)I", at = @At("TAIL")) public void forge$writeToParent(final int id, final Identifier key, final V value, final String owner, final CallbackInfoReturnable cir) { final ResourceKey root = (ResourceKey) (Object) this.key.registry(); - final ResourceKey location = (ResourceKey) (Object) this.key.location(); + final var location = (ResourceKey) (Object) this.key.identifier(); if (!this.forge$warnedIfNoParent && this.forge$parents.isEmpty()) { // We only care about minecraft namespaced registries, as that is what we've got parents for. diff --git a/forge/src/mixins/java/org/spongepowered/forge/mixin/core/server/ReloadableServerResourcesMixin_Forge.java b/forge/src/mixins/java/org/spongepowered/forge/mixin/core/server/ReloadableServerResourcesMixin_Forge.java index 2d4516bc38d..e98b5000234 100644 --- a/forge/src/mixins/java/org/spongepowered/forge/mixin/core/server/ReloadableServerResourcesMixin_Forge.java +++ b/forge/src/mixins/java/org/spongepowered/forge/mixin/core/server/ReloadableServerResourcesMixin_Forge.java @@ -33,6 +33,7 @@ import net.minecraft.server.RegistryLayer; import net.minecraft.server.ReloadableServerResources; import net.minecraft.server.packs.resources.ResourceManager; +import net.minecraft.server.permissions.PermissionSet; import net.minecraft.world.flag.FeatureFlagSet; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -44,9 +45,13 @@ @Mixin(ReloadableServerResources.class) public abstract class ReloadableServerResourcesMixin_Forge { - @WrapOperation(method = "lambda$loadResources$1", at = @At(value = "NEW", target = "(Lnet/minecraft/core/LayeredRegistryAccess;Lnet/minecraft/core/HolderLookup$Provider;Lnet/minecraft/world/flag/FeatureFlagSet;Lnet/minecraft/commands/Commands$CommandSelection;Ljava/util/List;I)Lnet/minecraft/server/ReloadableServerResources;")) - private static ReloadableServerResources impl$onCreateResources(final LayeredRegistryAccess $$0, final HolderLookup.Provider $$1, final FeatureFlagSet $$2, - final Commands.CommandSelection $$3, final List $$4, final int $$5, final Operation original, final @Local(argsOnly = true) ResourceManager resourceManager) { + @WrapOperation(method = "lambda$loadResources$1", at = @At(value = "NEW", + target = "(Lnet/minecraft/core/LayeredRegistryAccess;Lnet/minecraft/core/HolderLookup$Provider;Lnet/minecraft/world/flag/FeatureFlagSet;Lnet/minecraft/commands/Commands$CommandSelection;Ljava/util/List;Lnet/minecraft/server/permissions/PermissionSet;)Lnet/minecraft/server/ReloadableServerResources;" + )) + private static ReloadableServerResources impl$onCreateResources( + final LayeredRegistryAccess $$0, final HolderLookup.Provider $$1, final FeatureFlagSet $$2, + final Commands.CommandSelection $$3, final List $$4, final PermissionSet $$5, + final Operation original, final @Local(argsOnly = true) ResourceManager resourceManager) { final ReloadableServerResources instance = original.call($$0, $$1, $$2, $$3, $$4, $$5); if (instance.getCommands().getDispatcher() instanceof final DelegatingCommandDispatcher delegatingCommandDispatcher) { delegatingCommandDispatcher.permissionService(((ResourceManagerBridge) resourceManager).bridge$services().permissionService()); diff --git a/forge/src/mixins/java/org/spongepowered/forge/mixin/core/world/entity/vehicle/BoatMixin_Forge.java b/forge/src/mixins/java/org/spongepowered/forge/mixin/core/world/entity/vehicle/boat/BoatMixin_Forge.java similarity index 95% rename from forge/src/mixins/java/org/spongepowered/forge/mixin/core/world/entity/vehicle/BoatMixin_Forge.java rename to forge/src/mixins/java/org/spongepowered/forge/mixin/core/world/entity/vehicle/boat/BoatMixin_Forge.java index e52b4a69c3c..8af584df124 100644 --- a/forge/src/mixins/java/org/spongepowered/forge/mixin/core/world/entity/vehicle/BoatMixin_Forge.java +++ b/forge/src/mixins/java/org/spongepowered/forge/mixin/core/world/entity/vehicle/boat/BoatMixin_Forge.java @@ -22,11 +22,11 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.forge.mixin.core.world.entity.vehicle; +package org.spongepowered.forge.mixin.core.world.entity.vehicle.boat; import net.minecraft.core.BlockPos; import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.vehicle.AbstractBoat; +import net.minecraft.world.entity.vehicle.boat.AbstractBoat; import net.minecraft.world.level.LevelReader; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; diff --git a/forge/src/mixins/java/org/spongepowered/forge/mixin/core/world/level/block/entity/AbstractFurnaceBlockEntityMixin_Forge.java b/forge/src/mixins/java/org/spongepowered/forge/mixin/core/world/level/block/entity/AbstractFurnaceBlockEntityMixin_Forge.java index aa0bd75b07c..38d46dea6d9 100644 --- a/forge/src/mixins/java/org/spongepowered/forge/mixin/core/world/level/block/entity/AbstractFurnaceBlockEntityMixin_Forge.java +++ b/forge/src/mixins/java/org/spongepowered/forge/mixin/core/world/level/block/entity/AbstractFurnaceBlockEntityMixin_Forge.java @@ -99,13 +99,13 @@ public abstract class AbstractFurnaceBlockEntityMixin_Forge implements AbstractF final Cause cause = PhaseTracker.getInstance().currentCause(); if (entity.cookingTimer == 0) { // Start final CookingEvent.Start event = SpongeEventFactory.createCookingEventStart(cause, (FurnaceBlockEntity) entityIn, Optional.of(fuel), - Optional.of((CookingRecipe) recipe.value()), Optional.of((ResourceKey) (Object) recipe.id().location())); + Optional.of((CookingRecipe) recipe.value()), Optional.of((ResourceKey) (Object) recipe.id().identifier())); SpongeCommon.post(event); return !event.isCancelled(); } else { // Tick up final ItemStackSnapshot cooking = ItemStackUtil.snapshotOf(entity.items.getFirst()); final CookingEvent.Tick event = SpongeEventFactory.createCookingEventTick(cause, (FurnaceBlockEntity) entityIn, cooking, Optional.of(fuel), - Optional.of((CookingRecipe) recipe.value()), Optional.of((ResourceKey) (Object) recipe.id().location())); + Optional.of((CookingRecipe) recipe.value()), Optional.of((ResourceKey) (Object) recipe.id().identifier())); SpongeCommon.post(event); return !event.isCancelled(); } @@ -122,7 +122,7 @@ public abstract class AbstractFurnaceBlockEntityMixin_Forge implements AbstractF final var recipe = entity.bridge$getCurrentRecipe(); final ItemStackSnapshot cooking = ItemStackUtil.snapshotOf(entity.items.get(0)); final CookingEvent.Tick event = SpongeEventFactory.createCookingEventTick(cause, (FurnaceBlockEntity) entityIn, cooking, Optional.of(fuel), - recipe.map(r -> (CookingRecipe) r.value()), recipe.map(r -> (ResourceKey) (Object) r.id().location())); + recipe.map(r -> (CookingRecipe) r.value()), recipe.map(r -> (ResourceKey) (Object) r.id().identifier())); SpongeCommon.post(event); if (event.isCancelled()) { return entity.cookingTimer; // dont tick down @@ -174,7 +174,7 @@ public abstract class AbstractFurnaceBlockEntityMixin_Forge implements AbstractF } final Optional fuel = hasFuel && !slots.get(1).isEmpty() ? Optional.of(ItemStackUtil.snapshotOf(slots.get(1))) : Optional.empty(); final CookingEvent.Finish event = SpongeEventFactory.createCookingEventFinish(PhaseTracker.getInstance().currentCause(), entity, - fuel, Optional.of((CookingRecipe) recipe.value()), Optional.of((ResourceKey) (Object) recipe.id().location()), Collections.unmodifiableList(transactions)); + fuel, Optional.of((CookingRecipe) recipe.value()), Optional.of((ResourceKey) (Object) recipe.id().identifier()), Collections.unmodifiableList(transactions)); SpongeCommon.post(event); for (final SlotTransaction transaction : transactions) { diff --git a/forge/src/mixins/resources/mixins.spongeforge.core.json b/forge/src/mixins/resources/mixins.spongeforge.core.json index 62a1c2a8d60..5a88ce6b7cf 100644 --- a/forge/src/mixins/resources/mixins.spongeforge.core.json +++ b/forge/src/mixins/resources/mixins.spongeforge.core.json @@ -25,7 +25,7 @@ "world.entity.LivingEntityMixin_Forge_Damage", "world.entity.item.ItemEntityMixin_Forge", "world.entity.player.PlayerMixin_Forge_Damage", - "world.entity.vehicle.BoatMixin_Forge", + "world.entity.vehicle.boat.BoatMixin_Forge", "world.level.ServerExplosionMixin_Forge", "world.level.block.FireBlockMixin_Forge", "world.level.block.entity.AbstractFurnaceBlockEntityMixin_Forge" diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 3c0e3f57ae9..f98dda046ec 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -40,6 +40,9 @@ + + + @@ -1309,6 +1312,9 @@ + + + @@ -4390,6 +4396,14 @@ + + + + + + + + @@ -4409,6 +4423,14 @@ + + + + + + + + @@ -4428,6 +4450,14 @@ + + + + + + + + @@ -4826,6 +4856,14 @@ + + + + + + + + @@ -4992,6 +5030,14 @@ + + + + + + + + @@ -5158,6 +5204,14 @@ + + + + + + + + @@ -5410,6 +5464,14 @@ + + + + + + + + @@ -5509,6 +5571,14 @@ + + + + + + + + @@ -5675,6 +5745,14 @@ + + + + + + + + @@ -5849,6 +5927,14 @@ + + + + + + + + @@ -6048,6 +6134,14 @@ + + + + + + + + @@ -6099,6 +6193,14 @@ + + + + + + + + @@ -6280,6 +6382,14 @@ + + + + + + + + @@ -6473,6 +6583,11 @@ + + + + + @@ -6552,6 +6667,20 @@ + + + + + + + + + + + + + + @@ -6560,6 +6689,14 @@ + + + + + + + + @@ -6672,6 +6809,14 @@ + + + + + + + + @@ -6776,6 +6921,14 @@ + + + + + + + + @@ -6904,6 +7057,14 @@ + + + + + + + + @@ -7816,6 +7977,9 @@ + + + @@ -7943,6 +8107,9 @@ + + + @@ -8017,6 +8184,9 @@ + + + @@ -11035,6 +11205,14 @@ + + + + + + + + diff --git a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/player/PlayerMixin_Attack.java b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/player/PlayerMixin_Attack.java index 620c915aae9..7bd5c3dabf6 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/player/PlayerMixin_Attack.java +++ b/src/mixins/java/org/spongepowered/common/mixin/core/world/entity/player/PlayerMixin_Attack.java @@ -206,8 +206,8 @@ public abstract class PlayerMixin_Attack extends LivingEntityMixin_Damage implem } @WrapWithCondition(method = "attack", - slice = @Slice(from = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;causeFoodExhaustion(F)V")), - at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;playServerSideSound(Lnet/minecraft/sounds/SoundEvent;)V")) + slice = @Slice(from = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;causeFoodExhaustion(F)V")), + at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;playServerSideSound(Lnet/minecraft/sounds/SoundEvent;)V")) private boolean attack$preventSound(Player instance, SoundEvent soundEvent) { final SpongeAttackTracker tracker = this.attack$tracker(); return tracker == null || !tracker.postEvent().isCancelled(); @@ -220,9 +220,17 @@ public abstract class PlayerMixin_Attack extends LivingEntityMixin_Damage implem this.attack$trackers.removeLast(); } - @WrapOperation(method = "doSweepAttack", - slice = @Slice(from = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/Level;getEntitiesOfClass(Ljava/lang/Class;Lnet/minecraft/world/phys/AABB;)Ljava/util/List;")), - at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;distanceToSqr(Lnet/minecraft/world/entity/Entity;)D")) + @WrapOperation(method = { + "doSweepAttack(Lnet/minecraft/world/entity/Entity;FLnet/minecraft/world/damagesource/DamageSource;F)V", + // NeoForge changes where this gets invoked in a new method, so we add it as a target + "doSweepAttack(Lnet/minecraft/world/entity/Entity;FLnet/minecraft/world/damagesource/DamageSource;FLnet/minecraft/world/phys/AABB;)V" + }, + slice = @Slice(from = @At(value = "INVOKE", + target = "Lnet/minecraft/world/level/Level;getEntitiesOfClass(Ljava/lang/Class;Lnet/minecraft/world/phys/AABB;)Ljava/util/List;" + )), + at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;distanceToSqr(Lnet/minecraft/world/entity/Entity;)D"), + require = 1 + ) private double sweepAttack$fireEvents(final Player self, final Entity sweepTarget, final Operation operation) { final double distanceSquared = operation.call(self, sweepTarget); if (!(distanceSquared < this.attack$interactionRangeSquared())) { @@ -271,16 +279,27 @@ public abstract class PlayerMixin_Attack extends LivingEntityMixin_Damage implem return distanceSquared; } - @WrapOperation(method = "doSweepAttack", - slice = @Slice(from = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/Level;getEntitiesOfClass(Ljava/lang/Class;Lnet/minecraft/world/phys/AABB;)Ljava/util/List;")), - at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;getEnchantedDamage(Lnet/minecraft/world/entity/Entity;FLnet/minecraft/world/damagesource/DamageSource;)F")) + @WrapOperation(method = { + "doSweepAttack(Lnet/minecraft/world/entity/Entity;FLnet/minecraft/world/damagesource/DamageSource;F)V", + // NeoForge changes where this gets invoked in a new method, so we add it as a target + "doSweepAttack(Lnet/minecraft/world/entity/Entity;FLnet/minecraft/world/damagesource/DamageSource;FLnet/minecraft/world/phys/AABB;)V" + }, + require = 1, + slice = @Slice(from = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/Level;getEntitiesOfClass(Ljava/lang/Class;Lnet/minecraft/world/phys/AABB;)Ljava/util/List;")), + at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;getEnchantedDamage(Lnet/minecraft/world/entity/Entity;FLnet/minecraft/world/damagesource/DamageSource;)F")) private float sweepAttack$cancelEnchantedDamage(final Player self, final Entity sweepTarget, final float damage, final DamageSource source, final Operation operation) { return damage; // We already did it above } - @WrapOperation(method = "doSweepAttack", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/LivingEntity;knockback(DDD)V"), slice = @Slice( + @WrapOperation(method = { + "doSweepAttack(Lnet/minecraft/world/entity/Entity;FLnet/minecraft/world/damagesource/DamageSource;F)V", + // NeoForge changes where this gets invoked in a new method, so we add it as a target + "doSweepAttack(Lnet/minecraft/world/entity/Entity;FLnet/minecraft/world/damagesource/DamageSource;FLnet/minecraft/world/phys/AABB;)V" + }, at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/LivingEntity;knockback(DDD)V"), slice = @Slice( from = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/Level;getEntitiesOfClass(Ljava/lang/Class;Lnet/minecraft/world/phys/AABB;)Ljava/util/List;"), - to = @At(value = "INVOKE", target = "Lnet/minecraft/world/item/enchantment/EnchantmentHelper;doPostAttackEffects(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/entity/Entity;Lnet/minecraft/world/damagesource/DamageSource;)V"))) + to = @At(value = "INVOKE", target = "Lnet/minecraft/world/item/enchantment/EnchantmentHelper;doPostAttackEffects(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/entity/Entity;Lnet/minecraft/world/damagesource/DamageSource;)V")), + require = 1 + ) private void sweepAttack$knockbackModifier( final LivingEntity sweepTarget, double modifier, final double dirX, final double dirZ, final Operation operation) { final SpongeAttackTracker sweepTracker = this.attack$tracker(); @@ -290,8 +309,18 @@ public abstract class PlayerMixin_Attack extends LivingEntityMixin_Damage implem operation.call(sweepTarget, modifier, dirX, dirZ); } - @WrapOperation(method = "doSweepAttack", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/LivingEntity;hurtServer(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/damagesource/DamageSource;F)Z"), - slice = @Slice(from = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/Level;getEntitiesOfClass(Ljava/lang/Class;Lnet/minecraft/world/phys/AABB;)Ljava/util/List;"))) + @WrapOperation(method = { + "doSweepAttack(Lnet/minecraft/world/entity/Entity;FLnet/minecraft/world/damagesource/DamageSource;F)V", + // NeoForge changes where this gets invoked in a new method, so we add it as a target + "doSweepAttack(Lnet/minecraft/world/entity/Entity;FLnet/minecraft/world/damagesource/DamageSource;FLnet/minecraft/world/phys/AABB;)V" + }, at = @At(value = "INVOKE", + target = "Lnet/minecraft/world/entity/LivingEntity;hurtServer(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/damagesource/DamageSource;F)Z" + ), + slice = @Slice(from = @At(value = "INVOKE", + target = "Lnet/minecraft/world/level/Level;getEntitiesOfClass(Ljava/lang/Class;Lnet/minecraft/world/phys/AABB;)Ljava/util/List;" + )), + require = 1 + ) private boolean sweepAttack$finalDamage( final LivingEntity sweepTarget, final ServerLevel level, final DamageSource source, float damage, final Operation operation) { From bcf1e7638d5d9be4c1daad4cd9dbdf5ac44ec160 Mon Sep 17 00:00:00 2001 From: Gabriel Harris-Rouquette Date: Wed, 10 Dec 2025 13:36:09 -0800 Subject: [PATCH 13/13] feat(neoforge): update to 1.21.11 See https://minecraft.wiki/w/Java_Edition_1.21.11 See https://neoforged.net/changelog/ --- neoforge/gradle.properties | 2 +- .../applaunch/plugin/NeoForgePluginPlatform.java | 2 +- .../server/ReloadableServerResourcesMixin_Neo.java | 10 +++++++--- .../entity/animal/{ => golem}/SnowGolemMixin_Neo.java | 4 ++-- .../vehicle/{ => boat}/AbstractBoatMixin_Neo.java | 4 ++-- .../entity/AbstractFurnaceBlockEntityMixin_Neo.java | 8 ++++---- .../src/mixins/resources/mixins.spongeneo.core.json | 4 ++-- 7 files changed, 19 insertions(+), 15 deletions(-) rename neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/world/entity/animal/{ => golem}/SnowGolemMixin_Neo.java (97%) rename neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/world/entity/vehicle/{ => boat}/AbstractBoatMixin_Neo.java (97%) diff --git a/neoforge/gradle.properties b/neoforge/gradle.properties index 66656a03bc3..48d323c8be4 100644 --- a/neoforge/gradle.properties +++ b/neoforge/gradle.properties @@ -2,5 +2,5 @@ name=SpongeNeo implementation=NeoForge description=The SpongeAPI implementation for NeoForge -neoForgeVersion=21.10.16-beta +neoForgeVersion=21.11.0-beta mixinConfigs=mixins.spongeneo.accessors.json,mixins.spongeneo.api.json,mixins.spongeneo.inventory.json,mixins.spongeneo.core.json,mixins.spongeneo.tracker.json diff --git a/neoforge/src/applaunch/java/org/spongepowered/neoforge/applaunch/plugin/NeoForgePluginPlatform.java b/neoforge/src/applaunch/java/org/spongepowered/neoforge/applaunch/plugin/NeoForgePluginPlatform.java index 4daeaaabd44..3c1204b3ea8 100644 --- a/neoforge/src/applaunch/java/org/spongepowered/neoforge/applaunch/plugin/NeoForgePluginPlatform.java +++ b/neoforge/src/applaunch/java/org/spongepowered/neoforge/applaunch/plugin/NeoForgePluginPlatform.java @@ -26,7 +26,7 @@ import net.neoforged.fml.loading.FMLLoader; import net.neoforged.fml.loading.FMLPaths; -import net.neoforged.neoforge.internal.versions.neoforge.NeoForgeVersion; +import net.neoforged.neoforge.common.NeoForgeVersion; import org.spongepowered.common.applaunch.AppLaunch; import org.spongepowered.common.applaunch.config.LaunchConfig; import org.spongepowered.common.applaunch.config.TokenReplacement; diff --git a/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/server/ReloadableServerResourcesMixin_Neo.java b/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/server/ReloadableServerResourcesMixin_Neo.java index 0b0698bfb04..45edb4ffa57 100644 --- a/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/server/ReloadableServerResourcesMixin_Neo.java +++ b/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/server/ReloadableServerResourcesMixin_Neo.java @@ -33,6 +33,7 @@ import net.minecraft.server.RegistryLayer; import net.minecraft.server.ReloadableServerResources; import net.minecraft.server.packs.resources.ResourceManager; +import net.minecraft.server.permissions.PermissionSet; import net.minecraft.world.flag.FeatureFlagSet; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -44,9 +45,12 @@ @Mixin(ReloadableServerResources.class) public abstract class ReloadableServerResourcesMixin_Neo { - @WrapOperation(method = "lambda$loadResources$3", at = @At(value = "NEW", target = "(Lnet/minecraft/core/LayeredRegistryAccess;Lnet/minecraft/core/HolderLookup$Provider;Lnet/minecraft/world/flag/FeatureFlagSet;Lnet/minecraft/commands/Commands$CommandSelection;Ljava/util/List;I)Lnet/minecraft/server/ReloadableServerResources;")) - private static ReloadableServerResources impl$onCreateResources(final LayeredRegistryAccess $$0, final HolderLookup.Provider $$1, final FeatureFlagSet $$2, - final Commands.CommandSelection $$3, final List $$4, final int $$5, final Operation original, final @Local(argsOnly = true) ResourceManager resourceManager) { + @WrapOperation(method = "lambda$loadResources$3", at = @At(value = "NEW", + target = "(Lnet/minecraft/core/LayeredRegistryAccess;Lnet/minecraft/core/HolderLookup$Provider;Lnet/minecraft/world/flag/FeatureFlagSet;Lnet/minecraft/commands/Commands$CommandSelection;Ljava/util/List;Lnet/minecraft/server/permissions/PermissionSet;)Lnet/minecraft/server/ReloadableServerResources;")) + private static ReloadableServerResources impl$onCreateResources( + final LayeredRegistryAccess $$0, final HolderLookup.Provider $$1, final FeatureFlagSet $$2, + final Commands.CommandSelection $$3, final List $$4, final PermissionSet $$5, + final Operation original, final @Local(argsOnly = true) ResourceManager resourceManager) { final ReloadableServerResources instance = original.call($$0, $$1, $$2, $$3, $$4, $$5); if (instance.getCommands().getDispatcher() instanceof final DelegatingCommandDispatcher delegatingCommandDispatcher) { delegatingCommandDispatcher.permissionService(((ResourceManagerBridge) resourceManager).bridge$services().permissionService()); diff --git a/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/world/entity/animal/SnowGolemMixin_Neo.java b/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/world/entity/animal/golem/SnowGolemMixin_Neo.java similarity index 97% rename from neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/world/entity/animal/SnowGolemMixin_Neo.java rename to neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/world/entity/animal/golem/SnowGolemMixin_Neo.java index 564bae8e0e1..57c40a3356a 100644 --- a/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/world/entity/animal/SnowGolemMixin_Neo.java +++ b/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/world/entity/animal/golem/SnowGolemMixin_Neo.java @@ -22,11 +22,11 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.neoforge.mixin.core.world.entity.animal; +package org.spongepowered.neoforge.mixin.core.world.entity.animal.golem; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.animal.SnowGolem; +import net.minecraft.world.entity.animal.golem.SnowGolem; import net.neoforged.neoforge.event.EventHooks; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; diff --git a/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/world/entity/vehicle/AbstractBoatMixin_Neo.java b/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/world/entity/vehicle/boat/AbstractBoatMixin_Neo.java similarity index 97% rename from neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/world/entity/vehicle/AbstractBoatMixin_Neo.java rename to neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/world/entity/vehicle/boat/AbstractBoatMixin_Neo.java index 0be84dc6caf..e42d84f0743 100644 --- a/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/world/entity/vehicle/AbstractBoatMixin_Neo.java +++ b/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/world/entity/vehicle/boat/AbstractBoatMixin_Neo.java @@ -22,11 +22,11 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.spongepowered.neoforge.mixin.core.world.entity.vehicle; +package org.spongepowered.neoforge.mixin.core.world.entity.vehicle.boat; import net.minecraft.core.BlockPos; import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.vehicle.AbstractBoat; +import net.minecraft.world.entity.vehicle.boat.AbstractBoat; import net.minecraft.world.level.LevelReader; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; diff --git a/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/world/level/block/entity/AbstractFurnaceBlockEntityMixin_Neo.java b/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/world/level/block/entity/AbstractFurnaceBlockEntityMixin_Neo.java index fbfa6af4670..d67fc4ca999 100644 --- a/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/world/level/block/entity/AbstractFurnaceBlockEntityMixin_Neo.java +++ b/neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/world/level/block/entity/AbstractFurnaceBlockEntityMixin_Neo.java @@ -96,13 +96,13 @@ public abstract class AbstractFurnaceBlockEntityMixin_Neo extends BaseContainerB final Cause cause = PhaseTracker.getInstance().currentCause(); if (entity.cookingTimer == 0) { // Start final CookingEvent.Start event = SpongeEventFactory.createCookingEventStart(cause, (FurnaceBlockEntity) entityIn, Optional.of(fuel), - Optional.of((CookingRecipe) recipe.value()), Optional.of((ResourceKey) (Object) recipe.id().location())); + Optional.of((CookingRecipe) recipe.value()), Optional.of((ResourceKey) (Object) recipe.id().identifier())); SpongeCommon.post(event); return !event.isCancelled(); } else { // Tick up final ItemStackSnapshot cooking = ItemStackUtil.snapshotOf(entity.items.getFirst()); final CookingEvent.Tick event = SpongeEventFactory.createCookingEventTick(cause, (FurnaceBlockEntity) entityIn, cooking, Optional.of(fuel), - Optional.of((CookingRecipe) recipe.value()), Optional.of((ResourceKey) (Object) recipe.id().location())); + Optional.of((CookingRecipe) recipe.value()), Optional.of((ResourceKey) (Object) recipe.id().identifier())); SpongeCommon.post(event); return !event.isCancelled(); } @@ -122,7 +122,7 @@ public abstract class AbstractFurnaceBlockEntityMixin_Neo extends BaseContainerB final var recipe = entity.bridge$getCurrentRecipe(); final ItemStackSnapshot cooking = ItemStackUtil.snapshotOf(entity.items.get(0)); final CookingEvent.Tick event = SpongeEventFactory.createCookingEventTick(cause, (FurnaceBlockEntity) entityIn, cooking, Optional.of(fuel), - recipe.map(r -> (CookingRecipe) r.value()), recipe.map(r -> (ResourceKey) (Object) r.id().location())); + recipe.map(r -> (CookingRecipe) r.value()), recipe.map(r -> (ResourceKey) (Object) r.id().identifier())); SpongeCommon.post(event); if (event.isCancelled()) { return entity.cookingTimer; // dont tick down @@ -182,7 +182,7 @@ public abstract class AbstractFurnaceBlockEntityMixin_Neo extends BaseContainerB } final Optional fuel = hasFuel && !slots.get(1).isEmpty() ? Optional.of(ItemStackUtil.snapshotOf(slots.get(1))) : Optional.empty(); final CookingEvent.Finish event = SpongeEventFactory.createCookingEventFinish(cause, entity, - fuel, Optional.of((CookingRecipe) recipe.value()), Optional.of((ResourceKey) (Object) recipe.id().location()), Collections.unmodifiableList(transactions)); + fuel, Optional.of((CookingRecipe) recipe.value()), Optional.of((ResourceKey) (Object) recipe.id().identifier()), Collections.unmodifiableList(transactions)); SpongeCommon.post(event); for (final SlotTransaction transaction : transactions) { diff --git a/neoforge/src/mixins/resources/mixins.spongeneo.core.json b/neoforge/src/mixins/resources/mixins.spongeneo.core.json index d6ae4849c84..1f6a819a953 100644 --- a/neoforge/src/mixins/resources/mixins.spongeneo.core.json +++ b/neoforge/src/mixins/resources/mixins.spongeneo.core.json @@ -31,11 +31,11 @@ "world.entity.EntityMixin_Neo", "world.entity.LivingEntityMixin_Neo", "world.entity.LivingEntityMixin_Neo_Damage", - "world.entity.animal.SnowGolemMixin_Neo", + "world.entity.animal.golem.SnowGolemMixin_Neo", "world.entity.item.ItemEntityMixin_Neo", "world.entity.player.PlayerMixin_Neo_Damage", "world.entity.projectile.FishingHookMixin_Neo", - "world.entity.vehicle.AbstractBoatMixin_Neo", + "world.entity.vehicle.boat.AbstractBoatMixin_Neo", "world.level.ServerExplosionMixin_NeoForge", "world.level.block.FireBlockMixin_Neo", "world.level.block.entity.AbstractFurnaceBlockEntityMixin_Neo"