zxl
/
CTT
forked from Cal/CTT
1
0
Fork 0
CTT/Server/Hotfix/Game/Handler/Login/C2R_CreateRoleHandler.cs

60 lines
1.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using System;
using System.Net;
namespace ET
{
[MessageHandler()]
public class C2R_CreateRoleHandler : AMRpcHandler<C2R_CreateRole, R2C_CreateRole>
{
protected override async ETTask Run(Session session, C2R_CreateRole request, R2C_CreateRole response, Action reply)
{
request.Name = request.Name.TrimEnd().Trim(new char[] { '\n', '狗', '夏','.' });
if (request.Name.Length > 7)
{
response.Message = "昵称不能超过7位";
reply();
return;
}
if (request.Name.Contains('.')){
response.Message = "不可使用.";
reply();
return;
}
var list = await DBComponent.Instance.Query<NickName>(t => t.Nickname == request.Name);
if (list != null && list.Count > 0)
{
response.Message = "昵称已存在,请重新输入昵称!";
reply();
return;
}
using (var nickName = EntityFactory.Create<NickName>(Game.Scene))
{
nickName.Nickname = request.Name;
await DBComponent.Instance.Save(nickName);
}
var user =await GateUserComponent.Instance.Query(request.PlayerId);
//!初始化User
user.JobId = request.JobId;
user.NickName = request.Name;
user.Family = "";
user.Title = "";
user.Level = 1;
user.CampType = CampType.NoneCamp;
user.hasRole = true;
user.isChangeDB = true;
var component = session.GetComponent<SessionPlayerComponent>();
component.User = user;
await GateUserComponent.Instance.Save(user);
//response.Role = role;
reply();
}
}
}