func (this *WorldServer) DoRegister(msg *msgcmd.Cmd, session *libnet.Session) { resmsg := msgcmd.NewCmd(msgcmd.MCMD_W2M_REGISTER) resmsg.AddArg(msg.Args[2]) //在返回的消息中,附上传入的临时用户名 //查找是否已经存在该用户名 row := this.database.QueryData(`SELECT * FROM users WHERE name=?`, msg.Args[0]) var userinfo *common.UserInfo = common.NewUserInfo(session) if err := row.Scan(&userinfo.ID, &userinfo.Name, &userinfo.Pwd, &userinfo.RegDate); err == sql.ErrNoRows { //可注册该用户名 userinfo.RegDate = time.Now() err = this.database.InsertData(`INSERT users (name,pwd,regdate) values (?,?,?)`, msg.Args[0], msg.Args[1], userinfo.RegDate) if err != nil { //插入数据失败,返回提示信息 println("World Server Error: 写入注册信息 失败. ", err.Error()) logFile.Printf("World Server Error: 写入注册信息 失败. ", err.Error()) resmsg.AddArg("0") resmsg.AddArg("注册用户时发生异常,请稍后再试。") if err = session.Send(resmsg); err != nil { println("World Server Error: 发送注册回馈信息 失败. ", err.Error()) logFile.Printf("World Server Error: 发送注册回馈信息 失败. ", err.Error()) return } } else { resmsg.AddArg("1") resmsg.AddArg("注册用户成功,试试登陆吧。") if err = session.Send(resmsg); err != nil { println("World Server Error: 发送注册回馈信息 失败. ", err.Error()) logFile.Printf("World Server Error: 发送注册回馈信息 失败. ", err.Error()) return } } } else { //不可注册该用户名 resmsg.AddArg("0") resmsg.AddArg("该用户名已被抢先1秒注册,换个试试吧。") if err = session.Send(resmsg); err != nil { println("World Server Error: 发送注册回馈信息 失败. ", err.Error()) logFile.Printf("World Server Error: 发送注册回馈信息 失败. ", err.Error()) return } } }