72 lines
1.7 KiB
Go
72 lines
1.7 KiB
Go
package requetes
|
|
|
|
import (
|
|
"ConspiracyDecoder/binary"
|
|
"fmt"
|
|
"os"
|
|
)
|
|
|
|
func ReadRequete(bytes []byte) {
|
|
bytesEntete := bytes[:20]
|
|
|
|
// Lecture de l'en-tête.
|
|
entete, err := ReadEntete(bytesEntete)
|
|
if (err != nil) {
|
|
fmt.Println(err)
|
|
os.Exit(1)
|
|
}
|
|
|
|
fmt.Printf("%+v\n", entete)
|
|
|
|
switch entete.NumReq {
|
|
case NUMREQ_REQUET_MES_PARTIES:
|
|
fmt.Println("Requête : Mes parties.")
|
|
|
|
// Lecture d'une requête connectée basique.
|
|
reqConnectee := ReadRequeteConnectee(bytes[20:28])
|
|
|
|
fmt.Printf("ID de connexion : %d\n", reqConnectee.IdConnexion)
|
|
|
|
if len(bytes) > 28 {
|
|
fmt.Println("\nLecture de la réponse.")
|
|
fmt.Println("\n === \n")
|
|
ReadRequete(bytes[28:]) // Lecture de la réponse, directement après dans le buffer.
|
|
}
|
|
break
|
|
case NUMREQ_RESULT_INFO_INSCRIPTION_PARTIE:
|
|
fmt.Println("Réponse : Informations inscriptions / parties.")
|
|
|
|
parties, err := ReadResultatInfoInscriptionPartie(bytes[20:])
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
os.Exit(1)
|
|
}
|
|
|
|
for index, partie := range parties {
|
|
fmt.Printf("%d: %+v\n", index, partie)
|
|
}
|
|
break
|
|
case NUMREQ_RESULT_EXCEPTION:
|
|
fmt.Println("Réponse : Exception.")
|
|
fmt.Printf("CodeException : %d\n", binary.BinaryGetInt(bytes, 20, 4))
|
|
break
|
|
case NUMREQ_RESULT_REQUETE:
|
|
fmt.Println("Réponse : RésultatRequête.")
|
|
fmt.Printf("Message acquité : %d\nCode erreur : %d\n", binary.BinaryGetInt(bytes, 20, 4), binary.BinaryGetInt(bytes, 24, 4))
|
|
break
|
|
default:
|
|
fmt.Println("Type de requête non géré.")
|
|
}
|
|
}
|
|
|
|
func CreateRequetteConnecteeBasique(typeRequete int) []byte {
|
|
return append(WriteEntete(Entete{
|
|
Preambule: PREAMBULES[0],
|
|
Version: VERSION,
|
|
NumReq: int32(typeRequete),
|
|
TailleReq: 8,
|
|
}), WriteRequeteConnectee(RequeteConnectee{
|
|
IdConnexion: -1614038591215924784,
|
|
})...)
|
|
}
|