Skip to content

Commit

Permalink
feat!: merge composite event additions
Browse files Browse the repository at this point in the history
Merges #2495

Signed-off-by: Gabriel Harris-Rouquette <[email protected]>
  • Loading branch information
gabizou committed Jan 12, 2025
2 parents 8a6fe45 + 9f3fa2a commit 21d830f
Show file tree
Hide file tree
Showing 65 changed files with 1,325 additions and 344 deletions.
2 changes: 2 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ insert_final_newline = false
max_line_length = 120
tab_width = 4

[{*.json,*.jsonc,*.png.mcmeta,mcmod.info,pack.mcmeta}]
indent_size = 2

[*.yaml]
indent_size = 2
2 changes: 1 addition & 1 deletion SpongeAPI
Submodule SpongeAPI updated 89 files
+1 −0 .checkstyle/checkstyle-suppressions.xml
+4 −0 .gitignore
+49 −31 build.gradle.kts
+2 −1 gradle/libs.versions.toml
+94 −0 gradle/verification-metadata.xml
+3 −0 settings.gradle.kts
+1 −1 src/main/java/org/spongepowered/api/data/DataManipulator.java
+1 −1 src/main/java/org/spongepowered/api/event/Cancellable.java
+2 −0 src/main/java/org/spongepowered/api/event/Cause.java
+81 −0 src/main/java/org/spongepowered/api/event/CompositeEvent.java
+2 −2 src/main/java/org/spongepowered/api/event/Event.java
+2 −0 src/main/java/org/spongepowered/api/event/EventContext.java
+2 −0 src/main/java/org/spongepowered/api/event/EventContextKeys.java
+3 −0 src/main/java/org/spongepowered/api/event/Listener.java
+1 −1 src/main/java/org/spongepowered/api/event/action/CollideEvent.java
+2 −0 src/main/java/org/spongepowered/api/event/action/InteractEvent.java
+81 −33 src/main/java/org/spongepowered/api/event/block/InteractBlockEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/block/ScheduleBlockUpdateEvent.java
+4 −1 src/main/java/org/spongepowered/api/event/cause/entity/damage/package-info.java
+4 −1 src/main/java/org/spongepowered/api/event/cause/entity/damage/source/package-info.java
+4 −1 src/main/java/org/spongepowered/api/event/cause/entity/package-info.java
+4 −1 src/main/java/org/spongepowered/api/event/cause/package-info.java
+2 −2 src/main/java/org/spongepowered/api/event/data/ChangeDataHolderEvent.java
+4 −2 src/main/java/org/spongepowered/api/event/entity/AffectEntityEvent.java
+2 −2 src/main/java/org/spongepowered/api/event/entity/AttackEntityEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/entity/ChangeEntityEquipmentEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/entity/ChangeEntityWorldEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/entity/CollideEntityEvent.java
+2 −2 src/main/java/org/spongepowered/api/event/entity/DamageEntityEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/entity/DestructEntityEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/entity/ExpireEntityEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/entity/HarvestEntityEvent.java
+6 −2 src/main/java/org/spongepowered/api/event/entity/InvokePortalEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/entity/MoveEntityEvent.java
+2 −2 src/main/java/org/spongepowered/api/event/entity/RotateEntityEvent.java
+5 −3 src/main/java/org/spongepowered/api/event/entity/SpawnEntityEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/entity/ai/goal/GoalEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/entity/living/player/ResourcePackStatusEvent.java
+31 −31 src/main/java/org/spongepowered/api/event/impl/AbstractCompositeEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/impl/data/AbstractValueChangeEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/impl/entity/AbstractAffectEntityEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/impl/entity/AbstractAttackEntityEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/impl/entity/AbstractChangeEntityEquipmentEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/impl/entity/AbstractDamageEntityEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/impl/world/AbstractDetonateEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/item/inventory/AffectItemStackEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/item/inventory/AffectSlotEvent.java
+2 −2 src/main/java/org/spongepowered/api/event/item/inventory/ChangeInventoryEvent.java
+19 −1 src/main/java/org/spongepowered/api/event/item/inventory/InteractItemEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/item/inventory/UpdateAnvilEvent.java
+2 −0 src/main/java/org/spongepowered/api/event/lifecycle/ConstructPluginEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/lifecycle/EngineLifecycleEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/lifecycle/LifecycleEvent.java
+2 −0 src/main/java/org/spongepowered/api/event/lifecycle/LoadedGameEvent.java
+2 −0 src/main/java/org/spongepowered/api/event/lifecycle/ProvideServiceEvent.java
+2 −0 src/main/java/org/spongepowered/api/event/lifecycle/RefreshGameEvent.java
+2 −0 src/main/java/org/spongepowered/api/event/lifecycle/RegisterBuilderEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/lifecycle/RegisterChannelEvent.java
+2 −0 src/main/java/org/spongepowered/api/event/lifecycle/RegisterCommandEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/lifecycle/RegisterDataEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/lifecycle/RegisterDataPackValueEvent.java
+2 −0 src/main/java/org/spongepowered/api/event/lifecycle/RegisterFactoryEvent.java
+2 −0 src/main/java/org/spongepowered/api/event/lifecycle/RegisterRegistryEvent.java
+2 −0 src/main/java/org/spongepowered/api/event/lifecycle/RegisterRegistryValueEvent.java
+2 −0 src/main/java/org/spongepowered/api/event/lifecycle/StartedEngineEvent.java
+2 −0 src/main/java/org/spongepowered/api/event/lifecycle/StartingEngineEvent.java
+2 −0 src/main/java/org/spongepowered/api/event/lifecycle/StoppedGameEvent.java
+2 −0 src/main/java/org/spongepowered/api/event/lifecycle/StoppingEngineEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/message/AudienceMessageEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/message/MessageCancellable.java
+1 −1 src/main/java/org/spongepowered/api/event/message/MessageEvent.java
+0 −2 src/main/java/org/spongepowered/api/event/message/PlayerChatEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/network/ServerSideConnectionEvent.java
+6 −1 src/main/java/org/spongepowered/api/event/package-info.java
+2 −2 src/main/java/org/spongepowered/api/event/server/ClientPingServerEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/user/BanUserEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/user/PardonUserEvent.java
+4 −1 src/main/java/org/spongepowered/api/event/world/ChangeWorldBorderEvent.java
+2 −2 src/main/java/org/spongepowered/api/event/world/ExplosionEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/world/chunk/ChunkEvent.java
+0 −55 src/main/java/org/spongepowered/api/util/annotation/eventgen/AbsoluteSortPosition.java
+0 −45 src/main/java/org/spongepowered/api/util/annotation/eventgen/FactoryMethod.java
+0 −35 src/main/java/org/spongepowered/api/util/annotation/eventgen/GenerateFactoryMethod.java
+0 −34 src/main/java/org/spongepowered/api/util/annotation/eventgen/NoFactoryMethod.java
+0 −64 src/main/java/org/spongepowered/api/util/annotation/eventgen/PropertySettings.java
+0 −58 src/main/java/org/spongepowered/api/util/annotation/eventgen/TransformResult.java
+0 −58 src/main/java/org/spongepowered/api/util/annotation/eventgen/TransformWith.java
+0 −55 src/main/java/org/spongepowered/api/util/annotation/eventgen/UseField.java
+0 −26 src/main/java/org/spongepowered/api/util/annotation/eventgen/package-info.java
62 changes: 62 additions & 0 deletions gradle/verification-metadata.xml
Original file line number Diff line number Diff line change
Expand Up @@ -722,6 +722,22 @@
<sha256 value="893d56afcea1b22f83220fd7e49a6668c5b8901e39bd59dc57b42f55673721ce" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.dagger" name="dagger" version="2.42">
<artifact name="dagger-2.42.jar">
<sha256 value="7ad8147fdb5dfb481b7cde8c70da73afbaa21430ce757fcd96709fcfb6a4d56b" origin="Generated by Gradle"/>
</artifact>
<artifact name="dagger-2.42.pom">
<sha256 value="ca6529bd6d79090f0ab6f5da452eb4fbb29377b48e6a806e7612396dcb2998e0" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.dagger" name="dagger" version="2.54">
<artifact name="dagger-2.54.jar">
<sha256 value="7ab0d8278a532888de19025dc6ee70a80ecd4567778a6a7e7ec256a2073e40a3" origin="Generated by Gradle"/>
</artifact>
<artifact name="dagger-2.54.pom">
<sha256 value="af43413fd91fc49532884ca32191ab31bec609c344d4939aece9d3efef699f81" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.errorprone" name="error_prone_annotation" version="2.24.1">
<artifact name="error_prone_annotation-2.24.1.jar">
<sha256 value="dc202da451680aa8cdda7c68d959f27c112dca8f8fdeaf7c597de73cb2b1a0a6" origin="Generated by Gradle"/>
Expand Down Expand Up @@ -1549,6 +1565,14 @@
<sha256 value="b864299a7d0a21020a831699438f7d3f85408ab24a34e911faa99ff684eb76fd" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.palantir.javapoet" name="javapoet" version="0.6.0">
<artifact name="javapoet-0.6.0.jar">
<sha256 value="1c8dd1cc4404b9eeb5c54fef8a1cf2be7a138a42783b9460fbae9caf85ed5b2f" origin="Generated by Gradle"/>
</artifact>
<artifact name="javapoet-0.6.0.pom">
<sha256 value="f6e34a26ac09a3a68a91cc9235cb1f8c7736b07fe89db59a324acd8d57d9e797" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.puppycrawl.tools" name="checkstyle" version="10.12.7">
<artifact name="checkstyle-10.12.7.jar">
<sha256 value="767cc2393169f0abe4292e59c3b62317149f900a472cd6b01f74346f6bdae581" origin="Generated by Gradle"/>
Expand Down Expand Up @@ -2348,6 +2372,14 @@
<sha256 value="5632476925b0c55ffd54f9984ca71dfb6ff9ec77e5b2096496de53f1059a37d7" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="jakarta.inject" name="jakarta.inject-api" version="2.0.1">
<artifact name="jakarta.inject-api-2.0.1.jar">
<sha256 value="f7dc98062fccf14126abb751b64fab12c312566e8cbdc8483598bffcea93af7c" origin="Generated by Gradle"/>
</artifact>
<artifact name="jakarta.inject-api-2.0.1.pom">
<sha256 value="e7fd7232e96307a575b2494c9367d68cf43ec98244aace3ccc23e1773ffa6fda" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="jakarta.platform" name="jakarta.jakartaee-bom" version="9.0.0">
<artifact name="jakarta.jakartaee-bom-9.0.0.pom">
<sha256 value="91903d0dd876dec67f8b923f1332ba72bf295b06bd397d18f3af19307ce1a2ce" origin="Generated by Gradle"/>
Expand Down Expand Up @@ -5860,6 +5892,9 @@
<artifact name="apiguardian-api-1.1.2.module">
<sha256 value="e08028131375b357d1d28734e9a4fb4216da84b240641cb3ef7e7c7d628223fc" origin="Generated by Gradle"/>
</artifact>
<artifact name="apiguardian-api-1.1.2.pom">
<sha256 value="32355081d109095c3d5d374d5a43b4f4c1b75d549e983ef50723e2772e5302a0" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.cadixdev" name="at" version="0.1.0-rc1">
<artifact name="at-0.1.0-rc1.jar">
Expand Down Expand Up @@ -5929,6 +5964,9 @@
<artifact name="checker-qual-3.19.0.module">
<sha256 value="53e1899dde3c513ca1efd376abffac0e6907e8e84abd5f966242634c95e4d157" origin="Generated by Gradle"/>
</artifact>
<artifact name="checker-qual-3.19.0.pom">
<sha256 value="29ba9c5ce1a94b700bd823c4ed612f5827b590f19a49775fd7eb8f997f8aa371" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.checkerframework" name="checker-qual" version="3.26.0">
<artifact name="checker-qual-3.26.0.jar">
Expand Down Expand Up @@ -6586,6 +6624,14 @@
<sha256 value="33b8c22f2424c2903241a7fea258fc41ab0c4d6889776576c519047562ee43a5" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jspecify" name="jspecify" version="1.0.0">
<artifact name="jspecify-1.0.0.jar">
<sha256 value="1fad6e6be7557781e4d33729d49ae1cdc8fdda6fe477bb0cc68ce351eafdfbab" origin="Generated by Gradle"/>
</artifact>
<artifact name="jspecify-1.0.0.module">
<sha256 value="d307ca77a54e18ac1ef1aaed4e5bbe014bd2f49f29e1d2f813e47c278283195b" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.junit" name="junit-bom" version="5.10.0">
<artifact name="junit-bom-5.10.0.module">
<sha256 value="eb3ee6127608010694a898056e7407d117296003aba5f5db801df430b9887fcf" origin="Generated by Gradle"/>
Expand Down Expand Up @@ -7898,6 +7944,22 @@
<sha256 value="b68149d290f328b6b54d0f7f7d304adab5148cedd6ae18dc3baae8bf9f1757c6" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.spongepowered" name="event-impl-gen" version="8.0.0">
<artifact name="event-impl-gen-8.0.0.jar">
<sha256 value="6e26ff9a8d9f5a9fe39fe3e64781061bf068405c04095d78c044719ac2918992" origin="Generated by Gradle"/>
</artifact>
<artifact name="event-impl-gen-8.0.0.module">
<sha256 value="5b919469a6bead6b6107212e4bf441c7576fc52f0b590db4bc13f742ebbfd983" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.spongepowered" name="event-impl-gen-annotations" version="8.0.0">
<artifact name="event-impl-gen-annotations-8.0.0.jar">
<sha256 value="278e01efedb92a95be74714ea2bec08d29326b4893f6e957aa3bd39a15840776" origin="Generated by Gradle"/>
</artifact>
<artifact name="event-impl-gen-annotations-8.0.0.module">
<sha256 value="b0fddddd441038c0889450e8c0ebac970f0d606b246db99fd59c23c73e7ba534" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.spongepowered" name="math" version="2.0.1">
<artifact name="math-2.0.1-javadoc.jar">
<sha256 value="eef4d1e6421cd975ebdb7ae6be8632c0e89c0e8b671ee0fb542d8e6ddad2df12" origin="Generated by Gradle"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,19 +26,26 @@

