PSO2SERVER/Server/Packets/Handlers/11-ClientHandler/11-06-DeleteCharacter.cs

46 lines
1.3 KiB
C#

using System;
using System.IO;
using PSO2SERVER.Packets.PSOPackets;
using PSO2SERVER.Database;
namespace PSO2SERVER.Packets.Handlers
{
[PacketHandlerAttr(0x11, 0x06)]
public class DeleteCharacter : PacketHandler
{
#region implemented abstract members of PacketHandler
public override void HandlePacket(Client context, byte flags, byte[] data, uint position, uint size)
{
var reader = new PacketReader(data);
var id = reader.ReadInt32();
Logger.Write("[CHR] {0} 正在删除ID {1} 的角色", context.User.Username, id);
// Delete Character
using (var db = new ServerEf())
{
foreach (var character in db.Characters)
if (character.CharacterID == id)
{
db.Characters.Remove(character);
db.ChangeTracker.DetectChanges();
break;
}
// Detect the deletion and save the Database
if (db.ChangeTracker.HasChanges())
db.SaveChanges();
}
// Disconnect for now
// TODO: What do we do after a deletion?
context.Socket.Close();
}
#endregion
}
}