public static void DeleteCharacter(Client client, PacketIn packet) { byte playerId = packet.ReadByte(); using (ISession session = Server.Factory.OpenSession()) { Player player = (Player)session.Get(typeof(Player), (int)playerId); if (player == null) { ServerConsole.WriteLine( System.Drawing.Color.Red, "Tried to delete unexisting character with PlayerId ({0)", playerId ); return; } using (ITransaction transaction = session.BeginTransaction()) { DeletedPlayer dPlayer = new DeletedPlayer(); dPlayer.DeletedDate = DateTime.Now; dPlayer.PlayerId = player.PlayerId; dPlayer.UserId = player.UserId; session.Save(dPlayer); transaction.Commit(); } using (ITransaction transaction = session.BeginTransaction()) { player.Status = 0; session.Update(player); transaction.Commit(); } } client.SendPlayerList(); }
public static void RestoreCharacter(Client client, PacketIn packet) { int playerId = (int)packet.ReadUInt32(); using (ISession session = Server.Factory.OpenSession()) { Player player = (Player)session.Get(typeof(Player), playerId); if (player == null) { ServerConsole.WriteLine( System.Drawing.Color.Red, "Tried to restore unexisting character with PlayerId ({0)", playerId ); return; } using (ITransaction transaction = session.BeginTransaction()) { IQuery q = session.CreateQuery("FROM DeletedPlayer WHERE PlayerId = :playerId"); q.SetParameter("playerId", playerId); DeletedPlayer dPlayer = q.UniqueResult <DeletedPlayer>(); session.Delete(dPlayer); transaction.Commit(); } using (ITransaction transaction = session.BeginTransaction()) { player.Status = 1; session.Update(player); transaction.Commit(); } } client.SendPlayerList(); }