aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/DataSnapshot/EstateSnapshot.cs
blob: 76fed598006aa850d800d75aa3249486aa7d7d3c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using OpenSim.Region.Environment.Scenes;
using OpenSim.Region.Environment.Modules.LandManagement;
using OpenSim.Framework;
using OpenSim.Framework.Console;
using OpenSim.Framework.Communications;
using libsecondlife;
using libsecondlife.Packets;

namespace OpenSim.Region.DataSnapshot
{
    public class EstateSnapshot : IDataSnapshotProvider
    {
        private Scene m_scene = null;
        private DataSnapshotManager m_parent = null;

        #region IDataSnapshotProvider Members

        public XmlNode RequestSnapshotData(XmlDocument factory)
        {
            //Estate data section - contains who owns a set of sims and the name of the set.
            //In Opensim all the estate names are the same as the Master Avatar (owner of the sim)
            //Now in DataSnapshotProvider module form!
            XmlNode estatedata = factory.CreateNode(XmlNodeType.Element, "estate", "");

            LLUUID ownerid = m_scene.RegionInfo.MasterAvatarAssignedUUID;

            //TODO: Change to query userserver about the master avatar UUID ?
            String firstname = m_scene.RegionInfo.MasterAvatarFirstName;
            String lastname = m_scene.RegionInfo.MasterAvatarLastName;

            //TODO: Fix the marshalling system to have less copypasta gruntwork
            XmlNode user = factory.CreateNode(XmlNodeType.Element, "user", "");
            XmlAttribute type = (XmlAttribute)factory.CreateNode(XmlNodeType.Attribute, "type", "");
            type.Value = "owner";
            user.Attributes.Append(type);

            //TODO: Create more TODOs
            XmlNode username = factory.CreateNode(XmlNodeType.Element, "name", "");
            username.InnerText = firstname + " " + lastname;
            user.AppendChild(username);

            XmlNode useruuid = factory.CreateNode(XmlNodeType.Element, "uuid", "");
            useruuid.InnerText = ownerid.ToString();
            user.AppendChild(useruuid);

            estatedata.AppendChild(user);

            return estatedata;
        }

        public void Initialize(Scene scene, DataSnapshotManager parent)
        {
            m_scene = scene;
            m_parent = parent;
        }

        public Scene GetParentScene
        {
            get { return m_scene; }
        }

        #endregion
    }
}