Skip to content

Commit be58f47

Browse files
committed
use existing method to translate item stack request
1 parent cb5009a commit be58f47

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/entity/player/input/BedrockBlockActions.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,6 @@ private static void handle(GeyserSession session, PlayerBlockActionData blockAct
9191

9292
// The Bedrock client won't send a new start_break packet, but just continue breaking blocks
9393
if (!vector.equals(session.getBlockBreakPosition())) {
94-
GeyserImpl.getInstance().getLogger().error("Invalid block break position! Expected " + session.getBlockBreakPosition() + ", got " + vector);
95-
9694
// Start breaking new block
9795
startBlockBreak(session, vector, blockFace);
9896
break;
@@ -224,7 +222,8 @@ private static void startBlockBreak(GeyserSession session, Vector3i vector, int
224222
vector, direction, session.getWorldCache().nextPredictionSequence());
225223
session.sendDownstreamGamePacket(startBreakingPacket);
226224

227-
spawnBlockBreakParticles(session, direction, vector, BlockState.of(blockState));
225+
// TODO test
226+
//spawnBlockBreakParticles(session, direction, vector, BlockState.of(blockState));
228227
}
229228

230229
private static void breakBlock(GeyserSession session, Vector3i vector, int blockFace) {
@@ -256,6 +255,12 @@ private static void breakBlock(GeyserSession session, Vector3i vector, int block
256255
blockState = Block.JAVA_AIR_ID;
257256
}
258257

258+
LevelEventPacket breakingPacket = new LevelEventPacket();
259+
breakingPacket.setType(LevelEvent.BLOCK_STOP_BREAK);
260+
breakingPacket.setPosition(vector.toFloat());
261+
breakingPacket.setData(0);
262+
session.sendUpstreamPacket(breakingPacket);
263+
259264
LevelEventPacket blockBreakPacket = new LevelEventPacket();
260265
blockBreakPacket.setType(LevelEvent.PARTICLE_DESTROY_BLOCK);
261266
blockBreakPacket.setPosition(vector.toFloat());

core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/entity/player/input/BedrockPlayerAuthInputTranslator.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import org.cloudburstmc.protocol.bedrock.data.PlayerAuthInputData;
3434
import org.cloudburstmc.protocol.bedrock.data.entity.EntityFlag;
3535
import org.cloudburstmc.protocol.bedrock.data.inventory.transaction.ItemUseTransaction;
36-
import org.cloudburstmc.protocol.bedrock.packet.ItemStackResponsePacket;
3736
import org.cloudburstmc.protocol.bedrock.packet.PlayerActionPacket;
3837
import org.cloudburstmc.protocol.bedrock.packet.PlayerAuthInputPacket;
3938
import org.geysermc.geyser.GeyserImpl;
@@ -56,6 +55,7 @@
5655
import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.player.ServerboundPlayerAbilitiesPacket;
5756
import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.player.ServerboundPlayerCommandPacket;
5857

58+
import java.util.List;
5959
import java.util.Set;
6060

6161
@Translator(packet = PlayerAuthInputPacket.class)
@@ -76,11 +76,7 @@ public void translate(GeyserSession session, PlayerAuthInputPacket packet) {
7676
for (PlayerAuthInputData input : inputData) {
7777
switch (input) {
7878
case PERFORM_ITEM_INTERACTION -> processItemUseTransaction(session, packet.getItemUseTransaction());
79-
case PERFORM_ITEM_STACK_REQUEST -> {
80-
ItemStackResponsePacket responsePacket = new ItemStackResponsePacket();
81-
responsePacket.getEntries().add(session.getInventoryTranslator().translateRequest(session, session.getPlayerInventory(), packet.getItemStackRequest()));
82-
session.sendUpstreamPacket(responsePacket);
83-
}
79+
case PERFORM_ITEM_STACK_REQUEST -> session.getInventoryTranslator().translateRequests(session, session.getPlayerInventory(), List.of(packet.getItemStackRequest()));
8480
case PERFORM_BLOCK_ACTIONS -> BedrockBlockActions.translate(session, packet.getPlayerActions());
8581
case START_SNEAKING -> {
8682
ServerboundPlayerCommandPacket startSneakPacket = new ServerboundPlayerCommandPacket(entity.getEntityId(), PlayerState.START_SNEAKING);

0 commit comments

Comments
 (0)