Track projectile updates being sent by the server, instead of received by the server.

This commit is contained in:
Olink 2020-05-24 16:00:20 -04:00
commit 16d1cdd360
4 changed files with 79 additions and 25 deletions

View file

@ -1622,6 +1622,32 @@ namespace TShockAPI
e.Handled = true;
return;
}
} else if (e.MsgId == PacketTypes.ProjectileNew)
{
if (e.number >= 0 && e.number < Main.projectile.Length)
{
var projectile = Main.projectile[e.number];
if (projectile.active && projectile.owner >= 0 && GetDataHandlers.projectileCreatesLiquid.ContainsKey(projectile.type))
{
var player = Players[projectile.owner];
if (player != null)
{
if (player.RecentlyCreatedProjectiles.Any(p => p.Index == e.number && p.Killed))
{
player.RecentlyCreatedProjectiles.RemoveAll(p => p.Index == e.number && p.Killed);
}
if (!player.RecentlyCreatedProjectiles.Any(p => p.Index == e.number)) {
player.RecentlyCreatedProjectiles.Add(new GetDataHandlers.ProjectileStruct()
{
Index = e.number,
CreatedAt = DateTime.Now
});
}
}
}
}
}
}