public void UpdateMapList(List <string> newMapList) { var mp = new MapListPacket(); SendPacket(mp); if (!mp.PacketOk) { Logger.Log(LogLevel.Error, "Map update failed - invalid /maps response"); return; } int added = 0; int dropped = 0; foreach (var s in mp.MapList) { if (!newMapList.Contains(s)) { SendCommand("dropmap", s); dropped++; } } foreach (var s in newMapList) { if (!mp.MapList.Contains(s)) { SendCommand("addmap", s); added++; } } Logger.Log(LogLevel.Verbose, "Added {0} maps, dropped {1} maps", added.ToString(), dropped.ToString()); }
//MapListPacket private static void HandlePacket(MapListPacket packet) { MapList.List.JsonData = packet.MapListData; MapList.List.PostLoad(MapBase.Lookup, false, true); //TODO ? If admin window is open update it }
//MapListPacket private static void HandlePacket(MapListPacket packet) { MapList.List.JsonData = packet.MapListData; MapList.List.PostLoad(MapBase.Lookup, false, true); if (Globals.CurrentMap == null) { Globals.MainForm.EnterMap(MapList.List.FindFirstMap()); } Globals.MapListWindow.BeginInvoke(Globals.MapListWindow.mapTreeList.MapListDelegate, Guid.Empty, null); Globals.MapPropertiesWindow?.BeginInvoke(Globals.MapPropertiesWindow.UpdatePropertiesDelegate); }