예제 #1
0
 /// <summary>
 /// Kicks a player from the server..
 /// </summary>
 /// <param name="player">TSPlayer player</param>
 /// <param name="reason">string reason</param>
 /// <param name="force">bool force (default: false)</param>
 /// <param name="silent">bool silent (default: false)</param>
 /// <param name="adminUserName">string adminUserName (default: null)</param>
 /// <param name="saveSSI">bool saveSSI (default: false)</param>
 public bool Kick(TSPlayer player, string reason, bool force = false, bool silent = false, string adminUserName = null, bool saveSSI = false)
 {
     if (!player.ConnectionAlive)
     {
         return(true);
     }
     if (force || !player.Group.HasPermission(Permissions.immunetokick))
     {
         string playerName = player.Name;
         player.SilentKickInProgress = silent;
         if (player.IsLoggedIn && saveSSI)
         {
             player.SaveServerCharacter();
         }
         player.Disconnect(string.Format("Kicked: {0}", reason));
         TShock.Log.ConsoleInfo(string.Format("Kicked {0} for : '{1}'", playerName, reason));
         string verb = force ? "force " : "";
         if (!silent)
         {
             if (string.IsNullOrWhiteSpace(adminUserName))
             {
                 Broadcast(string.Format("{0} was {1}kicked for '{2}'", playerName, verb, reason.ToLower()), Color.Green);
             }
             else
             {
                 Broadcast(string.Format("{0} {1}kicked {2} for '{3}'", adminUserName, verb, playerName, reason.ToLower()), Color.Green);
             }
         }
         return(true);
     }
     return(false);
 }
예제 #2
0
 /// <summary>
 /// Bans and kicks a player from the server.
 /// </summary>
 /// <param name="player">TSPlayer player</param>
 /// <param name="reason">string reason</param>
 /// <param name="force">bool force (default: false)</param>
 /// <param name="adminUserName">string adminUserName (default: null)</param>
 public bool Ban(TSPlayer player, string reason, bool force = false, string adminUserName = null)
 {
     if (!player.ConnectionAlive)
     {
         return(true);
     }
     if (force || !player.Group.HasPermission(Permissions.immunetoban))
     {
         string ip         = player.IP;
         string uuid       = player.UUID;
         string playerName = player.Name;
         TShock.Bans.AddBan(ip, playerName, uuid, reason, false, adminUserName);
         player.Disconnect(string.Format("Banned: {0}", reason));
         string verb = force ? "force " : "";
         if (string.IsNullOrWhiteSpace(adminUserName))
         {
             TSPlayer.All.SendInfoMessage("{0} was {1}banned for '{2}'.", playerName, verb, reason);
         }
         else
         {
             TSPlayer.All.SendInfoMessage("{0} {1}banned {2} for '{3}'.", adminUserName, verb, playerName, reason);
         }
         return(true);
     }
     return(false);
 }
예제 #3
0
 /// <summary>
 /// Bans and kicks a player from the server.
 /// </summary>
 /// <param name="ply">int player</param>
 /// <param name="reason">string reason</param>
 /// <param name="force">bool force (default: false)</param>
 /// <param name="adminUserName">bool silent (default: null)</param>
 public bool Ban(TSPlayer player, string reason, bool force = false, string adminUserName = null)
 {
     if (!player.ConnectionAlive)
     {
         return(true);
     }
     if (force || !player.Group.HasPermission(Permissions.immunetoban))
     {
         string ip         = player.IP;
         string playerName = player.Name;
         TShock.Bans.AddBan(ip, playerName, reason);
         player.Disconnect(string.Format("Banned: {0}", reason));
         Log.ConsoleInfo(string.Format("Banned {0} for : {1}", playerName, reason));
         string verb = force ? "force " : "";
         if (string.IsNullOrWhiteSpace(adminUserName))
         {
             Broadcast(string.Format("{0} was {1}banned for {2}", playerName, verb, reason.ToLower()));
         }
         else
         {
             Broadcast(string.Format("{0} {1}banned {2} for {3}", adminUserName, verb, playerName, reason.ToLower()));
         }
         return(true);
     }
     return(false);
 }
예제 #4
0
파일: Tools.cs 프로젝트: legmeat/TShock
 /// <summary>
 /// Bans and kicks a player from the server.
 /// </summary>
 /// <param name="ply">int player</param>
 /// <param name="reason">string reason</param>
 public static bool Ban(TSPlayer player, string reason, string adminUserName = "")
 {
     if (!player.ConnectionAlive)
     {
         return(true);
     }
     if (!player.Group.HasPermission(Permissions.immunetoban))
     {
         string ip         = player.IP;
         string playerName = player.Name;
         TShock.Bans.AddBan(ip, playerName, reason);
         player.Disconnect(string.Format("Banned: {0}", reason));
         Log.ConsoleInfo(string.Format("Banned {0} for : {1}", playerName, reason));
         if (adminUserName.Length == 0)
         {
             Broadcast(string.Format("{0} was banned for {1}", playerName, reason.ToLower()));
         }
         else
         {
             Broadcast(string.Format("{0} banned {1} for {2}", adminUserName, playerName, reason.ToLower()));
         }
         return(true);
     }
     return(false);
 }
예제 #5
0
파일: Tools.cs 프로젝트: legmeat/TShock
 /// <summary>
 /// Kicks a player from the server without checking for immunetokick permission.
 /// </summary>
 /// <param name="ply">int player</param>
 /// <param name="reason">string reason</param>
 public static void ForceKick(TSPlayer player, string reason)
 {
     if (!player.ConnectionAlive)
     {
         return;
     }
     player.Disconnect(reason);
     Log.ConsoleInfo(string.Format("{0} was force kicked for : {1}", player.IP, reason));
 }
예제 #6
0
 public void ForceKick(TSPlayer player, string reason, bool silent)
 {
     player.SilentKickInProgress = true;
     if (!player.ConnectionAlive)
     {
         return;
     }
     player.Disconnect(reason);
     Log.ConsoleInfo(string.Format("{0} was force kicked for : {1}", player.IP, reason));
 }
예제 #7
0
파일: Tools.cs 프로젝트: legmeat/TShock
 /// <summary>
 /// Kicks a player from the server.
 /// </summary>
 /// <param name="ply">int player</param>
 /// <param name="reason">string reason</param>
 public static bool Kick(TSPlayer player, string reason, string adminUserName = "")
 {
     if (!player.ConnectionAlive)
     {
         return(true);
     }
     if (!player.Group.HasPermission(Permissions.immunetokick))
     {
         string playerName = player.Name;
         player.Disconnect(string.Format("Kicked: {0}", reason));
         Log.ConsoleInfo(string.Format("Kicked {0} for : {1}", playerName, reason));
         if (adminUserName.Length == 0)
         {
             Broadcast(string.Format("{0} was kicked for {1}", playerName, reason.ToLower()));
         }
         else
         {
             Broadcast(string.Format("{0} kicked {1} for {2}", adminUserName, playerName, reason.ToLower()));
         }
         return(true);
     }
     return(false);
 }