import net.minecraft.core.BlockPos;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.entity.Entity;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.EntityBlock;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.chunk.LevelChunk;
import org.checkerframework.checker.nullness.qual.Nullable;
import net.minecraft.world.phys.BlockHitResult;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.spongepowered.api.block.BlockSnapshot;
import org.spongepowered.api.world.BlockChangeFlag;
import org.spongepowered.common.block.SpongeBlockSnapshot;
import org.spongepowered.common.bridge.server.level.ServerLevelBridge;
import org.spongepowered.common.bridge.world.level.LevelBridge;
import org.spongepowered.common.bridge.world.level.block.state.BlockStateBridge;
import org.spongepowered.common.event.tracking.context.transaction.TransactionalCaptureSupplier;
import org.spongepowered.common.event.tracking.context.transaction.effect.InteractionAtArgs;
import org.spongepowered.common.event.tracking.context.transaction.effect.UseItemArgs;
import org.spongepowered.common.event.tracking.context.transaction.effect.UseItemAtArgs;
import org.spongepowered.common.event.tracking.context.transaction.pipeline.InteractionPipeline;
import org.spongepowered.common.event.tracking.context.transaction.pipeline.WorldPipeline;

import java.util.Optional;
Expand All @@ -50,16 +57,14 @@
*/
public interface TrackedWorldBridge {

boolean bridge$forceSpawnEntity(Entity entity);

Optional<WorldPipeline.Builder> bridge$startBlockChange(BlockPos pos, BlockState state, int rawFlags);

/**
* Delegates to the {@link ServerLevel} to perform the lookup for a {@link LevelChunk}
* such that if the target {@link BlockPos} results in a {@code false} for
* {@link ServerLevel#isBlockLoaded(BlockPos)}, {@link BlockSnapshot#empty()}
* {@link ServerLevel#isLoaded(BlockPos)}, {@link BlockSnapshot#empty()}
* will be returned. Likewise, optimizes the creation of the snapshot by performing
* the {@link LevelChunk#getBlockState(BlockPos)} and {@link LevelChunk#getTileEntity(BlockPos, Chunk.CreateEntityType)}
* the {@link LevelChunk#getBlockState(BlockPos)} and {@link LevelChunk#getBlockEntity(BlockPos, LevelChunk.EntityCreationType)}
* lookup on the same chunk, avoiding an additional chunk lookup.
*
* <p>This should be used when the "known" {@link BlockState} for the target
Expand All @@ -74,35 +79,25 @@ public interface TrackedWorldBridge {
}

/**
* Creates a {@link BlockSnapshot} but performs an additional {@link LevelChunk#getTileEntity(BlockPos, Chunk.CreateEntityType)}
* Creates a {@link BlockSnapshot} but performs an additional {@link LevelChunk#getBlockEntity(BlockPos, LevelChunk.EntityCreationType)}
* lookup if the providing {@link BlockState#getBlock()} {@code instanceof} is
* {@code true} for being an {@link EntityBlock} or
* {@link BlockStateBridge#bridge$hasTileEntity()}, and associates
* the resulting snapshot of said Tile with the snapshot. This is useful for in-progress
* snapshot creation during transaction building for {@link TransactionalCaptureSupplier}.
*
* <p>If the {@link BlockEntity} is already known, and no lookups are needed, use
* {@link #bridge$createSnapshotWithEntity(BlockState, BlockPos, BlockChangeFlag, BlockEntity)} as it avoids
* any further chunk lookups.</p>
*
* @param state The block state
* @param pos The target position
* @param updateFlag The update flag
* @return The snapshot, never NONE
*/
SpongeBlockSnapshot bridge$createSnapshot(BlockState state, BlockPos pos, BlockChangeFlag updateFlag);

/**
* Similar to {@link #bridge$createSnapshot(BlockState, BlockPos, BlockChangeFlag)},
* but with the added avoidance of a {@link BlockEntity} lookup during the creation of the resulting
* {@link SpongeBlockSnapshot}.
*
* @param state The state
* @param pos The position
* @param updateFlag The update flag
* @param tileEntity The tile entity to serialize, if available
* @return The snapshot, never NONE
*/
SpongeBlockSnapshot bridge$createSnapshotWithEntity(BlockState state, BlockPos pos, BlockChangeFlag updateFlag, @Nullable BlockEntity tileEntity);
InteractionPipeline<@NonNull InteractionAtArgs> bridge$startInteractionUseOnChange(Level worldIn, ServerPlayer playerIn, InteractionHand handIn, BlockHitResult blockRaytraceResultIn, BlockState blockstate, ItemStack copiedStack);

InteractionPipeline<@NonNull InteractionAtArgs> bridge$startInteractionChange(Level worldIn, ServerPlayer playerIn, InteractionHand handIn, BlockHitResult blockRaytraceResultIn, BlockState blockstate, ItemStack copiedStack);

InteractionPipeline<@NonNull UseItemAtArgs> bridge$startItemInteractionChange(Level worldIn, ServerPlayer playerIn, InteractionHand handIn, ItemStack copiedStack, BlockHitResult blockRaytraceResult, boolean creative);

InteractionPipeline<@NonNull UseItemArgs> bridge$startItemInteractionUseChange(Level worldIn, ServerPlayer playerIn, InteractionHand handIn, ItemStack copiedStack);
}
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ private BlockData() {
}

