From 1f49f549ff2917a0fed25a5e6b118c5a4f353bf6 Mon Sep 17 00:00:00 2001 From: Gabriel Harris-Rouquette Date: Sun, 2 Jun 2024 22:39:32 -0700 Subject: [PATCH 1/4] feat: Add PushReactions --- SpongeAPI | 2 +- .../block/state/BlockStateDataProvider.java | 5 + .../data/provider/entity/EntityData.java | 3 + .../loader/VanillaRegistryLoader.java | 2 + .../level/material/PushReactionMixin_API.java | 33 + src/mixins/resources/mixins.sponge.api.json | 979 +++++++++--------- 6 files changed, 534 insertions(+), 490 deletions(-) create mode 100644 src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/material/PushReactionMixin_API.java diff --git a/SpongeAPI b/SpongeAPI index 22c65048cba..791f2622159 160000 --- a/SpongeAPI +++ b/SpongeAPI @@ -1 +1 @@ -Subproject commit 22c65048cba23a68f12e83a6cf98225be5ab7088 +Subproject commit 791f2622159aeaccb068dc83fa2607fbc3e99073 diff --git a/src/main/java/org/spongepowered/common/data/provider/block/state/BlockStateDataProvider.java b/src/main/java/org/spongepowered/common/data/provider/block/state/BlockStateDataProvider.java index 900fb7ee203..00f854eae88 100644 --- a/src/main/java/org/spongepowered/common/data/provider/block/state/BlockStateDataProvider.java +++ b/src/main/java/org/spongepowered/common/data/provider/block/state/BlockStateDataProvider.java @@ -29,6 +29,8 @@ import net.minecraft.world.level.block.state.properties.Property; import org.spongepowered.api.data.BlockStateKeys; import org.spongepowered.api.data.Key; +import org.spongepowered.api.data.Keys; +import org.spongepowered.api.data.type.PushReaction; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.state.StateProperty; import org.spongepowered.common.data.provider.DataProviderRegistrator; @@ -149,6 +151,9 @@ public static void register(final DataProviderRegistrator registrator) { BlockStateDataProvider.registerProperty(registrator, BlockStateKeys.WEST, BlockStateProperties.WEST); BlockStateDataProvider.registerProperty(registrator, BlockStateKeys.WEST_REDSTONE, BlockStateProperties.WEST_REDSTONE); BlockStateDataProvider.registerProperty(registrator, BlockStateKeys.WEST_WALL, BlockStateProperties.WEST_WALL); + registrator.asImmutable(BlockState.class) + .create(Keys.PUSH_REACTION) + .get(h -> (PushReaction) (Object) h.getPistonPushReaction()); } // @formatter:off 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 33340b40fb2..cc502984138 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 @@ -31,6 +31,7 @@ import org.spongepowered.api.ResourceKey; import org.spongepowered.api.data.DataTransactionResult; import org.spongepowered.api.data.Keys; +import org.spongepowered.api.data.type.PushReaction; import org.spongepowered.api.data.value.Value; import org.spongepowered.api.util.Ticks; import org.spongepowered.common.accessor.world.entity.EntityAccessor; @@ -189,6 +190,8 @@ public static void register(final DataProviderRegistrator registrator) { h.ejectPassengers(); v.forEach(v1 -> ((Entity) v1).startRiding(h, true)); }) + .create(Keys.PUSH_REACTION) + .get(h -> (PushReaction) (Object) h.getPistonPushReaction()) .create(Keys.REMAINING_AIR) .get(h -> Math.max(0, h.getAirSupply())) .setAnd((h, v) -> { 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 9c0aca88d5f..4ae64d0400d 100644 --- a/src/main/java/org/spongepowered/common/registry/loader/VanillaRegistryLoader.java +++ b/src/main/java/org/spongepowered/common/registry/loader/VanillaRegistryLoader.java @@ -86,6 +86,7 @@ import net.minecraft.world.level.block.state.properties.WallSide; import net.minecraft.world.level.levelgen.GenerationStep; import net.minecraft.world.level.levelgen.Heightmap; +import net.minecraft.world.level.material.PushReaction; import net.minecraft.world.scores.DisplaySlot; import net.minecraft.world.scores.Team; import net.minecraft.world.scores.criteria.ObjectiveCriteria; @@ -237,6 +238,7 @@ private void loadEnumRegistries() { this.automaticSerializedName(RegistryTypes.TEXT_ALIGNMENT, Display.TextDisplay.Align.values()); this.automaticName(RegistryTypes.LIGHT_TYPE, LightLayer.values()); this.naming(RegistryTypes.DISPLAY_SLOT, DisplaySlot.values(), d -> d.getSerializedName().replace(".", "_")); + this.automaticName(RegistryTypes.PUSH_REACTION, PushReaction.values()); } private static RegistryLoader criterion() { diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/material/PushReactionMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/material/PushReactionMixin_API.java new file mode 100644 index 00000000000..3ac720c6c0f --- /dev/null +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/material/PushReactionMixin_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.level.material; + +import org.spongepowered.api.data.type.PushReaction; +import org.spongepowered.asm.mixin.Mixin; + +@Mixin(net.minecraft.world.level.material.PushReaction.class) +public class PushReactionMixin_API implements PushReaction { + +} diff --git a/src/mixins/resources/mixins.sponge.api.json b/src/mixins/resources/mixins.sponge.api.json index 3930e2a7fcd..86773c75159 100644 --- a/src/mixins/resources/mixins.sponge.api.json +++ b/src/mixins/resources/mixins.sponge.api.json @@ -1,491 +1,492 @@ { - "required": true, - "parent": "mixins.sponge.parent.json", - "package": "org.spongepowered.common.mixin.api", - "mixinPriority": 1100, - "mixins": [ - "common.entity.living.HumanEntityMixin_API", - "data.DataHolderMixin_API", - "data.persistence.DataContainerMixin_API", - "entity.ai.goal.AbstractGoalMixin_API", - "item.merchant.MerchantMixin_API", - "minecraft.advancements.AdvancementMixin_API", - "minecraft.advancements.AdvancementNodeMixin_API", - "minecraft.advancements.AdvancementProgressMixin_API", - "minecraft.advancements.AdvancementTypeMixin_API", - "minecraft.advancements.CriterionMixin_API", - "minecraft.advancements.CriterionProgressMixin_API", - "minecraft.advancements.CriterionTriggerInstanceMixin_API", - "minecraft.advancements.CriterionTriggerMixin_API", - "minecraft.advancements.DisplayInfoMixin_API", - "minecraft.block.AbstractBlockMixin_API", - "minecraft.block.BlockMixin_API", - "minecraft.block.BlockSoundGroupMixin_API", - "minecraft.commands.CommandSourceStackMixin_API", - "minecraft.commands.arguments.selector.EntitySelectorMixin_API", - "minecraft.commands.arguments.selector.EntitySelectorParserMixin_API", - "minecraft.commands.synchronization.SuggestionProviders_WrapperMixin_API", - "minecraft.core.MappedRegistryMixin_API", - "minecraft.core.particles.ParticleTypeMixin_API", - "minecraft.entity.boss.WitherEntityMixin_API", - "minecraft.item.BlockItemMixin_API", - "minecraft.map.MapDecorationMixin_API", - "minecraft.map.MapDecorationTypeMixin_API", - "minecraft.map.MapInfoMixin_API", - "minecraft.network.FriendlyByteBufMixin_API", - "minecraft.network.chat.ChatTypeMixin_API", - "minecraft.network.chat.ChatTypeMixin_API$BoundMixin_API", - "minecraft.network.chat.MessageSignatureMixin_API", - "minecraft.network.chat.NumberFormatMixin_API", - "minecraft.network.protocol.status.ServerStatus_FaviconMixin_API", - "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.server.MinecraftServerMixin_API", - "minecraft.server.ServerScoreboardMixin_API", - "minecraft.server.level.ChunkMapMixin_API", - "minecraft.server.level.ServerLevelMixin_API", - "minecraft.server.level.ServerPlayerMixin_API", - "minecraft.server.level.TicketMixin_API", - "minecraft.server.level.TicketTypeMixin_API", - "minecraft.server.level.WorldGenRegionMixin_API", - "minecraft.server.network.MemoryServerHandshakePacketListenerImplMixin_API", - "minecraft.server.network.ServerCommonPacketListenerImplMixin_API", - "minecraft.server.network.ServerConfigurationPacketListenerImplMixin_API", - "minecraft.server.network.ServerGamePacketListenerImplMixin_API", - "minecraft.server.network.ServerHandshakePacketListenerImplMixin_API", - "minecraft.server.network.ServerLoginPacketListenerImplMixin_API", - "minecraft.server.packs.PackResourcesMixin_API", - "minecraft.server.packs.PackTypeMixin_API", - "minecraft.server.packs.repository.PackCompatibilityMixin_API", - "minecraft.server.packs.repository.PackMixin_API", - "minecraft.server.packs.repository.PackRepositoryMixin_API", - "minecraft.server.packs.resources.ResourceManagerMixin_API", - "minecraft.server.players.BanListEntryMixin_API", - "minecraft.server.players.GameProfileCacheMixin_API", - "minecraft.server.players.IpBanListEntryMixin_API", - "minecraft.server.players.StoredUserEntryMixin_API", - "minecraft.server.players.UserBanListEntryMixin_API", - "minecraft.server.rcon.RconConsoleSourceMixin_API", - "minecraft.server.rcon.thread.RconClientMixin_API", - "minecraft.sounds.MusicMixin_API", - "minecraft.sounds.SoundEventMixin_API", - "minecraft.state.BooleanPropertyMixin_API", - "minecraft.state.EnumPropertyMixin_API", - "minecraft.state.IntegerPropertyMixin_API", - "minecraft.state.PropertyMixin_API", - "minecraft.stats.StatMixin_API", - "minecraft.stats.StatTypeMixin_API", - "minecraft.tags.TagKeyMixin_API", - "minecraft.util.RandomSourceMixin_API", - "minecraft.world.DifficultyMixin_API", - "minecraft.world.InteractionHandMixin_API", - "minecraft.world.IWorldGenerationBaseReaderMixin_API", - "minecraft.world.IWorldGenerationReaderMixin_API", - "minecraft.world.damagesource.DamageScalingMixin_API", - "minecraft.world.damagesource.DamageSourceMixin_API", - "minecraft.world.damagesource.DamageTypeMixin_API", - "minecraft.world.effect.MobEffectInstanceMixin_API", - "minecraft.world.effect.MobEffectMixin_API", - "minecraft.world.entity.AgeableMobMixin_API", - "minecraft.world.entity.AreaEffectCloudMixin_API", - "minecraft.world.entity.Display_BillboardConstraintsMixin_API", - "minecraft.world.entity.Display_BlockDisplayMixin_API", - "minecraft.world.entity.Display_ItemDisplayMixin_API", - "minecraft.world.entity.Display_TextDisplay_AlignMixin_API", - "minecraft.world.entity.Display_TextDisplayMixin_API", - "minecraft.world.entity.DisplayMixin_API", - "minecraft.world.entity.EntityMixin_API", - "minecraft.world.entity.EntityTypeMixin_API", - "minecraft.world.entity.ExperienceOrbMixin_API", - "minecraft.world.entity.FlyingMobMixin_API", - "minecraft.world.entity.HumanoidArmMixin_API", - "minecraft.world.entity.InteractionMixin_API", - "minecraft.world.entity.LightningBoltMixin_API", - "minecraft.world.entity.LivingEntityMixin_API", - "minecraft.world.entity.MarkerMixin_API", - "minecraft.world.entity.MobCategoryMixin_API", - "minecraft.world.entity.MobMixin_API", - "minecraft.world.entity.PathfinderMobMixin_API", - "minecraft.world.entity.TamableAnimalMixin_API", - "minecraft.world.entity.ai.attributes.AttributeInstanceMixin_API", - "minecraft.world.entity.ai.attributes.AttributeMixin_API", - "minecraft.world.entity.ai.attributes.AttributeModifier_OperationMixin_API", - "minecraft.world.entity.ai.attributes.AttributeModifierMixin_API", - "minecraft.world.entity.ai.attributes.RangedAttributeMixin_API", - "minecraft.world.entity.ai.goal.AvoidEntityGoalMixin_API", - "minecraft.world.entity.ai.goal.FloatGoalMixin_API", - "minecraft.world.entity.ai.goal.GoalMixin_API", - "minecraft.world.entity.ai.goal.GoalSelectorMixin_API", - "minecraft.world.entity.ai.goal.LookAtPlayerGoalMixin_API", - "minecraft.world.entity.ai.goal.MeleeAttackGoalMixin_API", - "minecraft.world.entity.ai.goal.RandomLookAroundGoalMixin_API", - "minecraft.world.entity.ai.goal.RandomStrollGoalMixin_API", - "minecraft.world.entity.ai.goal.RangedAttackGoalMixin_API", - "minecraft.world.entity.ai.goal.RunAroundLikeCrazyGoalMixin_API", - "minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoalMixin_API", - "minecraft.world.entity.ai.goal.target.TargetGoalMixin_API", - "minecraft.world.entity.ambient.AmbientCreatureMixin_API", - "minecraft.world.entity.ambient.BatMixin_API", - "minecraft.world.entity.animal.AbstractFishMixin_API", - "minecraft.world.entity.animal.AbstractGolemMixin_API", - "minecraft.world.entity.animal.AbstractSchoolingFishMixin_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.CodMixin_API", - "minecraft.world.entity.animal.CowMixin_API", - "minecraft.world.entity.animal.DolphinMixin_API", - "minecraft.world.entity.animal.Fox_TypeMixin_API", - "minecraft.world.entity.animal.FoxMixin_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.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.SheepMixin_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.WolfMixin_API", - "minecraft.world.entity.animal.allay.AllayMixin_API", - "minecraft.world.entity.animal.camel.CamelMixin_API", - "minecraft.world.entity.animal.frog.FrogMixin_API", - "minecraft.world.entity.animal.frog.TadpoleMixin_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.sniffer.SnifferMixin_API", - "minecraft.world.entity.boss.EnderDragonPartMixin_API", - "minecraft.world.entity.boss.enderdragon.EndCrystalMixin_API", - "minecraft.world.entity.boss.enderdragon.EnderDragonMixin_API", - "minecraft.world.entity.boss.enderdragon.phases.DragonPhaseInstanceMixin_API", - "minecraft.world.entity.boss.enderdragon.phases.EnderDragonPhaseManagerMixin_API", - "minecraft.world.entity.boss.enderdragon.phases.EnderDragonPhaseMixin_API", - "minecraft.world.entity.decoration.ArmorStandMixin_API", - "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.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.AbstractSkeletonMixin_API", - "minecraft.world.entity.monster.BlazeMixin_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.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.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.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.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.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.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.WindChargeMixin_API", - "minecraft.world.entity.projectile.WitherSkullMixin_API", - "minecraft.world.entity.raid.Raid_RaidStatusMixin_API", - "minecraft.world.entity.raid.RaiderMixin_API", - "minecraft.world.entity.raid.RaidMixin_API", - "minecraft.world.entity.vehicle.AbstractMinecartContainerMixin_API", - "minecraft.world.entity.vehicle.AbstractMinecartMixin_API", - "minecraft.world.entity.vehicle.Boat_TypeMixin_API", - "minecraft.world.entity.vehicle.BoatMixin_API", - "minecraft.world.entity.vehicle.ChestBoatMixin_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.item.ArmorMaterialMixin_API", - "minecraft.world.item.DyeColorMixin_API", - "minecraft.world.item.FireworkExplosion_ShapeMixin_API", - "minecraft.world.item.ItemCooldownsMixin_API", - "minecraft.world.item.ItemDisplayContextMixin_API", - "minecraft.world.item.ItemMixin_API", - "minecraft.world.item.ItemStackMixin_API", - "minecraft.world.item.RarityMixin_API", - "minecraft.world.item.TiersMixin_API", - "minecraft.world.item.alchemy.PotionMixin_API", - "minecraft.world.item.component.FireworkExplosionMixin_API", - "minecraft.world.item.component.Tool_RuleMixin_API", - "minecraft.world.item.crafting.AbstractCookingRecipeMixin_API", - "minecraft.world.item.crafting.CraftingRecipeMixin_API", - "minecraft.world.item.crafting.CustomRecipeMixin_API", - "minecraft.world.item.crafting.IngredientMixin_API", - "minecraft.world.item.crafting.RecipeManagerMixin_API", - "minecraft.world.item.crafting.RecipeMixin_API", - "minecraft.world.item.crafting.RecipeTypeMixin_API", - "minecraft.world.item.crafting.ShapedRecipeMixin_API", - "minecraft.world.item.crafting.ShapelessRecipeMixin_API", - "minecraft.world.item.crafting.SingleItemRecipeMixin_API", - "minecraft.world.item.crafting.SmithingTransformRecipeMixin_API", - "minecraft.world.item.crafting.StonecutterRecipeMixin_API", - "minecraft.world.item.enchantment.EnchantmentMixin_API", - "minecraft.world.item.trading.MerchantOfferMixin_API", - "minecraft.world.level.BlockGetterMixin_API", - "minecraft.world.level.EntityGetterMixin_API", - "minecraft.world.level.ExplosionMixin_API", - "minecraft.world.level.GameRules_KeyMixin_API", - "minecraft.world.level.GameTypeMixin_API", - "minecraft.world.level.LevelAccessorMixin_API", - "minecraft.world.level.LevelMixin_API", - "minecraft.world.level.LevelReaderMixin_API", - "minecraft.world.level.LevelWriterMixin_API", - "minecraft.world.level.LightLayerMixin_API", - "minecraft.world.level.biome.AmbientAdditionsSettingsMixin_API", - "minecraft.world.level.biome.AmbientMoodSettingsMixin_API", - "minecraft.world.level.biome.AmbientParticleSettingsMixin_API", - "minecraft.world.level.biome.Biome_PrecipitationMixin_API", - "minecraft.world.level.biome.Biome_TemperatureModifierMixin_API", - "minecraft.world.level.biome.BiomeMixin_API", - "minecraft.world.level.biome.BiomeSourceMixin_API", - "minecraft.world.level.biome.BiomeSpecialEffects_GrassColorModifierMixin_API", - "minecraft.world.level.biome.CheckerboardColumnBiomeSourceMixin_API", - "minecraft.world.level.biome.Climate_ParameterMixin_API", - "minecraft.world.level.biome.Climate_ParameterPointMixin_API", - "minecraft.world.level.biome.FixedBiomeSourceMixin_API", - "minecraft.world.level.biome.MobSpawnSettings_MobSpawnCostMixin_API", - "minecraft.world.level.biome.MobSpawnSettings_SpawnerDataMixin_API", - "minecraft.world.level.biome.MultiNoiseBiomeSourceMixin_API", - "minecraft.world.level.biome.TheEndBiomeSourceMixin_API", - "minecraft.world.level.block.MirrorMixin_API", - "minecraft.world.level.block.RotationMixin_API", - "minecraft.world.level.block.entity.AbstractFurnaceBlockEntityMixin_API", - "minecraft.world.level.block.entity.BannerBlockEntityMixin_API", - "minecraft.world.level.block.entity.BannerPatternLayers_LayerMixin_API", - "minecraft.world.level.block.entity.BannerPatternMixin_API", - "minecraft.world.level.block.entity.BarrelBlockEntityMixin_API", - "minecraft.world.level.block.entity.BaseContainerBlockEntityMixin_API", - "minecraft.world.level.block.entity.BeaconBlockEntityMixin_API", - "minecraft.world.level.block.entity.BedBlockEntityMixin_API", - "minecraft.world.level.block.entity.BeehiveBlockEntityMixin_API", - "minecraft.world.level.block.entity.BellBlockEntityMixin_API", - "minecraft.world.level.block.entity.BlastFurnaceBlockEntityMixin_API", - "minecraft.world.level.block.entity.BlockEntityMixin_API", - "minecraft.world.level.block.entity.BlockEntityTypeMixin_API", - "minecraft.world.level.block.entity.BrewingStandBlockEntityMixin_API", - "minecraft.world.level.block.entity.CampfireBlockEntityMixin_API", - "minecraft.world.level.block.entity.ChestBlockEntityMixin_API", - "minecraft.world.level.block.entity.CommandBlockEntityMixin_API", - "minecraft.world.level.block.entity.ComparatorBlockEntityMixin_API", - "minecraft.world.level.block.entity.ConduitBlockEntityMixin_API", - "minecraft.world.level.block.entity.DaylightDetectorBlockEntityMixin_API", - "minecraft.world.level.block.entity.DispenserBlockEntityMixin_API", - "minecraft.world.level.block.entity.DropperBlockEntityMixin_API", - "minecraft.world.level.block.entity.EnchantmentTableBlockEntityMixin_API", - "minecraft.world.level.block.entity.EnderChestBlockEntityMixin_API", - "minecraft.world.level.block.entity.FurnaceBlockEntityMixin_API", - "minecraft.world.level.block.entity.HopperBlockEntityMixin_API", - "minecraft.world.level.block.entity.JigsawBlockEntityMixin_API", - "minecraft.world.level.block.entity.JukeboxBlockEntityMixin_API", - "minecraft.world.level.block.entity.LecternBlockEntityMixin_API", - "minecraft.world.level.block.entity.RandomizableContainerBlockEntityMixin_API", - "minecraft.world.level.block.entity.SculkSensorBlockEntityMixin_API", - "minecraft.world.level.block.entity.ShulkerBoxBlockEntityMixin_API", - "minecraft.world.level.block.entity.SignBlockEntityMixin_API", - "minecraft.world.level.block.entity.SignTextMixin_API", - "minecraft.world.level.block.entity.SkullBlockEntityMixin_API", - "minecraft.world.level.block.entity.SmokerBlockEntityMixin_API", - "minecraft.world.level.block.entity.SpawnerBlockEntityMixin_API", - "minecraft.world.level.block.entity.StructureBlockEntityMixin_API", - "minecraft.world.level.block.entity.TheEndGatewayBlockEntityMixin_API", - "minecraft.world.level.block.entity.TheEndPortalBlockEntityMixin_API", - "minecraft.world.level.block.entity.TrappedCheckBlockEntityMixin_API", - "minecraft.world.level.block.piston.PistonMovingBlockEntityMixin_API", - "minecraft.world.level.block.state.BlockBehaviour_BlockStateBaseMixin_API", - "minecraft.world.level.block.state.BlockStateMixin_API", - "minecraft.world.level.block.state.StateHolderMixin_API", - "minecraft.world.level.block.state.properties.AttachFaceMixin_API", - "minecraft.world.level.block.state.properties.BambooLeavesMixin_API", - "minecraft.world.level.block.state.properties.BellAttachTypeMixin_API", - "minecraft.world.level.block.state.properties.ChestTypeMixin_API", - "minecraft.world.level.block.state.properties.ComparatorModeMixin_API", - "minecraft.world.level.block.state.properties.DoorHingeSideMixin_API", - "minecraft.world.level.block.state.properties.DripstoneThicknessMixin_API", - "minecraft.world.level.block.state.properties.FrontAndTopMixin_API", - "minecraft.world.level.block.state.properties.HalfMixin_API", - "minecraft.world.level.block.state.properties.NoteBlockInstrumentMixin_API", - "minecraft.world.level.block.state.properties.PistonTypeMixin_API", - "minecraft.world.level.block.state.properties.RailShapeMixin_API", - "minecraft.world.level.block.state.properties.RedstoneSideMixin_API", - "minecraft.world.level.block.state.properties.SculkSensorPhaseMixin_API", - "minecraft.world.level.block.state.properties.SlabTypeMixin_API", - "minecraft.world.level.block.state.properties.StairsShapeMixin_API", - "minecraft.world.level.block.state.properties.StructureModeMixin_API", - "minecraft.world.level.block.state.properties.TiltMixin_API", - "minecraft.world.level.block.state.properties.WallSideMixin_API", - "minecraft.world.level.border.WorldBorderMixin_Settings_API", - "minecraft.world.level.chunk.ChunkAccessMixin_API", - "minecraft.world.level.chunk.ChunkGeneratorMixin_API", - "minecraft.world.level.chunk.ChunkStatusMixin_API", - "minecraft.world.level.chunk.EmptyLevelChunkMixin_API", - "minecraft.world.level.chunk.LevelChunkMixin_API", - "minecraft.world.level.chunk.ProtoChunkMixin_API", - "minecraft.world.level.dimension.DimensionTypeMixin_API", - "minecraft.world.level.levelgen.DensityFunctionMixin_API", - "minecraft.world.level.levelgen.FlatLevelSourceMixin_API", - "minecraft.world.level.levelgen.GenerationStep_CarvingMixin_API", - "minecraft.world.level.levelgen.GenerationStep_DecorationMixin_API", - "minecraft.world.level.levelgen.Heightmap_TypeMixin_API", - "minecraft.world.level.levelgen.NoiseBasedChunkGeneratorMixin_API", - "minecraft.world.level.levelgen.NoiseGeneratorSettingsMixin_API", - "minecraft.world.level.levelgen.NoiseRouterMixin_API", - "minecraft.world.level.levelgen.NoiseSettingsMixin_API", - "minecraft.world.level.levelgen.NormalNoise_NoiseParametersMixin_API", - "minecraft.world.level.levelgen.SurfaceRules_ConditionSourceMixin_API", - "minecraft.world.level.levelgen.SurfaceRules_RulesSourceMixin_API", - "minecraft.world.level.levelgen.VerticalAnchorMixin_API", - "minecraft.world.level.levelgen.WorldOptionsMixin_API", - "minecraft.world.level.levelgen.carver.ConfiguredWorldCarverMixin_API", - "minecraft.world.level.levelgen.carver.WorldCarverMixin_API", - "minecraft.world.level.levelgen.feature.ConfiguredFeatureMixin_API", - "minecraft.world.level.levelgen.feature.FeatureMixin_API", - "minecraft.world.level.levelgen.flat.FlatLayerInfoMixin_API", - "minecraft.world.level.levelgen.flat.FlatLevelGeneratorSettingsMixin_API", - "minecraft.world.level.levelgen.placement.PlacedFeatureMixin_API", - "minecraft.world.level.levelgen.placement.PlacementModifierMixin_API", - "minecraft.world.level.levelgen.placement.PlacementModifierTypeMixin_API", - "minecraft.world.level.levelgen.structure.StructureMixin_API", - "minecraft.world.level.levelgen.structure.StructurePlacementMixin_API", - "minecraft.world.level.levelgen.structure.StructureSetMixin_API", - "minecraft.world.level.levelgen.structure.StructureSpawnOverrideMixin_API", - "minecraft.world.level.levelgen.structure.StructureTypeMixin_API", - "minecraft.world.level.levelgen.structure.pools.StructurePoolElementMixin_API", - "minecraft.world.level.levelgen.structure.pools.StructureTemplatePool_ProjectionMixin_API", - "minecraft.world.level.levelgen.structure.pools.StructureTemplatePoolMixin_API", - "minecraft.world.level.levelgen.structure.templatesystem.StructureProcessorListMixin_API", - "minecraft.world.level.levelgen.structure.templatesystem.StructureProcessorMixin_API", - "minecraft.world.level.levelgen.structure.templatesystem.StructureProcessorTypeMixin_API", - "minecraft.world.level.levelgen.structure.templatesystem.StructureTemplateMixin_API", - "minecraft.world.level.material.FluidMixin_API", - "minecraft.world.level.material.FluidStateMixin_API", - "minecraft.world.level.saveddata.MapDecorationMixin", - "minecraft.world.level.saveddata.MapItemSavedDataMixin", - "minecraft.world.level.storage.LevelDataMixin_API", - "minecraft.world.level.storage.PrimaryLevelDataMixin_API", - "minecraft.world.level.storage.ServerLevelDataMixin_API", - "minecraft.world.scores.DisplaySlotMixin_API", - "minecraft.world.scores.PlayerTeamMixin_API", - "minecraft.world.scores.Team_CollisionRuleMixin_API", - "minecraft.world.scores.Team_VisibilityMixin_API", - "minecraft.world.scores.criteria.ObjectiveCriteria_RenderTypeMixin_API", - "minecraft.world.scores.criteria.ObjectiveCriteriaMixin_API", - "minecraft.world.ticks.LevelTicksMixin_API", - "minecraft.world.ticks.ScheduledTickMixin_API", - "minecraft.world.ticks.TickPriorityMixin_API", - "service.permission.SubjectMixin_API", - "world.LocatableBlockMixin_API" - ], - "client": [ - "minecraft.client.MinecraftMixin_API", - "minecraft.client.multiplayer.ClientCommonPacketListenerImplMixin_API", - "minecraft.client.multiplayer.ClientConfigurationPacketListenerImplMixin_API", - "minecraft.client.multiplayer.ClientHandshakePacketListenerImplMixin_API", - "minecraft.client.multiplayer.ClientLevel_ClientLevelDataMixin_API", - "minecraft.client.multiplayer.ClientLevelMixin_API", - "minecraft.client.multiplayer.ClientPacketListenerMixin_API", - "minecraft.client.player.AbstractClientPlayerMixin_API", - "minecraft.client.player.LocalPlayerMixin_API", - "minecraft.client.player.RemotePlayerMixin_API", - "minecraft.client.server.IntegratedServerMixin_API" - ], - "server": [ - "minecraft.server.dedicated.DedicatedServerMixin_API" - ], - "overwrites": { - "conformVisibility": true - } + "required": true, + "parent": "mixins.sponge.parent.json", + "package": "org.spongepowered.common.mixin.api", + "mixinPriority": 1100, + "mixins": [ + "common.entity.living.HumanEntityMixin_API", + "data.DataHolderMixin_API", + "data.persistence.DataContainerMixin_API", + "entity.ai.goal.AbstractGoalMixin_API", + "item.merchant.MerchantMixin_API", + "minecraft.advancements.AdvancementMixin_API", + "minecraft.advancements.AdvancementNodeMixin_API", + "minecraft.advancements.AdvancementProgressMixin_API", + "minecraft.advancements.AdvancementTypeMixin_API", + "minecraft.advancements.CriterionMixin_API", + "minecraft.advancements.CriterionProgressMixin_API", + "minecraft.advancements.CriterionTriggerInstanceMixin_API", + "minecraft.advancements.CriterionTriggerMixin_API", + "minecraft.advancements.DisplayInfoMixin_API", + "minecraft.block.AbstractBlockMixin_API", + "minecraft.block.BlockMixin_API", + "minecraft.block.BlockSoundGroupMixin_API", + "minecraft.commands.CommandSourceStackMixin_API", + "minecraft.commands.arguments.selector.EntitySelectorMixin_API", + "minecraft.commands.arguments.selector.EntitySelectorParserMixin_API", + "minecraft.commands.synchronization.SuggestionProviders_WrapperMixin_API", + "minecraft.core.MappedRegistryMixin_API", + "minecraft.core.particles.ParticleTypeMixin_API", + "minecraft.entity.boss.WitherEntityMixin_API", + "minecraft.item.BlockItemMixin_API", + "minecraft.map.MapDecorationMixin_API", + "minecraft.map.MapDecorationTypeMixin_API", + "minecraft.map.MapInfoMixin_API", + "minecraft.network.FriendlyByteBufMixin_API", + "minecraft.network.chat.ChatTypeMixin_API", + "minecraft.network.chat.ChatTypeMixin_API$BoundMixin_API", + "minecraft.network.chat.MessageSignatureMixin_API", + "minecraft.network.chat.NumberFormatMixin_API", + "minecraft.network.protocol.status.ServerStatus_FaviconMixin_API", + "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.server.MinecraftServerMixin_API", + "minecraft.server.ServerScoreboardMixin_API", + "minecraft.server.level.ChunkMapMixin_API", + "minecraft.server.level.ServerLevelMixin_API", + "minecraft.server.level.ServerPlayerMixin_API", + "minecraft.server.level.TicketMixin_API", + "minecraft.server.level.TicketTypeMixin_API", + "minecraft.server.level.WorldGenRegionMixin_API", + "minecraft.server.network.MemoryServerHandshakePacketListenerImplMixin_API", + "minecraft.server.network.ServerCommonPacketListenerImplMixin_API", + "minecraft.server.network.ServerConfigurationPacketListenerImplMixin_API", + "minecraft.server.network.ServerGamePacketListenerImplMixin_API", + "minecraft.server.network.ServerHandshakePacketListenerImplMixin_API", + "minecraft.server.network.ServerLoginPacketListenerImplMixin_API", + "minecraft.server.packs.PackResourcesMixin_API", + "minecraft.server.packs.PackTypeMixin_API", + "minecraft.server.packs.repository.PackCompatibilityMixin_API", + "minecraft.server.packs.repository.PackMixin_API", + "minecraft.server.packs.repository.PackRepositoryMixin_API", + "minecraft.server.packs.resources.ResourceManagerMixin_API", + "minecraft.server.players.BanListEntryMixin_API", + "minecraft.server.players.GameProfileCacheMixin_API", + "minecraft.server.players.IpBanListEntryMixin_API", + "minecraft.server.players.StoredUserEntryMixin_API", + "minecraft.server.players.UserBanListEntryMixin_API", + "minecraft.server.rcon.RconConsoleSourceMixin_API", + "minecraft.server.rcon.thread.RconClientMixin_API", + "minecraft.sounds.MusicMixin_API", + "minecraft.sounds.SoundEventMixin_API", + "minecraft.state.BooleanPropertyMixin_API", + "minecraft.state.EnumPropertyMixin_API", + "minecraft.state.IntegerPropertyMixin_API", + "minecraft.state.PropertyMixin_API", + "minecraft.stats.StatMixin_API", + "minecraft.stats.StatTypeMixin_API", + "minecraft.tags.TagKeyMixin_API", + "minecraft.util.RandomSourceMixin_API", + "minecraft.world.DifficultyMixin_API", + "minecraft.world.InteractionHandMixin_API", + "minecraft.world.IWorldGenerationBaseReaderMixin_API", + "minecraft.world.IWorldGenerationReaderMixin_API", + "minecraft.world.damagesource.DamageScalingMixin_API", + "minecraft.world.damagesource.DamageSourceMixin_API", + "minecraft.world.damagesource.DamageTypeMixin_API", + "minecraft.world.effect.MobEffectInstanceMixin_API", + "minecraft.world.effect.MobEffectMixin_API", + "minecraft.world.entity.AgeableMobMixin_API", + "minecraft.world.entity.AreaEffectCloudMixin_API", + "minecraft.world.entity.Display_BillboardConstraintsMixin_API", + "minecraft.world.entity.Display_BlockDisplayMixin_API", + "minecraft.world.entity.Display_ItemDisplayMixin_API", + "minecraft.world.entity.Display_TextDisplay_AlignMixin_API", + "minecraft.world.entity.Display_TextDisplayMixin_API", + "minecraft.world.entity.DisplayMixin_API", + "minecraft.world.entity.EntityMixin_API", + "minecraft.world.entity.EntityTypeMixin_API", + "minecraft.world.entity.ExperienceOrbMixin_API", + "minecraft.world.entity.FlyingMobMixin_API", + "minecraft.world.entity.HumanoidArmMixin_API", + "minecraft.world.entity.InteractionMixin_API", + "minecraft.world.entity.LightningBoltMixin_API", + "minecraft.world.entity.LivingEntityMixin_API", + "minecraft.world.entity.MarkerMixin_API", + "minecraft.world.entity.MobCategoryMixin_API", + "minecraft.world.entity.MobMixin_API", + "minecraft.world.entity.PathfinderMobMixin_API", + "minecraft.world.entity.TamableAnimalMixin_API", + "minecraft.world.entity.ai.attributes.AttributeInstanceMixin_API", + "minecraft.world.entity.ai.attributes.AttributeMixin_API", + "minecraft.world.entity.ai.attributes.AttributeModifier_OperationMixin_API", + "minecraft.world.entity.ai.attributes.AttributeModifierMixin_API", + "minecraft.world.entity.ai.attributes.RangedAttributeMixin_API", + "minecraft.world.entity.ai.goal.AvoidEntityGoalMixin_API", + "minecraft.world.entity.ai.goal.FloatGoalMixin_API", + "minecraft.world.entity.ai.goal.GoalMixin_API", + "minecraft.world.entity.ai.goal.GoalSelectorMixin_API", + "minecraft.world.entity.ai.goal.LookAtPlayerGoalMixin_API", + "minecraft.world.entity.ai.goal.MeleeAttackGoalMixin_API", + "minecraft.world.entity.ai.goal.RandomLookAroundGoalMixin_API", + "minecraft.world.entity.ai.goal.RandomStrollGoalMixin_API", + "minecraft.world.entity.ai.goal.RangedAttackGoalMixin_API", + "minecraft.world.entity.ai.goal.RunAroundLikeCrazyGoalMixin_API", + "minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoalMixin_API", + "minecraft.world.entity.ai.goal.target.TargetGoalMixin_API", + "minecraft.world.entity.ambient.AmbientCreatureMixin_API", + "minecraft.world.entity.ambient.BatMixin_API", + "minecraft.world.entity.animal.AbstractFishMixin_API", + "minecraft.world.entity.animal.AbstractGolemMixin_API", + "minecraft.world.entity.animal.AbstractSchoolingFishMixin_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.CodMixin_API", + "minecraft.world.entity.animal.CowMixin_API", + "minecraft.world.entity.animal.DolphinMixin_API", + "minecraft.world.entity.animal.Fox_TypeMixin_API", + "minecraft.world.entity.animal.FoxMixin_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.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.SheepMixin_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.WolfMixin_API", + "minecraft.world.entity.animal.allay.AllayMixin_API", + "minecraft.world.entity.animal.camel.CamelMixin_API", + "minecraft.world.entity.animal.frog.FrogMixin_API", + "minecraft.world.entity.animal.frog.TadpoleMixin_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.sniffer.SnifferMixin_API", + "minecraft.world.entity.boss.EnderDragonPartMixin_API", + "minecraft.world.entity.boss.enderdragon.EndCrystalMixin_API", + "minecraft.world.entity.boss.enderdragon.EnderDragonMixin_API", + "minecraft.world.entity.boss.enderdragon.phases.DragonPhaseInstanceMixin_API", + "minecraft.world.entity.boss.enderdragon.phases.EnderDragonPhaseManagerMixin_API", + "minecraft.world.entity.boss.enderdragon.phases.EnderDragonPhaseMixin_API", + "minecraft.world.entity.decoration.ArmorStandMixin_API", + "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.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.AbstractSkeletonMixin_API", + "minecraft.world.entity.monster.BlazeMixin_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.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.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.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.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.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.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.WindChargeMixin_API", + "minecraft.world.entity.projectile.WitherSkullMixin_API", + "minecraft.world.entity.raid.Raid_RaidStatusMixin_API", + "minecraft.world.entity.raid.RaiderMixin_API", + "minecraft.world.entity.raid.RaidMixin_API", + "minecraft.world.entity.vehicle.AbstractMinecartContainerMixin_API", + "minecraft.world.entity.vehicle.AbstractMinecartMixin_API", + "minecraft.world.entity.vehicle.Boat_TypeMixin_API", + "minecraft.world.entity.vehicle.BoatMixin_API", + "minecraft.world.entity.vehicle.ChestBoatMixin_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.item.ArmorMaterialMixin_API", + "minecraft.world.item.DyeColorMixin_API", + "minecraft.world.item.FireworkExplosion_ShapeMixin_API", + "minecraft.world.item.ItemCooldownsMixin_API", + "minecraft.world.item.ItemDisplayContextMixin_API", + "minecraft.world.item.ItemMixin_API", + "minecraft.world.item.ItemStackMixin_API", + "minecraft.world.item.RarityMixin_API", + "minecraft.world.item.TiersMixin_API", + "minecraft.world.item.alchemy.PotionMixin_API", + "minecraft.world.item.component.FireworkExplosionMixin_API", + "minecraft.world.item.component.Tool_RuleMixin_API", + "minecraft.world.item.crafting.AbstractCookingRecipeMixin_API", + "minecraft.world.item.crafting.CraftingRecipeMixin_API", + "minecraft.world.item.crafting.CustomRecipeMixin_API", + "minecraft.world.item.crafting.IngredientMixin_API", + "minecraft.world.item.crafting.RecipeManagerMixin_API", + "minecraft.world.item.crafting.RecipeMixin_API", + "minecraft.world.item.crafting.RecipeTypeMixin_API", + "minecraft.world.item.crafting.ShapedRecipeMixin_API", + "minecraft.world.item.crafting.ShapelessRecipeMixin_API", + "minecraft.world.item.crafting.SingleItemRecipeMixin_API", + "minecraft.world.item.crafting.SmithingTransformRecipeMixin_API", + "minecraft.world.item.crafting.StonecutterRecipeMixin_API", + "minecraft.world.item.enchantment.EnchantmentMixin_API", + "minecraft.world.item.trading.MerchantOfferMixin_API", + "minecraft.world.level.BlockGetterMixin_API", + "minecraft.world.level.EntityGetterMixin_API", + "minecraft.world.level.ExplosionMixin_API", + "minecraft.world.level.GameRules_KeyMixin_API", + "minecraft.world.level.GameTypeMixin_API", + "minecraft.world.level.LevelAccessorMixin_API", + "minecraft.world.level.LevelMixin_API", + "minecraft.world.level.LevelReaderMixin_API", + "minecraft.world.level.LevelWriterMixin_API", + "minecraft.world.level.LightLayerMixin_API", + "minecraft.world.level.biome.AmbientAdditionsSettingsMixin_API", + "minecraft.world.level.biome.AmbientMoodSettingsMixin_API", + "minecraft.world.level.biome.AmbientParticleSettingsMixin_API", + "minecraft.world.level.biome.Biome_PrecipitationMixin_API", + "minecraft.world.level.biome.Biome_TemperatureModifierMixin_API", + "minecraft.world.level.biome.BiomeMixin_API", + "minecraft.world.level.biome.BiomeSourceMixin_API", + "minecraft.world.level.biome.BiomeSpecialEffects_GrassColorModifierMixin_API", + "minecraft.world.level.biome.CheckerboardColumnBiomeSourceMixin_API", + "minecraft.world.level.biome.Climate_ParameterMixin_API", + "minecraft.world.level.biome.Climate_ParameterPointMixin_API", + "minecraft.world.level.biome.FixedBiomeSourceMixin_API", + "minecraft.world.level.biome.MobSpawnSettings_MobSpawnCostMixin_API", + "minecraft.world.level.biome.MobSpawnSettings_SpawnerDataMixin_API", + "minecraft.world.level.biome.MultiNoiseBiomeSourceMixin_API", + "minecraft.world.level.biome.TheEndBiomeSourceMixin_API", + "minecraft.world.level.block.MirrorMixin_API", + "minecraft.world.level.block.RotationMixin_API", + "minecraft.world.level.block.entity.AbstractFurnaceBlockEntityMixin_API", + "minecraft.world.level.block.entity.BannerBlockEntityMixin_API", + "minecraft.world.level.block.entity.BannerPatternLayers_LayerMixin_API", + "minecraft.world.level.block.entity.BannerPatternMixin_API", + "minecraft.world.level.block.entity.BarrelBlockEntityMixin_API", + "minecraft.world.level.block.entity.BaseContainerBlockEntityMixin_API", + "minecraft.world.level.block.entity.BeaconBlockEntityMixin_API", + "minecraft.world.level.block.entity.BedBlockEntityMixin_API", + "minecraft.world.level.block.entity.BeehiveBlockEntityMixin_API", + "minecraft.world.level.block.entity.BellBlockEntityMixin_API", + "minecraft.world.level.block.entity.BlastFurnaceBlockEntityMixin_API", + "minecraft.world.level.block.entity.BlockEntityMixin_API", + "minecraft.world.level.block.entity.BlockEntityTypeMixin_API", + "minecraft.world.level.block.entity.BrewingStandBlockEntityMixin_API", + "minecraft.world.level.block.entity.CampfireBlockEntityMixin_API", + "minecraft.world.level.block.entity.ChestBlockEntityMixin_API", + "minecraft.world.level.block.entity.CommandBlockEntityMixin_API", + "minecraft.world.level.block.entity.ComparatorBlockEntityMixin_API", + "minecraft.world.level.block.entity.ConduitBlockEntityMixin_API", + "minecraft.world.level.block.entity.DaylightDetectorBlockEntityMixin_API", + "minecraft.world.level.block.entity.DispenserBlockEntityMixin_API", + "minecraft.world.level.block.entity.DropperBlockEntityMixin_API", + "minecraft.world.level.block.entity.EnchantmentTableBlockEntityMixin_API", + "minecraft.world.level.block.entity.EnderChestBlockEntityMixin_API", + "minecraft.world.level.block.entity.FurnaceBlockEntityMixin_API", + "minecraft.world.level.block.entity.HopperBlockEntityMixin_API", + "minecraft.world.level.block.entity.JigsawBlockEntityMixin_API", + "minecraft.world.level.block.entity.JukeboxBlockEntityMixin_API", + "minecraft.world.level.block.entity.LecternBlockEntityMixin_API", + "minecraft.world.level.block.entity.RandomizableContainerBlockEntityMixin_API", + "minecraft.world.level.block.entity.SculkSensorBlockEntityMixin_API", + "minecraft.world.level.block.entity.ShulkerBoxBlockEntityMixin_API", + "minecraft.world.level.block.entity.SignBlockEntityMixin_API", + "minecraft.world.level.block.entity.SignTextMixin_API", + "minecraft.world.level.block.entity.SkullBlockEntityMixin_API", + "minecraft.world.level.block.entity.SmokerBlockEntityMixin_API", + "minecraft.world.level.block.entity.SpawnerBlockEntityMixin_API", + "minecraft.world.level.block.entity.StructureBlockEntityMixin_API", + "minecraft.world.level.block.entity.TheEndGatewayBlockEntityMixin_API", + "minecraft.world.level.block.entity.TheEndPortalBlockEntityMixin_API", + "minecraft.world.level.block.entity.TrappedCheckBlockEntityMixin_API", + "minecraft.world.level.block.piston.PistonMovingBlockEntityMixin_API", + "minecraft.world.level.block.state.BlockBehaviour_BlockStateBaseMixin_API", + "minecraft.world.level.block.state.BlockStateMixin_API", + "minecraft.world.level.block.state.StateHolderMixin_API", + "minecraft.world.level.block.state.properties.AttachFaceMixin_API", + "minecraft.world.level.block.state.properties.BambooLeavesMixin_API", + "minecraft.world.level.block.state.properties.BellAttachTypeMixin_API", + "minecraft.world.level.block.state.properties.ChestTypeMixin_API", + "minecraft.world.level.block.state.properties.ComparatorModeMixin_API", + "minecraft.world.level.block.state.properties.DoorHingeSideMixin_API", + "minecraft.world.level.block.state.properties.DripstoneThicknessMixin_API", + "minecraft.world.level.block.state.properties.FrontAndTopMixin_API", + "minecraft.world.level.block.state.properties.HalfMixin_API", + "minecraft.world.level.block.state.properties.NoteBlockInstrumentMixin_API", + "minecraft.world.level.block.state.properties.PistonTypeMixin_API", + "minecraft.world.level.block.state.properties.RailShapeMixin_API", + "minecraft.world.level.block.state.properties.RedstoneSideMixin_API", + "minecraft.world.level.block.state.properties.SculkSensorPhaseMixin_API", + "minecraft.world.level.block.state.properties.SlabTypeMixin_API", + "minecraft.world.level.block.state.properties.StairsShapeMixin_API", + "minecraft.world.level.block.state.properties.StructureModeMixin_API", + "minecraft.world.level.block.state.properties.TiltMixin_API", + "minecraft.world.level.block.state.properties.WallSideMixin_API", + "minecraft.world.level.border.WorldBorderMixin_Settings_API", + "minecraft.world.level.chunk.ChunkAccessMixin_API", + "minecraft.world.level.chunk.ChunkGeneratorMixin_API", + "minecraft.world.level.chunk.ChunkStatusMixin_API", + "minecraft.world.level.chunk.EmptyLevelChunkMixin_API", + "minecraft.world.level.chunk.LevelChunkMixin_API", + "minecraft.world.level.chunk.ProtoChunkMixin_API", + "minecraft.world.level.dimension.DimensionTypeMixin_API", + "minecraft.world.level.levelgen.DensityFunctionMixin_API", + "minecraft.world.level.levelgen.FlatLevelSourceMixin_API", + "minecraft.world.level.levelgen.GenerationStep_CarvingMixin_API", + "minecraft.world.level.levelgen.GenerationStep_DecorationMixin_API", + "minecraft.world.level.levelgen.Heightmap_TypeMixin_API", + "minecraft.world.level.levelgen.NoiseBasedChunkGeneratorMixin_API", + "minecraft.world.level.levelgen.NoiseGeneratorSettingsMixin_API", + "minecraft.world.level.levelgen.NoiseRouterMixin_API", + "minecraft.world.level.levelgen.NoiseSettingsMixin_API", + "minecraft.world.level.levelgen.NormalNoise_NoiseParametersMixin_API", + "minecraft.world.level.levelgen.SurfaceRules_ConditionSourceMixin_API", + "minecraft.world.level.levelgen.SurfaceRules_RulesSourceMixin_API", + "minecraft.world.level.levelgen.VerticalAnchorMixin_API", + "minecraft.world.level.levelgen.WorldOptionsMixin_API", + "minecraft.world.level.levelgen.carver.ConfiguredWorldCarverMixin_API", + "minecraft.world.level.levelgen.carver.WorldCarverMixin_API", + "minecraft.world.level.levelgen.feature.ConfiguredFeatureMixin_API", + "minecraft.world.level.levelgen.feature.FeatureMixin_API", + "minecraft.world.level.levelgen.flat.FlatLayerInfoMixin_API", + "minecraft.world.level.levelgen.flat.FlatLevelGeneratorSettingsMixin_API", + "minecraft.world.level.levelgen.placement.PlacedFeatureMixin_API", + "minecraft.world.level.levelgen.placement.PlacementModifierMixin_API", + "minecraft.world.level.levelgen.placement.PlacementModifierTypeMixin_API", + "minecraft.world.level.levelgen.structure.StructureMixin_API", + "minecraft.world.level.levelgen.structure.StructurePlacementMixin_API", + "minecraft.world.level.levelgen.structure.StructureSetMixin_API", + "minecraft.world.level.levelgen.structure.StructureSpawnOverrideMixin_API", + "minecraft.world.level.levelgen.structure.StructureTypeMixin_API", + "minecraft.world.level.levelgen.structure.pools.StructurePoolElementMixin_API", + "minecraft.world.level.levelgen.structure.pools.StructureTemplatePool_ProjectionMixin_API", + "minecraft.world.level.levelgen.structure.pools.StructureTemplatePoolMixin_API", + "minecraft.world.level.levelgen.structure.templatesystem.StructureProcessorListMixin_API", + "minecraft.world.level.levelgen.structure.templatesystem.StructureProcessorMixin_API", + "minecraft.world.level.levelgen.structure.templatesystem.StructureProcessorTypeMixin_API", + "minecraft.world.level.levelgen.structure.templatesystem.StructureTemplateMixin_API", + "minecraft.world.level.material.FluidMixin_API", + "minecraft.world.level.material.FluidStateMixin_API", + "minecraft.world.level.material.PushReactionMixin_API", + "minecraft.world.level.saveddata.MapDecorationMixin", + "minecraft.world.level.saveddata.MapItemSavedDataMixin", + "minecraft.world.level.storage.LevelDataMixin_API", + "minecraft.world.level.storage.PrimaryLevelDataMixin_API", + "minecraft.world.level.storage.ServerLevelDataMixin_API", + "minecraft.world.scores.DisplaySlotMixin_API", + "minecraft.world.scores.PlayerTeamMixin_API", + "minecraft.world.scores.Team_CollisionRuleMixin_API", + "minecraft.world.scores.Team_VisibilityMixin_API", + "minecraft.world.scores.criteria.ObjectiveCriteria_RenderTypeMixin_API", + "minecraft.world.scores.criteria.ObjectiveCriteriaMixin_API", + "minecraft.world.ticks.LevelTicksMixin_API", + "minecraft.world.ticks.ScheduledTickMixin_API", + "minecraft.world.ticks.TickPriorityMixin_API", + "service.permission.SubjectMixin_API", + "world.LocatableBlockMixin_API" + ], + "client": [ + "minecraft.client.MinecraftMixin_API", + "minecraft.client.multiplayer.ClientCommonPacketListenerImplMixin_API", + "minecraft.client.multiplayer.ClientConfigurationPacketListenerImplMixin_API", + "minecraft.client.multiplayer.ClientHandshakePacketListenerImplMixin_API", + "minecraft.client.multiplayer.ClientLevel_ClientLevelDataMixin_API", + "minecraft.client.multiplayer.ClientLevelMixin_API", + "minecraft.client.multiplayer.ClientPacketListenerMixin_API", + "minecraft.client.player.AbstractClientPlayerMixin_API", + "minecraft.client.player.LocalPlayerMixin_API", + "minecraft.client.player.RemotePlayerMixin_API", + "minecraft.client.server.IntegratedServerMixin_API" + ], + "server": [ + "minecraft.server.dedicated.DedicatedServerMixin_API" + ], + "overwrites": { + "conformVisibility": true + } } From 21bf165beb09e3632c90b34e41eb76ad6d40c1eb Mon Sep 17 00:00:00 2001 From: Gabriel Harris-Rouquette Date: Mon, 3 Jun 2024 20:07:24 -0700 Subject: [PATCH 2/4] feat: Add StringRepresentable For some usages it's helpful to have the serializable name that gets used and assists with interpreting values from user parsed files. --- SpongeAPI | 2 +- .../data/provider/block/state/BlockData.java | 2 + .../state/EnumPropertyMixin_API.java | 3 +- .../util/StringRepresentableMixin_API.java | 40 +++++++++++++++++++ src/mixins/resources/mixins.sponge.api.json | 1 + 5 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 src/mixins/java/org/spongepowered/common/mixin/api/minecraft/util/StringRepresentableMixin_API.java diff --git a/SpongeAPI b/SpongeAPI index 791f2622159..57f6e547568 160000 --- a/SpongeAPI +++ b/SpongeAPI @@ -1 +1 @@ -Subproject commit 791f2622159aeaccb068dc83fa2607fbc3e99073 +Subproject commit 57f6e547568916f767a3c2a8124ddc66c2332488 diff --git a/src/main/java/org/spongepowered/common/data/provider/block/state/BlockData.java b/src/main/java/org/spongepowered/common/data/provider/block/state/BlockData.java index d7e0eeedf47..9d7066fdf5a 100644 --- a/src/main/java/org/spongepowered/common/data/provider/block/state/BlockData.java +++ b/src/main/java/org/spongepowered/common/data/provider/block/state/BlockData.java @@ -108,6 +108,8 @@ public static void register(final DataProviderRegistrator registrator) { return MatterTypes.SOLID.get(); } }) + .create(Keys.BURNABLE) + .get(BlockBehaviour.BlockStateBase::ignitedByLava) // TODO state above .create(Keys.REPRESENTED_INSTRUMENT) .get(h -> (InstrumentType) (Object) h.instrument()); diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/state/EnumPropertyMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/state/EnumPropertyMixin_API.java index a9987b40b60..10103ef0c6c 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/state/EnumPropertyMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/state/EnumPropertyMixin_API.java @@ -25,10 +25,11 @@ package org.spongepowered.common.mixin.api.minecraft.state; import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.spongepowered.api.data.type.StringRepresentable; import org.spongepowered.api.state.EnumStateProperty; import org.spongepowered.asm.mixin.Mixin; @Mixin(value = EnumProperty.class) -public abstract class EnumPropertyMixin_API> extends PropertyMixin_API implements EnumStateProperty { +public abstract class EnumPropertyMixin_API & StringRepresentable> extends PropertyMixin_API implements EnumStateProperty { } diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/util/StringRepresentableMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/util/StringRepresentableMixin_API.java new file mode 100644 index 00000000000..c5d39939ab2 --- /dev/null +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/util/StringRepresentableMixin_API.java @@ -0,0 +1,40 @@ +/* + * 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.util; + +import net.minecraft.util.StringRepresentable; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; + +@Mixin(StringRepresentable.class) +public interface StringRepresentableMixin_API extends org.spongepowered.api.data.type.StringRepresentable { + + @Shadow String shadow$getSerializedName(); + + @Override + default String serializationString() { + return this.shadow$getSerializedName(); + } +} diff --git a/src/mixins/resources/mixins.sponge.api.json b/src/mixins/resources/mixins.sponge.api.json index 86773c75159..c1a833481d3 100644 --- a/src/mixins/resources/mixins.sponge.api.json +++ b/src/mixins/resources/mixins.sponge.api.json @@ -79,6 +79,7 @@ "minecraft.stats.StatTypeMixin_API", "minecraft.tags.TagKeyMixin_API", "minecraft.util.RandomSourceMixin_API", + "minecraft.util.StringRepresentableMixin_API", "minecraft.world.DifficultyMixin_API", "minecraft.world.InteractionHandMixin_API", "minecraft.world.IWorldGenerationBaseReaderMixin_API", From 8f5367520ceb4d28e1320822ff84c50b27b971d9 Mon Sep 17 00:00:00 2001 From: Gabriel Harris-Rouquette Date: Mon, 3 Jun 2024 20:12:39 -0700 Subject: [PATCH 3/4] feat: Implement Vault and Trial States Signed-off-by: Gabriel Harris-Rouquette --- SpongeAPI | 2 +- .../loader/VanillaRegistryLoader.java | 4 +++ .../TrialSpawnerStateMixin_API.java | 33 +++++++++++++++++++ .../entity/vault/VaultStateMixin_API.java | 32 ++++++++++++++++++ src/mixins/resources/mixins.sponge.api.json | 2 ++ 5 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/block/entity/trialspawner/TrialSpawnerStateMixin_API.java create mode 100644 src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/block/entity/vault/VaultStateMixin_API.java diff --git a/SpongeAPI b/SpongeAPI index 57f6e547568..1fb6e5b15aa 160000 --- a/SpongeAPI +++ b/SpongeAPI @@ -1 +1 @@ -Subproject commit 57f6e547568916f767a3c2a8124ddc66c2332488 +Subproject commit 1fb6e5b15aad5c0ff39d6e8afeeb48fa72e18b8f 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 4ae64d0400d..bca61ec13b1 100644 --- a/src/main/java/org/spongepowered/common/registry/loader/VanillaRegistryLoader.java +++ b/src/main/java/org/spongepowered/common/registry/loader/VanillaRegistryLoader.java @@ -66,6 +66,8 @@ import net.minecraft.world.level.biome.BiomeSpecialEffects; import net.minecraft.world.level.block.Mirror; import net.minecraft.world.level.block.Rotation; +import net.minecraft.world.level.block.entity.trialspawner.TrialSpawnerState; +import net.minecraft.world.level.block.entity.vault.VaultState; import net.minecraft.world.level.block.state.properties.AttachFace; import net.minecraft.world.level.block.state.properties.BambooLeaves; import net.minecraft.world.level.block.state.properties.BellAttachType; @@ -239,6 +241,8 @@ private void loadEnumRegistries() { this.automaticName(RegistryTypes.LIGHT_TYPE, LightLayer.values()); this.naming(RegistryTypes.DISPLAY_SLOT, DisplaySlot.values(), d -> d.getSerializedName().replace(".", "_")); this.automaticName(RegistryTypes.PUSH_REACTION, PushReaction.values()); + this.automaticSerializedName(RegistryTypes.TRIAL_SPAWNER_STATE, TrialSpawnerState.values()); + this.automaticSerializedName(RegistryTypes.VAULT_STATE, VaultState.values()); } private static RegistryLoader criterion() { diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/block/entity/trialspawner/TrialSpawnerStateMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/block/entity/trialspawner/TrialSpawnerStateMixin_API.java new file mode 100644 index 00000000000..f4ee7fe39d7 --- /dev/null +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/block/entity/trialspawner/TrialSpawnerStateMixin_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.level.block.entity.trialspawner; + +import net.minecraft.world.level.block.entity.trialspawner.TrialSpawnerState; +import org.spongepowered.asm.mixin.Mixin; + +@Mixin(TrialSpawnerState.class) +public abstract class TrialSpawnerStateMixin_API implements org.spongepowered.api.data.type.TrialSpawnerState { + +} diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/block/entity/vault/VaultStateMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/block/entity/vault/VaultStateMixin_API.java new file mode 100644 index 00000000000..07f0285fcba --- /dev/null +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/block/entity/vault/VaultStateMixin_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.level.block.entity.vault; + +import net.minecraft.world.level.block.entity.vault.VaultState; +import org.spongepowered.asm.mixin.Mixin; + +@Mixin(VaultState.class) +public abstract class VaultStateMixin_API implements org.spongepowered.api.data.type.VaultState { +} diff --git a/src/mixins/resources/mixins.sponge.api.json b/src/mixins/resources/mixins.sponge.api.json index c1a833481d3..23fed4650a4 100644 --- a/src/mixins/resources/mixins.sponge.api.json +++ b/src/mixins/resources/mixins.sponge.api.json @@ -385,6 +385,8 @@ "minecraft.world.level.block.entity.TheEndGatewayBlockEntityMixin_API", "minecraft.world.level.block.entity.TheEndPortalBlockEntityMixin_API", "minecraft.world.level.block.entity.TrappedCheckBlockEntityMixin_API", + "minecraft.world.level.block.entity.trialspawner.TrialSpawnerStateMixin_API", + "minecraft.world.level.block.entity.vault.VaultStateMixin_API", "minecraft.world.level.block.piston.PistonMovingBlockEntityMixin_API", "minecraft.world.level.block.state.BlockBehaviour_BlockStateBaseMixin_API", "minecraft.world.level.block.state.BlockStateMixin_API", From 3c40c25ee79f1eb4cbcffef4bae09b5d06cbb81f Mon Sep 17 00:00:00 2001 From: Gabriel Harris-Rouquette Date: Mon, 3 Jun 2024 20:51:22 -0700 Subject: [PATCH 4/4] fix compiler error --- .../minecraft/world/entity/projectile/WindChargeMixin_API.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/WindChargeMixin_API.java b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/WindChargeMixin_API.java index f9ec51725bf..db52daee1f9 100644 --- a/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/WindChargeMixin_API.java +++ b/src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/entity/projectile/WindChargeMixin_API.java @@ -24,7 +24,7 @@ */ package org.spongepowered.common.mixin.api.minecraft.world.entity.projectile; -import org.spongepowered.api.entity.projectile.WindCharge; +import org.spongepowered.api.entity.projectile.windcharge.WindCharge; import org.spongepowered.asm.mixin.Mixin; @Mixin(net.minecraft.world.entity.projectile.windcharge.WindCharge.class)