/* * private static void Send(String request) * { * byte[] bytesToSend = ASCIIEncoding.ASCII.GetBytes(request + "\n"); * nwStream.Write(bytesToSend, 0, bytesToSend.Length); * nwStream.Flush(); * VRCToolsLogger.Info(">>> " + request); * } * * private static string Receive() * { * String r = ""; * while (true) * { * byte[] bytesToRead = new byte[client.ReceiveBufferSize]; * int bytesRead = nwStream.Read(bytesToRead, 0, client.ReceiveBufferSize); * string text = Encoding.ASCII.GetString(bytesToRead, 0, bytesRead); * r += text; * if (text.EndsWith("\n")) break; * else VRCToolsLogger.Info("response not ending with \\n, continuing reception..."); * } * VRCToolsLogger.Info("<<< " + r); * return r; * } */ private static VRCTResponse RequestSync(String request) { lock (requestLocker) { //Send(request); byte[] bytesToSend = ASCIIEncoding.ASCII.GetBytes(request + "\n"); nwStream.Write(bytesToSend, 0, bytesToSend.Length); nwStream.Flush(); VRCToolsLogger.Info(">>> " + request); //VRCTResponse response = JsonUtility.FromJson<VRCTResponse>(Receive()); String r = ""; while (true) { byte[] bytesToRead = new byte[client.ReceiveBufferSize]; int bytesRead = nwStream.Read(bytesToRead, 0, client.ReceiveBufferSize); string text = Encoding.ASCII.GetString(bytesToRead, 0, bytesRead); r += text; if (text.EndsWith("\n")) { break; } else { VRCToolsLogger.Info("response not ending with \\n, continuing reception..."); } } VRCToolsLogger.Info("<<< " + r); VRCTResponse response = JsonUtility.FromJson <VRCTResponse>(r); //VRCTResponse response = BestHTTP.JSON.Json.Decode(r) as VRCTResponse; if (response.returncode == ReturnCodes.BANNED_ACCOUNT) { VRCToolsLogger.Warn("Request rejected: Account banned (" + response.data + ")"); VRCToolsMainComponent.MessageGUI(Color.red, "Request rejected: Account banned (" + response.data + ")", 3); } else if (response.returncode == ReturnCodes.BANNED_ADDRESS) { VRCToolsLogger.Warn("Request rejected: Address banned (" + response.data + ")"); VRCToolsMainComponent.MessageGUI(Color.red, "Request rejected: Address banned (" + response.data + ")", 3); } return(response); } }
public static string GetLastestVersion() { if (!InitConnection()) { return(VRCToolsMainComponent.VERSION); } VRCTRequest request = new VRCTRequest("GETVERSION", ""); VRCTResponse response = RequestSync(request.AsJson()); if (response.returncode != ReturnCodes.WAITING_FOR_UPDATE && response.data != VRCToolsMainComponent.VERSION) { if (response.returncode != ReturnCodes.BANNED_ADDRESS && response.returncode != ReturnCodes.BANNED_ACCOUNT) { VRCToolsLogger.Warn("Using older version: " + VRCToolsMainComponent.VERSION + " / " + response.data); badVersion = true; } } return(response.data); }