static HookResult OnPreReset(Terraria.RemoteClient remoteClient) { if (Terraria.Netplay.IsServerRunning) { if (remoteClient.IsActive) { _hookManager.InvokeServerLeave(remoteClient.Id); } _hookManager.InvokeServerSocketReset(remoteClient); } return(HookResult.Continue); }
private OTAPI.HookResult PreResetHandler(Terraria.RemoteClient remoteClient) { Debug.Assert(remoteClient != null); Debug.Assert(remoteClient.Id >= 0 && remoteClient.Id < Count); // Check if the client was active since this gets called when setting up `RemoteClient` as well. if (!remoteClient.IsActive) { return(OTAPI.HookResult.Continue); } var player = this[remoteClient.Id]; var evt = new PlayerQuitEvent(player); _events.Raise(evt, _log); return(OTAPI.HookResult.Continue); }
public static void Kick(this Terraria.RemoteClient sock, string reason) { Terraria.NetMessage.SendData((int)Packet.DISCONNECT, sock.Id, -1, reason); }
public static string RemoteAddress(this Terraria.RemoteClient sock) { return(sock.Socket.GetRemoteAddress().ToString()); }
public static bool CanSendWater(this Terraria.RemoteClient sock) { //return state >= 3; return((Terraria.NetMessage.buffer[sock.Id].broadcast || sock.State >= 3) && sock.Socket.IsConnected()); }
public static bool IsPlaying(this Terraria.RemoteClient sock) { return(sock.State == 10); }