Moved item ban checking into the PlayerSlot handler. Still has the issue of kicking the person too early though.

This commit is contained in:
high 2011-08-13 12:50:53 -04:00
parent 258b7d48fb
commit ad664bfcca
4 changed files with 27 additions and 29 deletions

View file

@ -111,19 +111,10 @@ namespace TShockAPI
{PacketTypes.LiquidSet, HandleLiquidSet},
{PacketTypes.PlayerSpawn, HandleSpawn},
{PacketTypes.SyncPlayers, HandleSync},
{PacketTypes.PlayerSlot, HandlePlayerSlot},
};
}
private static bool HandleSync(GetDataHandlerArgs args)
{
if (TShock.Config.EnableAntiLag)
{
Debug.WriteLine("FUCK SYNCS");
return true;
}
return false;
}
public static bool HandlerGetData(PacketTypes type, TSPlayer player, MemoryStream data)
{
GetDataHandlerDelegate handler;
@ -141,6 +132,26 @@ namespace TShockAPI
return false;
}
private static bool HandleSync(GetDataHandlerArgs args)
{
return TShock.Config.EnableAntiLag;
}
private static bool HandlePlayerSlot(GetDataHandlerArgs args)
{
int plr = args.Data.ReadInt8();
int slot = args.Data.ReadInt8();
int stack = args.Data.ReadInt8();
string itemname = Encoding.ASCII.GetString(args.Data.ReadBytes((int)(args.Data.Length - args.Data.Position - 1)));
if (!args.Player.Group.HasPermission("usebanneditem") && TShock.Itembans.ItemIsBanned(itemname))
{
args.Player.Disconnect("Using banned item: " + itemname + ", remove it and rejoin");
}
return false;
}
private static bool HandlePlayerInfo(GetDataHandlerArgs args)
{
byte playerid = args.Data.ReadInt8();
@ -270,7 +281,7 @@ namespace TShockAPI
args.Player.AwaitingName = false;
return true;
}
if (args.Player.AwaitingTemp1)
{
args.Player.TempArea.X = x;
@ -594,7 +605,7 @@ namespace TShockAPI
if (args.Player.AwaitingName)
{
args.Player.SendMessage("Region Name: " + TShock.Regions.InAreaRegionName(tilex, tiley) , Color.Yellow);
args.Player.SendMessage("Region Name: " + TShock.Regions.InAreaRegionName(tilex, tiley), Color.Yellow);
args.Player.SendTileSquare(tilex, tiley);
args.Player.AwaitingName = false;
return true;

View file

@ -36,5 +36,5 @@ using System.Runtime.InteropServices;
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("3.2.6.0812")]
[assembly: AssemblyFileVersion("3.2.6.0812")]
[assembly: AssemblyVersion("3.2.6.0813")]
[assembly: AssemblyFileVersion("3.2.6.0813")]

View file

@ -329,8 +329,9 @@ namespace TShockAPI
//Todo: Separate this into a few functions. SendTo, SendToAll, etc
public virtual void SendData(PacketTypes msgType, string text = "", int number = 0, float number2 = 0f, float number3 = 0f, float number4 = 0f, int number5 = 0)
{
if (RealPlayer && !ConnectionAlive)
if (!RealPlayer || !ConnectionAlive)
return;
NetMessage.SendData((int)msgType, Index, -1, text, number, number2, number3, number4, number5);
}

View file

@ -375,20 +375,6 @@ namespace TShockAPI
player.TilesDestroyed.Clear();
}
}
if (!player.Group.HasPermission("usebanneditem"))
{
var inv = player.TPlayer.inventory;
for (int i = 0; i < inv.Length; i++)
{
if (inv[i] != null && Itembans.ItemIsBanned(inv[i].name))
{
player.Disconnect("Using banned item: " + inv[i].name + ", remove it and rejoin");
break;
}
}
}
}
}
}