private void ICreatePlayer() { pnCli2Auth_PlayerCreateRequest req = new pnCli2Auth_PlayerCreateRequest(); req.Read(fStream); ENetError status = ENetError.kNetPending; // An empty Guid signifies we haven't logged in if (fAcctGuid == Guid.Empty) status = ENetError.kNetErrAuthenticationFailed; // Only CCR+ may create special avatars if (fPermissions < pnAcctPerms.CCR) { if (req.fShape.ToLower() != "male" && req.fShape.ToLower() != "female") status = ENetError.kNetErrPlayerNameInvalid; // Close enough? } if (status == ENetError.kNetPending) { // Forward to the vault server // TODO: Reserved and Blacklisted player name list? pnCallback cb = new pnCallback(new pnVaultPlayerCreated(IOnPlayerCreated), req.fTransID); fVaultCli.CreatePlayer(fAcctGuid, req.fPlayerName, req.fShape, cb); } else { // I don't think so... pnAuth2Cli_PlayerCreateReply reply = new pnAuth2Cli_PlayerCreateReply(); reply.fResult = status; reply.fTransID = req.fTransID; reply.Send(fStream); } }
private void IOnPlayerCreated(ENetError result, uint playerID, string playerName, string shape, object param) { pnAuth2Cli_PlayerCreateReply reply = new pnAuth2Cli_PlayerCreateReply(); reply.fPlayerID = playerID; reply.fPlayerName = playerName; reply.fResult = result; reply.fShape = shape; reply.fTransID = (uint)param; fPlayerID = playerID; // Cyan is hacking... lock (fStream) reply.Send(fStream); }