Merge pull request #357 from k0rd/teleport-devel

Remember Position System: Teleport player to remembered position after successfully logging in (when forced to)
This commit is contained in:
Lucas Nicodemus 2012-02-06 22:41:55 -08:00
commit db3b928373
3 changed files with 24 additions and 7 deletions

View file

@ -407,8 +407,18 @@ namespace TShockAPI
TShock.InventoryDB.InsertPlayerData(args.Player); TShock.InventoryDB.InsertPlayerData(args.Player);
} }
args.Player.SendMessage("Authenticated as " + user.Name + " successfully.", Color.LimeGreen); args.Player.SendMessage("Authenticated as " + user.Name + " successfully.", Color.LimeGreen);
Log.ConsoleInfo(args.Player.Name + " authenticated successfully as user: " + user.Name); Log.ConsoleInfo(args.Player.Name + " authenticated successfully as user: " + user.Name);
} if ((args.Player.LoginHarassed) && (TShock.Config.RememberLeavePos)){
if (TShock.RememberedPos.GetLeavePos(args.Player.Name, args.Player.IP) != Vector2.Zero)
{
Vector2 pos = TShock.RememberedPos.GetLeavePos(args.Player.Name, args.Player.IP);
args.Player.Teleport((int) pos.X, (int) pos.Y + 3);
}
args.Player.LoginHarassed = false;
}}
else else
{ {
args.Player.SendMessage("Incorrect password", Color.LimeGreen); args.Player.SendMessage("Incorrect password", Color.LimeGreen);

View file

@ -76,12 +76,12 @@ namespace TShockAPI
public bool RequiresPassword; public bool RequiresPassword;
public bool SilentKickInProgress; public bool SilentKickInProgress;
public List<Point> IceTiles; public List<Point> IceTiles;
public long RPm=1; public long RPm = 1;
public long WPm=1; public long WPm = 1;
public long SPm=1; public long SPm = 1;
public long BPm=1; public long BPm = 1;
public long LoginMS; public long LoginMS;
public bool LoginHarassed = false;
public bool RealPlayer public bool RealPlayer
{ {
get { return Index >= 0 && Index < Main.maxNetPlayers && Main.player[Index] != null; } get { return Index >= 0 && Index < Main.maxNetPlayers && Main.player[Index] != null; }
@ -257,6 +257,10 @@ namespace TShockAPI
//The error occurs when a tile trys to update which the client hasnt load yet, Clients only update tiles withen 150 blocks //The error occurs when a tile trys to update which the client hasnt load yet, Clients only update tiles withen 150 blocks
//Try 300 if it does not work (Higher number - Longer load times - Less chance of error) //Try 300 if it does not work (Higher number - Longer load times - Less chance of error)
//Should we properly send sections so that clients don't get tiles twice? //Should we properly send sections so that clients don't get tiles twice?
SendTileSquare(tilex, tiley, 150);
/* //We shouldn't need this section anymore -it can prevent otherwise acceptable teleportation under some circumstances.
if (!SendTileSquare(tilex, tiley, 150)) if (!SendTileSquare(tilex, tiley, 150))
{ {
InitSpawn = true; InitSpawn = true;
@ -264,6 +268,7 @@ namespace TShockAPI
return false; return false;
} }
*/
Spawn(-1, -1); Spawn(-1, -1);
SendWorldInfo(Main.spawnTileX, Main.spawnTileY, false); SendWorldInfo(Main.spawnTileX, Main.spawnTileY, false);

View file

@ -686,7 +686,7 @@ namespace TShockAPI
InventoryDB.InsertPlayerData(tsplr); InventoryDB.InsertPlayerData(tsplr);
} }
if (Config.RememberLeavePos) if ((Config.RememberLeavePos) &&(!tsplr.LoginHarassed))
{ {
RememberedPos.InsertLeavePos(tsplr.Name, tsplr.IP, (int) (tsplr.X/16), (int) (tsplr.Y/16)); RememberedPos.InsertLeavePos(tsplr.Name, tsplr.IP, (int) (tsplr.X/16), (int) (tsplr.Y/16));
} }
@ -860,10 +860,12 @@ namespace TShockAPI
player.SendMessage( player.SendMessage(
player.IgnoreActionsForInventory = "Server Side Inventory is enabled! Please /register or /login to play!", player.IgnoreActionsForInventory = "Server Side Inventory is enabled! Please /register or /login to play!",
Color.Red); Color.Red);
player.LoginHarassed = true;
} }
else if (Config.RequireLogin) else if (Config.RequireLogin)
{ {
player.SendMessage("Please /register or /login to play!", Color.Red); player.SendMessage("Please /register or /login to play!", Color.Red);
player.LoginHarassed = true;
} }
} }