using System.Timers; while (Run) { Timer timer = new Timer(15); long? lastTileId = null; timer.Elapsed += async (sender, e) => { try { timer.Stop(); var targetCoordinates = new List<(int X, int Y)> { (3,9), (13,8), (14,6), (14,7), (14,8), (14,9), (15,5), (15,6), (15,7), (15,8), (15,9), (15,10), (16,4), (16,5), (16,6), (16,7), (16,8), (16,9), (16,10), (16,11), (17,4), (17,5), (17,6), (17,7), (17,8), (17,9), (17,10), (17,11), (17,12), (18,5), (18,6), (18,7), (18,8), (18,9), (18,10), (18,11), (18,12), (19,6), (19,7), (19,8), (19,9), (19,10), (19,11), (20,7), (20,8), (20,9), (20,10), (20,11), (21,8), (21,9) }; var tiles = FloorItems.NamedLike("Sphere Block") .Where(tile => targetCoordinates.Contains((tile.Location.X, tile.Location.Y)) && tile.Location.Z < 1) .ToList(); foreach(var tile in tiles) { if(lastTileId != tile.Id) { Send(Out["ClickFurni"], tile.Id, 0); lastTileId = tile.Id; } } } finally { timer.Start(); } }; timer.Start(); };