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) { object remoteValue = DoRemote(creator, regionID, parcelID, date, cover, maturity, flags, duration, localPos, name, description, category); if (remoteValue != null || m_doRemoteOnly) return (EventData) remoteValue; IRegionData regiondata = Framework.Utilities.DataManager.RequestPlugin<IRegionData>(); if (regiondata == null) { return null; } GridRegion region = regiondata.Get(regionID, null); if (region == null) { return null; } EventData eventData = new EventData { eventID = GetMaxEventID() + 1, creator = creator.ToString(), simName = region.RegionName, date = date.ToString(new DateTimeFormatInfo()), dateUTC = (uint) Util.ToUnixTime(date), amount = cover, cover = cover, maturity = (int) maturity, eventFlags = flags | (uint) maturity, duration = duration, globalPos = new Vector3( region.RegionLocX + localPos.X, region.RegionLocY + localPos.Y, region.RegionLocZ + localPos.Z ), regionPos = localPos, name = name, description = description, category = category }; Dictionary<string, object> row = new Dictionary<string, object>(15); row["EID"] = eventData.eventID; row["creator"] = creator.ToString(); row["region"] = regionID.ToString(); row["parcel"] = parcelID.ToString(); row["date"] = date.ToString("s"); row["cover"] = eventData.cover; row["maturity"] = (uint) maturity; row["flags"] = flags; row["duration"] = duration; row["localPosX"] = localPos.X; row["localPosY"] = localPos.Y; row["localPosZ"] = localPos.Z; row["name"] = name; row["description"] = description; row["category"] = category; GD.Insert("asevents", row); return eventData; }
private static List<EventData> Query2EventData(List<string> RetVal) { List<EventData> Events = new List<EventData>(); IRegionData regiondata = Framework.Utilities.DataManager.RequestPlugin<IRegionData>(); if (RetVal.Count%16 != 0 || regiondata == null) { return Events; } for (int i = 0; i < RetVal.Count; i += 16) { EventData data = new EventData(); GridRegion region = regiondata.Get(UUID.Parse(RetVal[2]), null); if (region == null) { continue; } data.simName = region.RegionName; data.eventID = Convert.ToUInt32(RetVal[i]); data.creator = RetVal[i + 1]; //Parse the time out for the viewer DateTime date = DateTime.Parse(RetVal[i + 4]); data.date = date.ToString(new DateTimeFormatInfo()); data.dateUTC = (uint) Util.ToUnixTime(date); data.cover = data.amount = Convert.ToUInt32(RetVal[i + 5]); data.maturity = Convert.ToInt32(RetVal[i + 6]); data.eventFlags = Convert.ToUInt32(RetVal[i + 7]); data.duration = Convert.ToUInt32(RetVal[i + 8]); data.regionPos = new Vector3( float.Parse(RetVal[i + 9]), float.Parse(RetVal[i + 10]), float.Parse(RetVal[i + 11]) ); data.globalPos = new Vector3( region.RegionLocX + data.regionPos.X, region.RegionLocY + data.regionPos.Y, region.RegionLocZ + data.regionPos.Z ); data.name = RetVal[i + 12]; data.description = RetVal[i + 13]; data.category = RetVal[i + 14]; Events.Add(data); } return Events; }