public async Task <Guid> PostDeployTroops(Guid sessionId, Guid regionId, uint numberOfTroops) { IRegionData region = await RegionRepository.GetRegionOrThrow(sessionId, regionId) .IsRegionOwnerOrThrow(User.Identity.GetUserId()); ISession session = await SessionRepository.GetSessionOrThrow(region) .IsUserIdJoinedOrThrow(NationRepository, User.Identity.GetUserId()) .IsPhaseTypeOrThrow(SessionPhase.Reinforcements); INationData nation = await NationRepository.GetNation(sessionId, User.Identity.GetUserId()); if (nation.AvailableReinforcements < numberOfTroops) { throw new HttpResponseException(new HttpResponseMessage { StatusCode = HttpStatusCode.BadRequest, ReasonPhrase = "You do not have that many troops available to deploy" }); } else if (numberOfTroops <= 0) { throw new HttpResponseException(new HttpResponseMessage { StatusCode = HttpStatusCode.BadRequest, ReasonPhrase = "You can not deploy less than 1 troop" }); } else { return(await CommandQueue.DeployReinforcements(session.GameId, session.PhaseId, region.RegionId, region.CurrentEtag, numberOfTroops)); } }
public ConsoleProfileSetup(IProfileManager profileManager, IInputValidator inputValidator, IRegionConverter regionConverter, IRegionData regionData) { _profileManager = profileManager; _inputValidator = inputValidator; _regionConverter = regionConverter; _regionData = regionData; }
OSDMap GetRegion(OSDMap map) { OSDMap resp = new OSDMap(); IRegionData regiondata = DataPlugins.RequestPlugin <IRegionData> (); if (regiondata != null && (map.ContainsKey("RegionID") || map.ContainsKey("Region"))) { string regionName = map.ContainsKey("Region") ? map ["Region"].ToString().Trim() : ""; UUID regionID = map.ContainsKey("RegionID") ? UUID.Parse(map ["RegionID"].ToString()) : UUID.Zero; // not used?? // UUID scopeID = map.ContainsKey ("ScopeID") ? UUID.Parse (map ["ScopeID"].ToString ()) : UUID.Zero; GridRegion region = null; if (regionID != UUID.Zero) { region = regiondata.Get(regionID, null); } else if (regionName != string.Empty) { region = regiondata.Get(regionName, null, null, null) [0]; } if (region != null) { resp ["Region"] = region.ToOSD(); } } return(resp); }
private OSDArray MonolithicRegionLookup(string[] parts) { OSDArray resp = new OSDArray(); if (parts.Length < 1 || parts[0] != "MonolithicRegionLookup") { return(resp); } IRegionData regiondata = Aurora.DataManager.DataManager.RequestPlugin <IRegionData>(); if (regiondata != null) { List <GridRegion> regions = regiondata.Get(RegionFlags.RegionOnline); OSDMap regionResp; foreach (GridRegion region in regions) { regionResp = new OSDMap(8); regionResp["Name"] = region.RegionName; regionResp["UUID"] = region.RegionID; regionResp["x"] = region.RegionLocX / Constants.RegionSize; regionResp["y"] = region.RegionLocY / Constants.RegionSize; regionResp["z"] = region.RegionLocZ / Constants.RegionSize; regionResp["width"] = region.RegionSizeX; regionResp["height"] = region.RegionSizeY; regionResp["depth"] = region.RegionSizeZ; resp.Add(regionResp); } } return(resp); }
public LandData GetParcelInfo(UUID RegionID, UUID ScopeID, string ParcelName) { IRegionData regiondata = DataManager.DataManager.RequestPlugin <IRegionData>(); if (regiondata != null) { GridRegion region = regiondata.Get(RegionID, ScopeID); if (region != null) { UUID parcelInfoID = UUID.Zero; QueryFilter filter = new QueryFilter(); filter.andFilters["Name"] = ParcelName; filter.andFilters["RegionID"] = RegionID; List <string> query = GD.Query(new string[1] { "InfoUUID" }, "searchparcel", filter, null, 0, 1); if (query.Count >= 1 && UUID.TryParse(query[0], out parcelInfoID)) { return(GetParcelInfo(parcelInfoID)); } } } return(null); }
public List <LandData> GetParcelsByRegion(uint start, uint count, UUID RegionID, UUID scopeID, UUID owner, ParcelFlags flags, ParcelCategory category) { List <LandData> resp = new List <LandData>(0); if (count == 0) { return(resp); } IRegionData regiondata = DataManager.DataManager.RequestPlugin <IRegionData>(); if (regiondata != null) { GridRegion region = regiondata.Get(RegionID, scopeID); if (region != null) { QueryFilter filter = GetParcelsByRegionWhereClause(RegionID, scopeID, owner, flags, category); Dictionary <string, bool> sort = new Dictionary <string, bool>(1); sort["OwnerID"] = false; return(Query2LandData(GD.Query(new string[1] { "*" }, "searchparcel", filter, sort, start, count))); } } return(resp); }
public List <LandData> GetParcelsWithNameByRegion(uint start, uint count, UUID RegionID, UUID ScopeID, string name) { List <LandData> resp = new List <LandData>(0); if (count == 0) { return(resp); } IRegionData regiondata = DataManager.DataManager.RequestPlugin <IRegionData>(); if (regiondata != null) { GridRegion region = regiondata.Get(RegionID, ScopeID); if (region != null) { QueryFilter filter = new QueryFilter(); filter.andFilters["RegionID"] = RegionID; filter.andFilters["Name"] = name; Dictionary <string, bool> sort = new Dictionary <string, bool>(1); sort["OwnerID"] = false; return(Query2LandData(GD.Query(new string[1] { "*" }, "searchparcel", filter, sort, start, count))); } } return(resp); }
public void Start(IConfigSource config, IRegistryCore registry) { m_AssetService = registry.RequestModuleInterface <IAssetService> (); m_GridService = registry.RequestModuleInterface <IGridService> (); m_GatekeeperConnector = new GatekeeperServiceConnector(m_AssetService); m_Database = Aurora.DataManager.DataManager.RequestPlugin <IRegionData> (); MainConsole.Instance.Debug("[HYPERGRID LINKER]: Loaded all services..."); }
public async Task <IRegion> GetDetails(Guid sessionId, Guid regionId) { IRegionData region = await RegionRepository.GetRegionOrThrow(sessionId, regionId); ISession session = await SessionRepository.GetSessionOrThrow(region) .IsUserIdJoinedOrThrow(NationRepository, User.Identity.GetUserId()); return(new Region(region)); }
public Region(IRegionData data) { RegionId = data.RegionId; ContinentId = data.ContinentId; Name = data.Name; ConnectedRegions = data.ConnectedRegions; OwnerId = data.OwnerId; TroopCount = data.TroopCount; CardValue = data.CardValue; }
public override void CopyInFromBinary( IRegionData item, MutagenFrame frame, TypedParseParams?translationParams = null) { CopyInFromBinary( item: (RegionLand)item, frame: frame, translationParams: translationParams); }
public override void CopyInFromBinary( IRegionData item, MutagenFrame frame, RecordTypeConverter?recordTypeConverter = null) { CopyInFromBinary( item: (RegionLand)item, frame: frame, recordTypeConverter: recordTypeConverter); }
public RegionConverter(IRegionData data) { foreach (IRegionInfo regionInfo in data.GetRegions()) { int intVal = (int)Convert.ChangeType(regionInfo.EnumValue, typeof(int), NumberFormatInfo.InvariantInfo); _enumMap.Add(intVal, regionInfo); _stringMap.Add(regionInfo.Code, regionInfo); } }
static public async Task <IRegionData> IsRegionConnectedOrThrow(this Task <IRegionData> regionTask, Guid connectedRegionId) { IRegionData region = await regionTask; if (!region.ConnectedRegions.Contains(connectedRegionId)) { throw new HttpResponseException(new HttpResponseMessage { StatusCode = HttpStatusCode.PaymentRequired, ReasonPhrase = "The two regions are not connected" }); } return(region); }
public virtual void Start(IConfigSource config, IRegistryCore registry) { m_registryCore = registry; m_AuthenticationService = registry.RequestModuleInterface <IAuthenticationService>(); m_simulationBase = registry.RequestModuleInterface <ISimulationBase>(); m_Database = DataManager.RequestPlugin <IRegionData>(); if (m_Database == null) { throw new Exception("Could not find a storage interface in the given module"); } }
static public async Task <IRegionData> GetRegionOrThrow(this IRegionRepository repository, Guid sessionId, Guid regionId) { IRegionData region = await repository.GetRegion(sessionId, regionId); if (region == null) { throw new HttpResponseException(new HttpResponseMessage { StatusCode = HttpStatusCode.NotFound, ReasonPhrase = "No region found with the provided Guid" }); } return(region); }
static public async Task <IRegionData> IsNotRegionOwnerOrThrow(this Task <IRegionData> regionTask, String userId) { IRegionData region = await regionTask; if (region.OwnerId == userId) { throw new HttpResponseException(new HttpResponseMessage { StatusCode = HttpStatusCode.NotAcceptable, ReasonPhrase = "You are the owner of the region" }); } return(region); }
private static List <EventData> Query2EventData(List <string> RetVal) { List <EventData> Events = new List <EventData>(); IRegionData regiondata = Aurora.DataManager.DataManager.RequestPlugin <IRegionData>(); if (RetVal.Count % 15 != 0 || regiondata == null) { return(Events); } GridRegion region; EventData data; for (int i = 0; i < RetVal.Count; i += 15) { data = new EventData(); region = regiondata.Get(UUID.Parse(RetVal[2].ToString()), UUID.Zero); 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].ToString()); 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.globalPos = new Vector3( region.RegionLocX + float.Parse(RetVal[i + 9]), region.RegionLocY + float.Parse(RetVal[i + 10]), region.RegionLocZ + float.Parse(RetVal[i + 11]) ); data.name = RetVal[i + 12]; data.description = RetVal[i + 13]; data.category = RetVal[i + 14]; Events.Add(data); } return(Events); }
/// <summary> /// Retrives all events in the given region by their maturity level /// </summary> /// <param name = "regionName"></param> /// <param name = "maturity">Uses DirectoryManager.EventFlags to determine the maturity requested</param> /// <returns></returns> public DirEventsReplyData[] FindAllEventsInRegion(string regionName, int maturity) { List <DirEventsReplyData> Data = new List <DirEventsReplyData>(); IRegionData regiondata = Aurora.DataManager.DataManager.RequestPlugin <IRegionData>(); if (regiondata != null) { List <GridRegion> regions = regiondata.Get(regionName, UUID.Zero); if (regions.Count >= 1) { Dictionary <string, object> whereClause = new Dictionary <string, object>(); whereClause["region"] = regions[0].RegionID.ToString(); whereClause["maturity"] = maturity; List <string> retVal = GD.Query(new string[] { "EID", "creator", "date", "maturity", "flags", "name" }, "asevents", new QueryFilter { andFilters = whereClause }, null, null, null); if (retVal.Count > 0) { DirEventsReplyData replyData; for (int i = 0; i < retVal.Count; i += 6) { replyData = new DirEventsReplyData { eventID = Convert.ToUInt32(retVal[i]), ownerID = new UUID(retVal[i + 1]), name = retVal[i + 5], }; DateTime date = DateTime.Parse(retVal[i + 2].ToString()); replyData.date = date.ToString(new DateTimeFormatInfo()); replyData.unixTime = (uint)Util.ToUnixTime(date); replyData.eventFlags = Convert.ToUInt32(retVal[i + 4]); Data.Add(replyData); } } } } return(Data.ToArray()); }
public override void DeepCopyIn( IRegionData item, IRegionDataGetter rhs, ErrorMaskBuilder?errorMask, TranslationCrystal?copyMask, bool deepCopy) { this.DeepCopyIn( item: (IRegionLand)item, rhs: (IRegionLandGetter)rhs, errorMask: errorMask, copyMask: copyMask, deepCopy: deepCopy); }
public GridServiceBase(IConfigSource config) : base(config) { string dllName = String.Empty; string connString = String.Empty; string realm = "regions"; // // Try reading the [DatabaseService] section, if it exists // IConfig dbConfig = config.Configs["DatabaseService"]; if (dbConfig != null) { if (dllName == String.Empty) { dllName = dbConfig.GetString("StorageProvider", String.Empty); } if (connString == String.Empty) { connString = dbConfig.GetString("ConnectionString", String.Empty); } } // // [GridService] section overrides [DatabaseService], if it exists // IConfig gridConfig = config.Configs["GridService"]; if (gridConfig != null) { dllName = gridConfig.GetString("StorageProvider", dllName); connString = gridConfig.GetString("ConnectionString", connString); realm = gridConfig.GetString("Realm", realm); } // // We tried, but this doesn't exist. We can't proceed. // if (dllName.Equals(String.Empty)) { throw new Exception("No StorageProvider configured"); } m_Database = LoadPlugin <IRegionData>(dllName, new Object[] { connString, realm }); if (m_Database == null) { throw new Exception("Could not find a storage interface in the given module"); } }
public async Task IntegrationTestGetRegion_WithInvalidRegionId() { // Arrange RegionRepository repository = new RegionRepository(DevelopmentStorageAccountConnectionString, String.Empty); Guid dummySessionId = new Guid("74720766-452A-40AD-8A61-FEF07E8573C9"); Guid dummyRegionId = new Guid("DE167712-0CE6-455C-83EA-CB2A6936F1BE"); TableClient.SetupSessionDataTable(dummySessionId); // Act IRegionData regionData = await repository.GetRegion(dummySessionId, dummyRegionId); // Assert Assert.IsNull(regionData); }
public async Task <Guid> PostRedeployTroops(Guid sessionId, Guid regionId, uint numberOfTroops, Guid targetRegionId) { IRegionData sourceRegion = await RegionRepository.GetRegionOrThrow(sessionId, regionId) .IsRegionOwnerOrThrow(User.Identity.GetUserId()); ISession session = await SessionRepository.GetSessionOrThrow(sourceRegion) .IsUserIdJoinedOrThrow(NationRepository, User.Identity.GetUserId()) .IsPhaseTypeOrThrow(SessionPhase.Redeployment); IRegionData targetRegion = await RegionRepository.GetRegionOrThrow(session.GameId, targetRegionId) .IsRegionOwnerOrThrow(User.Identity.GetUserId()) .IsRegionConnectedOrThrow(sourceRegion.RegionId); INationData nation = await NationRepository.GetNation(sessionId, User.Identity.GetUserId()); if (sourceRegion.TroopCount <= numberOfTroops) { throw new HttpResponseException(new HttpResponseMessage { StatusCode = HttpStatusCode.BadRequest, ReasonPhrase = "You do not have that many troops available to redeploy" }); } else if (numberOfTroops <= 0) { throw new HttpResponseException(new HttpResponseMessage { StatusCode = HttpStatusCode.BadRequest, ReasonPhrase = "You can not redeploy less than 1 troop" }); } else if (nation.CompletedPhase == session.PhaseId) { throw new HttpResponseException(new HttpResponseMessage { StatusCode = HttpStatusCode.Conflict, ReasonPhrase = "You may only issue 1 redeployment" }); } else { Guid redeployOp = await CommandQueue.Redeploy(session.GameId, session.PhaseId, nation.CurrentEtag, sourceRegion.RegionId, targetRegion.RegionId, numberOfTroops); try { await NationRepository.MarkPlayerCompletedPhase(sessionId, User.Identity.GetUserId(), session.PhaseId); } catch (ConcurrencyException) { // The host has moved onto the next phase while we were waiting. No further action required. } return(redeployOp); } }
public HypergridLinker(IConfigSource config, GridService gridService, IRegionData db) { m_log.DebugFormat("[HYPERGRID LINKER]: Starting with db {0}", db.GetType()); m_Database = db; m_GridService = gridService; IConfig gridConfig = config.Configs["GridService"]; if (gridConfig != null) { string assetService = gridConfig.GetString("AssetService", string.Empty); Object[] args = new Object[] { config }; if (assetService != string.Empty) { m_AssetService = ServerUtils.LoadPlugin <IAssetService>(assetService, args); } string scope = gridConfig.GetString("ScopeID", string.Empty); if (scope != string.Empty) { UUID.TryParse(scope, out m_ScopeID); } m_Check4096 = gridConfig.GetBoolean("Check4096", true); m_GatekeeperConnector = new GatekeeperServiceConnector(m_AssetService); m_log.DebugFormat("[HYPERGRID LINKER]: Loaded all services..."); } if (MainConsole.Instance != null) { MainConsole.Instance.Commands.AddCommand("hypergrid", false, "link-region", "link-region <Xloc> <Yloc> <HostName>:<HttpPort>[:<RemoteRegionName>] <cr>", "Link a hypergrid region", RunCommand); MainConsole.Instance.Commands.AddCommand("hypergrid", false, "unlink-region", "unlink-region <local name> or <HostName>:<HttpPort> <cr>", "Unlink a hypergrid region", RunCommand); MainConsole.Instance.Commands.AddCommand("hypergrid", false, "link-mapping", "link-mapping [<x> <y>] <cr>", "Set local coordinate to map HG regions to", RunCommand); MainConsole.Instance.Commands.AddCommand("hypergrid", false, "show hyperlinks", "show hyperlinks <cr>", "List the HG regions", HandleShow); } }
public uint GetNumberOfParcelsByRegion(UUID RegionID, UUID scopeID, UUID owner, ParcelFlags flags, ParcelCategory category) { IRegionData regiondata = DataManager.DataManager.RequestPlugin <IRegionData>(); if (regiondata != null) { GridRegion region = regiondata.Get(RegionID, scopeID); if (region != null) { QueryFilter filter = GetParcelsByRegionWhereClause(RegionID, scopeID, owner, flags, category); return(uint.Parse(GD.Query(new string[1] { "COUNT(ParcelID)" }, "searchparcel", filter, null, null, null)[0])); } } return(0); }
public uint GetNumberOfParcelsWithNameByRegion(UUID RegionID, UUID ScopeID, string name) { IRegionData regiondata = DataManager.DataManager.RequestPlugin <IRegionData>(); if (regiondata != null) { GridRegion region = regiondata.Get(RegionID, ScopeID); if (region != null) { QueryFilter filter = new QueryFilter(); filter.andFilters["RegionID"] = RegionID; filter.andFilters["Name"] = name; return(uint.Parse(GD.Query(new string[1] { "COUNT(ParcelID)" }, "searchparcel", filter, null, null, null)[0])); } } return(0); }
public GridServiceBase(IConfigSource config) : base(config) { string dllName = String.Empty; string connString = String.Empty; string realm = "regions"; // // Try reading the [DatabaseService] section, if it exists // IConfig dbConfig = config.Configs["DatabaseService"]; if (dbConfig != null) { if (dllName == String.Empty) dllName = dbConfig.GetString("StorageProvider", String.Empty); if (connString == String.Empty) connString = dbConfig.GetString("ConnectionString", String.Empty); } // // [GridService] section overrides [DatabaseService], if it exists // IConfig gridConfig = config.Configs["GridService"]; if (gridConfig != null) { dllName = gridConfig.GetString("StorageProvider", dllName); connString = gridConfig.GetString("ConnectionString", connString); realm = gridConfig.GetString("Realm", realm); } // // We tried, but this doesn't exist. We can't proceed. // if (dllName.Equals(String.Empty)) throw new Exception("No StorageProvider configured"); m_Database = LoadPlugin<IRegionData>(dllName, new Object[] { connString, realm }); if (m_Database == null) throw new Exception("Could not find a storage interface in the given module"); }
public async Task <Guid> PostAttack(Guid sessionId, Guid regionId, uint numberOfTroops, Guid targetRegionId) { IRegionData sourceRegion = await RegionRepository.GetRegionOrThrow(sessionId, regionId) .IsRegionOwnerOrThrow(User.Identity.GetUserId()); ISession session = await SessionRepository.GetSessionOrThrow(sourceRegion) .IsUserIdJoinedOrThrow(NationRepository, User.Identity.GetUserId()) .IsPhaseTypeOrThrow(SessionPhase.CombatOrders); IRegionData targetRegion = await RegionRepository.GetRegionOrThrow(session.GameId, targetRegionId) .IsNotRegionOwnerOrThrow(User.Identity.GetUserId()) .IsRegionConnectedOrThrow(sourceRegion.RegionId); if (sourceRegion.TroopCount <= (sourceRegion.TroopsCommittedToPhase + numberOfTroops)) { throw new HttpResponseException(new HttpResponseMessage { StatusCode = HttpStatusCode.BadRequest, ReasonPhrase = "You do not have that many troops available to attack with" }); } else if (numberOfTroops <= 0) { throw new HttpResponseException(new HttpResponseMessage { StatusCode = HttpStatusCode.BadRequest, ReasonPhrase = "You can not attack with less than 1 troop" }); } else { Guid orderGuid; using (IBatchOperationHandle batchOperation = SessionRepository.StartBatchOperation(session.GameId)) { var queueAttackTask = CommandQueue.OrderAttack(batchOperation, session.GameId, session.PhaseId, sourceRegion.RegionId, sourceRegion.CurrentEtag, targetRegion.RegionId, numberOfTroops); RegionRepository.CommitTroopsToPhase(batchOperation, sourceRegion, numberOfTroops); await batchOperation.CommitBatch(); orderGuid = await queueAttackTask; } return(orderGuid); } }
public async Task IntegrationTestGetRegion() { // Arrange RegionRepository repository = new RegionRepository(DevelopmentStorageAccountConnectionString, String.Empty); Guid dummySessionId = new Guid("74720766-452A-40AD-8A61-FEF07E8573C9"); Guid dummyRegionId = new Guid("89B6BDF0-83B7-42F1-B216-7DFFB8D11EA2"); Guid dummyContinentId = new Guid("DE167712-0CE6-455C-83EA-CB2A6936F1BE"); List <Guid> dummyConnections = new List <Guid> { new Guid("0533203F-13F2-4863-B528-17F53D279E19"), new Guid("4A9779D0-0727-4AD9-AD66-17AE9AF9BE02") }; TableClient.SetupSessionDataTable(dummySessionId); using (IBatchOperationHandle batchOperation = new BatchOperationHandle(SessionRepository.GetTableForSessionData(TableClient, dummySessionId))) { repository.CreateRegion(batchOperation, dummySessionId, dummyRegionId, dummyContinentId, "DummyRegion", dummyConnections, 0); } // Act IRegionData regionData = await repository.GetRegion(dummySessionId, dummyRegionId); // Assert Assert.IsNotNull(regionData); Assert.AreEqual(dummySessionId, regionData.SessionId); }
public HypergridLinker(IConfigSource config, GridService gridService, IRegionData db) { IConfig gridConfig = config.Configs["GridService"]; if (gridConfig == null) { return; } if (!gridConfig.GetBoolean("HypergridLinker", false)) { return; } m_Database = db; m_GridService = gridService; m_log.DebugFormat("[HYPERGRID LINKER]: Starting with db {0}", db.GetType()); string assetService = gridConfig.GetString("AssetService", string.Empty); Object[] args = new Object[] { config }; if (assetService != string.Empty) { m_AssetService = ServerUtils.LoadPlugin <IAssetService>(assetService, args); } string scope = gridConfig.GetString("ScopeID", string.Empty); if (scope != string.Empty) { UUID.TryParse(scope, out m_ScopeID); } // m_Check4096 = gridConfig.GetBoolean("Check4096", true); m_MapTileDirectory = gridConfig.GetString("MapTileDirectory", "maptiles"); m_ThisGatekeeper = Util.GetConfigVarFromSections <string>(config, "GatekeeperURI", new string[] { "Startup", "Hypergrid", "GridService" }, String.Empty); // Legacy. Remove soon! m_ThisGatekeeper = gridConfig.GetString("Gatekeeper", m_ThisGatekeeper); try { m_ThisGatekeeperURI = new Uri(m_ThisGatekeeper); } catch { m_log.WarnFormat("[HYPERGRID LINKER]: Malformed URL in [GridService], variable Gatekeeper = {0}", m_ThisGatekeeper); } m_ThisGatekeeper = m_ThisGatekeeperURI.AbsoluteUri; if (m_ThisGatekeeperURI.Port == 80) { m_ThisGatekeeper = m_ThisGatekeeper.Trim(new char[] { '/', ' ' }) + ":80/"; } else if (m_ThisGatekeeperURI.Port == 443) { m_ThisGatekeeper = m_ThisGatekeeper.Trim(new char[] { '/', ' ' }) + ":443/"; } m_GatekeeperConnector = new GatekeeperServiceConnector(m_AssetService); m_log.Debug("[HYPERGRID LINKER]: Loaded all services..."); if (!string.IsNullOrEmpty(m_MapTileDirectory)) { try { Directory.CreateDirectory(m_MapTileDirectory); } catch (Exception e) { m_log.WarnFormat("[HYPERGRID LINKER]: Could not create map tile storage directory {0}: {1}", m_MapTileDirectory, e); m_MapTileDirectory = string.Empty; } } if (MainConsole.Instance != null) { MainConsole.Instance.Commands.AddCommand("Hypergrid", false, "link-region", "link-region <Xloc> <Yloc> <ServerURI> [<RemoteRegionName>]", "Link a HyperGrid Region. Examples for <ServerURI>: http://grid.net:8002/ or http://example.org/path/foo.php", RunCommand); MainConsole.Instance.Commands.AddCommand("Hypergrid", false, "link-region", "link-region <Xloc> <Yloc> <RegionIP> <RegionPort> [<RemoteRegionName>]", "Link a hypergrid region (deprecated)", RunCommand); MainConsole.Instance.Commands.AddCommand("Hypergrid", false, "unlink-region", "unlink-region <local name>", "Unlink a hypergrid region", RunCommand); MainConsole.Instance.Commands.AddCommand("Hypergrid", false, "link-mapping", "link-mapping [<x> <y>]", "Set local coordinate to map HG regions to", RunCommand); MainConsole.Instance.Commands.AddCommand("Hypergrid", false, "show hyperlinks", "show hyperlinks", "List the HG regions", HandleShow); } }
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); }
public void Start(IConfigSource config, IRegistryCore registry) { m_AssetService = registry.RequestModuleInterface<IAssetService> (); m_GridService = registry.RequestModuleInterface<IGridService> (); m_GatekeeperConnector = new GatekeeperServiceConnector (m_AssetService); m_Database = Aurora.DataManager.DataManager.RequestPlugin<IRegionData> (); MainConsole.Instance.Debug ("[HYPERGRID LINKER]: Loaded all services..."); }
public HypergridLinker(IConfigSource config, GridService gridService, IRegionData db) { m_log.DebugFormat("[HYPERGRID LINKER]: Starting with db {0}", db.GetType()); m_Database = db; m_GridService = gridService; IConfig gridConfig = config.Configs["GridService"]; if (gridConfig != null) { string assetService = gridConfig.GetString("AssetService", string.Empty); Object[] args = new Object[] { config }; if (assetService != string.Empty) m_AssetService = ServerUtils.LoadPlugin<IAssetService>(assetService, args); string scope = gridConfig.GetString("ScopeID", string.Empty); if (scope != string.Empty) UUID.TryParse(scope, out m_ScopeID); m_GatekeeperConnector = new GatekeeperServiceConnector(m_AssetService); m_log.DebugFormat("[HYPERGRID LINKER]: Loaded all services..."); } if (MainConsole.Instance != null) { MainConsole.Instance.Commands.AddCommand("hypergrid", false, "link-region", "link-region <Xloc> <Yloc> <HostName>:<HttpPort>[:<RemoteRegionName>] <cr>", "Link a hypergrid region", RunCommand); MainConsole.Instance.Commands.AddCommand("hypergrid", false, "unlink-region", "unlink-region <local name> or <HostName>:<HttpPort> <cr>", "Unlink a hypergrid region", RunCommand); MainConsole.Instance.Commands.AddCommand("hypergrid", false, "link-mapping", "link-mapping [<x> <y>] <cr>", "Set local coordinate to map HG regions to", RunCommand); MainConsole.Instance.Commands.AddCommand("hypergrid", false, "show hyperlinks", "show hyperlinks <cr>", "List the HG regions", HandleShow); } }