2019-10-02 20:45:29 +00:00
|
|
|
package org.geysermc.connector.network.translators.bedrock;
|
|
|
|
|
|
|
|
import com.nukkitx.protocol.bedrock.packet.SetLocalPlayerAsInitializedPacket;
|
2019-10-09 18:39:38 +00:00
|
|
|
import org.geysermc.connector.entity.PlayerEntity;
|
2019-10-02 20:45:29 +00:00
|
|
|
import org.geysermc.connector.network.session.GeyserSession;
|
|
|
|
import org.geysermc.connector.network.translators.PacketTranslator;
|
2019-10-09 18:39:38 +00:00
|
|
|
import org.geysermc.connector.utils.SkinUtils;
|
2019-10-02 20:45:29 +00:00
|
|
|
|
2019-10-04 22:29:33 +00:00
|
|
|
public class BedrockPlayerInitializedTranslator extends PacketTranslator<SetLocalPlayerAsInitializedPacket> {
|
2019-10-02 20:45:29 +00:00
|
|
|
@Override
|
|
|
|
public void translate(SetLocalPlayerAsInitializedPacket packet, GeyserSession session) {
|
|
|
|
if (session.getPlayerEntity().getGeyserId() == packet.getRuntimeEntityId()) {
|
2019-10-09 18:39:38 +00:00
|
|
|
if (!session.getUpstream().isInitialized()) {
|
|
|
|
session.getUpstream().setInitialized(true);
|
|
|
|
|
2019-12-28 13:35:21 +00:00
|
|
|
if (!(session.getConnector().getConfig().getRemote().getAuthType().hashCode() == "online".hashCode())) {
|
|
|
|
session.getConnector().getLogger().info("Attempting to login using offline mode... authentication is disabled.");
|
|
|
|
session.authenticate(session.getAuthenticationData().getName());
|
|
|
|
}
|
|
|
|
|
2019-10-09 18:39:38 +00:00
|
|
|
for (PlayerEntity entity : session.getEntityCache().getEntitiesByType(PlayerEntity.class)) {
|
|
|
|
if (!entity.isValid()) {
|
|
|
|
// async skin loading
|
|
|
|
SkinUtils.requestAndHandleSkinAndCape(entity, session, skinAndCape -> entity.sendPlayer(session));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2019-10-02 20:45:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|