Fix inventory issues and furnace minecart item visibility

This commit is contained in:
Camotoy 2021-06-19 23:44:37 -04:00
parent ade33d54ec
commit af401dddc8
No known key found for this signature in database
GPG key ID: 7EEFB66FE798081F
2 changed files with 16 additions and 0 deletions

View file

@ -35,6 +35,7 @@ import com.nukkitx.network.util.DisconnectReason;
import com.nukkitx.protocol.bedrock.BedrockPacketCodec;
import com.nukkitx.protocol.bedrock.BedrockServerSession;
import com.nukkitx.protocol.bedrock.data.AttributeData;
import com.nukkitx.protocol.bedrock.data.ExperimentData;
import com.nukkitx.protocol.bedrock.handler.BedrockPacketHandler;
import com.nukkitx.protocol.bedrock.packet.*;
import com.nukkitx.protocol.bedrock.util.EncryptionUtils;
@ -46,6 +47,7 @@ import org.geysermc.connector.entity.attribute.AttributeType;
import org.geysermc.connector.network.BedrockProtocol;
import org.geysermc.connector.network.session.auth.AuthData;
import org.geysermc.connector.network.session.auth.BedrockClientData;
import org.geysermc.connector.network.translators.item.ItemRegistry;
import org.geysermc.connector.utils.AttributeUtils;
import org.geysermc.connector.utils.FileUtils;
import org.geysermc.cumulus.Form;
@ -202,6 +204,12 @@ public class PacketHandler implements BedrockPacketHandler {
stack.setExperimentsPreviouslyToggled(false);
stack.setForcedToAccept(false);
stack.setGameVersion("*");
if (ItemRegistry.FURNACE_MINECART_DATA != null) {
// Allow custom items to work
stack.getExperiments().add(new ExperimentData("data_driven_items", true));
}
session.sendPacket(stack);
break;
default:

View file

@ -135,6 +135,8 @@ public class Player {
startGamePacket.setCurrentTick(0);
startGamePacket.setEnchantmentSeed(0);
startGamePacket.setMultiplayerCorrelationId("");
startGamePacket.setItemEntries(ItemRegistry.ITEMS);
startGamePacket.setInventoriesServerAuthoritative(true);
startGamePacket.setServerEngine("");
SyncedPlayerMovementSettings settings = new SyncedPlayerMovementSettings();
@ -146,6 +148,12 @@ public class Player {
startGamePacket.setVanillaVersion("*");
session.sendPacket(startGamePacket);
if (ItemRegistry.FURNACE_MINECART_DATA != null) {
ItemComponentPacket itemComponentPacket = new ItemComponentPacket();
itemComponentPacket.getItems().add(ItemRegistry.FURNACE_MINECART_DATA);
session.sendPacket(itemComponentPacket);
}
// Send an empty chunk
LevelChunkPacket data = new LevelChunkPacket();
data.setChunkX(0);