/// <summary> /// Simulates typing in the specified channel. Automatically times out/stops after either: /// -10 Seconds /// -A message is sent /// </summary> /// <param name="channel"></param> public void SimulateTyping(DiscordChannel channel) { string url = Endpoints.BaseAPI + Endpoints.Channels + $"/{channel.id}" + Endpoints.Typing; try { WebWrapper.Post(url, token, ""); } catch(Exception ex) { DebugLogger.Log("Exception ocurred while simulating typing: " + ex.Message, MessageLevel.Error); } }
public DiscordVoiceClient(DiscordClient parentClient, DiscordVoiceConfig config, DiscordChannel channel) { _parent = parentClient; VoiceConfig = config; Channel = channel; }
public DiscordMember GetMemberFromChannel(DiscordChannel channel, string username, bool caseSensitive) { DiscordServer parentServer = ServersList.Find(x => x.channels.Find(y => y.id == channel.id) != null); return parentServer.members.Find(y => caseSensitive ? y.Username == username : y.Username.ToLower() == username.ToLower()); }
public DiscordMessage GetLastMessageSent(DiscordChannel inChannel) { for (int i = MessageLog.Count - 1; i > -1; i--) { if (MessageLog[i].Value.author.ID == Me.ID) if(MessageLog[i].Value.channel.id == inChannel.id) return MessageLog[i].Value; } return null; }
public void AttachFile(DiscordChannel channel, string message, string pathToFile) { string url = Endpoints.BaseAPI + Endpoints.Channels + $"/{channel.id}" + Endpoints.Messages; //WebWrapper.PostWithAttachment(url, message, pathToFile); try { var uploadResult = JObject.Parse(WebWrapper.HttpUploadFile(url, token, pathToFile, "file", "image/jpeg", null)); if (!string.IsNullOrWhiteSpace(message)) EditMessage(uploadResult["id"].ToString(), message, channel); } catch(Exception ex) { DebugLogger.Log($"Error ocurred while sending file ({pathToFile}) to {channel.name}: {ex.Message}", MessageLevel.Error); } }
public void ChangeChannelTopic(string Channeltopic, DiscordChannel channel) { string topicChangeJson = JsonConvert.SerializeObject( new { name = channel.name, topic = Channeltopic }); string url = Endpoints.BaseAPI + Endpoints.Channels + $"/{channel.id}"; try { var result = JObject.Parse(WebWrapper.Patch(url, token, topicChangeJson)); ServersList.Find(x => x.channels.Find(y => y.id == channel.id) != null).channels.Find(x => x.id == channel.id).topic = Channeltopic; } catch(Exception ex) { DebugLogger.Log($"Error ocurred while changing channel topic for channel {channel.name}: {ex.Message}", MessageLevel.Error); } }
public void ChangeChannelTopic(string Channeltopic, DiscordChannel channel) { string topicChangeJson = JsonConvert.SerializeObject( new { name = channel.name, topic = Channeltopic }); var httpRequest = (HttpWebRequest)WebRequest.Create("https://discordapp.com/api/channels/" + channel.id); httpRequest.Headers["authorization"] = token; httpRequest.ContentType = "application/json"; httpRequest.Method = "PATCH"; using (var sw = new StreamWriter(httpRequest.GetRequestStream())) { sw.Write(topicChangeJson.ToString()); sw.Flush(); sw.Close(); } try { var httpResponse = (HttpWebResponse)httpRequest.GetResponse(); using (var sr = new StreamReader(httpResponse.GetResponseStream())) { var result = JObject.Parse(sr.ReadLine()); ServersList.Find(x => x.channels.Find(y => y.id == channel.id) != null).channels.Find(x => x.id == channel.id).topic = Channeltopic; } } catch (Exception ex) { if (DebugMessageReceived != null) DebugMessageReceived(this, new DiscordDebugMessagesEventArgs { message = ex.Message }); } }
//eh private void GetChannelsList(JObject m) { if (ServersList == null) ServersList = new List<DiscordServer>(); foreach(var j in m["d"]["guilds"]) { DiscordServer temp = new DiscordServer(); temp.id = j["id"].ToString(); temp.name = j["name"].ToString(); //temp.owner_id = j["owner_id"].ToString(); List<DiscordChannel> tempSubs = new List<DiscordChannel>(); List<DiscordRole> tempRoles = new List<DiscordRole>(); foreach(var u in j["roles"]) { DiscordRole t = new DiscordRole { color = new DiscordSharp.Color(u["color"].ToObject<int>().ToString("x")), name = u["name"].ToString(), permissions = new DiscordPermission(u["permissions"].ToObject<uint>()), position = u["position"].ToObject<int>(), managed = u["managed"].ToObject<bool>(), id = u["id"].ToString(), hoist = u["hoist"].ToObject<bool>() }; tempRoles.Add(t); } temp.roles = tempRoles; foreach(var u in j["channels"]) { DiscordChannel tempSub = new DiscordChannel(); tempSub.id = u["id"].ToString(); tempSub.name = u["name"].ToString(); tempSub.type = u["type"].ToString(); tempSub.topic = u["topic"].ToString(); tempSub.parent = temp; List<DiscordPermissionOverride> permissionoverrides = new List<DiscordPermissionOverride>(); foreach(var o in u["permission_overwrites"]) { DiscordPermissionOverride dpo = new DiscordPermissionOverride(o["allow"].ToObject<uint>(), o["deny"].ToObject<uint>()); dpo.id = o["id"].ToString(); if (o["type"].ToString() == "member") dpo.type = DiscordPermissionOverride.OverrideType.member; else dpo.type = DiscordPermissionOverride.OverrideType.role; permissionoverrides.Add(dpo); } tempSub.PermissionOverrides = permissionoverrides; tempSubs.Add(tempSub); } temp.channels = tempSubs; foreach(var mm in j["members"]) { DiscordMember member = JsonConvert.DeserializeObject<DiscordMember>(mm["user"].ToString()); //member.ID = mm["user"]["id"].ToString(); //member.Username = mm["user"]["username"].ToString(); //member.Avatar = mm["user"]["avatar"].ToString(); //member.Discriminator = mm["user"]["discriminator"].ToString(); member.Roles = new List<DiscordRole>(); JArray rawRoles = JArray.Parse(mm["roles"].ToString()); if(rawRoles.Count > 0) { foreach(var role in rawRoles.Children()) { member.Roles.Add(temp.roles.Find(x => x.id == role.Value<string>())); } } else { member.Roles.Add(temp.roles.Find(x => x.name == "@everyone")); } member.Parent = temp; temp.members.Add(member); } temp.owner = temp.members.Find(x => x.ID == j["owner_id"].ToString()); ServersList.Add(temp); } }
//eh private void GetChannelsList(JObject m) { if (ServersList == null) ServersList = new List<DiscordServer>(); foreach(var j in m["d"]["guilds"]) { DiscordServer temp = new DiscordServer(); temp.id = j["id"].ToString(); temp.name = j["name"].ToString(); temp.owner_id = j["owner_id"].ToString(); List<DiscordChannel> tempSubs = new List<DiscordChannel>(); foreach(var u in j["channels"]) { DiscordChannel tempSub = new DiscordChannel(); tempSub.id = u["id"].ToString(); tempSub.name = u["name"].ToString(); tempSub.type = u["type"].ToString(); tempSub.topic = u["topic"].ToString(); tempSubs.Add(tempSub); } temp.channels = tempSubs; foreach(var mm in j["members"]) { DiscordMember member = new DiscordMember(); member.user.id = mm["user"]["id"].ToString(); member.user.username = mm["user"]["username"].ToString(); member.user.avatar = mm["user"]["avatar"].ToString(); member.user.discriminator = mm["user"]["discriminator"].ToString(); temp.members.Add(member); } ServersList.Add(temp); } }
/// <summary> /// Sends a message to a channel, what else did you expect? /// </summary> /// <param name="message"></param> /// <param name="channel"></param> public void SendMessageToChannel(string message, DiscordChannel channel) { //DiscordServer serverID = ServerFromName(server); //string initMessage = "{\"recipient_id\":" + channelID.id + "}"; var httpRequest = (HttpWebRequest)WebRequest.Create("https://discordapp.com/api/channels/" + channel.id + "/messages"); httpRequest.Headers["authorization"] = token; httpRequest.ContentType = "application/json"; httpRequest.Method = "POST"; using (var sw = new StreamWriter(httpRequest.GetRequestStream())) { sw.Write(JsonConvert.SerializeObject(GenerateMessage(message))); sw.Flush(); sw.Close(); } try { var httpResponse = (HttpWebResponse)httpRequest.GetResponse(); using (var sr = new StreamReader(httpResponse.GetResponseStream())) { var result = sr.ReadToEnd(); } } catch (WebException e) { using (StreamReader s = new StreamReader(e.Response.GetResponseStream())) { string result = s.ReadToEnd(); Console.WriteLine("!!! " + result); } } }
private void GuildCreateEvents(JObject message) { DiscordGuildCreateEventArgs e = new DiscordGuildCreateEventArgs(); e.RawJson = message; DiscordServer server = new DiscordServer(); server.id = message["d"]["id"].ToString(); server.name = message["d"]["name"].ToString(); server.owner_id = message["d"]["owner_id"].ToString(); server.members = new List<DiscordMember>(); server.channels = new List<DiscordChannel>(); foreach(var chn in message["d"]["channels"]) { DiscordChannel tempChannel = new DiscordChannel(); tempChannel.id = chn["id"].ToString(); tempChannel.type = chn["type"].ToString(); tempChannel.topic = chn["topic"].ToString(); tempChannel.name = chn["name"].ToString(); tempChannel.is_private = false; server.channels.Add(tempChannel); } foreach(var mbr in message["d"]["members"]) { DiscordMember member = new DiscordMember(); member.user.avatar = mbr["user"]["avatar"].ToString(); member.user.username = mbr["user"]["username"].ToString(); member.user.id = mbr["user"]["id"].ToString(); member.user.discriminator = mbr["user"]["discriminator"].ToString(); server.members.Add(member); } ServersList.Add(server); e.server = server; if (GuildCreated != null) GuildCreated(this, e); }
public DiscordChannel CreateChannel(string ChannelName, bool voice) { string url = Endpoints.BaseAPI + Endpoints.Guilds + $"/{this.id}" + Endpoints.Channels; var reqJson = JsonConvert.SerializeObject(new { name = ChannelName, type = voice ? "voice" : "text" }); var result = JObject.Parse(WebWrapper.Post(url, DiscordClient.token, reqJson)); if (result != null) { DiscordChannel dc = new DiscordChannel { name = result["name"].ToString(), id = result["id"].ToString(), type = result["type"].ToString(), is_private = result["is_private"].ToObject<bool>(), topic = result["topic"].ToString() }; this.channels.Add(dc); return dc; } return null; }
public void DeleteChannel(DiscordChannel channel) { string url = Endpoints.BaseAPI + Endpoints.Channels + $"/{channel.id}"; WebWrapper.Delete(url, DiscordClient.token); }
private void GuildUpdateEvents(JObject message) { DiscordServer oldServer = ServersList.Find(x => x.id == message["d"]["id"].ToString()); DiscordServer newServer = new DiscordServer { name = message["d"]["name"].ToString(), id = message["d"]["name"].ToString() }; newServer.roles = new List<DiscordRole>(); if (!message["d"]["roles"].IsNullOrEmpty()) { foreach (var roll in message["d"]["roles"]) { DiscordRole t = new DiscordRole { color = new DiscordSharp.Color(roll["color"].ToObject<int>().ToString("x")), name = roll["name"].ToString(), permissions = new DiscordPermission(roll["permissions"].ToObject<uint>()), position = roll["position"].ToObject<int>(), managed = roll["managed"].ToObject<bool>(), id = roll["id"].ToString(), hoist = roll["hoist"].ToObject<bool>() }; newServer.roles.Add(t); } } newServer.channels = new List<DiscordChannel>(); if (!message["d"]["channels"].IsNullOrEmpty()) { foreach (var u in message["d"]["channels"]) { DiscordChannel tempSub = new DiscordChannel(); tempSub.id = u["id"].ToString(); tempSub.name = u["name"].ToString(); tempSub.type = u["type"].ToString(); tempSub.topic = u["topic"].ToString(); tempSub.parent = newServer; List<DiscordPermissionOverride> permissionoverrides = new List<DiscordPermissionOverride>(); foreach (var o in u["permission_overwrites"]) { DiscordPermissionOverride dpo = new DiscordPermissionOverride(o["allow"].ToObject<uint>(), o["deny"].ToObject<uint>()); dpo.type = o["type"].ToObject<DiscordPermissionOverride.OverrideType>(); dpo.id = o["id"].ToString(); permissionoverrides.Add(dpo); } tempSub.PermissionOverrides = permissionoverrides; newServer.channels.Add(tempSub); } } if (!message["d"]["members"].IsNullOrEmpty()) { foreach (var mm in message["d"]["members"]) { DiscordMember member = JsonConvert.DeserializeObject<DiscordMember>(mm["user"].ToString()); member.parentclient = this; member.Parent = newServer; JArray rawRoles = JArray.Parse(mm["roles"].ToString()); if (rawRoles.Count > 0) { foreach (var role in rawRoles.Children()) { member.Roles.Add(newServer.roles.Find(x => x.id == role.Value<string>())); } } else { member.Roles.Add(newServer.roles.Find(x => x.name == "@everyone")); } newServer.members.Add(member); } } if (!message["d"]["owner_id"].IsNullOrEmpty()) { newServer.owner = newServer.members.Find(x => x.ID == message["d"]["owner_id"].ToString()); DebugLogger.Log($"Transferred ownership from user '{oldServer.owner.Username}' to {newServer.owner.Username}."); } ServersList.Remove(oldServer); ServersList.Add(newServer); DiscordServerUpdateEventArgs dsuea = new DiscordServerUpdateEventArgs { NewServer = newServer, OldServer = oldServer }; if (GuildUpdated != null) GuildUpdated(this, dsuea); }
/* End of Bot commands */ /// <summary> /// Sends a message, from the bot, to the given channel with the given message. /// </summary> /// <param name="message">Message to send</param> /// <param name="channel">Channel to send the message to</param> /// <returns>true if the message was sent, false otherwise</returns> public bool SendMessage(string message, DiscordChannel channel) { if (_client != null && _connected) { _client.SendMessageToChannel(message, channel); return true; } return false; }
private void GuildCreateEvents(JObject message) { DiscordGuildCreateEventArgs e = new DiscordGuildCreateEventArgs(); e.RawJson = message; DiscordServer server = new DiscordServer(); server.id = message["d"]["id"].ToString(); server.name = message["d"]["name"].ToString(); server.members = new List<DiscordMember>(); server.channels = new List<DiscordChannel>(); server.roles = new List<DiscordRole>(); foreach (var roll in message["d"]["roles"]) { DiscordRole t = new DiscordRole { color = new DiscordSharp.Color(roll["color"].ToObject<int>().ToString("x")), name = roll["name"].ToString(), permissions = new DiscordPermission(roll["permissions"].ToObject<uint>()), position = roll["position"].ToObject<int>(), managed = roll["managed"].ToObject<bool>(), id = roll["id"].ToString(), hoist = roll["hoist"].ToObject<bool>() }; server.roles.Add(t); } foreach (var chn in message["d"]["channels"]) { DiscordChannel tempChannel = new DiscordChannel(); tempChannel.id = chn["id"].ToString(); tempChannel.type = chn["type"].ToString(); tempChannel.topic = chn["topic"].ToString(); tempChannel.name = chn["name"].ToString(); tempChannel.is_private = false; tempChannel.PermissionOverrides = new List<DiscordPermissionOverride>(); foreach (var o in chn["permission_overwrites"]) { if (tempChannel.type == "voice") continue; DiscordPermissionOverride dpo = new DiscordPermissionOverride(o["allow"].ToObject<uint>(), o["deny"].ToObject<uint>()); dpo.id = o["id"].ToString(); if (o["type"].ToString() == "member") dpo.type = DiscordPermissionOverride.OverrideType.member; else dpo.type = DiscordPermissionOverride.OverrideType.role; tempChannel.PermissionOverrides.Add(dpo); } server.channels.Add(tempChannel); } foreach(var mbr in message["d"]["members"]) { DiscordMember member = JsonConvert.DeserializeObject<DiscordMember>(mbr["user"].ToString()); member.parentclient = this; member.Parent = server; foreach(var rollid in mbr["roles"]) { member.Roles.Add(server.roles.Find(x => x.id == rollid.ToString())); } if (member.Roles.Count == 0) member.Roles.Add(server.roles.Find(x => x.name == "@everyone")); server.members.Add(member); } server.owner = server.members.Find(x => x.ID == message["d"]["owner_id"].ToString()); ServersList.Add(server); e.server = server; if (GuildCreated != null) GuildCreated(this, e); }
private bool TimerComm(string args, DiscordMessage from) { int time; try { time = int.Parse(args); } catch (FormatException ex) { SendMessage("Please give a number of seconds to countdown from", from.channel); return false; } if (time < 0) { SendMessage("Please give a number of seconds above 0", from.channel); return false; } _timer = new Timer(time * 1000); _timer.Elapsed += TimerInterval; _timer.Start(); SendMessage(":exclamation::exclamation: " + time + " second timer has started :exclamation::exclamation:", from.channel); _timerChannel = from.channel; return true; }
/// <summary> /// Sends a message to a channel, what else did you expect? /// </summary> /// <param name="message"></param> /// <param name="channel"></param> public DiscordMessage SendMessageToChannel(string message, DiscordChannel channel) { string url = Endpoints.BaseAPI + Endpoints.Channels + $"/{channel.id}" + Endpoints.Messages; try { JObject result = JObject.Parse(WebWrapper.Post(url, token, JsonConvert.SerializeObject(Utils.GenerateMessage(message)))); DiscordMessage m = new DiscordMessage { id = result["id"].ToString(), attachments = result["attachments"].ToObject<string[]>(), author = channel.parent.members.Find(x => x.ID == result["author"]["id"].ToString()), channel = channel, content = result["content"].ToString(), RawJson = result, timestamp = result["timestamp"].ToObject<DateTime>() }; return m; } catch(Exception ex) { DebugLogger.Log($"Error ocurred while sending message to channel ({channel.name}): {ex.Message}", MessageLevel.Error); } return null; }
public DiscordServer GetServerChannelIsIn(DiscordChannel channel) { return ServersList.Find(x => x.channels.Find(y => y.id == channel.id) != null); }
/// <summary> /// Returns a List of DiscordMessages. /// </summary> /// <param name="channel">The channel to return them from.</param> /// <param name="count">How many to return</param> /// <param name="idBefore">Messages before this message ID.</param> /// <param name="idAfter">Messages after this message ID.</param> /// <returns></returns> public List<DiscordMessage> GetMessageHistory(DiscordChannel channel, int count, int? idBefore, int ?idAfter) { string request = "https://discordapp.com/api/channels/" + channel.id + $"/messages?&limit={count}"; if (idBefore != null) request += $"&before={idBefore}"; if (idAfter != null) request += $"&after={idAfter}"; JArray result = null; try { result = JArray.Parse(WebWrapper.Get(request, token)); } catch(Exception ex) { DebugLogger.Log($"Error ocurred while getting message history for channel {channel.name}: {ex.Message}", MessageLevel.Error); } if(result != null) { List<DiscordMessage> messageList = new List<DiscordMessage>(); /// NOTE /// For some reason, the d object is excluded from this. foreach (var item in result.Children()) { messageList.Add(new DiscordMessage { id = item["id"].ToString(), channel = channel, author = GetMemberFromChannel(channel, item["author"]["id"].ToObject<long>()), content = item["content"].ToString(), RawJson = item.ToObject<JObject>(), timestamp = DateTime.Parse(item["timestamp"].ToString()) }); } return messageList; } return null; }
public void DeleteChannel(DiscordChannel channel) { string url = Endpoints.BaseAPI + Endpoints.Channels + $"/{channel.id}"; try { WebWrapper.Delete(url, token); } catch(Exception ex) { DebugLogger.Log("Exception ocurred while deleting channel: " + ex.Message, MessageLevel.Error); } }
public int DeleteAllMessagesInChannel(DiscordChannel channel) { int count = 0; foreach(var message in this.MessageLog) { if (message.Value.channel == channel) if (message.Value.author.ID == Me.ID) { SendDeleteRequest(message.Value); count++; } } return count; }
public DiscordChannel CreateChannel(DiscordServer server, string ChannelName, bool voice) { string url = Endpoints.BaseAPI + Endpoints.Guilds + $"/{server.id}" + Endpoints.Channels; var reqJson = JsonConvert.SerializeObject(new { name = ChannelName, type = voice ? "voice" : "text" }); try { var result = JObject.Parse(WebWrapper.Post(url, token, reqJson)); if (result != null) { DiscordChannel dc = new DiscordChannel { name = result["name"].ToString(), id = result["id"].ToString(), type = result["type"].ToString(), is_private = result["is_private"].ToObject<bool>(), topic = result["topic"].ToString() }; server.channels.Add(dc); return dc; } } catch(Exception ex) { DebugLogger.Log("Exception ocurred while creating channel: " + ex.Message, MessageLevel.Error); } return null; }
public DiscordMember GetMemberFromChannel(DiscordChannel channel, long id) { DiscordServer parentServer = ServersList.Find(x => x.channels.Find(y => y.id == channel.id) != null); return parentServer.members.Find(y => y.ID == id.ToString()); }
/// <summary> /// Creates and invite to the given channel. /// </summary> /// <param name="channel"></param> /// <returns>The invite's code.</returns> public string CreateInvite(DiscordChannel channel) { string url = Endpoints.BaseAPI + Endpoints.Channels + $"/{channel.id}" + Endpoints.Invites; try { var resopnse = JObject.Parse(WebWrapper.Post(url, token, "{\"validate\":\"\"}")); if (resopnse != null) { return resopnse["code"].ToString(); } } catch(Exception ex) { DebugLogger.Log($"Error ocurred while creating invite for channel {channel.name}: {ex.Message}", MessageLevel.Error); } return null; }
public DiscordMessage EditMessage(string MessageID, string replacementMessage, DiscordChannel channel) { string url = Endpoints.BaseAPI + Endpoints.Channels + $"/{channel.id}" + Endpoints.Messages + $"/{MessageID}"; try { string replacement = JsonConvert.SerializeObject( new { content = replacementMessage, mentions = new string[0] } ); JObject result = JObject.Parse(WebWrapper.Patch(url, token, replacement)); DiscordMessage m = new DiscordMessage { RawJson = result, attachments = result["attachments"].ToObject<string[]>(), author = channel.parent.members.Find(x=>x.ID == result["author"]["id"].ToString()), channel = channel, content = result["content"].ToString(), id = result["id"].ToString(), timestamp = result["timestamp"].ToObject<DateTime>() }; return m; } catch(Exception ex) { DebugLogger.Log("Exception ocurred while editing: " + ex.Message, MessageLevel.Error); } return null; }
public async void ConnectToVoiceChannel(DiscordChannel channel, bool clientMuted = false, bool clientDeaf = false) { if (channel.type != "voice") throw new InvalidOperationException($"Channel '{channel.name}' is not a voice channel!"); if (ConnectedToVoice()) await Task.Run(()=>DisconnectFromVoice()).ConfigureAwait(false); if (VoiceClient == null) VoiceClient = new DiscordVoiceClient(this); VoiceClient.Disposed += (sender, e) => VoiceClient = null; VoiceClient.UserSpeaking += (sender, e) => { if (UserSpeaking != null) UserSpeaking(this, e); }; string joinVoicePayload = JsonConvert.SerializeObject(new { op = 4, d = new { guild_id = channel.parent.id, channel_id = channel.id, self_mute = clientMuted, self_deaf = clientDeaf } }); ws.Send(joinVoicePayload); }
private void ChannelCreateEvents (JObject message) { if (message["d"]["is_private"].ToString().ToLower() == "false") { var foundServer = ServersList.Find(x => x.id == message["d"]["guild_id"].ToString()); if (foundServer != null) { DiscordChannel tempChannel = new DiscordChannel(); tempChannel.name = message["d"]["name"].ToString(); tempChannel.type = message["d"]["type"].ToString(); tempChannel.id = message["d"]["id"].ToString(); foundServer.channels.Add(tempChannel); DiscordChannelCreateEventArgs fae = new DiscordChannelCreateEventArgs(); fae.ChannelCreated = tempChannel; fae.ChannelType = DiscordChannelCreateType.CHANNEL; if (ChannelCreated != null) ChannelCreated(this, fae); } } else { DiscordPrivateChannel tempPrivate = new DiscordPrivateChannel(); tempPrivate.id = message["d"]["id"].ToString(); DiscordRecipient tempRec = new DiscordRecipient(); tempRec.id = message["d"]["recipient"]["id"].ToString(); tempRec.username = message["d"]["recipient"]["username"].ToString(); tempPrivate.recipient = tempRec; PrivateChannels.Add(tempPrivate); DiscordPrivateChannelEventArgs fak = new DiscordPrivateChannelEventArgs { ChannelType = DiscordChannelCreateType.PRIVATE, ChannelCreated = tempPrivate }; if (PrivateChannelCreated != null) PrivateChannelCreated(this, fak); } }
public DiscordVoiceClient(DiscordClient parentClient, DiscordVoiceConfig config, DiscordChannel channel) { _parent = parentClient; VoiceConfig = config; Channel = channel; InitializeOpusEncoder(); }