diff --git a/core/src/main/java/org/geysermc/geyser/item/enchantment/Enchantment.java b/core/src/main/java/org/geysermc/geyser/item/enchantment/Enchantment.java index 8ad58c9c3b0..118d085c8a3 100644 --- a/core/src/main/java/org/geysermc/geyser/item/enchantment/Enchantment.java +++ b/core/src/main/java/org/geysermc/geyser/item/enchantment/Enchantment.java @@ -63,7 +63,7 @@ public static Enchantment read(RegistryEntryContext context) { BedrockEnchantment bedrockEnchantment = BedrockEnchantment.getByJavaIdentifier(context.id().asString()); - String description = bedrockEnchantment == null ? MessageTranslator.deserializeDescription(context.session(), data) : null; + String description = MessageTranslator.deserializeDescription(context.session(), data); return new Enchantment(effects, supportedItems, maxLevel, description, anvilCost, exclusiveSet, bedrockEnchantment); } diff --git a/core/src/main/java/org/geysermc/geyser/item/type/Item.java b/core/src/main/java/org/geysermc/geyser/item/type/Item.java index 84d3e37fb79..86491b9e319 100644 --- a/core/src/main/java/org/geysermc/geyser/item/type/Item.java +++ b/core/src/main/java/org/geysermc/geyser/item/type/Item.java @@ -253,7 +253,7 @@ public void translateNbtToJava(@NonNull GeyserSession session, @NonNull NbtMap b } BedrockEnchantment bedrockEnchantment = enchantment.bedrockEnchantment(); - if (bedrockEnchantment == null) { + if (bedrockEnchantment == null || bedrockEnchantment == BedrockEnchantment.EFFICIENCY) { String enchantmentTranslation = MinecraftLocale.getLocaleString(enchantment.description(), session.locale()); addJavaOnlyEnchantment(session, builder, enchantmentTranslation, level); builder.addEnchantmentGlint(); diff --git a/core/src/main/java/org/geysermc/geyser/session/cache/BlockBreakHandler.java b/core/src/main/java/org/geysermc/geyser/session/cache/BlockBreakHandler.java index 041f76c0353..d7de3e54696 100644 --- a/core/src/main/java/org/geysermc/geyser/session/cache/BlockBreakHandler.java +++ b/core/src/main/java/org/geysermc/geyser/session/cache/BlockBreakHandler.java @@ -250,7 +250,7 @@ protected void handleBlockBreakActions(PlayerAuthInputPacket packet) { // At this point it's safe to assume that we won't get subsequent block actions on this position // so reset it and return since we've already broken the block if (Objects.equals(lastMinedPosition, position)) { - lastMinedPosition = null; + this.lastMinedPosition = null; continue; } @@ -515,7 +515,7 @@ protected boolean canDestroyBlock(BlockState state) { protected boolean mayBreak(float progress, boolean bedrockDestroyed) { // We're tolerant here to account for e.g. obsidian breaking speeds not matching 1:1 :( - return (serverSideBlockBreaking && progress >= 1.0F) || (bedrockDestroyed && progress >= 0.7F); + return (progress >= 1.0F) || (bedrockDestroyed && progress >= 0.7F); } protected void destroyBlock(BlockState state, Vector3i vector, Direction direction, boolean instamine) {