86 lines
3.2 KiB
C#
Executable File
86 lines
3.2 KiB
C#
Executable File
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace ET
|
|
{
|
|
[ActorMessageHandler]
|
|
public class R2M_DeleteUserHandler : AMActorRpcHandler<Scene, R2M_DeleteUser, M2R_DeleteUser>
|
|
{
|
|
protected override async ETTask Run(Scene scene, R2M_DeleteUser request, M2R_DeleteUser response, Action reply)
|
|
{
|
|
try
|
|
{
|
|
//**********************
|
|
Log.Debug($"*********************************************************UserId = {request.UserId} 删除角色");
|
|
// User user = await UserComponent.Instance.Query(request.UserId);
|
|
// if (user == null)
|
|
// {
|
|
// response.Message = $"没有这个玩家";
|
|
// Log.Error($"服务器没有这个玩家Id={ request.UserId}");
|
|
// reply();
|
|
// return;
|
|
// }
|
|
// long unitId = user.Id;
|
|
// Unit unit = MapUnitComponent.Instance.Get(unitId);
|
|
// if (unit == null)
|
|
// {
|
|
// return;
|
|
//
|
|
// }
|
|
// else
|
|
// {
|
|
// Team team = TeamComponent.Instance.Get(unit.TeamLeaderId);
|
|
// if (team.TeamState == TeamState.Fight)
|
|
// {
|
|
// response.Message = "战斗中不能删除角色!";
|
|
// reply();
|
|
// return;
|
|
// }
|
|
// }
|
|
// user.hasRole = false;
|
|
//
|
|
// await DBComponent.Instance.Save(user);
|
|
//
|
|
// await DBComponent.Instance.Remove<Unit>(unitId);
|
|
// await C2M_DeleteFriend(unitId);
|
|
// await DBComponent.Instance.Remove<MailLib>(unitId);
|
|
// await DBComponent.Instance.Remove<Store>(unitId);
|
|
// await DBComponent.Instance.Remove<BuffLib>(unitId);
|
|
// await DBComponent.Instance.Remove<NickName>(t => t.Nickname.Equals(user.NickName));
|
|
// await DeleteConsignment(unitId);
|
|
// await DeleteFamily(user.NickName, unitId);
|
|
|
|
reply();
|
|
|
|
Log.Debug($"UserId = {request.UserId}删除角色完成");
|
|
}
|
|
catch (System.Exception e)
|
|
{
|
|
Log.Error(e);
|
|
}
|
|
}
|
|
|
|
private async ETTask DeleteFamily(string name, long unitId)
|
|
{
|
|
Family family = await FamilyComponent.Instance.Query(name);
|
|
if(family != null)
|
|
await family.ForceDeleteMember(unitId);
|
|
}
|
|
|
|
private async ETTask C2M_DeleteFriend(long unitId)
|
|
{
|
|
IEnumerable<long> list = await FriendComponent.Instance.GetFriends(unitId);
|
|
foreach (long id in list)
|
|
{
|
|
await FriendComponent.Instance.DeleteFriend(id, unitId);
|
|
}
|
|
FriendComponent.Instance.FriendDic.Remove(unitId);
|
|
await DBComponent.Instance.Remove<Friend>(unitId);
|
|
}
|
|
|
|
private async ETTask DeleteConsignment(long unitId)
|
|
{
|
|
await DBComponent.Instance.Remove<Consignment>(t => t.UnitId == unitId);
|
|
}
|
|
}
|
|
} |