Skip to content

Secure chat state error #876

Open
Open
@Gight16

Description

Hello i created a bot and tried to send message in an premium server and it didnt send. When i tried on localhost i get this error:

[21:41:46 WARN]: Failed to update secure chat state for fentmaxxer1221: 'Chat disabled due to missing profile public key. Please try reconnecting.'

I thought the error was because of something I did wrong and when I tried the example codes I encountered the same thing. My code:

package me.deaglewolf.tools;

import net.kyori.adventure.text.Component;
import net.lenni0451.commons.httpclient.HttpClient;
import net.raphimc.minecraftauth.MinecraftAuth;
import net.raphimc.minecraftauth.step.java.StepMCProfile;
import net.raphimc.minecraftauth.step.java.StepMCToken;
import net.raphimc.minecraftauth.step.java.session.StepFullJavaSession;
import net.raphimc.minecraftauth.step.msa.StepMsaDeviceCode;
import org.geysermc.mcprotocollib.auth.GameProfile;
import org.geysermc.mcprotocollib.auth.SessionService;
import org.geysermc.mcprotocollib.network.Session;
import org.geysermc.mcprotocollib.network.event.session.SessionAdapter;
import org.geysermc.mcprotocollib.network.packet.Packet;
import org.geysermc.mcprotocollib.network.tcp.TcpClientSession;
import org.geysermc.mcprotocollib.protocol.MinecraftConstants;
import org.geysermc.mcprotocollib.protocol.MinecraftProtocol;
import org.geysermc.mcprotocollib.protocol.packet.ingame.clientbound.ClientboundLoginPacket;
import org.geysermc.mcprotocollib.protocol.packet.ingame.clientbound.ClientboundSystemChatPacket;
import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.ServerboundChatPacket;

import java.time.Instant;
import java.util.BitSet;

public class PlayGround {
    private static int i = 0;
    public static Thread thread = new Thread(() -> {
        while (true) {
            try {
                i++;
                System.out.println("adasda" + i);
                Thread.sleep(1000);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });

    public static void main(String[] args) throws Exception {
        MinecraftProtocol protocol;

        HttpClient httpClient = MinecraftAuth.createHttpClient();

        StepFullJavaSession.FullJavaSession javaSession = MinecraftAuth.JAVA_DEVICE_CODE_LOGIN.getFromInput(httpClient, new StepMsaDeviceCode.MsaDeviceCodeCallback(msaDeviceCode -> {
            // Method to generate a verification URL and a code for the user to enter on that page
            System.out.println("Go to " + msaDeviceCode.getVerificationUri());
            System.out.println("Enter code " + msaDeviceCode.getUserCode());

            // There is also a method to generate a direct URL without needing the user to enter a code
            System.out.println("Go to " + msaDeviceCode.getDirectVerificationUri());
        }));

        System.out.println("Username: " + javaSession.getMcProfile().getName());
        System.out.println("Access token: " + javaSession.getMcProfile().getMcToken().getAccessToken());
        System.out.println("Player certificates: " + javaSession.getPlayerCertificates());


        StepMCProfile.MCProfile mcProfile = javaSession.getMcProfile();
        StepMCToken.MCToken mcToken = mcProfile.getMcToken();

        GameProfile gameProfile = new GameProfile(mcProfile.getId(), mcProfile.getName());
        protocol = new MinecraftProtocol(
                gameProfile,
                mcToken.getAccessToken());

        SessionService sessionService = new SessionService();

        Session client = new TcpClientSession("127.0.0.1", 25565, protocol);
        client.setFlag(MinecraftConstants.SESSION_SERVICE_KEY, sessionService);
        client.setFlag(MinecraftConstants.ENCRYPT_CONNECTION, false);

        client.addListener(new SessionAdapter() {
            @Override
            public void packetReceived(Session session, Packet packet) {
                if (packet instanceof ClientboundLoginPacket) {
                    session.send(new ServerboundChatPacket("Hello, this is a test of MCProtocolLib.", Instant.now().toEpochMilli(), 0L, null, 0, new BitSet()));
                } else if (packet instanceof ClientboundSystemChatPacket systemChatPacket) {

                    session.disconnect(Component.text("Finished"));
                }
            }
        });

        thread.start();

        client.connect();

    }
}

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions