Exemplo n.º 1
0
 private void WebSocket_OnMessage(object sender, MessageEventArgs e)
 {
     byte[] data = e.RawData;
     if (data.Length == 0)
     {
         return;
     }
     if (data[0] == (byte)Opcode.PixelUpdated)
     {
         logger.LogDebug($"WebSocket_OnMessage(): got pixel update {DataToString(data)}");
         byte chunkX                = data[1];
         byte chunkY                = data[2];
         byte relativeY             = data[4];
         byte relativeX             = data[5];
         byte color                 = data[6];
         PixelChangedEventArgs args = new PixelChangedEventArgs
         {
             Chunk    = (chunkX, chunkY),
             Pixel    = (relativeX, relativeY),
             Color    = (EarthPixelColor)color,
             DateTime = DateTime.Now
         };
         logger.LogDebug($"WebSocket_OnMessage(): pixel update: {args.Color} at {args.Chunk}:{args.Pixel}");
         OnPixelChanged?.Invoke(this, args);
     }
     else if (!listeningMode && data[0] == (byte)Opcode.Cooldown)
     {
         logger.LogDebug($"WebSocket_OnMessage(): got cooldown {DataToString(data)}");
         if (data[1] + data[2] > 0)
         {
             logger.LogInfo($"Current cooldown: {(data[1] << 8) + data[2]}");
         }
     }
     else
     {
         logger.LogDebug($"WebSocket_OnMessage(): opcode {(Opcode)data[0]}, ignoring");
     }
 }
 private void WebSocket_OnMessage(object sender, MessageEventArgs e)
 {
     byte[] buffer = e.RawData;
     if (buffer.Length == 0)
     {
         return;
     }
     if (buffer[0] == pixelUpdatedOpcode)
     {
         byte chunkX                = buffer[2];
         byte chunkY                = buffer[4];
         byte relativeY             = buffer[5];
         byte relativeX             = buffer[6];
         byte color                 = buffer[7];
         PixelChangedEventArgs args = new PixelChangedEventArgs
         {
             Chunk    = (chunkX, chunkY),
             Pixel    = (relativeX, relativeY),
             Color    = (PixelColor)color,
             DateTime = DateTime.Now
         };
         OnPixelChanged?.Invoke(this, args);
     }
 }