private static void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { lock (Sneks) { List<Snake> toRemoveSnakes = new List<Snake>(); foreach (var snek in Sneks) { if (!Sneks.Any(x => x.Parts.Any(c => c.Position.X > snek.Parts[0].Position.X - snek.Width && c.Position.X < snek.Parts[0].Position.X + snek.Width && c.Position.Y > snek.Parts[0].Position.Y - snek.Width && c.Position.Y < snek.Parts[0].Position.Y + snek.Width) && snek != x)) return; clientsStatic.User(snek.ConnectionId).Died(); foreach (var part in snek.Parts) { Foods.Add(new Food() {Color = RandomColor(), Position = part.Position}); } toRemoveSnakes.Add(snek); break; } foreach (var snek in toRemoveSnakes) { Sneks.Remove(snek); } } }
public static void ParseMessage(IHubCallerConnectionContext clients, string name, string message) { //Command /gif if (message.IndexOf("/gif", StringComparison.Ordinal) == 0) { Uri uriResult; var parameter = message.Replace("/gif", ""); bool isUrl = Uri.TryCreate(parameter, UriKind.Absolute, out uriResult) && (uriResult.Scheme == Uri.UriSchemeHttp || uriResult.Scheme == Uri.UriSchemeHttps); if (isUrl) { clients.All.addNewMessageToPage(name, "<img class='responsive' title='Powered By Giphy' src='" + parameter + "' alt='Powered By Giphy'/>"); } else { var keywords = message.Replace("/gif", "").Replace(" ", "+"); clients.All.addNewMessageToPage(name, GiphyAPIHandler.FindGifOnKeyword(keywords)); } } //Command /w (whisper) if (message.IndexOf("/w", StringComparison.Ordinal) == 0) { var options = message.Replace("/w", "").Split(' '); if (options.Any()) { var target = options[0]; try { clients.User(target).send(name, message.Substring(target.Length)); } catch (Exception e) { clients.User(name).send("Error", e.Message); } } else { clients.User(name).send("Error", "Incomplete Command."); } } if (message.IndexOf("/meme", StringComparison.Ordinal) == 0) { var regex = new Regex("\\\".*?\\\""); var match = regex.Matches(message); if (match.Count != 3) { clients.User(name).send("Error", "Invalid Parameters for the command /meme."); } else { var url = match[0].Value.Replace("\"", ""); var topCaption = match[1].Value.Replace("\"", ""); var botCaption = match[2].Value.Replace("\"", ""); Uri uriResult; bool isUrl = Uri.TryCreate(url, UriKind.Absolute, out uriResult) && (uriResult.Scheme == Uri.UriSchemeHttp || uriResult.Scheme == Uri.UriSchemeHttps); if (isUrl) { clients.All.addNewMessageToPage(name, "<div class='meme' style=background:no-repeat url('" + url + "')><p class='top'>" + topCaption + "</p> <p class='bottom'>" + botCaption + "</p></div>"); } else { clients.User(name).send("Error", "Invalid Url."); } } } }
public dynamic User(string userId) { return(_clients.User(userId)); }