diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/controls/ContraptionDisableActorPacket.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/controls/ContraptionDisableActorPacket.java index 108cf8349..57d421e72 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/controls/ContraptionDisableActorPacket.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/controls/ContraptionDisableActorPacket.java @@ -2,7 +2,6 @@ package com.simibubi.create.content.contraptions.components.actors.controls; import java.util.Iterator; import java.util.List; -import java.util.function.Supplier; import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity; import com.simibubi.create.content.contraptions.components.structureMovement.Contraption; @@ -40,35 +39,32 @@ public class ContraptionDisableActorPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> { - Entity entityByID = Minecraft.getInstance().level.getEntity(entityID); - if (!(entityByID instanceof AbstractContraptionEntity ace)) - return; - - Contraption contraption = ace.getContraption(); - List disabledActors = contraption.getDisabledActors(); - if (filter.isEmpty()) - disabledActors.clear(); - - if (!enable) { - disabledActors.add(filter); - contraption.setActorsActive(filter, false); - return; - } + public boolean handle(Context context) { + context.enqueueWork(() -> { + Entity entityByID = Minecraft.getInstance().level.getEntity(entityID); + if (!(entityByID instanceof AbstractContraptionEntity ace)) + return; + + Contraption contraption = ace.getContraption(); + List disabledActors = contraption.getDisabledActors(); + if (filter.isEmpty()) + disabledActors.clear(); + + if (!enable) { + disabledActors.add(filter); + contraption.setActorsActive(filter, false); + return; + } - for (Iterator iterator = disabledActors.iterator(); iterator.hasNext();) { - ItemStack next = iterator.next(); - if (ContraptionControlsMovement.isSameFilter(next, filter) || next.isEmpty()) - iterator.remove(); - } - - contraption.setActorsActive(filter, true); - - }); - context.get() - .setPacketHandled(true); + for (Iterator iterator = disabledActors.iterator(); iterator.hasNext();) { + ItemStack next = iterator.next(); + if (ContraptionControlsMovement.isSameFilter(next, filter) || next.isEmpty()) + iterator.remove(); + } + + contraption.setActorsActive(filter, true); + }); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionBlockChangedPacket.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionBlockChangedPacket.java index b66d4a2c9..b26436386 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionBlockChangedPacket.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionBlockChangedPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.components.structureMovement; -import java.util.function.Supplier; - import com.simibubi.create.foundation.networking.SimplePacketBase; import net.minecraft.core.BlockPos; @@ -38,12 +36,10 @@ public class ContraptionBlockChangedPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> DistExecutor.unsafeRunWhenOn(Dist.CLIENT, - () -> () -> AbstractContraptionEntity.handleBlockChangedPacket(this))); - context.get() - .setPacketHandled(true); + public boolean handle(Context context) { + context.enqueueWork(() -> DistExecutor.unsafeRunWhenOn(Dist.CLIENT, + () -> () -> AbstractContraptionEntity.handleBlockChangedPacket(this))); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionDisassemblyPacket.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionDisassemblyPacket.java index 1020cfebc..96d2e9da0 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionDisassemblyPacket.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionDisassemblyPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.components.structureMovement; -import java.util.function.Supplier; - import com.simibubi.create.foundation.networking.SimplePacketBase; import net.minecraft.network.FriendlyByteBuf; @@ -31,12 +29,10 @@ public class ContraptionDisassemblyPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> DistExecutor.unsafeRunWhenOn(Dist.CLIENT, - () -> () -> AbstractContraptionEntity.handleDisassemblyPacket(this))); - context.get() - .setPacketHandled(true); + public boolean handle(Context context) { + context.enqueueWork(() -> DistExecutor.unsafeRunWhenOn(Dist.CLIENT, + () -> () -> AbstractContraptionEntity.handleDisassemblyPacket(this))); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionRelocationPacket.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionRelocationPacket.java index 5ff0fa20b..580d6eed2 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionRelocationPacket.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionRelocationPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.components.structureMovement; -import java.util.function.Supplier; - import com.simibubi.create.foundation.networking.SimplePacketBase; import net.minecraft.network.FriendlyByteBuf; @@ -27,12 +25,10 @@ public class ContraptionRelocationPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> DistExecutor.unsafeRunWhenOn(Dist.CLIENT, - () -> () -> OrientedContraptionEntity.handleRelocationPacket(this))); - context.get() - .setPacketHandled(true); + public boolean handle(Context context) { + context.enqueueWork(() -> DistExecutor.unsafeRunWhenOn(Dist.CLIENT, + () -> () -> OrientedContraptionEntity.handleRelocationPacket(this))); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionStallPacket.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionStallPacket.java index 6f7cdf3f9..baf0b211f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionStallPacket.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionStallPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.components.structureMovement; -import java.util.function.Supplier; - import com.simibubi.create.foundation.networking.SimplePacketBase; import net.minecraft.network.FriendlyByteBuf; @@ -41,10 +39,10 @@ public class ContraptionStallPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get().enqueueWork( - () -> DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> AbstractContraptionEntity.handleStallPacket(this))); - context.get().setPacketHandled(true); + public boolean handle(Context context) { + context.enqueueWork( + () -> DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> AbstractContraptionEntity.handleStallPacket(this))); + return true; } private void writeAll(FriendlyByteBuf buffer, double... doubles) { diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/TrainCollisionPacket.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/TrainCollisionPacket.java index f68876821..e152aa504 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/TrainCollisionPacket.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/TrainCollisionPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.components.structureMovement; -import java.util.function.Supplier; - import com.simibubi.create.content.logistics.trains.entity.CarriageContraptionEntity; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -36,10 +34,9 @@ public class TrainCollisionPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - Context ctx = context.get(); - ctx.enqueueWork(() -> { - ServerPlayer player = ctx.getSender(); + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer player = context.getSender(); Level level = player.level; Entity entity = level.getEntity(contraptionEntityId); @@ -50,7 +47,7 @@ public class TrainCollisionPacket extends SimplePacketBase { player.level.playSound(player, entity.blockPosition(), SoundEvents.PLAYER_ATTACK_CRIT, SoundSource.NEUTRAL, 1, .75f); }); - ctx.setPacketHandled(true); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorFloorListPacket.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorFloorListPacket.java index 972d9bf02..02f60a621 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorFloorListPacket.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorFloorListPacket.java @@ -2,7 +2,6 @@ package com.simibubi.create.content.contraptions.components.structureMovement.el import java.util.ArrayList; import java.util.List; -import java.util.function.Supplier; import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity; import com.simibubi.create.foundation.networking.AllPackets; @@ -47,21 +46,18 @@ public class ElevatorFloorListPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> { + public boolean handle(Context context) { + context.enqueueWork(() -> { + Entity entityByID = Minecraft.getInstance().level.getEntity(entityId); + if (!(entityByID instanceof AbstractContraptionEntity ace)) + return; + if (!(ace.getContraption()instanceof ElevatorContraption ec)) + return; - Entity entityByID = Minecraft.getInstance().level.getEntity(entityId); - if (!(entityByID instanceof AbstractContraptionEntity ace)) - return; - if (!(ace.getContraption()instanceof ElevatorContraption ec)) - return; - - ec.namesList = floorsList; - ec.syncControlDisplays(); - }); - context.get() - .setPacketHandled(true); + ec.namesList = floorsList; + ec.syncControlDisplays(); + }); + return true; } public static class RequestFloorList extends SimplePacketBase { @@ -82,10 +78,9 @@ public class ElevatorFloorListPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - Context ctx = context.get(); - ctx.enqueueWork(() -> { - ServerPlayer sender = ctx.getSender(); + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer sender = context.getSender(); Entity entityByID = sender.getLevel() .getEntity(entityId); if (!(entityByID instanceof AbstractContraptionEntity ace)) @@ -95,7 +90,7 @@ public class ElevatorFloorListPacket extends SimplePacketBase { AllPackets.getChannel().send(PacketDistributor.PLAYER.with(() -> sender), new ElevatorFloorListPacket(ace, ec.namesList)); }); - ctx.setPacketHandled(true); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorTargetFloorPacket.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorTargetFloorPacket.java index 09d63dd87..0bc29f19d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorTargetFloorPacket.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorTargetFloorPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.components.structureMovement.elevator; -import java.util.function.Supplier; - import com.simibubi.create.AllBlocks; import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -36,10 +34,9 @@ public class ElevatorTargetFloorPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - Context ctx = context.get(); - ctx.enqueueWork(() -> { - ServerPlayer sender = ctx.getSender(); + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer sender = context.getSender(); Entity entityByID = sender.getLevel() .getEntity(entityId); if (!(entityByID instanceof AbstractContraptionEntity ace)) @@ -69,7 +66,7 @@ public class ElevatorTargetFloorPacket extends SimplePacketBase { elevatorColumn.target(targetY); elevatorColumn.markDirty(); }); - ctx.setPacketHandled(true); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryContraptionUpdatePacket.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryContraptionUpdatePacket.java index 2fb4b9af2..cce728597 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryContraptionUpdatePacket.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryContraptionUpdatePacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.components.structureMovement.gantry; -import java.util.function.Supplier; - import com.simibubi.create.foundation.networking.SimplePacketBase; import net.minecraft.network.FriendlyByteBuf; @@ -35,12 +33,10 @@ public class GantryContraptionUpdatePacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get() - .enqueueWork( - () -> DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> GantryContraptionEntity.handlePacket(this))); - context.get() - .setPacketHandled(true); + public boolean handle(Context context) { + context.enqueueWork( + () -> DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> GantryContraptionEntity.handlePacket(this))); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/GlueEffectPacket.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/GlueEffectPacket.java index ddbce17e0..6cec474aa 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/GlueEffectPacket.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/GlueEffectPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.components.structureMovement.glue; -import java.util.function.Supplier; - import com.simibubi.create.foundation.networking.SimplePacketBase; import net.minecraft.client.Minecraft; @@ -9,7 +7,6 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.fml.DistExecutor; import net.minecraftforge.network.NetworkEvent.Context; @@ -31,21 +28,22 @@ public class GlueEffectPacket extends SimplePacketBase { fullBlock = buffer.readBoolean(); } + @Override public void write(FriendlyByteBuf buffer) { buffer.writeBlockPos(pos); buffer.writeByte(direction.get3DDataValue()); buffer.writeBoolean(fullBlock); } - @OnlyIn(Dist.CLIENT) - public void handle(Supplier context) { - context.get().enqueueWork(() -> DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> { + @Override + public boolean handle(Context context) { + context.enqueueWork(() -> DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> { Minecraft mc = Minecraft.getInstance(); if (!mc.player.blockPosition().closerThan(pos, 100)) return; SuperGlueItem.spawnParticles(mc.level, pos, direction, fullBlock); })); - context.get().setPacketHandled(true); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueRemovalPacket.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueRemovalPacket.java index cab9c41cd..323d1eb32 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueRemovalPacket.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueRemovalPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.components.structureMovement.glue; -import java.util.function.Supplier; - import com.simibubi.create.AllSoundEvents; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -33,10 +31,9 @@ public class SuperGlueRemovalPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - Context ctx = context.get(); - ctx.enqueueWork(() -> { - ServerPlayer player = ctx.getSender(); + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer player = context.getSender(); Entity entity = player.level.getEntity(entityId); if (!(entity instanceof SuperGlueEntity superGlue)) return; @@ -47,7 +44,7 @@ public class SuperGlueRemovalPacket extends SimplePacketBase { superGlue.spawnParticles(); entity.discard(); }); - ctx.setPacketHandled(true); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueSelectionPacket.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueSelectionPacket.java index ddc5b49ea..68fe63a6a 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueSelectionPacket.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueSelectionPacket.java @@ -1,7 +1,6 @@ package com.simibubi.create.content.contraptions.components.structureMovement.glue; import java.util.Set; -import java.util.function.Supplier; import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -36,10 +35,9 @@ public class SuperGlueSelectionPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - Context ctx = context.get(); - ctx.enqueueWork(() -> { - ServerPlayer player = ctx.getSender(); + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer player = context.getSender(); double range = player.getAttribute(ForgeMod.REACH_DISTANCE.get()) .getValue() + 2; @@ -64,7 +62,7 @@ public class SuperGlueSelectionPacket extends SimplePacketBase { AllAdvancements.SUPER_GLUE.awardTo(player); }); - ctx.setPacketHandled(true); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/ControlsInputPacket.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/ControlsInputPacket.java index e1800777b..9e97d98aa 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/ControlsInputPacket.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/ControlsInputPacket.java @@ -3,7 +3,6 @@ package com.simibubi.create.content.contraptions.components.structureMovement.in import java.util.ArrayList; import java.util.Collection; import java.util.UUID; -import java.util.function.Supplier; import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -55,10 +54,9 @@ public class ControlsInputPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - Context ctx = context.get(); - ctx.enqueueWork(() -> { - ServerPlayer player = ctx.getSender(); + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer player = context.getSender(); Level world = player.getCommandSenderWorld(); UUID uniqueID = player.getUUID(); @@ -77,7 +75,7 @@ public class ControlsInputPacket extends SimplePacketBase { .closerThan(player.position(), 16)) ControlsServerHandler.receivePressed(world, ace, controlsPos, uniqueID, activatedButtons, press); }); - ctx.setPacketHandled(true); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/ControlsStopControllingPacket.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/ControlsStopControllingPacket.java index 088f8bb50..172f28aa7 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/ControlsStopControllingPacket.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/ControlsStopControllingPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.components.structureMovement.interaction.controls; -import java.util.function.Supplier; - import com.simibubi.create.foundation.networking.SimplePacketBase; import net.minecraft.network.FriendlyByteBuf; @@ -17,11 +15,9 @@ public class ControlsStopControllingPacket extends SimplePacketBase { public void write(FriendlyByteBuf buffer) {} @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(ControlsHandler::stopControlling); - context.get() - .setPacketHandled(true); + public boolean handle(Context context) { + context.enqueueWork(ControlsHandler::stopControlling); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/HonkPacket.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/HonkPacket.java index 152e2582f..19828b979 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/HonkPacket.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/HonkPacket.java @@ -1,7 +1,6 @@ package com.simibubi.create.content.contraptions.components.structureMovement.interaction.controls; import java.util.UUID; -import java.util.function.Supplier; import com.simibubi.create.Create; import com.simibubi.create.content.logistics.trains.entity.Train; @@ -38,10 +37,9 @@ public class HonkPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - Context c = context.get(); - c.enqueueWork(() -> { - ServerPlayer sender = c.getSender(); + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer sender = context.getSender(); boolean clientSide = sender == null; Train train = Create.RAILWAYS.sided(clientSide ? null : sender.level).trains.get(trainId); if (train == null) @@ -58,7 +56,7 @@ public class HonkPacket extends SimplePacketBase { } }); - c.setPacketHandled(true); + return true; } public static class Serverbound extends HonkPacket { diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/TrainHUDUpdatePacket.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/TrainHUDUpdatePacket.java index d70180213..f4fcd4d2b 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/TrainHUDUpdatePacket.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/TrainHUDUpdatePacket.java @@ -1,7 +1,6 @@ package com.simibubi.create.content.contraptions.components.structureMovement.interaction.controls; import java.util.UUID; -import java.util.function.Supplier; import com.simibubi.create.Create; import com.simibubi.create.content.logistics.trains.entity.Train; @@ -47,10 +46,9 @@ public class TrainHUDUpdatePacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - Context c = context.get(); - c.enqueueWork(() -> { - ServerPlayer sender = c.getSender(); + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer sender = context.getSender(); boolean clientSide = sender == null; Train train = Create.RAILWAYS.sided(clientSide ? null : sender.level).trains.get(trainId); if (train == null) @@ -62,9 +60,8 @@ public class TrainHUDUpdatePacket extends SimplePacketBase { train.speed = speed; train.fuelTicks = fuelTicks; } - }); - c.setPacketHandled(true); + return true; } public static class Serverbound extends TrainHUDUpdatePacket { diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/sync/ClientMotionPacket.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/sync/ClientMotionPacket.java index aee236122..f687722c9 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/sync/ClientMotionPacket.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/sync/ClientMotionPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.components.structureMovement.sync; -import java.util.function.Supplier; - import com.simibubi.create.foundation.networking.AllPackets; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -40,26 +38,23 @@ public class ClientMotionPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> { - ServerPlayer sender = context.get() - .getSender(); - if (sender == null) - return; - sender.setDeltaMovement(motion); - sender.setOnGround(onGround); - if (onGround) { - sender.causeFallDamage(sender.fallDistance, 1, DamageSource.FALL); - sender.fallDistance = 0; - sender.connection.aboveGroundTickCount = 0; - sender.connection.aboveGroundVehicleTickCount = 0; - } - AllPackets.getChannel().send(PacketDistributor.TRACKING_ENTITY.with(() -> sender), - new LimbSwingUpdatePacket(sender.getId(), sender.position(), limbSwing)); - }); - context.get() - .setPacketHandled(true); + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer sender = context.getSender(); + if (sender == null) + return; + sender.setDeltaMovement(motion); + sender.setOnGround(onGround); + if (onGround) { + sender.causeFallDamage(sender.fallDistance, 1, DamageSource.FALL); + sender.fallDistance = 0; + sender.connection.aboveGroundTickCount = 0; + sender.connection.aboveGroundVehicleTickCount = 0; + } + AllPackets.getChannel().send(PacketDistributor.TRACKING_ENTITY.with(() -> sender), + new LimbSwingUpdatePacket(sender.getId(), sender.position(), limbSwing)); + }); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/sync/ContraptionFluidPacket.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/sync/ContraptionFluidPacket.java index 5624adc33..d49f22bad 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/sync/ContraptionFluidPacket.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/sync/ContraptionFluidPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.components.structureMovement.sync; -import java.util.function.Supplier; - import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -38,16 +36,14 @@ public class ContraptionFluidPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> { - Entity entityByID = Minecraft.getInstance().level.getEntity(entityId); - if (!(entityByID instanceof AbstractContraptionEntity)) - return; - AbstractContraptionEntity contraptionEntity = (AbstractContraptionEntity) entityByID; - contraptionEntity.getContraption().handleContraptionFluidPacket(localPos, containedFluid); - }); - context.get() - .setPacketHandled(true); + public boolean handle(Context context) { + context.enqueueWork(() -> { + Entity entityByID = Minecraft.getInstance().level.getEntity(entityId); + if (!(entityByID instanceof AbstractContraptionEntity)) + return; + AbstractContraptionEntity contraptionEntity = (AbstractContraptionEntity) entityByID; + contraptionEntity.getContraption().handleContraptionFluidPacket(localPos, containedFluid); + }); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/sync/ContraptionInteractionPacket.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/sync/ContraptionInteractionPacket.java index 4d4492ca1..dd7655a7e 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/sync/ContraptionInteractionPacket.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/sync/ContraptionInteractionPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.components.structureMovement.sync; -import java.util.function.Supplier; - import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -46,9 +44,9 @@ public class ContraptionInteractionPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get().enqueueWork(() -> { - ServerPlayer sender = context.get().getSender(); + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer sender = context.getSender(); if (sender == null) return; Entity entityByID = sender.getLevel().getEntity(target); @@ -66,7 +64,7 @@ public class ContraptionInteractionPacket extends SimplePacketBase { if (contraptionEntity.handlePlayerInteraction(sender, localPos, face, interactionHand)) sender.swing(interactionHand, true); }); - context.get().setPacketHandled(true); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/sync/ContraptionSeatMappingPacket.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/sync/ContraptionSeatMappingPacket.java index ac2582af3..4f07daddd 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/sync/ContraptionSeatMappingPacket.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/sync/ContraptionSeatMappingPacket.java @@ -3,7 +3,6 @@ package com.simibubi.create.content.contraptions.components.structureMovement.sy import java.util.HashMap; import java.util.Map; import java.util.UUID; -import java.util.function.Supplier; import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -52,29 +51,27 @@ public class ContraptionSeatMappingPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> { - Entity entityByID = Minecraft.getInstance().level.getEntity(entityID); - if (!(entityByID instanceof AbstractContraptionEntity)) + public boolean handle(Context context) { + context.enqueueWork(() -> { + Entity entityByID = Minecraft.getInstance().level.getEntity(entityID); + if (!(entityByID instanceof AbstractContraptionEntity)) + return; + AbstractContraptionEntity contraptionEntity = (AbstractContraptionEntity) entityByID; + + if (dismountedID != -1) { + Entity dismountedByID = Minecraft.getInstance().level.getEntity(dismountedID); + if (Minecraft.getInstance().player != dismountedByID) return; - AbstractContraptionEntity contraptionEntity = (AbstractContraptionEntity) entityByID; - - if (dismountedID != -1) { - Entity dismountedByID = Minecraft.getInstance().level.getEntity(dismountedID); - if (Minecraft.getInstance().player != dismountedByID) - return; - Vec3 transformedVector = contraptionEntity.getPassengerPosition(dismountedByID, 1); - if (transformedVector != null) - dismountedByID.getPersistentData() - .put("ContraptionDismountLocation", VecHelper.writeNBT(transformedVector)); - } - - contraptionEntity.getContraption() - .setSeatMapping(mapping); - }); - context.get() - .setPacketHandled(true); + Vec3 transformedVector = contraptionEntity.getPassengerPosition(dismountedByID, 1); + if (transformedVector != null) + dismountedByID.getPersistentData() + .put("ContraptionDismountLocation", VecHelper.writeNBT(transformedVector)); + } + + contraptionEntity.getContraption() + .setSeatMapping(mapping); + }); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/sync/LimbSwingUpdatePacket.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/sync/LimbSwingUpdatePacket.java index 5d0bdfd38..98582e613 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/sync/LimbSwingUpdatePacket.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/sync/LimbSwingUpdatePacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.components.structureMovement.sync; -import java.util.function.Supplier; - import com.simibubi.create.foundation.networking.SimplePacketBase; import net.minecraft.client.Minecraft; @@ -40,23 +38,21 @@ public class LimbSwingUpdatePacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> { - ClientLevel world = Minecraft.getInstance().level; - if (world == null) - return; - Entity entity = world.getEntity(entityId); - if (entity == null) - return; - CompoundTag data = entity.getPersistentData(); - data.putInt("LastOverrideLimbSwingUpdate", 0); - data.putFloat("OverrideLimbSwing", limbSwing); - entity.lerpTo(position.x, position.y, position.z, entity.getYRot(), - entity.getXRot(), 2, false); - }); - context.get() - .setPacketHandled(true); + public boolean handle(Context context) { + context.enqueueWork(() -> { + ClientLevel world = Minecraft.getInstance().level; + if (world == null) + return; + Entity entity = world.getEntity(entityId); + if (entity == null) + return; + CompoundTag data = entity.getPersistentData(); + data.putInt("LastOverrideLimbSwingUpdate", 0); + data.putFloat("OverrideLimbSwing", limbSwing); + entity.lerpTo(position.x, position.y, position.z, entity.getYRot(), + entity.getXRot(), 2, false); + }); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/CouplingCreationPacket.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/CouplingCreationPacket.java index 7fbaf3479..5ca463020 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/CouplingCreationPacket.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/CouplingCreationPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.components.structureMovement.train; -import java.util.function.Supplier; - import com.simibubi.create.foundation.networking.SimplePacketBase; import net.minecraft.network.FriendlyByteBuf; @@ -30,16 +28,13 @@ public class CouplingCreationPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> { - ServerPlayer sender = context.get() - .getSender(); - if (sender != null) - CouplingHandler.tryToCoupleCarts(sender, sender.level, id1, id2); - }); - context.get() - .setPacketHandled(true); + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer sender = context.getSender(); + if (sender != null) + CouplingHandler.tryToCoupleCarts(sender, sender.level, id1, id2); + }); + return true; } -} \ No newline at end of file +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/capability/MinecartControllerUpdatePacket.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/capability/MinecartControllerUpdatePacket.java index 81e749bc5..32dde2ef2 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/capability/MinecartControllerUpdatePacket.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/capability/MinecartControllerUpdatePacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.components.structureMovement.train.capability; -import java.util.function.Supplier; - import com.simibubi.create.foundation.networking.SimplePacketBase; import net.minecraft.client.Minecraft; @@ -37,11 +35,9 @@ public class MinecartControllerUpdatePacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> this::handleCL)); - context.get() - .setPacketHandled(true); + public boolean handle(Context context) { + context.enqueueWork(() -> DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> this::handleCL)); + return true; } @OnlyIn(Dist.CLIENT) diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidSplashPacket.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidSplashPacket.java index f6bd734b0..a5314d4ff 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidSplashPacket.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidSplashPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.fluids.actors; -import java.util.function.Supplier; - import com.simibubi.create.content.contraptions.fluids.FluidFX; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -29,21 +27,21 @@ public class FluidSplashPacket extends SimplePacketBase { fluid = buffer.readFluidStack(); } + @Override public void write(FriendlyByteBuf buffer) { buffer.writeBlockPos(pos); buffer.writeFluidStack(fluid); } - public void handle(Supplier ctx) { - ctx.get() - .enqueueWork(() -> DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> { - if (Minecraft.getInstance().player.position() - .distanceTo(new Vec3(pos.getX(), pos.getY(), pos.getZ())) > 100) - return; - FluidFX.splash(pos, fluid); - })); - ctx.get() - .setPacketHandled(true); + @Override + public boolean handle(Context context) { + context.enqueueWork(() -> DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> { + if (Minecraft.getInstance().player.position() + .distanceTo(new Vec3(pos.getX(), pos.getY(), pos.getZ())) > 100) + return; + FluidFX.splash(pos, fluid); + })); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeRenderer.java index 8ea2d0779..3945f9e51 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeRenderer.java @@ -5,7 +5,6 @@ import com.jozufozu.flywheel.core.PartialModel; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import com.simibubi.create.AllPartialModels; -import com.simibubi.create.content.contraptions.base.KineticBlockEntity; import com.simibubi.create.content.contraptions.relays.encased.ShaftRenderer; import com.simibubi.create.content.contraptions.relays.gauge.GaugeBlock.Type; import com.simibubi.create.foundation.render.CachedBufferer; @@ -19,7 +18,7 @@ import net.minecraft.core.Direction; import net.minecraft.util.Mth; import net.minecraft.world.level.block.state.BlockState; -public class GaugeRenderer extends ShaftRenderer { +public class GaugeRenderer extends ShaftRenderer { protected GaugeBlock.Type type; @@ -37,7 +36,7 @@ public class GaugeRenderer extends ShaftRenderer { } @Override - protected void renderSafe(KineticBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, + protected void renderSafe(GaugeBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light, int overlay) { if (Backend.canUseInstancing(be.getLevel())) return; diff --git a/src/main/java/com/simibubi/create/content/curiosities/armor/NetheriteDivingHandler.java b/src/main/java/com/simibubi/create/content/curiosities/armor/NetheriteDivingHandler.java index 340960e5c..178a47fd6 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/armor/NetheriteDivingHandler.java +++ b/src/main/java/com/simibubi/create/content/curiosities/armor/NetheriteDivingHandler.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.curiosities.armor; -import java.util.function.Supplier; - import com.simibubi.create.AllItems; import com.simibubi.create.foundation.networking.AllPackets; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -137,14 +135,14 @@ public final class NetheriteDivingHandler { } @Override - public void handle(Supplier context) { - context.get().enqueueWork(() -> { + public boolean handle(Context context) { + context.enqueueWork(() -> { Entity entity = Minecraft.getInstance().level.getEntity(entityId); if (entity != null) { entity.getPersistentData().putBoolean(FIRE_IMMUNE_KEY, fireImmune); } }); - context.get().setPacketHandled(true); + return true; } } } diff --git a/src/main/java/com/simibubi/create/content/curiosities/bell/SoulPulseEffectPacket.java b/src/main/java/com/simibubi/create/content/curiosities/bell/SoulPulseEffectPacket.java index 57d8bbcce..0fa2bb6dc 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/bell/SoulPulseEffectPacket.java +++ b/src/main/java/com/simibubi/create/content/curiosities/bell/SoulPulseEffectPacket.java @@ -1,13 +1,11 @@ package com.simibubi.create.content.curiosities.bell; -import java.util.function.Supplier; - import com.simibubi.create.CreateClient; import com.simibubi.create.foundation.networking.SimplePacketBase; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; -import net.minecraftforge.network.NetworkEvent; +import net.minecraftforge.network.NetworkEvent.Context; public class SoulPulseEffectPacket extends SimplePacketBase { @@ -35,11 +33,11 @@ public class SoulPulseEffectPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get().enqueueWork(() -> { + public boolean handle(Context context) { + context.enqueueWork(() -> { CreateClient.SOUL_PULSE_EFFECT_HANDLER.addPulse(new SoulPulseEffect(pos, distance, canOverlap)); }); - context.get().setPacketHandled(true); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/curiosities/symmetry/ConfigureSymmetryWandPacket.java b/src/main/java/com/simibubi/create/content/curiosities/symmetry/ConfigureSymmetryWandPacket.java index f62e4eca1..0f80ca5a9 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/symmetry/ConfigureSymmetryWandPacket.java +++ b/src/main/java/com/simibubi/create/content/curiosities/symmetry/ConfigureSymmetryWandPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.curiosities.symmetry; -import java.util.function.Supplier; - import com.simibubi.create.content.curiosities.symmetry.mirror.SymmetryMirror; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -33,9 +31,9 @@ public class ConfigureSymmetryWandPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get().enqueueWork(() -> { - ServerPlayer player = context.get().getSender(); + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer player = context.getSender(); if (player == null) { return; } @@ -44,7 +42,7 @@ public class ConfigureSymmetryWandPacket extends SimplePacketBase { SymmetryWandItem.configureSettings(stack, mirror); } }); - context.get().setPacketHandled(true); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/curiosities/symmetry/SymmetryEffectPacket.java b/src/main/java/com/simibubi/create/content/curiosities/symmetry/SymmetryEffectPacket.java index 9ddd7f21c..9551c31d4 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/symmetry/SymmetryEffectPacket.java +++ b/src/main/java/com/simibubi/create/content/curiosities/symmetry/SymmetryEffectPacket.java @@ -2,7 +2,6 @@ package com.simibubi.create.content.curiosities.symmetry; import java.util.ArrayList; import java.util.List; -import java.util.function.Supplier; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -43,14 +42,14 @@ public class SymmetryEffectPacket extends SimplePacketBase { } @Override - public void handle(Supplier ctx) { - ctx.get().enqueueWork(() -> DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> { + public boolean handle(Context context) { + context.enqueueWork(() -> DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> { if (Minecraft.getInstance().player.position().distanceTo(Vec3.atLowerCornerOf(mirror)) > 100) return; for (BlockPos to : positions) SymmetryHandler.drawEffect(mirror, to); })); - ctx.get().setPacketHandled(true); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxDisposeAllPacket.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxDisposeAllPacket.java index 098b9f8ce..6e2664a8c 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxDisposeAllPacket.java +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxDisposeAllPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.curiosities.toolbox; -import java.util.function.Supplier; - import org.apache.commons.lang3.mutable.MutableBoolean; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -35,10 +33,9 @@ public class ToolboxDisposeAllPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - Context ctx = context.get(); - ctx.enqueueWork(() -> { - ServerPlayer player = ctx.getSender(); + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer player = context.getSender(); Level world = player.level; BlockEntity blockEntity = world.getBlockEntity(toolboxPos); @@ -73,9 +70,8 @@ public class ToolboxDisposeAllPacket extends SimplePacketBase { if (sendData.booleanValue()) ToolboxHandler.syncData(player); - }); - ctx.setPacketHandled(true); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxEquipPacket.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxEquipPacket.java index 4491391f8..c4fe28d1e 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxEquipPacket.java +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxEquipPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.curiosities.toolbox; -import java.util.function.Supplier; - import com.simibubi.create.foundation.networking.SimplePacketBase; import net.minecraft.core.BlockPos; @@ -44,10 +42,9 @@ public class ToolboxEquipPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - Context ctx = context.get(); - ctx.enqueueWork(() -> { - ServerPlayer player = ctx.getSender(); + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer player = context.getSender(); Level world = player.level; if (toolboxPos == null) { @@ -102,7 +99,7 @@ public class ToolboxEquipPacket extends SimplePacketBase { toolboxBlockEntity.connectPlayer(slot, player, hotbarSlot); ToolboxHandler.syncData(player); }); - ctx.setPacketHandled(true); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/curiosities/tools/BlueprintAssignCompleteRecipePacket.java b/src/main/java/com/simibubi/create/content/curiosities/tools/BlueprintAssignCompleteRecipePacket.java index c98cb1f32..966386c9e 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/tools/BlueprintAssignCompleteRecipePacket.java +++ b/src/main/java/com/simibubi/create/content/curiosities/tools/BlueprintAssignCompleteRecipePacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.curiosities.tools; -import java.util.function.Supplier; - import com.simibubi.create.foundation.networking.SimplePacketBase; import net.minecraft.network.FriendlyByteBuf; @@ -27,23 +25,20 @@ public class BlueprintAssignCompleteRecipePacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> { - ServerPlayer player = context.get() - .getSender(); - if (player == null) - return; - if (player.containerMenu instanceof BlueprintMenu) { - BlueprintMenu c = (BlueprintMenu) player.containerMenu; - player.getLevel() - .getRecipeManager() - .byKey(recipeID) - .ifPresent(r -> BlueprintItem.assignCompleteRecipe(c.ghostInventory, r)); - } - }); - context.get() - .setPacketHandled(true); + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer player = context.getSender(); + if (player == null) + return; + if (player.containerMenu instanceof BlueprintMenu) { + BlueprintMenu c = (BlueprintMenu) player.containerMenu; + player.getLevel() + .getRecipeManager() + .byKey(recipeID) + .ifPresent(r -> BlueprintItem.assignCompleteRecipe(c.ghostInventory, r)); + } + }); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/curiosities/tools/ExtendoGripInteractionPacket.java b/src/main/java/com/simibubi/create/content/curiosities/tools/ExtendoGripInteractionPacket.java index cf57bd455..465c05eca 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/tools/ExtendoGripInteractionPacket.java +++ b/src/main/java/com/simibubi/create/content/curiosities/tools/ExtendoGripInteractionPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.curiosities.tools; -import java.util.function.Supplier; - import com.simibubi.create.foundation.networking.SimplePacketBase; import net.minecraft.network.FriendlyByteBuf; @@ -53,33 +51,30 @@ public class ExtendoGripInteractionPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> { - ServerPlayer sender = context.get() - .getSender(); - if (sender == null) + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer sender = context.getSender(); + if (sender == null) + return; + Entity entityByID = sender.getLevel() + .getEntity(target); + if (entityByID != null && ExtendoGripItem.isHoldingExtendoGrip(sender)) { + double d = sender.getAttribute(ForgeMod.REACH_DISTANCE.get()) + .getValue(); + if (!sender.hasLineOfSight(entityByID)) + d -= 3; + d *= d; + if (sender.distanceToSqr(entityByID) > d) return; - Entity entityByID = sender.getLevel() - .getEntity(target); - if (entityByID != null && ExtendoGripItem.isHoldingExtendoGrip(sender)) { - double d = sender.getAttribute(ForgeMod.REACH_DISTANCE.get()) - .getValue(); - if (!sender.hasLineOfSight(entityByID)) - d -= 3; - d *= d; - if (sender.distanceToSqr(entityByID) > d) - return; - if (interactionHand == null) - sender.attack(entityByID); - else if (specificPoint == null) - sender.interactOn(entityByID, interactionHand); - else - entityByID.interactAt(sender, specificPoint, interactionHand); - } - }); - context.get() - .setPacketHandled(true); + if (interactionHand == null) + sender.attack(entityByID); + else if (specificPoint == null) + sender.interactOn(entityByID, interactionHand); + else + entityByID.interactAt(sender, specificPoint, interactionHand); + } + }); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileTypeManager.java b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileTypeManager.java index 4830d2438..cc4537a1a 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileTypeManager.java +++ b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileTypeManager.java @@ -148,11 +148,11 @@ public class PotatoProjectileTypeManager { } @Override - public void handle(Supplier context) { - context.get().enqueueWork(() -> { + public boolean handle(Context context) { + context.enqueueWork(() -> { fromBuffer(buffer); }); - context.get().setPacketHandled(true); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/curiosities/zapper/ConfigureZapperPacket.java b/src/main/java/com/simibubi/create/content/curiosities/zapper/ConfigureZapperPacket.java index 99c842730..e6a030407 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/zapper/ConfigureZapperPacket.java +++ b/src/main/java/com/simibubi/create/content/curiosities/zapper/ConfigureZapperPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.curiosities.zapper; -import java.util.function.Supplier; - import com.simibubi.create.foundation.networking.SimplePacketBase; import net.minecraft.network.FriendlyByteBuf; @@ -32,9 +30,9 @@ public abstract class ConfigureZapperPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get().enqueueWork(() -> { - ServerPlayer player = context.get().getSender(); + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer player = context.getSender(); if (player == null) { return; } @@ -43,7 +41,7 @@ public abstract class ConfigureZapperPacket extends SimplePacketBase { configureZapper(stack); } }); - context.get().setPacketHandled(true); + return true; } public abstract void configureZapper(ItemStack stack); diff --git a/src/main/java/com/simibubi/create/content/curiosities/zapper/ShootGadgetPacket.java b/src/main/java/com/simibubi/create/content/curiosities/zapper/ShootGadgetPacket.java index e5a7384ef..098433e49 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/zapper/ShootGadgetPacket.java +++ b/src/main/java/com/simibubi/create/content/curiosities/zapper/ShootGadgetPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.curiosities.zapper; -import java.util.function.Supplier; - import com.simibubi.create.foundation.networking.SimplePacketBase; import net.minecraft.client.Minecraft; @@ -53,26 +51,24 @@ public abstract class ShootGadgetPacket extends SimplePacketBase { @Override @OnlyIn(Dist.CLIENT) - public final void handle(Supplier context) { - context.get() - .enqueueWork(() -> { - Entity renderViewEntity = Minecraft.getInstance() - .getCameraEntity(); - if (renderViewEntity == null) - return; - if (renderViewEntity.position() - .distanceTo(location) > 100) - return; + public boolean handle(Context context) { + context.enqueueWork(() -> { + Entity renderViewEntity = Minecraft.getInstance() + .getCameraEntity(); + if (renderViewEntity == null) + return; + if (renderViewEntity.position() + .distanceTo(location) > 100) + return; - ShootableGadgetRenderHandler handler = getHandler(); - handleAdditional(); - if (self) - handler.shoot(hand, location); - else - handler.playSound(hand, location); - }); - context.get() - .setPacketHandled(true); + ShootableGadgetRenderHandler handler = getHandler(); + handleAdditional(); + if (self) + handler.shoot(hand, location); + else + handler.playSound(hand, location); + }); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorElytraPacket.java b/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorElytraPacket.java index e8a895a60..f0ffe391c 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorElytraPacket.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorElytraPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.logistics.block.depot; -import java.util.function.Supplier; - import com.simibubi.create.foundation.networking.SimplePacketBase; import net.minecraft.core.BlockPos; @@ -29,23 +27,19 @@ public class EjectorElytraPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> { - ServerPlayer player = context.get() - .getSender(); - if (player == null) - return; - Level world = player.level; - if (world == null || !world.isLoaded(pos)) - return; - BlockEntity blockEntity = world.getBlockEntity(pos); - if (blockEntity instanceof EjectorBlockEntity) - ((EjectorBlockEntity) blockEntity).deployElytra(player); - }); - context.get() - .setPacketHandled(true); - + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer player = context.getSender(); + if (player == null) + return; + Level world = player.level; + if (world == null || !world.isLoaded(pos)) + return; + BlockEntity blockEntity = world.getBlockEntity(pos); + if (blockEntity instanceof EjectorBlockEntity) + ((EjectorBlockEntity) blockEntity).deployElytra(player); + }); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorPlacementPacket.java b/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorPlacementPacket.java index 871620a83..d0febef11 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorPlacementPacket.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorPlacementPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.logistics.block.depot; -import java.util.function.Supplier; - import com.simibubi.create.AllBlocks; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -43,26 +41,22 @@ public class EjectorPlacementPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> { - ServerPlayer player = context.get() - .getSender(); - if (player == null) - return; - Level world = player.level; - if (world == null || !world.isLoaded(pos)) - return; - BlockEntity blockEntity = world.getBlockEntity(pos); - BlockState state = world.getBlockState(pos); - if (blockEntity instanceof EjectorBlockEntity) - ((EjectorBlockEntity) blockEntity).setTarget(h, v); - if (AllBlocks.WEIGHTED_EJECTOR.has(state)) - world.setBlockAndUpdate(pos, state.setValue(EjectorBlock.HORIZONTAL_FACING, facing)); - }); - context.get() - .setPacketHandled(true); - + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer player = context.getSender(); + if (player == null) + return; + Level world = player.level; + if (world == null || !world.isLoaded(pos)) + return; + BlockEntity blockEntity = world.getBlockEntity(pos); + BlockState state = world.getBlockState(pos); + if (blockEntity instanceof EjectorBlockEntity) + ((EjectorBlockEntity) blockEntity).setTarget(h, v); + if (AllBlocks.WEIGHTED_EJECTOR.has(state)) + world.setBlockAndUpdate(pos, state.setValue(EjectorBlock.HORIZONTAL_FACING, facing)); + }); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmPlacementPacket.java b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmPlacementPacket.java index 1d21886a8..c50ac3b26 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmPlacementPacket.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmPlacementPacket.java @@ -1,7 +1,6 @@ package com.simibubi.create.content.logistics.block.mechanicalArm; import java.util.Collection; -import java.util.function.Supplier; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -45,26 +44,22 @@ public class ArmPlacementPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> { - ServerPlayer player = context.get() - .getSender(); - if (player == null) - return; - Level world = player.level; - if (world == null || !world.isLoaded(pos)) - return; - BlockEntity blockEntity = world.getBlockEntity(pos); - if (!(blockEntity instanceof ArmBlockEntity)) - return; - - ArmBlockEntity arm = (ArmBlockEntity) blockEntity; - arm.interactionPointTag = receivedTag; - }); - context.get() - .setPacketHandled(true); + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer player = context.getSender(); + if (player == null) + return; + Level world = player.level; + if (world == null || !world.isLoaded(pos)) + return; + BlockEntity blockEntity = world.getBlockEntity(pos); + if (!(blockEntity instanceof ArmBlockEntity)) + return; + ArmBlockEntity arm = (ArmBlockEntity) blockEntity; + arm.interactionPointTag = receivedTag; + }); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerPacketBase.java b/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerPacketBase.java index d320908de..612d784fd 100644 --- a/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerPacketBase.java +++ b/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerPacketBase.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.logistics.item; -import java.util.function.Supplier; - import com.simibubi.create.AllItems; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -41,9 +39,9 @@ public abstract class LinkedControllerPacketBase extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get().enqueueWork(() -> { - ServerPlayer player = context.get().getSender(); + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer player = context.getSender(); if (player == null) return; @@ -62,8 +60,7 @@ public abstract class LinkedControllerPacketBase extends SimplePacketBase { handleItem(player, controller); } }); - - context.get().setPacketHandled(true); + return true; } protected abstract void handleItem(ServerPlayer player, ItemStack heldItem); diff --git a/src/main/java/com/simibubi/create/content/logistics/item/filter/FilterScreenPacket.java b/src/main/java/com/simibubi/create/content/logistics/item/filter/FilterScreenPacket.java index a453fd667..4bfe03823 100644 --- a/src/main/java/com/simibubi/create/content/logistics/item/filter/FilterScreenPacket.java +++ b/src/main/java/com/simibubi/create/content/logistics/item/filter/FilterScreenPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.logistics.item.filter; -import java.util.function.Supplier; - import com.simibubi.create.content.logistics.item.filter.AttributeFilterMenu.WhitelistMode; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -40,9 +38,9 @@ public class FilterScreenPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get().enqueueWork(() -> { - ServerPlayer player = context.get().getSender(); + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer player = context.getSender(); if (player == null) return; @@ -77,7 +75,7 @@ public class FilterScreenPacket extends SimplePacketBase { } }); - context.get().setPacketHandled(true); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraphPacket.java b/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraphPacket.java index 888474405..8464cc4d8 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraphPacket.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraphPacket.java @@ -1,7 +1,6 @@ package com.simibubi.create.content.logistics.trains; import java.util.UUID; -import java.util.function.Supplier; import com.simibubi.create.CreateClient; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -15,11 +14,9 @@ public abstract class TrackGraphPacket extends SimplePacketBase { public boolean packetDeletesGraph; @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> handle(CreateClient.RAILWAYS, CreateClient.RAILWAYS.getOrCreateGraph(graphId, netId))); - context.get() - .setPacketHandled(true); + public boolean handle(Context context) { + context.enqueueWork(() -> handle(CreateClient.RAILWAYS, CreateClient.RAILWAYS.getOrCreateGraph(graphId, netId))); + return true; } protected abstract void handle(GlobalRailwayManager manager, TrackGraph graph); diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraphRequestPacket.java b/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraphRequestPacket.java index eb179ba41..28d13f2f8 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraphRequestPacket.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraphRequestPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.logistics.trains; -import java.util.function.Supplier; - import com.simibubi.create.Create; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -26,19 +24,16 @@ public class TrackGraphRequestPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> { + public boolean handle(Context context) { + context.enqueueWork(() -> { for (TrackGraph trackGraph : Create.RAILWAYS.trackNetworks.values()) { - if (trackGraph.netId == netId) { - Create.RAILWAYS.sync.sendFullGraphTo(trackGraph, context.get() - .getSender()); - break; - } + if (trackGraph.netId == netId) { + Create.RAILWAYS.sync.sendFullGraphTo(trackGraph, context.getSender()); + break; } - }); - context.get() - .setPacketHandled(true); + } + }); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraphRollCallPacket.java b/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraphRollCallPacket.java index f6b963d68..17054efa6 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraphRollCallPacket.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraphRollCallPacket.java @@ -7,7 +7,6 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.UUID; -import java.util.function.Supplier; import com.simibubi.create.Create; import com.simibubi.create.foundation.networking.AllPackets; @@ -45,39 +44,35 @@ public class TrackGraphRollCallPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> { + public boolean handle(Context context) { + context.enqueueWork(() -> { + GlobalRailwayManager manager = Create.RAILWAYS.sided(null); + Set unusedIds = new HashSet<>(manager.trackNetworks.keySet()); + List failedIds = new ArrayList<>(); + Map idByNetId = new HashMap<>(); + manager.trackNetworks.forEach((uuid, g) -> idByNetId.put(g.netId, uuid)); - GlobalRailwayManager manager = Create.RAILWAYS.sided(null); - Set unusedIds = new HashSet<>(manager.trackNetworks.keySet()); - List failedIds = new ArrayList<>(); - Map idByNetId = new HashMap<>(); - manager.trackNetworks.forEach((uuid, g) -> idByNetId.put(g.netId, uuid)); - - for (int i = 0; i < ints.length; i += 2) { - UUID uuid = idByNetId.get(ints[i]); - if (uuid == null) { - failedIds.add(ints[i]); - continue; - } - unusedIds.remove(uuid); - TrackGraph trackGraph = manager.trackNetworks.get(uuid); - if (trackGraph.getChecksum() == ints[i + 1]) - continue; - Create.LOGGER.warn("Track network: " + uuid.toString() - .substring(0, 6) + " failed its checksum; Requesting refresh"); + for (int i = 0; i < ints.length; i += 2) { + UUID uuid = idByNetId.get(ints[i]); + if (uuid == null) { failedIds.add(ints[i]); + continue; } + unusedIds.remove(uuid); + TrackGraph trackGraph = manager.trackNetworks.get(uuid); + if (trackGraph.getChecksum() == ints[i + 1]) + continue; + Create.LOGGER.warn("Track network: " + uuid.toString() + .substring(0, 6) + " failed its checksum; Requesting refresh"); + failedIds.add(ints[i]); + } - for (Integer failed : failedIds) - AllPackets.getChannel().sendToServer(new TrackGraphRequestPacket(failed)); - for (UUID unused : unusedIds) - manager.trackNetworks.remove(unused); - - }); - context.get() - .setPacketHandled(true); + for (Integer failed : failedIds) + AllPackets.getChannel().sendToServer(new TrackGraphRequestPacket(failed)); + for (UUID unused : unusedIds) + manager.trackNetworks.remove(unused); + }); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainPacket.java b/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainPacket.java index 479b2699e..a3bfaae95 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainPacket.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainPacket.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.UUID; -import java.util.function.Supplier; import com.simibubi.create.CreateClient; import com.simibubi.create.content.logistics.trains.IBogeyBlock; @@ -99,17 +98,15 @@ public class TrainPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> { - Map trains = CreateClient.RAILWAYS.trains; - if (add) - trains.put(train.id, train); - else - trains.remove(trainId); - }); - context.get() - .setPacketHandled(true); + public boolean handle(Context context) { + context.enqueueWork(() -> { + Map trains = CreateClient.RAILWAYS.trains; + if (add) + trains.put(train.id, train); + else + trains.remove(trainId); + }); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainPromptPacket.java b/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainPromptPacket.java index 695a75392..f01bebbea 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainPromptPacket.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainPromptPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.logistics.trains.entity; -import java.util.function.Supplier; - import com.simibubi.create.content.contraptions.components.structureMovement.interaction.controls.TrainHUD; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -34,11 +32,9 @@ public class TrainPromptPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> this::apply)); - context.get() - .setPacketHandled(true); + public boolean handle(Context context) { + context.enqueueWork(() -> DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> this::apply)); + return true; } @OnlyIn(Dist.CLIENT) diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainRelocationPacket.java b/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainRelocationPacket.java index 235999f35..598b56bf7 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainRelocationPacket.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainRelocationPacket.java @@ -1,7 +1,6 @@ package com.simibubi.create.content.logistics.trains.entity; import java.util.UUID; -import java.util.function.Supplier; import com.simibubi.create.Create; import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionRelocationPacket; @@ -65,10 +64,9 @@ public class TrainRelocationPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - Context ctx = context.get(); - ctx.enqueueWork(() -> { - ServerPlayer sender = ctx.getSender(); + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer sender = context.getSender(); Train train = Create.RAILWAYS.trains.get(trainId); Entity entity = sender.level.getEntity(entityId); @@ -109,9 +107,8 @@ public class TrainRelocationPacket extends SimplePacketBase { } Create.LOGGER.warn(messagePrefix + train.name.getString() + ": relocation failed server-side"); - }); - ctx.setPacketHandled(true); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/SignalEdgeGroupPacket.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/SignalEdgeGroupPacket.java index 8918a6e77..54c4863a4 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/SignalEdgeGroupPacket.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/SignalEdgeGroupPacket.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.UUID; -import java.util.function.Supplier; import com.google.common.collect.ImmutableList; import com.simibubi.create.CreateClient; @@ -51,26 +50,24 @@ public class SignalEdgeGroupPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> { - Map signalEdgeGroups = CreateClient.RAILWAYS.signalEdgeGroups; - int i = 0; - for (UUID id : ids) { - if (!add) { - signalEdgeGroups.remove(id); - continue; - } - - SignalEdgeGroup group = new SignalEdgeGroup(id); - signalEdgeGroups.put(id, group); - if (colors.size() > i) - group.color = colors.get(i); - i++; + public boolean handle(Context context) { + context.enqueueWork(() -> { + Map signalEdgeGroups = CreateClient.RAILWAYS.signalEdgeGroups; + int i = 0; + for (UUID id : ids) { + if (!add) { + signalEdgeGroups.remove(id); + continue; } - }); - context.get() - .setPacketHandled(true); + + SignalEdgeGroup group = new SignalEdgeGroup(id); + signalEdgeGroups.put(id, group); + if (colors.size() > i) + group.color = colors.get(i); + i++; + } + }); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/TrainEditPacket.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/TrainEditPacket.java index 251e9e124..854105251 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/TrainEditPacket.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/TrainEditPacket.java @@ -1,7 +1,6 @@ package com.simibubi.create.content.logistics.trains.management.edgePoint.station; import java.util.UUID; -import java.util.function.Supplier; import com.simibubi.create.Create; import com.simibubi.create.content.logistics.trains.entity.Train; @@ -43,10 +42,9 @@ public class TrainEditPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - Context ctx = context.get(); - ctx.enqueueWork(() -> { - ServerPlayer sender = ctx.getSender(); + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer sender = context.getSender(); Level level = sender == null ? null : sender.level; Train train = Create.RAILWAYS.sided(level).trains.get(id); if (train == null) @@ -57,7 +55,7 @@ public class TrainEditPacket extends SimplePacketBase { if (sender != null) AllPackets.getChannel().send(PacketDistributor.ALL.noArg(), new TrainEditReturnPacket(id, name, iconType)); }); - ctx.setPacketHandled(true); + return true; } public static class TrainEditReturnPacket extends TrainEditPacket { diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/ScheduleEditPacket.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/ScheduleEditPacket.java index c609feeca..3b74e6c01 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/ScheduleEditPacket.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/ScheduleEditPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.logistics.trains.management.schedule; -import java.util.function.Supplier; - import com.simibubi.create.AllItems; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -29,28 +27,25 @@ public class ScheduleEditPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> { - ServerPlayer sender = context.get() - .getSender(); - ItemStack mainHandItem = sender.getMainHandItem(); - if (!AllItems.SCHEDULE.isIn(mainHandItem)) - return; - - CompoundTag tag = mainHandItem.getOrCreateTag(); - if (schedule.entries.isEmpty()) { - tag.remove("Schedule"); - if (tag.isEmpty()) - mainHandItem.setTag(null); - } else - tag.put("Schedule", schedule.write()); - - sender.getCooldowns() - .addCooldown(mainHandItem.getItem(), 5); - }); - context.get() - .setPacketHandled(true); + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer sender = context.getSender(); + ItemStack mainHandItem = sender.getMainHandItem(); + if (!AllItems.SCHEDULE.isIn(mainHandItem)) + return; + + CompoundTag tag = mainHandItem.getOrCreateTag(); + if (schedule.entries.isEmpty()) { + tag.remove("Schedule"); + if (tag.isEmpty()) + mainHandItem.setTag(null); + } else + tag.put("Schedule", schedule.write()); + + sender.getCooldowns() + .addCooldown(mainHandItem.getItem(), 5); + }); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/track/PlaceExtendedCurvePacket.java b/src/main/java/com/simibubi/create/content/logistics/trains/track/PlaceExtendedCurvePacket.java index 4d1859325..e332c5d8d 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/track/PlaceExtendedCurvePacket.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/track/PlaceExtendedCurvePacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.logistics.trains.track; -import java.util.function.Supplier; - import com.simibubi.create.AllBlocks; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -34,10 +32,9 @@ public class PlaceExtendedCurvePacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - Context ctx = context.get(); - ctx.enqueueWork(() -> { - ServerPlayer sender = ctx.getSender(); + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer sender = context.getSender(); ItemStack stack = sender.getItemInHand(mainHand ? InteractionHand.MAIN_HAND : InteractionHand.OFF_HAND); if (!AllBlocks.TRACK.isIn(stack) || !stack.hasTag()) return; @@ -45,7 +42,7 @@ public class PlaceExtendedCurvePacket extends SimplePacketBase { tag.putBoolean("ExtendCurve", true); stack.setTag(tag); }); - ctx.setPacketHandled(true); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/schematics/packet/ConfigureSchematicannonPacket.java b/src/main/java/com/simibubi/create/content/schematics/packet/ConfigureSchematicannonPacket.java index 2e96d119c..9988da0c5 100644 --- a/src/main/java/com/simibubi/create/content/schematics/packet/ConfigureSchematicannonPacket.java +++ b/src/main/java/com/simibubi/create/content/schematics/packet/ConfigureSchematicannonPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.schematics.packet; -import java.util.function.Supplier; - import com.simibubi.create.content.schematics.block.SchematicannonBlockEntity; import com.simibubi.create.content.schematics.block.SchematicannonBlockEntity.State; import com.simibubi.create.content.schematics.block.SchematicannonMenu; @@ -29,14 +27,16 @@ public class ConfigureSchematicannonPacket extends SimplePacketBase { this(buffer.readEnum(Option.class), buffer.readBoolean()); } + @Override public void write(FriendlyByteBuf buffer) { buffer.writeEnum(option); buffer.writeBoolean(set); } - public void handle(Supplier context) { - context.get().enqueueWork(() -> { - ServerPlayer player = context.get().getSender(); + @Override + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer player = context.getSender(); if (player == null || !(player.containerMenu instanceof SchematicannonMenu)) return; @@ -73,7 +73,7 @@ public class ConfigureSchematicannonPacket extends SimplePacketBase { be.sendUpdate = true; }); - context.get().setPacketHandled(true); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/schematics/packet/InstantSchematicPacket.java b/src/main/java/com/simibubi/create/content/schematics/packet/InstantSchematicPacket.java index 62d3f2abe..fc3757a18 100644 --- a/src/main/java/com/simibubi/create/content/schematics/packet/InstantSchematicPacket.java +++ b/src/main/java/com/simibubi/create/content/schematics/packet/InstantSchematicPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.schematics.packet; -import java.util.function.Supplier; - import com.simibubi.create.Create; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -36,17 +34,14 @@ public class InstantSchematicPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> { - ServerPlayer player = context.get() - .getSender(); - if (player == null) - return; - Create.SCHEMATIC_RECEIVER.handleInstantSchematic(player, name, player.level, origin, bounds); - }); - context.get() - .setPacketHandled(true); + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer player = context.getSender(); + if (player == null) + return; + Create.SCHEMATIC_RECEIVER.handleInstantSchematic(player, name, player.level, origin, bounds); + }); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/schematics/packet/SchematicPlacePacket.java b/src/main/java/com/simibubi/create/content/schematics/packet/SchematicPlacePacket.java index 80f25c642..4d5ca5016 100644 --- a/src/main/java/com/simibubi/create/content/schematics/packet/SchematicPlacePacket.java +++ b/src/main/java/com/simibubi/create/content/schematics/packet/SchematicPlacePacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.schematics.packet; -import java.util.function.Supplier; - import com.simibubi.create.content.schematics.SchematicPrinter; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -26,13 +24,15 @@ public class SchematicPlacePacket extends SimplePacketBase { stack = buffer.readItem(); } + @Override public void write(FriendlyByteBuf buffer) { buffer.writeItem(stack); } - public void handle(Supplier context) { - context.get().enqueueWork(() -> { - ServerPlayer player = context.get().getSender(); + @Override + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer player = context.getSender(); if (player == null) return; @@ -60,7 +60,7 @@ public class SchematicPlacePacket extends SimplePacketBase { }); } }); - context.get().setPacketHandled(true); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/schematics/packet/SchematicSyncPacket.java b/src/main/java/com/simibubi/create/content/schematics/packet/SchematicSyncPacket.java index 6615b9546..9da539ad4 100644 --- a/src/main/java/com/simibubi/create/content/schematics/packet/SchematicSyncPacket.java +++ b/src/main/java/com/simibubi/create/content/schematics/packet/SchematicSyncPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.schematics.packet; -import java.util.function.Supplier; - import com.simibubi.create.AllItems; import com.simibubi.create.content.schematics.filtering.SchematicInstances; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -52,9 +50,9 @@ public class SchematicSyncPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get().enqueueWork(() -> { - ServerPlayer player = context.get().getSender(); + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer player = context.getSender(); if (player == null) return; ItemStack stack = ItemStack.EMPTY; @@ -73,7 +71,7 @@ public class SchematicSyncPacket extends SimplePacketBase { tag.putString("Mirror", mirror.name()); SchematicInstances.clearHash(stack); }); - context.get().setPacketHandled(true); + return true; } } diff --git a/src/main/java/com/simibubi/create/content/schematics/packet/SchematicUploadPacket.java b/src/main/java/com/simibubi/create/content/schematics/packet/SchematicUploadPacket.java index 81e81bd0e..bae36796d 100644 --- a/src/main/java/com/simibubi/create/content/schematics/packet/SchematicUploadPacket.java +++ b/src/main/java/com/simibubi/create/content/schematics/packet/SchematicUploadPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.schematics.packet; -import java.util.function.Supplier; - import com.simibubi.create.Create; import com.simibubi.create.content.schematics.block.SchematicTableMenu; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -53,6 +51,7 @@ public class SchematicUploadPacket extends SimplePacketBase { data = buffer.readByteArray(); } + @Override public void write(FriendlyByteBuf buffer) { buffer.writeInt(code); buffer.writeUtf(schematic); @@ -63,25 +62,23 @@ public class SchematicUploadPacket extends SimplePacketBase { buffer.writeByteArray(data); } - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> { - ServerPlayer player = context.get() - .getSender(); - if (player == null) - return; - if (code == BEGIN) { - BlockPos pos = ((SchematicTableMenu) player.containerMenu).contentHolder - .getBlockPos(); - Create.SCHEMATIC_RECEIVER.handleNewUpload(player, schematic, size, pos); - } - if (code == WRITE) - Create.SCHEMATIC_RECEIVER.handleWriteRequest(player, schematic, data); - if (code == FINISH) - Create.SCHEMATIC_RECEIVER.handleFinishedUpload(player, schematic); - }); - context.get() - .setPacketHandled(true); + @Override + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer player = context.getSender(); + if (player == null) + return; + if (code == BEGIN) { + BlockPos pos = ((SchematicTableMenu) player.containerMenu).contentHolder + .getBlockPos(); + Create.SCHEMATIC_RECEIVER.handleNewUpload(player, schematic, size, pos); + } + if (code == WRITE) + Create.SCHEMATIC_RECEIVER.handleWriteRequest(player, schematic, data); + if (code == FINISH) + Create.SCHEMATIC_RECEIVER.handleFinishedUpload(player, schematic); + }); + return true; } } diff --git a/src/main/java/com/simibubi/create/foundation/command/HighlightPacket.java b/src/main/java/com/simibubi/create/foundation/command/HighlightPacket.java index 7ecc08380..4ca7e3d39 100644 --- a/src/main/java/com/simibubi/create/foundation/command/HighlightPacket.java +++ b/src/main/java/com/simibubi/create/foundation/command/HighlightPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.foundation.command; -import java.util.function.Supplier; - import com.simibubi.create.AllSpecialTextures; import com.simibubi.create.CreateClient; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -13,7 +11,7 @@ import net.minecraft.world.phys.shapes.Shapes; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.fml.DistExecutor; -import net.minecraftforge.network.NetworkEvent; +import net.minecraftforge.network.NetworkEvent.Context; public class HighlightPacket extends SimplePacketBase { @@ -33,14 +31,11 @@ public class HighlightPacket extends SimplePacketBase { } @Override - public void handle(Supplier ctx) { - ctx.get() - .enqueueWork(() -> DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> { - performHighlight(pos); - })); - - ctx.get() - .setPacketHandled(true); + public boolean handle(Context context) { + context.enqueueWork(() -> DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> { + performHighlight(pos); + })); + return true; } @OnlyIn(Dist.CLIENT) diff --git a/src/main/java/com/simibubi/create/foundation/command/SConfigureConfigPacket.java b/src/main/java/com/simibubi/create/foundation/command/SConfigureConfigPacket.java index 92791c035..218f84c96 100644 --- a/src/main/java/com/simibubi/create/foundation/command/SConfigureConfigPacket.java +++ b/src/main/java/com/simibubi/create/foundation/command/SConfigureConfigPacket.java @@ -33,7 +33,7 @@ import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.common.ForgeConfig; import net.minecraftforge.fml.DistExecutor; import net.minecraftforge.fml.config.ModConfig; -import net.minecraftforge.network.NetworkEvent; +import net.minecraftforge.network.NetworkEvent.Context; public class SConfigureConfigPacket extends SimplePacketBase { @@ -59,24 +59,21 @@ public class SConfigureConfigPacket extends SimplePacketBase { } @Override - public void handle(Supplier ctx) { - ctx.get() - .enqueueWork(() -> DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> { - if (option.startsWith("SET")) { - trySetConfig(option.substring(3), value); - return; - } + public boolean handle(Context context) { + context.enqueueWork(() -> DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> { + if (option.startsWith("SET")) { + trySetConfig(option.substring(3), value); + return; + } - try { - Actions.valueOf(option) - .performAction(value); - } catch (IllegalArgumentException e) { - LOGGER.warn("Received ConfigureConfigPacket with invalid Option: " + option); - } - })); - - ctx.get() - .setPacketHandled(true); + try { + Actions.valueOf(option) + .performAction(value); + } catch (IllegalArgumentException e) { + LOGGER.warn("Received ConfigureConfigPacket with invalid Option: " + option); + } + })); + return true; } private static void trySetConfig(String option, String value) { diff --git a/src/main/java/com/simibubi/create/foundation/config/ui/CConfigureConfigPacket.java b/src/main/java/com/simibubi/create/foundation/config/ui/CConfigureConfigPacket.java index 6e1a12224..33e715d9c 100644 --- a/src/main/java/com/simibubi/create/foundation/config/ui/CConfigureConfigPacket.java +++ b/src/main/java/com/simibubi/create/foundation/config/ui/CConfigureConfigPacket.java @@ -1,7 +1,6 @@ package com.simibubi.create.foundation.config.ui; import java.util.Objects; -import java.util.function.Supplier; import com.simibubi.create.Create; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -38,10 +37,10 @@ public class CConfigureConfigPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get().enqueueWork(() -> { + public boolean handle(NetworkEvent.Context context) { + context.enqueueWork(() -> { try { - ServerPlayer sender = context.get().getSender(); + ServerPlayer sender = context.getSender(); if (sender == null || !sender.hasPermissions(2)) return; @@ -60,8 +59,7 @@ public class CConfigureConfigPacket extends SimplePacketBase { Create.LOGGER.warn("Unable to handle ConfigureConfig Packet. ", e); } }); - - context.get().setPacketHandled(true); + return true; } public String serialize(T value) { diff --git a/src/main/java/com/simibubi/create/foundation/gui/menu/ClearMenuPacket.java b/src/main/java/com/simibubi/create/foundation/gui/menu/ClearMenuPacket.java index 6b8be05e3..ba0a12eeb 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/menu/ClearMenuPacket.java +++ b/src/main/java/com/simibubi/create/foundation/gui/menu/ClearMenuPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.foundation.gui.menu; -import java.util.function.Supplier; - import com.simibubi.create.foundation.networking.SimplePacketBase; import net.minecraft.network.FriendlyByteBuf; @@ -18,19 +16,16 @@ public class ClearMenuPacket extends SimplePacketBase { public void write(FriendlyByteBuf buffer) {} @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> { - ServerPlayer player = context.get() - .getSender(); - if (player == null) - return; - if (!(player.containerMenu instanceof IClearableMenu)) - return; - ((IClearableMenu) player.containerMenu).clearContents(); - }); - context.get() - .setPacketHandled(true); + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer player = context.getSender(); + if (player == null) + return; + if (!(player.containerMenu instanceof IClearableMenu)) + return; + ((IClearableMenu) player.containerMenu).clearContents(); + }); + return true; } } diff --git a/src/main/java/com/simibubi/create/foundation/gui/menu/GhostItemSubmitPacket.java b/src/main/java/com/simibubi/create/foundation/gui/menu/GhostItemSubmitPacket.java index ebc18114a..234b87d4b 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/menu/GhostItemSubmitPacket.java +++ b/src/main/java/com/simibubi/create/foundation/gui/menu/GhostItemSubmitPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.foundation.gui.menu; -import java.util.function.Supplier; - import com.simibubi.create.foundation.networking.SimplePacketBase; import net.minecraft.network.FriendlyByteBuf; @@ -31,22 +29,18 @@ public class GhostItemSubmitPacket extends SimplePacketBase { } @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> { - ServerPlayer player = context.get() - .getSender(); - if (player == null) - return; + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer player = context.getSender(); + if (player == null) + return; - if (player.containerMenu instanceof GhostItemMenu menu) { - menu.ghostInventory.setStackInSlot(slot, item); - menu.getSlot(36 + slot).setChanged(); - } - - }); - context.get() - .setPacketHandled(true); + if (player.containerMenu instanceof GhostItemMenu menu) { + menu.ghostInventory.setStackInSlot(slot, item); + menu.getSlot(36 + slot).setChanged(); + } + }); + return true; } } diff --git a/src/main/java/com/simibubi/create/foundation/networking/AllPackets.java b/src/main/java/com/simibubi/create/foundation/networking/AllPackets.java index fc83111b0..4ba7f21f4 100644 --- a/src/main/java/com/simibubi/create/foundation/networking/AllPackets.java +++ b/src/main/java/com/simibubi/create/foundation/networking/AllPackets.java @@ -204,11 +204,11 @@ public enum AllPackets { public static final String NETWORK_VERSION_STR = String.valueOf(NETWORK_VERSION); private static SimpleChannel channel; - private LoadedPacket packet; + private PacketType packetType; AllPackets(Class type, Function factory, NetworkDirection direction) { - packet = new LoadedPacket<>(type, factory, direction); + packetType = new PacketType<>(type, factory, direction); } public static void registerPackets() { @@ -217,8 +217,9 @@ public enum AllPackets { .clientAcceptedVersions(NETWORK_VERSION_STR::equals) .networkProtocolVersion(() -> NETWORK_VERSION_STR) .simpleChannel(); + for (AllPackets packet : values()) - packet.packet.register(); + packet.packetType.register(); } public static SimpleChannel getChannel() { @@ -231,7 +232,7 @@ public enum AllPackets { message); } - private static class LoadedPacket { + private static class PacketType { private static int index = 0; private BiConsumer encoder; @@ -240,10 +241,15 @@ public enum AllPackets { private Class type; private NetworkDirection direction; - private LoadedPacket(Class type, Function factory, NetworkDirection direction) { + private PacketType(Class type, Function factory, NetworkDirection direction) { encoder = T::write; decoder = factory; - handler = T::handle; + handler = (packet, contextSupplier) -> { + Context context = contextSupplier.get(); + if (packet.handle(context)) { + context.setPacketHandled(true); + } + }; this.type = type; this.direction = direction; } diff --git a/src/main/java/com/simibubi/create/foundation/networking/BlockEntityConfigurationPacket.java b/src/main/java/com/simibubi/create/foundation/networking/BlockEntityConfigurationPacket.java index 016208ce8..3c3ce4191 100644 --- a/src/main/java/com/simibubi/create/foundation/networking/BlockEntityConfigurationPacket.java +++ b/src/main/java/com/simibubi/create/foundation/networking/BlockEntityConfigurationPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.foundation.networking; -import java.util.function.Supplier; - import com.simibubi.create.foundation.blockEntity.SyncedBlockEntity; import net.minecraft.core.BlockPos; @@ -32,30 +30,26 @@ public abstract class BlockEntityConfigurationPacket context) { - context.get() - .enqueueWork(() -> { - ServerPlayer player = context.get() - .getSender(); - if (player == null) + public boolean handle(Context context) { + context.enqueueWork(() -> { + ServerPlayer player = context.getSender(); + if (player == null) + return; + Level world = player.level; + if (world == null || !world.isLoaded(pos)) + return; + if (!pos.closerThan(player.blockPosition(), maxRange())) + return; + BlockEntity blockEntity = world.getBlockEntity(pos); + if (blockEntity instanceof SyncedBlockEntity) { + applySettings(player, (BE) blockEntity); + if (!causeUpdate()) return; - Level world = player.level; - if (world == null || !world.isLoaded(pos)) - return; - if (!pos.closerThan(player.blockPosition(), maxRange())) - return; - BlockEntity blockEntity = world.getBlockEntity(pos); - if (blockEntity instanceof SyncedBlockEntity) { - applySettings(player, (BE) blockEntity); - if (!causeUpdate()) - return; - ((SyncedBlockEntity) blockEntity).sendData(); - blockEntity.setChanged(); - } - }); - context.get() - .setPacketHandled(true); - + ((SyncedBlockEntity) blockEntity).sendData(); + blockEntity.setChanged(); + } + }); + return true; } protected int maxRange() { diff --git a/src/main/java/com/simibubi/create/foundation/networking/BlockEntityDataPacket.java b/src/main/java/com/simibubi/create/foundation/networking/BlockEntityDataPacket.java index 5cfe245f5..8ffc34132 100644 --- a/src/main/java/com/simibubi/create/foundation/networking/BlockEntityDataPacket.java +++ b/src/main/java/com/simibubi/create/foundation/networking/BlockEntityDataPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.foundation.networking; -import java.util.function.Supplier; - import com.simibubi.create.foundation.blockEntity.SyncedBlockEntity; import net.minecraft.client.Minecraft; @@ -35,9 +33,8 @@ public abstract class BlockEntityDataPacket extend } @Override - public void handle(Supplier context) { - NetworkEvent.Context ctx = context.get(); - ctx.enqueueWork(() -> { + public boolean handle(NetworkEvent.Context context) { + context.enqueueWork(() -> { ClientLevel world = Minecraft.getInstance().level; if (world == null) @@ -49,7 +46,7 @@ public abstract class BlockEntityDataPacket extend handlePacket((BE) blockEntity); } }); - ctx.setPacketHandled(true); + return true; } protected abstract void writeData(FriendlyByteBuf buffer); diff --git a/src/main/java/com/simibubi/create/foundation/networking/ISyncPersistentData.java b/src/main/java/com/simibubi/create/foundation/networking/ISyncPersistentData.java index d822b0a2d..b3d5531f2 100644 --- a/src/main/java/com/simibubi/create/foundation/networking/ISyncPersistentData.java +++ b/src/main/java/com/simibubi/create/foundation/networking/ISyncPersistentData.java @@ -1,7 +1,6 @@ package com.simibubi.create.foundation.networking; import java.util.HashSet; -import java.util.function.Supplier; import net.minecraft.client.Minecraft; import net.minecraft.nbt.CompoundTag; @@ -41,19 +40,17 @@ public interface ISyncPersistentData { } @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> { - Entity entityByID = Minecraft.getInstance().level.getEntity(entityId); - CompoundTag data = entityByID.getPersistentData(); - new HashSet<>(data.getAllKeys()).forEach(data::remove); - data.merge(readData); - if (!(entityByID instanceof ISyncPersistentData)) - return; - ((ISyncPersistentData) entityByID).onPersistentDataUpdated(); - }); - context.get() - .setPacketHandled(true); + public boolean handle(Context context) { + context.enqueueWork(() -> { + Entity entityByID = Minecraft.getInstance().level.getEntity(entityId); + CompoundTag data = entityByID.getPersistentData(); + new HashSet<>(data.getAllKeys()).forEach(data::remove); + data.merge(readData); + if (!(entityByID instanceof ISyncPersistentData)) + return; + ((ISyncPersistentData) entityByID).onPersistentDataUpdated(); + }); + return true; } } diff --git a/src/main/java/com/simibubi/create/foundation/networking/LeftClickPacket.java b/src/main/java/com/simibubi/create/foundation/networking/LeftClickPacket.java index 0dc8358f3..bcd60c1fe 100644 --- a/src/main/java/com/simibubi/create/foundation/networking/LeftClickPacket.java +++ b/src/main/java/com/simibubi/create/foundation/networking/LeftClickPacket.java @@ -1,7 +1,5 @@ package com.simibubi.create.foundation.networking; -import java.util.function.Supplier; - import com.simibubi.create.events.CommonEvents; import net.minecraft.network.FriendlyByteBuf; @@ -18,12 +16,11 @@ public class LeftClickPacket extends SimplePacketBase { public void write(FriendlyByteBuf buffer) {} @Override - public void handle(Supplier context) { - Context ctx = context.get(); - if (ctx.getDirection() != NetworkDirection.PLAY_TO_SERVER) - return; - ctx.enqueueWork(() -> CommonEvents.leftClickEmpty(ctx.getSender())); - ctx.setPacketHandled(true); + public boolean handle(Context context) { + if (context.getDirection() != NetworkDirection.PLAY_TO_SERVER) + return false; + context.enqueueWork(() -> CommonEvents.leftClickEmpty(context.getSender())); + return true; } } diff --git a/src/main/java/com/simibubi/create/foundation/networking/SimplePacketBase.java b/src/main/java/com/simibubi/create/foundation/networking/SimplePacketBase.java index 80355c33d..899db8cef 100644 --- a/src/main/java/com/simibubi/create/foundation/networking/SimplePacketBase.java +++ b/src/main/java/com/simibubi/create/foundation/networking/SimplePacketBase.java @@ -1,7 +1,5 @@ package com.simibubi.create.foundation.networking; -import java.util.function.Supplier; - import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent.Context; @@ -9,6 +7,6 @@ public abstract class SimplePacketBase { public abstract void write(FriendlyByteBuf buffer); - public abstract void handle(Supplier context); + public abstract boolean handle(Context context); } diff --git a/src/main/java/com/simibubi/create/foundation/utility/ServerSpeedProvider.java b/src/main/java/com/simibubi/create/foundation/utility/ServerSpeedProvider.java index e5f9c88a9..a9ba88169 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/ServerSpeedProvider.java +++ b/src/main/java/com/simibubi/create/foundation/utility/ServerSpeedProvider.java @@ -1,7 +1,5 @@ package com.simibubi.create.foundation.utility; -import java.util.function.Supplier; - import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.networking.AllPackets; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -59,24 +57,21 @@ public class ServerSpeedProvider { public void write(FriendlyByteBuf buffer) {} @Override - public void handle(Supplier context) { - context.get() - .enqueueWork(() -> { - if (!initialized) { - initialized = true; - clientTimer = 0; - return; - } - float target = ((float) getSyncInterval()) / Math.max(clientTimer, 1); - modifier.chase(Math.min(target, 1), .25, Chaser.EXP); - // Set this to -1 because packets are processed before ticks. - // ServerSpeedProvider#clientTick will increment it to 0 at the end of this tick. - // Setting it to 0 causes consistent desync, as the client ends up counting too many ticks. - clientTimer = -1; - - }); - context.get() - .setPacketHandled(true); + public boolean handle(Context context) { + context.enqueueWork(() -> { + if (!initialized) { + initialized = true; + clientTimer = 0; + return; + } + float target = ((float) getSyncInterval()) / Math.max(clientTimer, 1); + modifier.chase(Math.min(target, 1), .25, Chaser.EXP); + // Set this to -1 because packets are processed before ticks. + // ServerSpeedProvider#clientTick will increment it to 0 at the end of this tick. + // Setting it to 0 causes consistent desync, as the client ends up counting too many ticks. + clientTimer = -1; + }); + return true; } }