mirror of
https://github.com/Minestom/Minestom.git
synced 2025-02-07 07:51:38 +01:00
Fixed player mining vanilla block
This commit is contained in:
parent
5e91b75d78
commit
dfd7ca84a4
@ -1609,11 +1609,18 @@ public class Player extends LivingEntity {
|
||||
}
|
||||
|
||||
public void resetTargetBlock() {
|
||||
if (targetBlockPosition != null)
|
||||
if (targetBlockPosition != null) {
|
||||
sendBlockBreakAnimation(targetBlockPosition, (byte) -1); // Clear the break animation
|
||||
this.targetCustomBlock = null;
|
||||
this.targetBlockPosition = null;
|
||||
this.targetBlockTime = 0;
|
||||
this.targetCustomBlock = null;
|
||||
this.targetBlockPosition = null;
|
||||
this.targetBlockTime = 0;
|
||||
|
||||
// Remove effect
|
||||
RemoveEntityEffectPacket removeEntityEffectPacket = new RemoveEntityEffectPacket();
|
||||
removeEntityEffectPacket.entityId = getEntityId();
|
||||
removeEntityEffectPacket.effectId = 4;
|
||||
getPlayerConnection().sendPacket(removeEntityEffectPacket);
|
||||
}
|
||||
}
|
||||
|
||||
public void refreshAddBossbar(BossBar bossBar) {
|
||||
|
@ -206,6 +206,8 @@ public class InstanceContainer extends Instance {
|
||||
|
||||
@Override
|
||||
public boolean breakBlock(Player player, BlockPosition blockPosition) {
|
||||
player.resetTargetBlock();
|
||||
|
||||
Chunk chunk = getChunkAt(blockPosition);
|
||||
|
||||
int x = blockPosition.getX();
|
||||
@ -226,7 +228,6 @@ public class InstanceContainer extends Instance {
|
||||
player.callEvent(PlayerBlockBreakEvent.class, blockBreakEvent);
|
||||
boolean result = !blockBreakEvent.isCancelled();
|
||||
if (result) {
|
||||
|
||||
// Break or change the broken block based on event result
|
||||
setSeparateBlocks(x, y, z, blockBreakEvent.getResultBlockId(), blockBreakEvent.getResultCustomBlockId());
|
||||
|
||||
@ -239,7 +240,7 @@ public class InstanceContainer extends Instance {
|
||||
|
||||
chunk.getViewers().forEach(p -> {
|
||||
// The player who breaks the block already get particles client-side
|
||||
if (!(p.equals(player) && player.isCreative())) {
|
||||
if (customBlock == null || !(p.equals(player) && player.isCreative())) {
|
||||
p.getPlayerConnection().sendPacket(particlePacket);
|
||||
}
|
||||
});
|
||||
|
@ -13,7 +13,6 @@ import net.minestom.server.item.StackingRule;
|
||||
import net.minestom.server.network.packet.client.play.ClientPlayerDiggingPacket;
|
||||
import net.minestom.server.network.packet.server.play.AcknowledgePlayerDiggingPacket;
|
||||
import net.minestom.server.network.packet.server.play.EntityEffectPacket;
|
||||
import net.minestom.server.network.packet.server.play.RemoveEntityEffectPacket;
|
||||
import net.minestom.server.utils.BlockPosition;
|
||||
|
||||
public class PlayerDiggingListener {
|
||||
@ -95,7 +94,7 @@ public class PlayerDiggingListener {
|
||||
// Unverified block break, client is fully responsive
|
||||
instance.breakBlock(player, blockPosition);
|
||||
|
||||
sendAcknowledgePacket(player, blockPosition, blockId,
|
||||
sendAcknowledgePacket(player, blockPosition, 0,
|
||||
ClientPlayerDiggingPacket.Status.FINISHED_DIGGING, true);
|
||||
break;
|
||||
case DROP_ITEM_STACK:
|
||||
@ -157,14 +156,7 @@ public class PlayerDiggingListener {
|
||||
}
|
||||
|
||||
private static void removeEffect(Player player) {
|
||||
if (player.getCustomBlockTarget() != null) {
|
||||
player.resetTargetBlock();
|
||||
|
||||
RemoveEntityEffectPacket removeEntityEffectPacket = new RemoveEntityEffectPacket();
|
||||
removeEntityEffectPacket.entityId = player.getEntityId();
|
||||
removeEntityEffectPacket.effectId = 4;
|
||||
player.getPlayerConnection().sendPacket(removeEntityEffectPacket);
|
||||
}
|
||||
player.resetTargetBlock();
|
||||
}
|
||||
|
||||
private static void sendAcknowledgePacket(Player player, BlockPosition blockPosition, int blockId,
|
||||
|
Loading…
Reference in New Issue
Block a user