Skip to content

Commit 9fd2b3d

Browse files
committed
Fix: Poison Buckets Fluidhandler Capability
closes #289 closes #287
1 parent 8cdcfd6 commit 9fd2b3d

File tree

3 files changed

+35
-4
lines changed

3 files changed

+35
-4
lines changed

src/main/java/io/github/razordevs/deep_aether/DeepAether.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import io.github.razordevs.deep_aether.init.*;
3131
import io.github.razordevs.deep_aether.item.component.DADataComponentTypes;
3232
import io.github.razordevs.deep_aether.item.gear.DAArmorMaterials;
33+
import io.github.razordevs.deep_aether.item.misc.SkyrootPoisonBucketWrapper;
3334
import io.github.razordevs.deep_aether.networking.attachment.DAAttachments;
3435
import io.github.razordevs.deep_aether.networking.packet.DAPlayerSyncPacket;
3536
import io.github.razordevs.deep_aether.recipe.DARecipeSerializers;
@@ -70,12 +71,15 @@
7071
import net.neoforged.fml.common.Mod;
7172
import net.neoforged.fml.config.ModConfig;
7273
import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent;
74+
import net.neoforged.neoforge.capabilities.Capabilities;
75+
import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent;
7376
import net.neoforged.neoforge.common.NeoForgeMod;
7477
import net.neoforged.neoforge.common.data.DatapackBuiltinEntriesProvider;
7578
import net.neoforged.neoforge.common.data.ExistingFileHelper;
7679
import net.neoforged.neoforge.data.event.GatherDataEvent;
7780
import net.neoforged.neoforge.event.AddPackFindersEvent;
7881
import net.neoforged.neoforge.fluids.FluidInteractionRegistry;
82+
import net.neoforged.neoforge.fluids.capability.wrappers.FluidBucketWrapper;
7983
import net.neoforged.neoforge.network.event.RegisterPayloadHandlersEvent;
8084
import net.neoforged.neoforge.network.registration.PayloadRegistrar;
8185
import org.slf4j.Logger;
@@ -118,6 +122,7 @@ public static boolean IsHalloweenContentEnabled() {
118122
public DeepAether(ModContainer mod, IEventBus bus, Dist dist) {
119123
bus.addListener(this::dataSetup);
120124
bus.addListener(this::commonSetup);
125+
bus.addListener(this::registerCapabilities);
121126
bus.addListener(this::registerPackets);
122127
bus.addListener(this::addAetherAdditionalResourcesPack);
123128

@@ -242,6 +247,14 @@ private void registerFluidInteractions(){
242247
));
243248
}
244249

250+
251+
252+
public void registerCapabilities(RegisterCapabilitiesEvent event) {
253+
event.registerItem(Capabilities.FluidHandler.ITEM, (stack, ctx) -> new FluidBucketWrapper(stack), DAItems.PLACEABLE_POISON_BUCKET.get());
254+
event.registerItem(Capabilities.FluidHandler.ITEM, (stack, ctx) -> new SkyrootPoisonBucketWrapper(stack), AetherItems.SKYROOT_POISON_BUCKET.get());
255+
256+
}
257+
245258
private void getFlawlessBossDrop(EntityType<?> type, String string, Item fallBack) {
246259
if(string.equals("null")) {
247260
DAGeneralEvents.FLAWLESS_BOSS_DROP.put(type, null);

src/main/java/io/github/razordevs/deep_aether/block/behavior/DABlockInteractionBehavior.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import net.minecraft.stats.Stats;
1818
import net.minecraft.world.Containers;
1919
import net.minecraft.world.InteractionResult;
20-
import net.minecraft.world.MenuProvider;
2120
import net.minecraft.world.entity.player.Player;
2221
import net.minecraft.world.item.Item;
2322
import net.minecraft.world.item.ItemStack;
@@ -148,7 +147,7 @@ private static void handleSkyrootPoisonBucket(PlayerInteractEvent.RightClickBloc
148147
if (blockRayTraceResult.getType() == HitResult.Type.MISS ||
149148
blockRayTraceResult.getType() != HitResult.Type.BLOCK ||
150149
blockHitState.getBlock() == Blocks.CAULDRON ||
151-
(!(player.isShiftKeyDown()) && blockHitState.hasBlockEntity() && (level.getBlockEntity(blockRayTraceResult.getBlockPos()) instanceof MenuProvider))) {
150+
(!(player.isShiftKeyDown()) && blockHitState.hasBlockEntity())) {
152151
event.setCancellationResult(InteractionResult.PASS);
153152
}
154153
else {
@@ -168,8 +167,8 @@ private static void handleSkyrootPoisonBucket(PlayerInteractEvent.RightClickBloc
168167
level.playSound(null, relativePos, SoundEvents.BUCKET_EMPTY, SoundSource.BLOCKS, 1.0F, 1.0F);
169168
level.gameEvent(null, GameEvent.FLUID_PLACE, relativePos);
170169
event.setCancellationResult(InteractionResult.SUCCESS);
170+
event.setCanceled(true);
171171
}
172172
}
173-
event.setCanceled(true);
174173
}
175-
}
174+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package io.github.razordevs.deep_aether.item.misc;
2+
3+
import com.aetherteam.aether.item.miscellaneous.bucket.SkyrootBucketWrapper;
4+
import io.github.razordevs.deep_aether.init.DAFluids;
5+
import net.minecraft.world.item.ItemStack;
6+
import net.neoforged.neoforge.fluids.FluidStack;
7+
import net.neoforged.neoforge.fluids.FluidType;
8+
9+
10+
public class SkyrootPoisonBucketWrapper extends SkyrootBucketWrapper {
11+
public SkyrootPoisonBucketWrapper(ItemStack container) {
12+
super(container);
13+
}
14+
15+
@Override
16+
public FluidStack getFluid() {
17+
return new FluidStack(DAFluids.POISON_FLUID.get(), FluidType.BUCKET_VOLUME);
18+
}
19+
}

0 commit comments

Comments
 (0)