// @formatter:off
public static void register(final DataProviderRegistrator registrator) {
@SuppressWarnings("deprecation") public static void register(final DataProviderRegistrator registrator) {
registrator
.asImmutable(Block.class)
.create(Keys.BLAST_RESISTANCE)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -297,10 +297,10 @@ public static InteractItemEvent.Primary callInteractItemEventPrimary(final net.m
}
}

public static InteractItemEvent.Secondary callInteractItemEventSecondary(final net.minecraft.world.entity.player.Player player, final ItemStack stack, final InteractionHand hand) {
public static InteractItemEvent.Secondary.Pre callInteractItemEventSecondary(final net.minecraft.world.entity.player.Player player, final ItemStack stack, final InteractionHand hand) {
try (final CauseStackManager.StackFrame frame = PhaseTracker.getCauseStackManager().pushCauseFrame()) {
SpongeCommonEventFactory.applyCommonInteractContext(player, stack, hand, null, null, frame);
final InteractItemEvent.Secondary event = SpongeEventFactory.createInteractItemEventSecondary(frame.currentCause(), ItemStackUtil.snapshotOf(stack));
final var event = SpongeEventFactory.createInteractItemEventSecondaryPre(frame.currentCause(), ItemStackUtil.snapshotOf(stack));
SpongeCommon.post(event);
return event;
}
Expand Down Expand Up @@ -339,10 +339,10 @@ public static InteractBlockEvent.Primary callInteractBlockEventPrimary(final Ser
}
}

public static InteractBlockEvent.Secondary callInteractBlockEventSecondary(final net.minecraft.world.entity.player.Player player, final ItemStack heldItem, final Vector3d hitVec, final BlockSnapshot targetBlock, final Direction targetSide, final InteractionHand hand) {
public static InteractBlockEvent.Secondary.Pre callInteractBlockEventSecondary(final net.minecraft.world.entity.player.Player player, final ItemStack heldItem, final Vector3d hitVec, final BlockSnapshot targetBlock, final Direction targetSide, final InteractionHand hand) {
try (final CauseStackManager.StackFrame frame = PhaseTracker.getCauseStackManager().pushCauseFrame()) {
SpongeCommonEventFactory.applyCommonInteractContext(player, heldItem, hand, targetBlock, null, frame);
final InteractBlockEvent.Secondary event = SpongeEventFactory.createInteractBlockEventSecondary(frame.currentCause(),
final InteractBlockEvent.Secondary.Pre event = SpongeEventFactory.createInteractBlockEventSecondaryPre(frame.currentCause(),
Tristate.UNDEFINED, Tristate.UNDEFINED, Tristate.UNDEFINED, Tristate.UNDEFINED, targetBlock, hitVec,
targetSide);
SpongeCommon.post(event);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,13 @@
import java.util.Deque;

public class EffectTransactor implements AutoCloseable {
final @Nullable ResultingTransactionBySideEffect previousEffect;
final @Nullable ResultingTransactionBySideEffect<?, ?, ?, ?> previousEffect;
public final @Nullable GameTransaction<@NonNull ?> parent;
private final TransactionalCaptureSupplier supplier;
private final ResultingTransactionBySideEffect effect;
private final ResultingTransactionBySideEffect<?, ?, ?, ?> effect;

EffectTransactor(final ResultingTransactionBySideEffect effect, final @Nullable GameTransaction<@NonNull ?> parent,
final @Nullable ResultingTransactionBySideEffect previousEffect, final TransactionalCaptureSupplier transactor) {
EffectTransactor(final ResultingTransactionBySideEffect<?, ?, ?, ?> effect, final @Nullable GameTransaction<@NonNull ?> parent,
final @Nullable ResultingTransactionBySideEffect<?, ?, ?, ?> previousEffect, final TransactionalCaptureSupplier transactor) {
/*
| ChangeBlock(1) <- head will be RemoveTileEntity(1), tail is still RemoveTileentity(1)
| |- RemoveTileEntity <- Head will be ChangeBlock(2) tail is still ChangeBlock(2)
Expand All @@ -55,7 +55,7 @@ public void close() {
&& this.parent.sideEffects != null
&& this.parent.getEffects().peekLast() == this.effect
) {
final Deque<ResultingTransactionBySideEffect> effects = this.parent.getEffects();
final Deque<ResultingTransactionBySideEffect<?, ?, ?, ?>> effects = this.parent.getEffects();
effects.removeLast();
if (effects.isEmpty()) {
this.parent.sideEffects = null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
import org.spongepowered.api.event.Event;

@DefaultQualifier(NonNull.class)
record EventByTransaction<T extends Event & Cancellable>(
public record EventByTransaction<T extends Event & Cancellable>(
T event,
ImmutableList<GameTransaction<T>> transactions,
@Nullable GameTransaction<@NonNull ?> parent,
Expand Down
Loading

0 comments on commit 21d830f

Please sign in to comment.