public static string ToHtml(this IOpenRCT2String str) { var sb = new StringBuilder(); var htmlWriter = new StringWriter(sb); var htmlEncoder = HtmlEncoder.Default; WriteColourSpanOpen(htmlWriter, (char)144); char[] charArray = str.Raw.ToCharArray(); for (int i = 0; i < charArray.Length; i++) { char c = charArray[i]; if (OpenRCT2String.IsFormatCode(c)) { if (OpenRCT2String.IsColourCode(c)) { WriteSpanClose(htmlWriter); WriteColourSpanOpen(htmlWriter, c); } } else { htmlEncoder.Encode(htmlWriter, charArray, i, 1); } } WriteSpanClose(htmlWriter); return(sb.ToString()); }
private async Task OnReceiveMessage(string message) { var jsonMessage = JsonConvert.DeserializeObject <JsonMessage>(message); switch (jsonMessage.type) { case "connect": string server; int port; if (TryParseHost(jsonMessage.host, out server, out port)) { if (!await Connect(server, port, jsonMessage.userName, jsonMessage.password)) { _shouldClose = true; } } else { await SendError("Unable to connect to server."); _shouldClose = true; } break; case "chat": IOpenRCT2String openRCT2string = new OpenRCT2String(jsonMessage.text); _gameClient.SendChat(openRCT2string); break; } }
private void HandleChat(BinaryReader br) { string chatMessage = br.ReadUTF8(); IOpenRCT2String openRCT2string = new OpenRCT2String(chatMessage); RaiseEvent(ChatMessageReceived, openRCT2string); }