public WorldNode GetWorldNode(int mapId) { WorldNode worldNode; // Try to get available world servers for the specific map or for all maps (-1). if (WorldNodes.TryGetValue(mapId, out worldNode) || WorldNodes.TryGetValue(-1, out worldNode)) { if (Helper.CheckConnection(worldNode.Address, worldNode.Port)) { return(worldNode); } } return(null); }
void LoadAvailableWorldNodes() { var worldNodes = DB.Auth.Select <WorldNode>(); if (worldNodes.Count == 0) { Log.Error("No WorldNodes available."); } worldNodes.ForEach(ws => { if (WorldNodes.TryAdd(ws.MapId, ws)) { Log.Normal("Added new WorldNode for Map '{0}' at '{1}:{2}'.", ws.MapId, ws.Address, ws.Port); } }); Log.Normal("Loaded {0} WorldNodes.", WorldNodes.Count); Log.Message(); }