private async Task InternalStartPoll(IUserMessage umsg, string arg, bool isPublic = false) { var channel = (ITextChannel)umsg.Channel; if (!(umsg.Author as IGuildUser).GuildPermissions.ManageChannels) return; if (string.IsNullOrWhiteSpace(arg) || !arg.Contains(";")) return; var data = arg.Split(';'); if (data.Length < 3) return; var poll = new Poll(umsg, data[0], data.Skip(1), isPublic: isPublic); if (ActivePolls.TryAdd(channel.Guild, poll)) { await poll.StartPoll().ConfigureAwait(false); } else await channel.SendMessageAsync("`Poll is already running on this server.`").ConfigureAwait(false); }