Skip to content

Commit

Permalink
Make BlockInventoryHolder block strings immutable; clean up lectern u…
Browse files Browse the repository at this point in the history
…nloading
  • Loading branch information
Camotoy committed Feb 17, 2021
1 parent 72186d9 commit 22c39d2
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
package org.geysermc.connector.network.translators.inventory.holder;

import com.github.steveice10.mc.protocol.data.game.entity.metadata.Position;
import com.google.common.collect.Sets;
import com.google.common.collect.ImmutableSet;
import com.nukkitx.math.vector.Vector3i;
import com.nukkitx.nbt.NbtMap;
import com.nukkitx.protocol.bedrock.data.inventory.ContainerType;
Expand All @@ -40,6 +40,7 @@
import org.geysermc.connector.network.translators.world.block.BlockTranslator;

import java.util.Collections;
import java.util.HashSet;
import java.util.Set;

/**
Expand All @@ -58,8 +59,10 @@ public BlockInventoryHolder(String javaBlockIdentifier, ContainerType containerT
this.defaultJavaBlockState = BlockTranslator.getJavaBlockState(javaBlockIdentifier);
this.containerType = containerType;
if (validBlocks != null) {
this.validBlocks = Sets.newHashSet(validBlocks);
this.validBlocks.add(javaBlockIdentifier.split("\\[")[0]);
Set<String> validBlocksTemp = new HashSet<>(validBlocks.length + 1);
Collections.addAll(validBlocksTemp, validBlocks);
validBlocksTemp.add(javaBlockIdentifier.split("\\[")[0]);
this.validBlocks = ImmutableSet.copyOf(validBlocksTemp);
} else {
this.validBlocks = Collections.singleton(javaBlockIdentifier.split("\\[")[0]);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public void translate(ServerUnloadChunkPacket packet, GeyserSession session) {
iterator = session.getLecternCache().iterator();
while (iterator.hasNext()) {
Vector3i position = iterator.next();
if (Math.floor((double) position.getX() / 16) == packet.getX() && Math.floor((double) position.getZ() / 16) == packet.getZ()) {
if ((position.getX() >> 4) == packet.getX() && (position.getZ() >> 4) == packet.getZ()) {
iterator.remove();
}
}
Expand Down

0 comments on commit 22c39d2

Please sign in to comment.