package main import ( "encoding/binary" "net" ) /* login to El */ func sendLogin(c net.Conn, user string, password string) { s := user + " " + password lungime := len(s) + 3 b := make([]byte, lungime+2) b[0] = 140 b[1] = byte(lungime % 256) b[2] = byte(lungime / 256) copy(b[3:], s) b[lungime+1] = 0 binary.Write(c, binary.LittleEndian, b) } /* Send back to server what we received */ func sendPingReply(c net.Conn, b []byte) { ping_reply := make([]byte, 7) ping_reply[0] = b[0] ping_reply[1] = b[1] ping_reply[2] = b[2] ping_reply[3] = b[3] ping_reply[4] = b[4] ping_reply[5] = b[5] ping_reply[6] = b[6] binary.Write(c, binary.LittleEndian, ping_reply) } func sendMessage(c net.Conn, user string, mesaj string) { s := user + " " + mesaj msg := make([]byte, len(s)+3) msg[0] = 2 msg[1] = byte((len(s) + 1) % 256) msg[2] = byte((len(s) + 1) / 256) copy(msg[3:], s) binary.Write(c, binary.LittleEndian, msg) } func sendHeartBeat(c net.Conn) { hb := make([]byte, 3) hb[0] = 14 hb[1] = 1 hb[2] = 0 binary.Write(c, binary.LittleEndian, hb) } /* // Not used right now func sendMeMyActors(c net.Conn) { msg := make([]byte, 3) msg[0] = 8 msg[1] = 1 msg[2] = 0 binary.Write(c, binary.LittleEndian, msg) } */ func sendTrade(c net.Conn, actor int) { msg := make([]byte, 7) msg[0] = 32 msg[1] = 5 msg[2] = 0 msg[3] = byte(actor % 256) msg[4] = byte(actor / 256) msg[5] = 0 msg[6] = 0 // @TODO@ - Add proper debug statement // fmt.Printf("Send trade hex dump: %s\n", hex.Dump(msg)) binary.Write(c, binary.LittleEndian, msg) } func putItemOnTrade(c net.Conn, quantity int, inv_index int) { msg := make([]byte, 9) msg[0] = PUT_OBJECT_ON_TRADE msg[1] = 7 msg[2] = 0 msg[3] = 1 msg[4] = byte(inventar[inv_index].Pos) msg[5] = byte(quantity % 256) msg[6] = byte(quantity / 256) msg[7] = 0 msg[8] = 0 binary.Write(c, binary.LittleEndian, msg) } func acceptTrade(c net.Conn) { msg := make([]byte, 19) msg[0] = ACCEPT_TRADE msg[1] = 17 msg[2] = 0 for i := 0; i < 16; i++ { msg[3+i] = 1 } binary.Write(c, binary.LittleEndian, msg) }