diff --git a/TShockAPI/PacketBufferer.cs b/TShockAPI/PacketBufferer.cs
index be00dd72..72b1bb5b 100644
--- a/TShockAPI/PacketBufferer.cs
+++ b/TShockAPI/PacketBufferer.cs
@@ -123,9 +123,13 @@ namespace TShockAPI
buffers[socket.whoAmI] = new PacketBuffer();
}
- void ServerHooks_SendBytes(ServerSock socket, byte[] buffer, int offset, int count, HandledEventArgs e)
+ public void SendBytes(ServerSock socket, byte[] buffer)
+ {
+ SendBytes(socket, buffer, 0, buffer.Length);
+ }
+
+ public void SendBytes(ServerSock socket, byte[] buffer, int offset, int count)
{
- e.Handled = true;
lock (buffers[socket.whoAmI])
{
#if DEBUG_NET
@@ -142,6 +146,12 @@ namespace TShockAPI
}
}
}
+
+ void ServerHooks_SendBytes(ServerSock socket, byte[] buffer, int offset, int count, HandledEventArgs e)
+ {
+ e.Handled = true;
+ SendBytes(socket, buffer, offset, count);
+ }
#if DEBUG_NET
static int Compress(byte[] buffer, int offset, int count)
{
diff --git a/TShockAPI/Properties/AssemblyInfo.cs b/TShockAPI/Properties/AssemblyInfo.cs
index 18787b22..4f954f7c 100644
--- a/TShockAPI/Properties/AssemblyInfo.cs
+++ b/TShockAPI/Properties/AssemblyInfo.cs
@@ -36,5 +36,5 @@ using System.Runtime.InteropServices;
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("3.2.6.0811")]
-[assembly: AssemblyFileVersion("3.2.6.0811")]
+[assembly: AssemblyVersion("3.2.6.0812")]
+[assembly: AssemblyFileVersion("3.2.6.0812")]
diff --git a/TShockAPI/TSPlayer.cs b/TShockAPI/TSPlayer.cs
index 0b8d2403..7ec18de9 100644
--- a/TShockAPI/TSPlayer.cs
+++ b/TShockAPI/TSPlayer.cs
@@ -339,20 +339,7 @@ namespace TShockAPI
if (!RealPlayer || !ConnectionAlive)
return false;
- try
- {
- if (Netplay.serverSock[Index].tcpClient.Connected)
- {
- Netplay.serverSock[Index].networkStream.Write(data, 0, data.Length);
- return true;
- }
-
- }
- catch (Exception ex)
- {
- Log.Error(ex.ToString());
- }
- return false;
+ return TShock.SendBytes(Netplay.serverSock[Index], data);
}
}
diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs
index d74e85ef..eed1d0bd 100644
--- a/TShockAPI/TShock.cs
+++ b/TShockAPI/TShock.cs
@@ -30,6 +30,7 @@ using System.Data;
using System.Diagnostics;
using System.IO;
using System.Net;
+using System.Net.Sockets;
using System.Reflection;
using System.Security.Cryptography;
using System.Linq;
@@ -64,7 +65,7 @@ namespace TShockAPI
public static ConfigFile Config { get; set; }
public static IDbConnection DB;
public static bool OverridePort;
- PacketBufferer bufferer;
+ static PacketBufferer bufferer;
public override Version Version
@@ -655,6 +656,33 @@ namespace TShockAPI
}
}
+ ///
+ /// Send bytes to client using packetbuffering if available
+ ///
+ /// socket to send to
+ /// bytes to send
+ /// False on exception
+ public static bool SendBytes(ServerSock client, byte[] bytes)
+ {
+ if (bufferer != null)
+ {
+ bufferer.SendBytes(client, bytes);
+ return true;
+ }
+
+ try
+ {
+ if (client.tcpClient.Connected)
+ client.networkStream.Write(bytes, 0, bytes.Length);
+ return true;
+ }
+ catch (Exception ex)
+ {
+ Log.Error(ex.ToString());
+ }
+ return false;
+ }
+
private void OnSaveWorld(bool resettime, HandledEventArgs e)
{
Tools.Broadcast("Saving world. Momentary lag might result from this.", Color.Red);