Ola.
Eu tenho um servidor de “minecraft” no meu PC, e estou a criar um “túnel” para bloquear algumas açoes dos players.
Basicamente, o cliente conecta ao meu programa, e eu reenvio tudo que eu receber do cliente para o servidor e vice-versa.
while ((bytesRead = In.read(byteBuffer)) != -1) {
if (Debug.dmode && isClient ) {
//System.out.println("byte %d" + totalBytesMoved);
//System.out.println(stringToHex(new String(byteBuffer)));
//System.out.println(byteBuffer[0]);
}
Out.write(byteBuffer, 0, bytesRead);
Out.flush();
}
O túnel esta a funcionar correctamente, e eu consigo jogar através do túnel perfeitamente e imprimir somente os bytes enviados do cliente para o servidor.
O problema é, eu quero bloquear uma acção especifica (Destruir blocos de uma certa área - para quem conhece o jogo), mas não consigo entender as acções a partir do print dos bytes.
Ja tentei muitas vezes entender os bytes a imprimi-los, porem parece que os bytes são diferentes para a mesma acção em tempos diferentes, talvez porque o conteúdo, por exemplo a posição do jogador esta em 2 ou mais bytes, e não em uma só posição.
Alguém tem alguma ideia de como posso resolver isso?
Thx for all.