Logout players when their user account is removed

This commit is contained in:
Enerdy 2018-10-15 14:33:32 +01:00
parent ce6dc577cb
commit f5ccf925bd

View file

@ -95,13 +95,17 @@ namespace TShockAPI.DB
{ {
try try
{ {
var tempuser = GetUserAccount(account); // Logout any player logged in as the account to be removed
TShock.Players.Where(p => p?.IsLoggedIn == true && p.Account.Name == account.Name).ForEach(p => p.Logout());
UserAccount tempuser = GetUserAccount(account);
int affected = _database.Query("DELETE FROM Users WHERE Username=@0", account.Name); int affected = _database.Query("DELETE FROM Users WHERE Username=@0", account.Name);
if (affected < 1) if (affected < 1)
throw new UserAccountNotExistException(account.Name); throw new UserAccountNotExistException(account.Name);
Hooks.AccountHooks.OnAccountDelete(tempuser); Hooks.AccountHooks.OnAccountDelete(tempuser);
} }
catch (Exception ex) catch (Exception ex)
{ {