public DosProtection(WorldSession s) { Session = s; _policy = (Policy)WorldConfig.GetIntValue(WorldCfg.PacketSpoofPolicy); }
public abstract void Init(WorldSession session, BigInteger k);
public AccountOpResult DeleteAccount(uint accountId) { // Check if accounts exists PreparedStatement stmt = DB.Login.GetPreparedStatement(LoginStatements.SEL_ACCOUNT_BY_ID); stmt.AddValue(0, accountId); SQLResult result = DB.Login.Query(stmt); if (result.IsEmpty()) { return(AccountOpResult.NameNotExist); } // Obtain accounts characters stmt = DB.Characters.GetPreparedStatement(CharStatements.SEL_CHARS_BY_ACCOUNT_ID); stmt.AddValue(0, accountId); result = DB.Characters.Query(stmt); if (!result.IsEmpty()) { do { ObjectGuid guid = ObjectGuid.Create(HighGuid.Player, result.Read <ulong>(0)); // Kick if player is online Player p = Global.ObjAccessor.FindPlayer(guid); if (p) { WorldSession s = p.GetSession(); s.KickPlayer(); // mark session to remove at next session list update s.LogoutPlayer(false); // logout player without waiting next session list update } Player.DeleteFromDB(guid, accountId, false); // no need to update realm characters } while (result.NextRow()); } // table realm specific but common for all characters of account for realm stmt = DB.Characters.GetPreparedStatement(CharStatements.DEL_TUTORIALS); stmt.AddValue(0, accountId); DB.Characters.Execute(stmt); stmt = DB.Characters.GetPreparedStatement(CharStatements.DEL_ACCOUNT_DATA); stmt.AddValue(0, accountId); DB.Characters.Execute(stmt); stmt = DB.Characters.GetPreparedStatement(CharStatements.DEL_CHARACTER_BAN); stmt.AddValue(0, accountId); DB.Characters.Execute(stmt); SQLTransaction trans = new SQLTransaction(); stmt = DB.Login.GetPreparedStatement(LoginStatements.DEL_ACCOUNT); stmt.AddValue(0, accountId); trans.Append(stmt); stmt = DB.Login.GetPreparedStatement(LoginStatements.DEL_ACCOUNT_ACCESS); stmt.AddValue(0, accountId); trans.Append(stmt); stmt = DB.Login.GetPreparedStatement(LoginStatements.DEL_REALM_CHARACTERS); stmt.AddValue(0, accountId); trans.Append(stmt); stmt = DB.Login.GetPreparedStatement(LoginStatements.DEL_ACCOUNT_BANNED); stmt.AddValue(0, accountId); trans.Append(stmt); stmt = DB.Login.GetPreparedStatement(LoginStatements.DEL_ACCOUNT_MUTED); stmt.AddValue(0, accountId); trans.Append(stmt); DB.Login.CommitTransaction(trans); return(AccountOpResult.Ok); }
public GameUtilitiesService(WorldSession session, uint serviceHash) : base(session, serviceHash) { }