public EventData CreateEvent(UUID creator, UUID regionID, UUID parcelID, DateTime date, uint cover, EventFlags maturity, uint flags, uint duration, Vector3 localPos, string name, string description, string category)
        {
            IRegionData             regiondata = Aurora.DataManager.DataManager.RequestPlugin <IRegionData>();
            IParcelServiceConnector parceldata = Aurora.DataManager.DataManager.RequestPlugin <IParcelServiceConnector>();

            if (regiondata == null || parceldata == null)
            {
                return(null);
            }

            GridRegion region = regiondata.Get(regionID, UUID.Zero);

            if (region == null)
            {
                return(null);
            }
            if (parcelID != UUID.Zero)
            {
                LandData parcel = parceldata.GetLandData(region.RegionID, parcelID);
                if (parcel == null)
                {
                    return(null);
                }
            }


            EventData eventData = new EventData();

            eventData.eventID    = GetMaxEventID() + 1;
            eventData.creator    = creator.ToString();
            eventData.simName    = region.RegionName;
            eventData.date       = date.ToString(new DateTimeFormatInfo());
            eventData.dateUTC    = (uint)Util.ToUnixTime(date);
            eventData.cover      = eventData.amount = cover;
            eventData.maturity   = (int)maturity;
            eventData.eventFlags = flags | (uint)maturity;
            eventData.duration   = duration;
            eventData.globalPos  = new Vector3(
                region.RegionLocX + localPos.X,
                region.RegionLocY + localPos.Y,
                region.RegionLocZ + localPos.Z
                );
            eventData.name        = name;
            eventData.description = description;
            eventData.category    = category;

            GD.Insert("asevents", new string[] {
                "EID",
                "creator",
                "region",
                "parcel",
                "date",
                "cover",
                "maturity",
                "flags",
                "duration",
                "localPosX",
                "localPosY",
                "localPosZ",
                "name",
                "description",
                "category"
            }, new object[] {
                eventData.eventID,
                creator.ToString(),
                regionID.ToString(),
                parcelID.ToString(),
                date.ToString("s"),
                eventData.cover,
                (uint)maturity,
                flags,
                duration,
                localPos.X,
                localPos.Y,
                localPos.Z,
                name,
                description,
                category
            });

            return(eventData);
        }