Prepare new handlers
This commit is contained in:
parent
f79226f28a
commit
b353f62336
2 changed files with 46 additions and 28 deletions
|
|
@ -90,7 +90,8 @@ namespace TShockAPI
|
||||||
{PacketTypes.NpcStrike, HandleNpcStrike},
|
{PacketTypes.NpcStrike, HandleNpcStrike},
|
||||||
{PacketTypes.NpcSpecial, HandleSpecial},
|
{PacketTypes.NpcSpecial, HandleSpecial},
|
||||||
{PacketTypes.PlayerAnimation, HandlePlayerAnimation},
|
{PacketTypes.PlayerAnimation, HandlePlayerAnimation},
|
||||||
{PacketTypes.PlayerBuff, HandlePlayerBuffUpdate}
|
{PacketTypes.PlayerBuff, HandlePlayerBuffUpdate},
|
||||||
|
{PacketTypes.PasswordSend, HandlePassword}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -257,6 +258,11 @@ namespace TShockAPI
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static bool HandlePassword(GetDataHandlerArgs args)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
private static bool HandleSendTileSquare(GetDataHandlerArgs args)
|
private static bool HandleSendTileSquare(GetDataHandlerArgs args)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -194,6 +194,7 @@ namespace TShockAPI
|
||||||
|
|
||||||
GameHooks.PostInitialize += OnPostInit;
|
GameHooks.PostInitialize += OnPostInit;
|
||||||
GameHooks.Update += OnUpdate;
|
GameHooks.Update += OnUpdate;
|
||||||
|
ServerHooks.Connect += OnConnect;
|
||||||
ServerHooks.Join += OnJoin;
|
ServerHooks.Join += OnJoin;
|
||||||
ServerHooks.Leave += OnLeave;
|
ServerHooks.Leave += OnLeave;
|
||||||
ServerHooks.Chat += OnChat;
|
ServerHooks.Chat += OnChat;
|
||||||
|
|
@ -539,7 +540,7 @@ namespace TShockAPI
|
||||||
Console.Title = string.Format("TerrariaShock Version {0} ({1}) ({2}/{3})", Version, VersionCodename, count, Config.MaxSlots);
|
Console.Title = string.Format("TerrariaShock Version {0} ({1}) ({2}/{3})", Version, VersionCodename, count, Config.MaxSlots);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnJoin(int ply, HandledEventArgs handler)
|
private void OnConnect(int ply, HandledEventArgs handler)
|
||||||
{
|
{
|
||||||
var player = new TSPlayer(ply);
|
var player = new TSPlayer(ply);
|
||||||
if (Config.EnableDNSHostResolution)
|
if (Config.EnableDNSHostResolution)
|
||||||
|
|
@ -551,7 +552,7 @@ namespace TShockAPI
|
||||||
player.Group = Users.GetGroupForIP(player.IP);
|
player.Group = Users.GetGroupForIP(player.IP);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TShock.Utils.ActivePlayers() + 1 > Config.MaxSlots && !player.Group.HasPermission(Permissions.reservedslot))
|
if (TShock.Utils.ActivePlayers() + 20 > Config.MaxSlots)
|
||||||
{
|
{
|
||||||
TShock.Utils.ForceKick(player, Config.ServerFullReason);
|
TShock.Utils.ForceKick(player, Config.ServerFullReason);
|
||||||
handler.Handled = true;
|
handler.Handled = true;
|
||||||
|
|
@ -559,12 +560,9 @@ namespace TShockAPI
|
||||||
}
|
}
|
||||||
|
|
||||||
var ipban = Bans.GetBanByIp(player.IP);
|
var ipban = Bans.GetBanByIp(player.IP);
|
||||||
var nameban = Bans.GetBanByName(player.Name);
|
|
||||||
Ban ban = null;
|
Ban ban = null;
|
||||||
if (ipban != null && Config.EnableIPBans)
|
if (ipban != null && Config.EnableIPBans)
|
||||||
ban = ipban;
|
ban = ipban;
|
||||||
else if (nameban != null && Config.EnableBanOnUsernames)
|
|
||||||
ban = nameban;
|
|
||||||
|
|
||||||
if (ban != null)
|
if (ban != null)
|
||||||
{
|
{
|
||||||
|
|
@ -583,6 +581,40 @@ namespace TShockAPI
|
||||||
Players[ply] = player;
|
Players[ply] = player;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnJoin(int ply, HandledEventArgs handler)
|
||||||
|
{
|
||||||
|
var player = Players[ply];
|
||||||
|
if (player == null)
|
||||||
|
{
|
||||||
|
handler.Handled = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (HackedHealth(player))
|
||||||
|
{
|
||||||
|
TShock.Utils.ForceKick(player, "You have Hacked Health/Mana, Please use a different character.");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (TShock.Utils.ActivePlayers() + 1 > Config.MaxSlots && !player.Group.HasPermission(Permissions.reservedslot))
|
||||||
|
{
|
||||||
|
TShock.Utils.ForceKick(player, Config.ServerFullReason);
|
||||||
|
handler.Handled = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var nameban = Bans.GetBanByName(player.Name);
|
||||||
|
Ban ban = null;
|
||||||
|
if (nameban != null && Config.EnableBanOnUsernames)
|
||||||
|
ban = nameban;
|
||||||
|
|
||||||
|
if (ban != null)
|
||||||
|
{
|
||||||
|
TShock.Utils.ForceKick(player, string.Format("You are banned: {0}", ban.Reason));
|
||||||
|
handler.Handled = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void OnLeave(int ply)
|
private void OnLeave(int ply)
|
||||||
{
|
{
|
||||||
var tsplr = Players[ply];
|
var tsplr = Players[ply];
|
||||||
|
|
@ -750,28 +782,6 @@ namespace TShockAPI
|
||||||
}
|
}
|
||||||
|
|
||||||
TShock.Utils.ShowFileToUser(player, "motd.txt");
|
TShock.Utils.ShowFileToUser(player, "motd.txt");
|
||||||
if (HackedHealth(player))
|
|
||||||
{
|
|
||||||
TShock.Utils.ForceKick(player, "You have Hacked Health/Mana, Please use a different character.");
|
|
||||||
}
|
|
||||||
|
|
||||||
HackedInventory(player);
|
|
||||||
|
|
||||||
NetMessage.syncPlayers();
|
|
||||||
|
|
||||||
if (Config.RequireLogin)
|
|
||||||
{
|
|
||||||
player.SendMessage("Please /register or /login to play!", Color.Red);
|
|
||||||
}
|
|
||||||
else if (Config.ServerSideInventory)
|
|
||||||
{
|
|
||||||
player.SendMessage("Server Side Inventory is enabled! Please /register or /login to play!", Color.Red);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.ServerSideInventory)
|
|
||||||
{
|
|
||||||
player.IgnoreActionsForInventory = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.PvPMode == "always" && !player.TPlayer.hostile)
|
if (Config.PvPMode == "always" && !player.TPlayer.hostile)
|
||||||
{
|
{
|
||||||
|
|
@ -783,11 +793,13 @@ namespace TShockAPI
|
||||||
{
|
{
|
||||||
StartInvasion();
|
StartInvasion();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Config.RememberLeavePos)
|
if (Config.RememberLeavePos)
|
||||||
{
|
{
|
||||||
var pos = RememberedPos.GetLeavePos(player.Name, player.IP);
|
var pos = RememberedPos.GetLeavePos(player.Name, player.IP);
|
||||||
player.Teleport((int) pos.X, (int) pos.Y);
|
player.Teleport((int) pos.X, (int) pos.Y);
|
||||||
}
|
}
|
||||||
|
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue