diff --git a/NadekoBot/Classes/Music/StreamRequest.cs b/NadekoBot/Classes/Music/StreamRequest.cs index 7ea9e4ea..2beeb9b8 100644 --- a/NadekoBot/Classes/Music/StreamRequest.cs +++ b/NadekoBot/Classes/Music/StreamRequest.cs @@ -200,25 +200,22 @@ namespace NadekoBot.Classes.Music { Console.WriteLine("Buffering canceled, stream is completed."); return; } - - if (buffer.readPos > 5.MiB() && buffer.writePos > 5.MiB()) { // if buffer is over 5 MiB, create new one - var skip = 5.MB(); //remove only 5 MB, just in case - var newBuffer = new DualStream(); - + if (buffer.readPos > 5.MiB() && buffer.writePos > 5.MiB()) { + var skip = 5.MB(); lock (_bufferLock) { - byte[] data = buffer.ToArray().Skip(skip).ToArray(); + byte[] data = new byte[buffer.Length - skip]; + Buffer.BlockCopy(buffer.GetBuffer(), skip, data, 0, (int)(buffer.Length - skip)); var newReadPos = buffer.readPos - skip; var newPos = buffer.Position - skip; - buffer = newBuffer; + buffer = new DualStream(); buffer.Write(data, 0, data.Length); buffer.readPos = newReadPos; buffer.Position = newPos; } } - - var buf = new byte[2048]; + var buf = new byte[4096]; int read = 0; - read = await p.StandardOutput.BaseStream.ReadAsync(buf, 0, 2048); + read = await p.StandardOutput.BaseStream.ReadAsync(buf, 0, buf.Length); //Console.WriteLine($"Read: {read}"); if (read == 0) { if (attempt == 5) { diff --git a/NadekoBot/NadekoBot.cs b/NadekoBot/NadekoBot.cs index 8d700e8c..53c2bd58 100644 --- a/NadekoBot/NadekoBot.cs +++ b/NadekoBot/NadekoBot.cs @@ -105,7 +105,16 @@ namespace NadekoBot { //run the bot client.ExecuteAndWait(async () => { - await client.Connect(creds.Username, creds.Password); + try { + await client.Connect(creds.Username, creds.Password); + } + catch (Exception ex) { + Console.WriteLine($"Probably wrong EMAIL or PASSWORD.\n{ex.Message}"); + Console.ReadKey(); + Console.WriteLine(ex); + Console.ReadKey(); + return; + } Console.WriteLine("-----------------"); Console.WriteLine(NadekoStats.Instance.GetStats()); Console.WriteLine("-----------------");