Merge branch 'general-devel' of github.com:TShock/TShock into general-devel

Conflicts:
	TShockAPI/GetDataHandlers.cs
This commit is contained in:
high 2011-08-13 12:51:45 -04:00
commit 4100fdc8f6
3 changed files with 34 additions and 2 deletions

View file

@ -95,7 +95,7 @@ namespace TShockAPI
public string MediumcoreBanReason = "Death results in a ban";
public string MediumcoreKickReason = "Death results in a kick";
public string ProjectileAbuseReason = "Projectile abuse";
public string TileAbuseReason = "Tile abuse ({0})";
public bool EnableDNSHostResolution;

View file

@ -111,6 +111,8 @@ namespace TShockAPI
{PacketTypes.LiquidSet, HandleLiquidSet},
{PacketTypes.PlayerSpawn, HandleSpawn},
{PacketTypes.SyncPlayers, HandleSync},
{PacketTypes.ChestGetContents, HandleChest},
{PacketTypes.SignNew, HandleSign}
{PacketTypes.PlayerSlot, HandlePlayerSlot},
};
}
@ -329,6 +331,11 @@ namespace TShockAPI
int tileX = Math.Abs(x);
int tileY = Math.Abs(y);
if (tiletype >= ((type == 1) ? Main.maxTileSets : Main.maxWallTypes))
{
Tools.HandleGriefer(args.Player, string.Format(TShock.Config.TileAbuseReason, "Invalid tile type"));
return true;
}
if (TShock.Config.RangeChecks && ((Math.Abs(plyX - tileX) > 32) || (Math.Abs(plyY - tileY) > 32)))
{
if (!(type == 1 && ((tiletype == 0 && args.Player.TPlayer.selectedItem == 114) || (tiletype == 53 && args.Player.TPlayer.selectedItem == 266))))
@ -577,7 +584,7 @@ namespace TShockAPI
{
Log.Debug(string.Format("Liquid(PlyXY:{0}_{1}, TileXY:{2}_{3}, Result:{4}_{5}, Amount:{6})",
plyX, plyY, tileX, tileY, Math.Abs(plyX - tileX), Math.Abs(plyY - tileY), liquid));
return Tools.HandleGriefer(args.Player, TShock.Config.LiquidAbuseReason); ;
return Tools.HandleGriefer(args.Player, TShock.Config.LiquidAbuseReason);
}
if (TShock.Config.SpawnProtection)
@ -715,5 +722,28 @@ namespace TShockAPI
return false;
}
private static bool HandleChest(GetDataHandlerArgs args)
{
var x = args.Data.ReadInt32();
var y = args.Data.ReadInt32();
if (TShock.Config.RangeChecks && ((Math.Abs(args.Player.TileX - x) > 32) || (Math.Abs(args.Player.TileY - y) > 32)))
{
return Tools.HandleGriefer(args.Player, TShock.Config.RangeCheckBanReason);
}
return false;
}
private static bool HandleSign(GetDataHandlerArgs args)
{
var id = args.Data.ReadInt16();
var x = args.Data.ReadInt32();
var y = args.Data.ReadInt32();
if (TShock.Config.RangeChecks && ((Math.Abs(args.Player.TileX - x) > 32) || (Math.Abs(args.Player.TileY - y) > 32)))
{
return Tools.HandleGriefer(args.Player, TShock.Config.RangeCheckBanReason);
}
return false;
}
}
}

View file

@ -202,6 +202,8 @@ namespace TShockAPI
//Try 300 if it does not work (Higher number - Longer load times - Less chance of error)
if (!SendTileSquare(tilex, tiley, 150))
{
InitSpawn = true;
SendWorldInfo(Main.spawnTileX, Main.spawnTileY, false);
SendMessage("Warning, teleport failed due to being too close to the edge of the map.", Color.Red);
return false;
}