예제 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="prey"></param>
        public void KickUser(LLUUID prey)
        {
            EstateOwnerMessagePacket estate = new EstateOwnerMessagePacket();

            estate.AgentData.AgentID      = Client.Network.AgentID;
            estate.AgentData.SessionID    = Client.Network.SessionID;
            estate.MethodData.Invoice     = LLUUID.GenerateUUID();
            estate.MethodData.Method      = Helpers.StringToField("kick");
            estate.ParamList              = new EstateOwnerMessagePacket.ParamListBlock[2];
            estate.ParamList[0].Parameter = Helpers.StringToField(Client.Network.AgentID.ToStringHyphenated());
            estate.ParamList[1].Parameter = Helpers.StringToField(prey.ToStringHyphenated());

            Client.Network.SendPacket((Packet)estate);
        }
예제 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="prim"></param>
        /// <param name="position"></param>
        /// <param name="avatarPosition"></param>
        public void RezObject(PrimObject prim, LLVector3 position, LLVector3 rayStart,
                              LLUUID groupID)
        {
            ObjectAddPacket add = new ObjectAddPacket();

            add.AgentData.AgentID   = Client.Network.AgentID;
            add.AgentData.SessionID = Client.Network.SessionID;
            add.AgentData.GroupID   = groupID;
            // TODO: Why 2?
            add.ObjectData.AddFlags             = 2;
            add.ObjectData.BypassRaycast        = 1;
            add.ObjectData.Material             = (byte)prim.Material;
            add.ObjectData.PathBegin            = PrimObject.PathBeginByte(prim.PathBegin);
            add.ObjectData.PathCurve            = (byte)prim.PathCurve;
            add.ObjectData.PathEnd              = PrimObject.PathEndByte(prim.PathEnd);
            add.ObjectData.PathRadiusOffset     = PrimObject.PathRadiusOffsetByte(prim.PathRadiusOffset);
            add.ObjectData.PathRevolutions      = PrimObject.PathRevolutionsByte(prim.PathRevolutions);
            add.ObjectData.PathScaleX           = PrimObject.PathScaleByte(prim.PathScaleX);
            add.ObjectData.PathScaleY           = PrimObject.PathScaleByte(prim.PathScaleY);
            add.ObjectData.PathShearX           = PrimObject.PathShearByte(prim.PathShearX);
            add.ObjectData.PathShearY           = PrimObject.PathShearByte(prim.PathShearY);
            add.ObjectData.PathSkew             = PrimObject.PathSkewByte(prim.PathSkew);
            add.ObjectData.PathTaperX           = PrimObject.PathTaperByte(prim.PathTaperX);
            add.ObjectData.PathTaperY           = PrimObject.PathTaperByte(prim.PathTaperY);
            add.ObjectData.PathTwist            = PrimObject.PathTwistByte(prim.PathTwist);
            add.ObjectData.PathTwistBegin       = PrimObject.PathTwistByte(prim.PathTwistBegin);
            add.ObjectData.PCode                = (byte)prim.PCode;
            add.ObjectData.ProfileBegin         = PrimObject.ProfileBeginByte(prim.ProfileBegin);
            add.ObjectData.ProfileCurve         = (byte)prim.ProfileCurve;
            add.ObjectData.ProfileEnd           = PrimObject.ProfileEndByte(prim.ProfileEnd);
            add.ObjectData.ProfileHollow        = (byte)prim.ProfileHollow;
            add.ObjectData.RayEnd               = position;
            add.ObjectData.RayEndIsIntersection = 0;
            add.ObjectData.RayStart             = rayStart;
            add.ObjectData.RayTargetID          = LLUUID.GenerateUUID();
            add.ObjectData.Rotation             = prim.Rotation;
            add.ObjectData.Scale                = prim.Scale;
            add.ObjectData.State                = (byte)prim.State;
            if (prim.Textures != null)
            {
                add.ObjectData.TextureEntry = prim.Textures.ToBytes();
            }
            else
            {
                add.ObjectData.TextureEntry = new byte[0];
            }

            Client.Network.SendPacket(add);
        }
예제 #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="group"></param>
        /// <param name="gtc"></param>
        public void BeginGetGroupTitles(LLUUID group, GroupTitlesCallback gtc)
        {
            LLUUID requestID = LLUUID.GenerateUUID();

            GroupTitlesCallbacks[group] = gtc;

            GroupTitlesRequestPacket request = new GroupTitlesRequestPacket();

            request.AgentData.AgentID   = Client.Network.AgentID;
            request.AgentData.SessionID = Client.Network.SessionID;
            request.AgentData.GroupID   = group;
            request.AgentData.RequestID = requestID;

            Client.Network.SendPacket(request);
        }
예제 #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="group"></param>
        /// <param name="grc"></param>
        public void BeginGetGroupRoles(LLUUID group, GroupRolesCallback grc)
        {
            LLUUID requestID = LLUUID.GenerateUUID();

            lock (GroupRolesCaches)
            {
                GroupRolesCaches[requestID] = new Dictionary <LLUUID, GroupRole>();
            }

            GroupRolesCallbacks[group] = grc;

            GroupRoleDataRequestPacket request = new GroupRoleDataRequestPacket();

            request.AgentData.AgentID   = Client.Network.AgentID;
            request.AgentData.SessionID = Client.Network.SessionID;
            request.GroupData.GroupID   = group;
            request.GroupData.RequestID = requestID;

            Client.Network.SendPacket(request);
        }
예제 #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="reservedNewbie"></param>
        /// <param name="forSale"></param>
        /// <param name="auction"></param>
        /// <returns></returns>
        public int DirLandRequest(bool reservedNewbie, bool forSale, bool auction)
        {
            // Set the class-wide variables so the callback has them
            ReservedNewbie = reservedNewbie;
            ForSale        = forSale;
            Auction        = auction;

            // Clear the list
            ParcelsForSale.Clear();

            // Start the timer
            DirLandTimeout = false;
            DirLandTimer.Start();

            DirLandQueryPacket query = new DirLandQueryPacket();

            query.AgentData.AgentID        = Client.Network.AgentID;
            query.AgentData.SessionID      = Client.Network.SessionID;
            query.QueryData.Auction        = auction;
            query.QueryData.ForSale        = forSale;
            query.QueryData.QueryFlags     = 0;
            query.QueryData.QueryID        = LLUUID.GenerateUUID();
            query.QueryData.ReservedNewbie = reservedNewbie;

            Client.Network.SendPacket((Packet)query);

            while (!DirLandTimeout)
            {
                Client.Tick();
            }

            // Make sure the timer is actually stopped
            DirLandTimer.Stop();

            return(ParcelsForSale.Count);
        }
예제 #6
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="fromName"></param>
 /// <param name="sessionID"></param>
 /// <param name="target"></param>
 /// <param name="message"></param>
 /// <param name="conferenceIDs"></param>
 public void InstantMessage(string fromName, LLUUID sessionID, LLUUID target, string message, LLUUID[] conferenceIDs)
 {
     InstantMessage(fromName, sessionID, target, message, conferenceIDs, LLUUID.GenerateUUID());
 }
예제 #7
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="target"></param>
 /// <param name="message"></param>
 /// <param name="IMSessionID"></param>
 public void InstantMessage(LLUUID target, string message, LLUUID IMSessionID)
 {
     InstantMessage(FirstName + " " + LastName, LLUUID.GenerateUUID(), target, message, null, IMSessionID);
 }