OpenMetaverse.AgentManager.ChatterBoxInvitationHandler C# (CSharp) 메소드

ChatterBoxInvitationHandler() 개인적인 메소드

Group Chat Request
private ChatterBoxInvitationHandler ( string capsKey, OSD osd, Simulator simulator ) : void
capsKey string Caps Key
osd OSD SD Map containing invitation
simulator Simulator Originating Simulator
리턴 void
        private void ChatterBoxInvitationHandler(string capsKey, OSD osd, Simulator simulator)
        {
            if (OnInstantMessage != null)
            {
                OSDMap map = (OSDMap)osd;
                OSDMap im = (OSDMap)map["instantmessage"];
                //SDMap agent = (SDMap)im["agent_params"];
                OSDMap msg = (OSDMap)im["message_params"];
                OSDMap msgdata = (OSDMap)msg["data"];

                InstantMessage message = new InstantMessage();

                message.FromAgentID = map["from_id"].AsUUID();
                message.FromAgentName = map["from_name"].AsString();
                message.ToAgentID = msg["to_id"].AsUUID();
                message.ParentEstateID = (uint)msg["parent_estate_id"].AsInteger();
                message.RegionID = msg["region_id"].AsUUID();
                message.Position = ((OSDArray)msg["position"]).AsVector3();
                message.Dialog = (InstantMessageDialog)msgdata["type"].AsInteger();
                message.GroupIM = true;
                message.IMSessionID = map["session_id"].AsUUID();
                message.Timestamp = new DateTime(msgdata["timestamp"].AsInteger());
                message.Message = msg["message"].AsString();
                message.Offline = (InstantMessageOnline)msg["offline"].AsInteger();
                message.BinaryBucket = msgdata["binary_bucket"].AsBinary();

                try { OnInstantMessage(message, simulator); }
                catch (Exception e) { Logger.Log(e.Message, Helpers.LogLevel.Error, Client, e); }
            }
        }