continued refactoring
This commit is contained in:
parent
3b170c283d
commit
fda5755a7f
@ -149,7 +149,7 @@ namespace NadekoBot.Classes.Music {
|
||||
byte[] buffer = new byte[blockSize];
|
||||
int attempt = 0;
|
||||
while (!cancelToken.IsCancellationRequested) {
|
||||
int read = await p.StandardOutput.BaseStream.ReadAsync(buffer, 0, blockSize);
|
||||
int read = await p.StandardOutput.BaseStream.ReadAsync(buffer, 0, blockSize, cancelToken);
|
||||
if (read == 0)
|
||||
if (attempt++ == 20)
|
||||
break;
|
||||
@ -162,6 +162,9 @@ namespace NadekoBot.Classes.Music {
|
||||
prebufferingComplete = true;
|
||||
}
|
||||
}
|
||||
catch {
|
||||
Console.WriteLine("Buffering errored");
|
||||
}
|
||||
finally {
|
||||
if (p != null) {
|
||||
p.CancelOutputRead();
|
||||
@ -171,7 +174,7 @@ namespace NadekoBot.Classes.Music {
|
||||
p.Dispose();
|
||||
}
|
||||
}
|
||||
Console.WriteLine($"Buffering done. [{songBuffer.ContentLength}]");
|
||||
Console.WriteLine($"Buffering done." + $" [{songBuffer.ContentLength}]");
|
||||
});
|
||||
|
||||
internal async Task Play(IAudioClient voiceClient, CancellationToken cancelToken) {
|
||||
@ -180,8 +183,9 @@ namespace NadekoBot.Classes.Music {
|
||||
int waitPerAttempt = 500;
|
||||
int toAttemptTimes = SongInfo.ProviderType != MusicType.Normal ? 5 : 9;
|
||||
while (!prebufferingComplete && bufferAttempts++ < toAttemptTimes) {
|
||||
await Task.Delay(waitPerAttempt);
|
||||
await Task.Delay(waitPerAttempt, cancelToken);
|
||||
}
|
||||
cancelToken.ThrowIfCancellationRequested();
|
||||
Console.WriteLine($"Prebuffering done? in {waitPerAttempt * bufferAttempts}");
|
||||
int blockSize = 3840;
|
||||
byte[] buffer = new byte[blockSize];
|
||||
@ -190,9 +194,9 @@ namespace NadekoBot.Classes.Music {
|
||||
//Console.WriteLine($"Read: {songBuffer.ReadPosition}\nWrite: {songBuffer.WritePosition}\nContentLength:{songBuffer.ContentLength}\n---------");
|
||||
int read = songBuffer.Read(buffer, blockSize);
|
||||
if (read == 0)
|
||||
if (attempt++ == 10) {
|
||||
if (attempt++ == 20) {
|
||||
voiceClient.Wait();
|
||||
Console.WriteLine("Playing done.");
|
||||
Console.WriteLine("Nothing to read.");
|
||||
return;
|
||||
}
|
||||
else
|
||||
@ -201,10 +205,11 @@ namespace NadekoBot.Classes.Music {
|
||||
attempt = 0;
|
||||
|
||||
while (this.MusicPlayer.Paused)
|
||||
await Task.Delay(200);
|
||||
await Task.Delay(200, cancelToken);
|
||||
buffer = adjustVolume(buffer, MusicPlayer.Volume);
|
||||
voiceClient.Send(buffer, 0, read);
|
||||
}
|
||||
cancelToken.ThrowIfCancellationRequested();
|
||||
//try {
|
||||
// voiceClient.Clear();
|
||||
// Console.WriteLine("CLEARED");
|
||||
|
@ -16,10 +16,10 @@ namespace NadekoBot.Classes.Music {
|
||||
public async Task<SoundCloudVideo> GetVideoAsync(string url) {
|
||||
if (string.IsNullOrWhiteSpace(url))
|
||||
throw new ArgumentNullException(nameof(url));
|
||||
if (string.IsNullOrWhiteSpace(NadekoBot.creds.SoundCloudClientID))
|
||||
throw new ArgumentNullException(nameof(NadekoBot.creds.SoundCloudClientID));
|
||||
if (string.IsNullOrWhiteSpace(NadekoBot.Creds.SoundCloudClientID))
|
||||
throw new ArgumentNullException(nameof(NadekoBot.Creds.SoundCloudClientID));
|
||||
|
||||
var response = await SearchHelper.GetResponseAsync($"http://api.soundcloud.com/resolve?url={url}&client_id={NadekoBot.creds.SoundCloudClientID}");
|
||||
var response = await SearchHelper.GetResponseAsync($"http://api.soundcloud.com/resolve?url={url}&client_id={NadekoBot.Creds.SoundCloudClientID}");
|
||||
|
||||
var responseObj = Newtonsoft.Json.JsonConvert.DeserializeObject<SoundCloudVideo>(response);
|
||||
if (responseObj?.Kind != "track")
|
||||
@ -39,7 +39,7 @@ namespace NadekoBot.Classes.Music {
|
||||
public string Title = "";
|
||||
public string FullName => User.Name + " - " + Title;
|
||||
public bool Streamable = false;
|
||||
public string StreamLink => $"https://api.soundcloud.com/tracks/{Id}/stream?client_id={NadekoBot.creds.SoundCloudClientID}";
|
||||
public string StreamLink => $"https://api.soundcloud.com/tracks/{Id}/stream?client_id={NadekoBot.Creds.SoundCloudClientID}";
|
||||
}
|
||||
public class SoundCloudUser {
|
||||
[Newtonsoft.Json.JsonProperty("username")]
|
||||
|
@ -31,8 +31,8 @@ namespace NadekoBot {
|
||||
static NadekoStats() { }
|
||||
|
||||
private NadekoStats() {
|
||||
_service = NadekoBot.client.GetService<CommandService>();
|
||||
_client = NadekoBot.client;
|
||||
_service = NadekoBot.Client.GetService<CommandService>();
|
||||
_client = NadekoBot.Client;
|
||||
|
||||
_statsSW = new Stopwatch();
|
||||
_statsSW.Start();
|
||||
@ -130,10 +130,10 @@ namespace NadekoBot {
|
||||
while (true) {
|
||||
await Task.Delay(new TimeSpan(0, 30, 0));
|
||||
try {
|
||||
var onlineUsers = await Task.Run(() => NadekoBot.client.Servers.Sum(x => x.Users.Count()));
|
||||
var realOnlineUsers = await Task.Run(() => NadekoBot.client.Servers
|
||||
var onlineUsers = await Task.Run(() => NadekoBot.Client.Servers.Sum(x => x.Users.Count()));
|
||||
var realOnlineUsers = await Task.Run(() => NadekoBot.Client.Servers
|
||||
.Sum(x => x.Users.Where(u => u.Status == UserStatus.Online).Count()));
|
||||
var connectedServers = NadekoBot.client.Servers.Count();
|
||||
var connectedServers = NadekoBot.Client.Servers.Count();
|
||||
|
||||
Classes.DBHandler.Instance.InsertData(new Classes._DataModels.Stats {
|
||||
OnlineUsers = onlineUsers,
|
||||
|
@ -1,8 +1,5 @@
|
||||
using Discord.Commands.Permissions;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Discord;
|
||||
using Discord.Commands;
|
||||
|
@ -40,7 +40,7 @@ namespace NadekoBot.Classes {
|
||||
if (string.IsNullOrWhiteSpace(mod))
|
||||
throw new ArgumentNullException(nameof(mod));
|
||||
|
||||
foreach (var m in NadekoBot.client.GetService<ModuleService>().Modules) {
|
||||
foreach (var m in NadekoBot.Client.GetService<ModuleService>().Modules) {
|
||||
if (m.Name.ToLower().Equals(mod.ToLower()))
|
||||
return m.Name;
|
||||
}
|
||||
@ -51,7 +51,7 @@ namespace NadekoBot.Classes {
|
||||
if (string.IsNullOrWhiteSpace(commandText))
|
||||
throw new ArgumentNullException(nameof(commandText));
|
||||
|
||||
foreach (var com in NadekoBot.client.GetService<CommandService>().AllCommands) {
|
||||
foreach (var com in NadekoBot.Client.GetService<CommandService>().AllCommands) {
|
||||
if (com.Text.ToLower().Equals(commandText.ToLower()))
|
||||
return com.Text;
|
||||
}
|
||||
|
@ -9,6 +9,6 @@ using System.Threading.Tasks;
|
||||
namespace NadekoBot.Classes.Permissions {
|
||||
static class SimpleCheckers {
|
||||
public static Func<Command, User, Channel, bool> OwnerOnly() =>
|
||||
(com, user, ch) => user.Id == NadekoBot.creds.OwnerID;
|
||||
(com, user, ch) => user.Id == NadekoBot.Creds.OwnerID;
|
||||
}
|
||||
}
|
||||
|
@ -9,23 +9,19 @@ using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace NadekoBot.Classes {
|
||||
static class SearchHelper {
|
||||
public static class SearchHelper {
|
||||
public static async Task<Stream> GetResponseStream(string v) {
|
||||
var wr = (HttpWebRequest)WebRequest.Create(v);
|
||||
try {
|
||||
return (await (wr).GetResponseAsync()).GetResponseStream();
|
||||
}
|
||||
catch (Exception ex) {
|
||||
Console.WriteLine("error in getresponse stream " + ex);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static async Task<string> GetResponseAsync(string v, WebHeaderCollection headers = null) {
|
||||
var wr = (HttpWebRequest)WebRequest.Create(v);
|
||||
if (headers != null)
|
||||
wr.Headers = headers;
|
||||
using (var sr = new StreamReader((await wr.GetResponseAsync()).GetResponseStream())) {
|
||||
var stream = (await wr.GetResponseAsync()).GetResponseStream();
|
||||
if (stream == null) return "";
|
||||
using (var sr = new StreamReader(stream)) {
|
||||
return await sr.ReadToEndAsync();
|
||||
}
|
||||
}
|
||||
@ -46,8 +42,7 @@ namespace NadekoBot.Classes {
|
||||
rq = new RestSharp.RestRequest("anime/" + smallObj["id"]);
|
||||
rq.AddParameter("access_token", token);
|
||||
return await Task.Run(() => JsonConvert.DeserializeObject<AnimeResult>(cl.Execute(rq).Content));
|
||||
}
|
||||
catch {
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@ -66,8 +61,7 @@ namespace NadekoBot.Classes {
|
||||
rq = new RestSharp.RestRequest("manga/" + smallObj["id"]);
|
||||
rq.AddParameter("access_token", token);
|
||||
return await Task.Run(() => JsonConvert.DeserializeObject<MangaResult>(cl.Execute(rq).Content));
|
||||
}
|
||||
catch (Exception ex) {
|
||||
} catch (Exception ex) {
|
||||
Console.WriteLine(ex.ToString());
|
||||
return null;
|
||||
}
|
||||
@ -83,8 +77,7 @@ namespace NadekoBot.Classes {
|
||||
var exec = cl.Execute(rq);
|
||||
|
||||
token = JObject.Parse(exec.Content)["access_token"].ToString();
|
||||
}
|
||||
catch (Exception ex) {
|
||||
} catch (Exception ex) {
|
||||
Console.WriteLine($"Failed refreshing anilist token:\n {ex}");
|
||||
}
|
||||
}
|
||||
@ -98,7 +91,7 @@ namespace NadekoBot.Classes {
|
||||
}
|
||||
|
||||
public static async Task<string> FindYoutubeUrlByKeywords(string v) {
|
||||
if (NadekoBot.GoogleAPIKey == "" || NadekoBot.GoogleAPIKey == null) {
|
||||
if (string.IsNullOrWhiteSpace(NadekoBot.GoogleAPIKey)) {
|
||||
Console.WriteLine("ERROR: No google api key found. Playing `Never gonna give you up`.");
|
||||
return @"https://www.youtube.com/watch?v=dQw4w9WgXcQ";
|
||||
}
|
||||
@ -117,15 +110,14 @@ namespace NadekoBot.Classes {
|
||||
dynamic obj = JObject.Parse(await sr.ReadToEndAsync());
|
||||
return "http://www.youtube.com/watch?v=" + obj.items[0].id.videoId.ToString();
|
||||
}
|
||||
}
|
||||
catch (Exception ex) {
|
||||
} catch (Exception ex) {
|
||||
Console.WriteLine($"Error in findyoutubeurl: {ex.Message}");
|
||||
return string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
public static async Task<string> GetPlaylistIdByKeyword(string v) {
|
||||
if (NadekoBot.GoogleAPIKey == "" || NadekoBot.GoogleAPIKey == null) {
|
||||
if (string.IsNullOrWhiteSpace(NadekoBot.GoogleAPIKey)) {
|
||||
Console.WriteLine("ERROR: No google api key found. Playing `Never gonna give you up`.");
|
||||
return string.Empty;
|
||||
}
|
||||
@ -136,8 +128,7 @@ namespace NadekoBot.Classes {
|
||||
|
||||
dynamic obj = JObject.Parse(await sr.ReadToEndAsync());
|
||||
return obj.items[0].id.playlistId.ToString();
|
||||
}
|
||||
catch (Exception ex) {
|
||||
} catch (Exception ex) {
|
||||
Console.WriteLine($"Error in GetPlaylistId: {ex.Message}");
|
||||
return string.Empty;
|
||||
}
|
||||
@ -145,15 +136,17 @@ namespace NadekoBot.Classes {
|
||||
|
||||
public static async Task<List<string>> GetVideoIDs(string v) {
|
||||
List<string> toReturn = new List<string>();
|
||||
if (NadekoBot.GoogleAPIKey == "" || NadekoBot.GoogleAPIKey == null) {
|
||||
if (string.IsNullOrWhiteSpace(NadekoBot.GoogleAPIKey)) {
|
||||
Console.WriteLine("ERROR: No google api key found. Playing `Never gonna give you up`.");
|
||||
return toReturn;
|
||||
}
|
||||
try {
|
||||
|
||||
WebRequest wr = WebRequest.Create($"https://www.googleapis.com/youtube/v3/playlistItems?part=contentDetails&maxResults={30}&playlistId={v}&key={ NadekoBot.creds.GoogleAPIKey }");
|
||||
|
||||
var sr = new StreamReader((await wr.GetResponseAsync()).GetResponseStream());
|
||||
var response = await wr.GetResponseAsync();
|
||||
if (response == null) return toReturn;
|
||||
var responseStream = response.GetResponseStream();
|
||||
if (responseStream == null) return toReturn;
|
||||
var sr = new StreamReader(responseStream);
|
||||
|
||||
dynamic obj = JObject.Parse(await sr.ReadToEndAsync());
|
||||
|
||||
@ -161,8 +154,7 @@ namespace NadekoBot.Classes {
|
||||
toReturn.Add("http://www.youtube.com/watch?v=" + item.contentDetails.videoId);
|
||||
}
|
||||
return toReturn;
|
||||
}
|
||||
catch (Exception ex) {
|
||||
} catch (Exception ex) {
|
||||
Console.WriteLine($"Error in GetPlaylistId: {ex.Message}");
|
||||
return new List<string>();
|
||||
}
|
||||
@ -180,8 +172,7 @@ namespace NadekoBot.Classes {
|
||||
var matches = Regex.Matches(webpage, "data-large-file-url=\"(?<id>.*?)\"");
|
||||
|
||||
return await $"http://danbooru.donmai.us{ matches[rng.Next(0, matches.Count)].Groups["id"].Value }".ShortenUrl();
|
||||
}
|
||||
catch {
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@ -197,8 +188,7 @@ namespace NadekoBot.Classes {
|
||||
//now extract the image from post page
|
||||
var match = Regex.Match(webpage, "\"(?<url>http://simg4.gelbooru.com//images.*?)\"");
|
||||
return match.Groups["url"].Value;
|
||||
}
|
||||
catch {
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@ -210,32 +200,32 @@ namespace NadekoBot.Classes {
|
||||
var webpage = await GetResponseAsync(url); // first extract the post id and go to that posts page
|
||||
var matches = Regex.Matches(webpage, "\"file_url\":\"(?<url>.*?)\"");
|
||||
return matches[rng.Next(0, matches.Count)].Groups["url"].Value;
|
||||
}
|
||||
catch {
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static async Task<string> ShortenUrl(string url) {
|
||||
if (NadekoBot.creds.GoogleAPIKey == null || NadekoBot.creds.GoogleAPIKey == "") return url;
|
||||
if (string.IsNullOrWhiteSpace(NadekoBot.creds.GoogleAPIKey)) return url;
|
||||
try {
|
||||
var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://www.googleapis.com/urlshortener/v1/url?key=" + NadekoBot.creds.GoogleAPIKey);
|
||||
httpWebRequest.ContentType = "application/json";
|
||||
httpWebRequest.Method = "POST";
|
||||
|
||||
using (var streamWriter = new StreamWriter(await httpWebRequest.GetRequestStreamAsync())) {
|
||||
string json = "{\"longUrl\":\"" + url + "\"}";
|
||||
var json = "{\"longUrl\":\"" + url + "\"}";
|
||||
streamWriter.Write(json);
|
||||
}
|
||||
|
||||
var httpResponse = (await httpWebRequest.GetResponseAsync()) as HttpWebResponse;
|
||||
using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) {
|
||||
string responseText = await streamReader.ReadToEndAsync();
|
||||
string MATCH_PATTERN = @"""id"": ?""(?<id>.+)""";
|
||||
return Regex.Match(responseText, MATCH_PATTERN).Groups["id"].Value;
|
||||
if (httpResponse == null) return "HTTP_RESPONSE_ERROR";
|
||||
var responseStream = httpResponse.GetResponseStream();
|
||||
if (responseStream == null) return "RESPONSE_STREAM ERROR";
|
||||
using (var streamReader = new StreamReader(responseStream)) {
|
||||
var responseText = await streamReader.ReadToEndAsync();
|
||||
return Regex.Match(responseText, @"""id"": ?""(?<id>.+)""").Groups["id"].Value;
|
||||
}
|
||||
}
|
||||
catch (Exception ex) { Console.WriteLine(ex.ToString()); return url; }
|
||||
} catch (Exception ex) { Console.WriteLine(ex.ToString()); return url; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -52,7 +52,7 @@ namespace NadekoBot.Classes.Trivia {
|
||||
await _channel.SendMessage($":question: **{CurrentQuestion.Question}**");
|
||||
|
||||
//receive messages
|
||||
NadekoBot.client.MessageReceived += PotentialGuess;
|
||||
NadekoBot.Client.MessageReceived += PotentialGuess;
|
||||
|
||||
//allow people to guess
|
||||
GameActive = true;
|
||||
@ -71,7 +71,7 @@ namespace NadekoBot.Classes.Trivia {
|
||||
GameActive = false;
|
||||
if (!triviaCancelSource.IsCancellationRequested)
|
||||
await _channel.Send($":clock2: :question: **Time's up!** The correct answer was **{CurrentQuestion.Answer}**");
|
||||
NadekoBot.client.MessageReceived -= PotentialGuess;
|
||||
NadekoBot.Client.MessageReceived -= PotentialGuess;
|
||||
// load next question if game is still running
|
||||
await Task.Delay(2000);
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
namespace NadekoBot
|
||||
// ReSharper disable InconsistentNaming
|
||||
namespace NadekoBot.Classes
|
||||
{
|
||||
public class Credentials
|
||||
{
|
||||
@ -31,7 +32,8 @@
|
||||
"\n`Synopsis:` " + description.Substring(0, description.Length > 500 ? 500 : description.Length) + "..." +
|
||||
"\n`img:` " + image_url_lge;
|
||||
}
|
||||
class MangaResult
|
||||
|
||||
public class MangaResult
|
||||
{
|
||||
public int id;
|
||||
public string publishing_status;
|
||||
|
@ -22,7 +22,7 @@ namespace NadekoBot
|
||||
/// <param name="cb">CommandBuilder which will be modified</param>
|
||||
protected DiscordCommand()
|
||||
{
|
||||
client = NadekoBot.client;
|
||||
client = NadekoBot.Client;
|
||||
}
|
||||
/// <summary>
|
||||
/// Function containing the behaviour of the command.
|
||||
|
@ -42,7 +42,7 @@ namespace NadekoBot {
|
||||
await Task.Run(async () => {
|
||||
var comToFind = e.GetArg("command");
|
||||
|
||||
var com = NadekoBot.client.GetService<CommandService>().AllCommands
|
||||
var com = NadekoBot.Client.GetService<CommandService>().AllCommands
|
||||
.Where(c => c.Text.ToLower().Equals(comToFind))
|
||||
.FirstOrDefault();
|
||||
if (com != null)
|
||||
|
@ -78,7 +78,7 @@ namespace NadekoBot.Commands {
|
||||
await e.Channel.SendFile("champ.png", champ.ImageStream);
|
||||
return;
|
||||
}
|
||||
var allData = JArray.Parse(await Classes.SearchHelper.GetResponseAsync($"http://api.champion.gg/champion/{name}?api_key={NadekoBot.creds.LOLAPIKey}"));
|
||||
var allData = JArray.Parse(await Classes.SearchHelper.GetResponseAsync($"http://api.champion.gg/champion/{name}?api_key={NadekoBot.Creds.LOLAPIKey}"));
|
||||
JToken data = null;
|
||||
if (role != null) {
|
||||
for (int i = 0; i < allData.Count; i++) {
|
||||
@ -114,7 +114,7 @@ namespace NadekoBot.Commands {
|
||||
if (roles[i] == role)
|
||||
roles[i] = ">" + roles[i] + "<";
|
||||
}
|
||||
var general = JArray.Parse(await Classes.SearchHelper.GetResponseAsync($"http://api.champion.gg/stats/champs/{name}?api_key={NadekoBot.creds.LOLAPIKey}"))
|
||||
var general = JArray.Parse(await Classes.SearchHelper.GetResponseAsync($"http://api.champion.gg/stats/champs/{name}?api_key={NadekoBot.Creds.LOLAPIKey}"))
|
||||
.Where(jt => jt["role"].ToString() == role)
|
||||
.FirstOrDefault()?["general"];
|
||||
if (general == null) {
|
||||
@ -253,7 +253,7 @@ Assists: {general["assists"]} Ban: {general["banRate"]}%
|
||||
var data = JObject.Parse(
|
||||
await Classes
|
||||
.SearchHelper
|
||||
.GetResponseAsync($"http://api.champion.gg/stats/champs/mostBanned?api_key={NadekoBot.creds.LOLAPIKey}&page=1&limit={showCount}"))["data"] as JArray;
|
||||
.GetResponseAsync($"http://api.champion.gg/stats/champs/mostBanned?api_key={NadekoBot.Creds.LOLAPIKey}&page=1&limit={showCount}"))["data"] as JArray;
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.AppendLine($"**Showing {showCount} top banned champions.**");
|
||||
|
@ -9,10 +9,10 @@ namespace NadekoBot.Commands {
|
||||
class LogCommand : DiscordCommand {
|
||||
|
||||
public LogCommand() : base() {
|
||||
NadekoBot.client.MessageReceived += MsgRecivd;
|
||||
NadekoBot.client.MessageDeleted += MsgDltd;
|
||||
NadekoBot.client.MessageUpdated += MsgUpdtd;
|
||||
NadekoBot.client.UserUpdated += UsrUpdtd;
|
||||
NadekoBot.Client.MessageReceived += MsgRecivd;
|
||||
NadekoBot.Client.MessageDeleted += MsgDltd;
|
||||
NadekoBot.Client.MessageUpdated += MsgUpdtd;
|
||||
NadekoBot.Client.UserUpdated += UsrUpdtd;
|
||||
}
|
||||
|
||||
ConcurrentDictionary<Server, Channel> logs = new ConcurrentDictionary<Server, Channel>();
|
||||
@ -36,7 +36,7 @@ namespace NadekoBot.Commands {
|
||||
|
||||
private async void MsgRecivd(object sender, MessageEventArgs e) {
|
||||
try {
|
||||
if (e.Server == null || e.Channel.IsPrivate || e.User.Id == NadekoBot.client.CurrentUser.Id)
|
||||
if (e.Server == null || e.Channel.IsPrivate || e.User.Id == NadekoBot.Client.CurrentUser.Id)
|
||||
return;
|
||||
Channel ch;
|
||||
if (!logs.TryGetValue(e.Server, out ch) || e.Channel == ch)
|
||||
@ -47,7 +47,7 @@ namespace NadekoBot.Commands {
|
||||
}
|
||||
private async void MsgDltd(object sender, MessageEventArgs e) {
|
||||
try {
|
||||
if (e.Server == null || e.Channel.IsPrivate || e.User.Id == NadekoBot.client.CurrentUser.Id)
|
||||
if (e.Server == null || e.Channel.IsPrivate || e.User.Id == NadekoBot.Client.CurrentUser.Id)
|
||||
return;
|
||||
Channel ch;
|
||||
if (!logs.TryGetValue(e.Server, out ch) || e.Channel == ch)
|
||||
@ -58,7 +58,7 @@ namespace NadekoBot.Commands {
|
||||
}
|
||||
private async void MsgUpdtd(object sender, MessageUpdatedEventArgs e) {
|
||||
try {
|
||||
if (e.Server == null || e.Channel.IsPrivate || e.User.Id == NadekoBot.client.CurrentUser.Id)
|
||||
if (e.Server == null || e.Channel.IsPrivate || e.User.Id == NadekoBot.Client.CurrentUser.Id)
|
||||
return;
|
||||
Channel ch;
|
||||
if (!logs.TryGetValue(e.Server, out ch) || e.Channel == ch)
|
||||
|
@ -13,8 +13,8 @@ namespace NadekoBot.Commands {
|
||||
private static Timer timer = new Timer(12000);
|
||||
|
||||
private Dictionary<string, Func<string>> playingPlaceholders => new Dictionary<string, Func<string>> {
|
||||
{"%servers%", ()=> NadekoBot.client.Servers.Count().ToString() },
|
||||
{"%users%", () => NadekoBot.client.Servers.SelectMany(s=>s.Users).Count().ToString() },
|
||||
{"%servers%", ()=> NadekoBot.Client.Servers.Count().ToString() },
|
||||
{"%users%", () => NadekoBot.Client.Servers.SelectMany(s=>s.Users).Count().ToString() },
|
||||
{"%playing%", () => {
|
||||
var cnt = Modules.Music.musicPlayers.Where(kvp => kvp.Value.CurrentSong != null).Count();
|
||||
if(cnt == 1) {
|
||||
@ -51,7 +51,7 @@ namespace NadekoBot.Commands {
|
||||
}
|
||||
if (string.IsNullOrWhiteSpace(status))
|
||||
return;
|
||||
Task.Run(() => { try { NadekoBot.client.SetGame(status); } catch { } });
|
||||
Task.Run(() => { try { NadekoBot.Client.SetGame(status); } catch { } });
|
||||
}
|
||||
catch { }
|
||||
};
|
||||
|
@ -66,7 +66,7 @@ namespace NadekoBot.Modules {
|
||||
|
||||
private async Task StartPoll() {
|
||||
started = DateTime.Now;
|
||||
NadekoBot.client.MessageReceived += Vote;
|
||||
NadekoBot.Client.MessageReceived += Vote;
|
||||
var msgToSend =
|
||||
$"📃**{e.User.Name}** from **{e.Server.Name}** server has created a poll which requires your attention:\n\n" +
|
||||
$"**{question}**\n";
|
||||
@ -79,7 +79,7 @@ namespace NadekoBot.Modules {
|
||||
}
|
||||
|
||||
public async Task StopPoll(Channel ch) {
|
||||
NadekoBot.client.MessageReceived -= Vote;
|
||||
NadekoBot.Client.MessageReceived -= Vote;
|
||||
Poll throwaway;
|
||||
PollCommand.ActivePolls.TryRemove(e.Server, out throwaway);
|
||||
try {
|
||||
|
@ -73,7 +73,7 @@ namespace NadekoBot.Commands {
|
||||
.Description("Deletes a request. Only owner is able to do this.")
|
||||
.Parameter("reqNumber", ParameterType.Required)
|
||||
.Do(async e => {
|
||||
if (e.User.Id == NadekoBot.OwnerID) {
|
||||
if (e.User.Id == NadekoBot.OwnerId) {
|
||||
try {
|
||||
if (DeleteRequest(int.Parse(e.Args[0]))) {
|
||||
await e.Channel.SendMessage(e.User.Mention + " Request deleted.");
|
||||
@ -90,7 +90,7 @@ namespace NadekoBot.Commands {
|
||||
.Description("Resolves a request. Only owner is able to do this.")
|
||||
.Parameter("reqNumber", ParameterType.Required)
|
||||
.Do(async e => {
|
||||
if (e.User.Id == NadekoBot.OwnerID) {
|
||||
if (e.User.Id == NadekoBot.OwnerId) {
|
||||
try {
|
||||
var sc = ResolveRequest(int.Parse(e.Args[0]));
|
||||
if (sc != null) {
|
||||
|
@ -30,8 +30,8 @@ namespace NadekoBot.Commands {
|
||||
public ServerGreetCommand() : base() {
|
||||
AnnouncementsDictionary = new ConcurrentDictionary<ulong, AnnounceControls>();
|
||||
|
||||
NadekoBot.client.UserJoined += UserJoined;
|
||||
NadekoBot.client.UserLeft += UserLeft;
|
||||
NadekoBot.Client.UserJoined += UserJoined;
|
||||
NadekoBot.Client.UserLeft += UserLeft;
|
||||
|
||||
List<Classes._DataModels.Announcement> data = Classes.DBHandler.Instance.GetAllRows<Classes._DataModels.Announcement>();
|
||||
|
||||
@ -46,7 +46,7 @@ namespace NadekoBot.Commands {
|
||||
!AnnouncementsDictionary[e.Server.Id].Bye) return;
|
||||
|
||||
var controls = AnnouncementsDictionary[e.Server.Id];
|
||||
var channel = NadekoBot.client.GetChannel(controls.ByeChannel);
|
||||
var channel = NadekoBot.Client.GetChannel(controls.ByeChannel);
|
||||
var msg = controls.ByeText.Replace("%user%", "**" + e.User.Name + "**").Trim();
|
||||
if (string.IsNullOrEmpty(msg))
|
||||
return;
|
||||
@ -73,7 +73,7 @@ namespace NadekoBot.Commands {
|
||||
!AnnouncementsDictionary[e.Server.Id].Greet) return;
|
||||
|
||||
var controls = AnnouncementsDictionary[e.Server.Id];
|
||||
var channel = NadekoBot.client.GetChannel(controls.GreetChannel);
|
||||
var channel = NadekoBot.Client.GetChannel(controls.GreetChannel);
|
||||
|
||||
var msg = controls.GreetText.Replace("%user%", e.User.Mention).Trim();
|
||||
if (string.IsNullOrEmpty(msg))
|
||||
|
@ -39,7 +39,7 @@ namespace NadekoBot.Commands {
|
||||
|
||||
internal async Task<bool> Stop() {
|
||||
if (!IsActive) return false;
|
||||
NadekoBot.client.MessageReceived -= AnswerReceived;
|
||||
NadekoBot.Client.MessageReceived -= AnswerReceived;
|
||||
finishedUserIds.Clear();
|
||||
IsActive = false;
|
||||
sw.Stop();
|
||||
@ -78,7 +78,7 @@ namespace NadekoBot.Commands {
|
||||
}
|
||||
|
||||
private void HandleAnswers() {
|
||||
NadekoBot.client.MessageReceived += AnswerReceived;
|
||||
NadekoBot.Client.MessageReceived += AnswerReceived;
|
||||
}
|
||||
|
||||
private async void AnswerReceived(object sender, MessageEventArgs e) {
|
||||
|
@ -436,7 +436,7 @@ namespace NadekoBot.Modules {
|
||||
.Description("Clears some of Nadeko's (or some other user's if supplied) messages from the current channel.\n**Usage**: .clr @X")
|
||||
.Parameter("user", ParameterType.Unparsed)
|
||||
.Do(async e => {
|
||||
var usrId = NadekoBot.client.CurrentUser.Id;
|
||||
var usrId = NadekoBot.Client.CurrentUser.Id;
|
||||
if (!string.IsNullOrWhiteSpace(e.GetArg("user")) && e.User.ServerPermissions.ManageMessages) {
|
||||
var usr = e.Server.FindUsers(e.GetArg("user")).FirstOrDefault();
|
||||
if (usr != null)
|
||||
@ -608,7 +608,7 @@ namespace NadekoBot.Modules {
|
||||
.Description("Clears the message queue. **OWNER ONLY**")
|
||||
.AddCheck(Classes.Permissions.SimpleCheckers.OwnerOnly())
|
||||
.Do(e => {
|
||||
NadekoBot.client.MessageQueue.Clear();
|
||||
NadekoBot.Client.MessageQueue.Clear();
|
||||
});
|
||||
|
||||
cgb.CreateCommand(".donators")
|
||||
|
@ -352,7 +352,7 @@ namespace NadekoBot.Modules {
|
||||
.Do(async e => {
|
||||
string str = "Bye";
|
||||
foreach (var u in e.Message.MentionedUsers) {
|
||||
if (u.Id != NadekoBot.client.CurrentUser.Id)
|
||||
if (u.Id != NadekoBot.Client.CurrentUser.Id)
|
||||
str += " " + u.Mention;
|
||||
}
|
||||
await e.Channel.SendMessage(str);
|
||||
|
@ -22,7 +22,7 @@ namespace NadekoBot.Modules {
|
||||
.Alias("-modules")
|
||||
.Description("List all bot modules.")
|
||||
.Do(async e => {
|
||||
await e.Channel.SendMessage("`List of modules:` \n• " + string.Join("\n• ", NadekoBot.client.GetService<ModuleService>().Modules.Select(m => m.Name)));
|
||||
await e.Channel.SendMessage("`List of modules:` \n• " + string.Join("\n• ", NadekoBot.Client.GetService<ModuleService>().Modules.Select(m => m.Name)));
|
||||
});
|
||||
|
||||
cgb.CreateCommand(".commands")
|
||||
@ -30,7 +30,7 @@ namespace NadekoBot.Modules {
|
||||
.Description("List all of the bot's commands from a certain module.")
|
||||
.Parameter("module", ParameterType.Unparsed)
|
||||
.Do(async e => {
|
||||
var commands = NadekoBot.client.GetService<CommandService>().AllCommands
|
||||
var commands = NadekoBot.Client.GetService<CommandService>().AllCommands
|
||||
.Where(c => c.Category.ToLower() == e.GetArg("module").Trim().ToLower());
|
||||
if (commands == null || commands.Count() == 0) {
|
||||
await e.Channel.SendMessage("That module does not exist.");
|
||||
|
@ -28,7 +28,7 @@ namespace NadekoBot.Modules {
|
||||
setgameTimer.Elapsed += (s, e) => {
|
||||
try {
|
||||
int num = musicPlayers.Where(kvp => kvp.Value.CurrentSong != null).Count();
|
||||
NadekoBot.client.SetGame($"{num} songs".SnPl(num) + $", {musicPlayers.Sum(kvp => kvp.Value.Playlist.Count())} queued");
|
||||
NadekoBot.Client.SetGame($"{num} songs".SnPl(num) + $", {musicPlayers.Sum(kvp => kvp.Value.Playlist.Count())} queued");
|
||||
}
|
||||
catch { }
|
||||
};
|
||||
@ -36,7 +36,7 @@ namespace NadekoBot.Modules {
|
||||
}
|
||||
|
||||
public override void Install(ModuleManager manager) {
|
||||
var client = NadekoBot.client;
|
||||
var client = NadekoBot.Client;
|
||||
|
||||
manager.CreateCommands("!m", cgb => {
|
||||
|
||||
|
@ -15,7 +15,7 @@ namespace NadekoBot.Modules {
|
||||
}
|
||||
|
||||
public override void Install(ModuleManager manager) {
|
||||
var client = NadekoBot.client;
|
||||
var client = NadekoBot.Client;
|
||||
manager.CreateCommands("", cgb => {
|
||||
|
||||
cgb.AddCheck(Classes.Permissions.PermissionChecker.Instance);
|
||||
@ -349,7 +349,7 @@ namespace NadekoBot.Modules {
|
||||
try {
|
||||
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
|
||||
|
||||
foreach (var module in NadekoBot.client.GetService<ModuleService>().Modules) {
|
||||
foreach (var module in NadekoBot.Client.GetService<ModuleService>().Modules) {
|
||||
PermsHandler.SetServerModulePermission(e.Server, module.Name, state);
|
||||
}
|
||||
await e.Channel.SendMessage($"All modules have been **{(state ? "enabled" : "disabled")}** on this server.");
|
||||
@ -371,7 +371,7 @@ namespace NadekoBot.Modules {
|
||||
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
|
||||
string module = PermissionHelper.ValidateModule(e.GetArg("module"));
|
||||
|
||||
foreach (var command in NadekoBot.client.GetService<CommandService>().AllCommands.Where(c => c.Category == module)) {
|
||||
foreach (var command in NadekoBot.Client.GetService<CommandService>().AllCommands.Where(c => c.Category == module)) {
|
||||
PermsHandler.SetServerCommandPermission(e.Server, command.Text, state);
|
||||
}
|
||||
await e.Channel.SendMessage($"All commands from the **{module}** module have been **{(state ? "enabled" : "disabled")}** on this server.");
|
||||
@ -392,7 +392,7 @@ namespace NadekoBot.Modules {
|
||||
try {
|
||||
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
|
||||
Discord.Channel channel = PermissionHelper.ValidateChannel(e.Server, e.GetArg("channel"));
|
||||
foreach (var module in NadekoBot.client.GetService<ModuleService>().Modules) {
|
||||
foreach (var module in NadekoBot.Client.GetService<ModuleService>().Modules) {
|
||||
PermsHandler.SetChannelModulePermission(channel, module.Name, state);
|
||||
}
|
||||
|
||||
@ -416,7 +416,7 @@ namespace NadekoBot.Modules {
|
||||
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
|
||||
string module = PermissionHelper.ValidateModule(e.GetArg("module"));
|
||||
Discord.Channel channel = PermissionHelper.ValidateChannel(e.Server, e.GetArg("channel"));
|
||||
foreach (var command in NadekoBot.client.GetService<CommandService>().AllCommands.Where(c => c.Category == module)) {
|
||||
foreach (var command in NadekoBot.Client.GetService<CommandService>().AllCommands.Where(c => c.Category == module)) {
|
||||
PermsHandler.SetChannelCommandPermission(channel, command.Text, state);
|
||||
}
|
||||
await e.Channel.SendMessage($"All commands from the **{module}** module have been **{(state ? "enabled" : "disabled")}** for **{channel.Name}** channel.");
|
||||
@ -437,7 +437,7 @@ namespace NadekoBot.Modules {
|
||||
try {
|
||||
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
|
||||
Discord.Role role = PermissionHelper.ValidateRole(e.Server, e.GetArg("role"));
|
||||
foreach (var module in NadekoBot.client.GetService<ModuleService>().Modules) {
|
||||
foreach (var module in NadekoBot.Client.GetService<ModuleService>().Modules) {
|
||||
PermsHandler.SetRoleModulePermission(role, module.Name, state);
|
||||
}
|
||||
|
||||
@ -461,7 +461,7 @@ namespace NadekoBot.Modules {
|
||||
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
|
||||
string module = PermissionHelper.ValidateModule(e.GetArg("module"));
|
||||
Discord.Role role = PermissionHelper.ValidateRole(e.Server, e.GetArg("channel"));
|
||||
foreach (var command in NadekoBot.client.GetService<CommandService>().AllCommands.Where(c => c.Category == module)) {
|
||||
foreach (var command in NadekoBot.Client.GetService<CommandService>().AllCommands.Where(c => c.Category == module)) {
|
||||
PermsHandler.SetRoleCommandPermission(role, command.Text, state);
|
||||
}
|
||||
await e.Channel.SendMessage($"All commands from the **{module}** module have been **{(state ? "enabled" : "disabled")}** for **{role.Name}** role.");
|
||||
|
@ -18,7 +18,7 @@ namespace NadekoBot.Modules {
|
||||
}
|
||||
|
||||
public override void Install(ModuleManager manager) {
|
||||
var client = NadekoBot.client;
|
||||
var client = NadekoBot.Client;
|
||||
|
||||
manager.CreateCommands("", cgb => {
|
||||
|
||||
|
@ -65,7 +65,7 @@ namespace NadekoBot.Modules {
|
||||
.Description("Joins a server")
|
||||
.Parameter("code", Discord.Commands.ParameterType.Required)
|
||||
.Do(async e => {
|
||||
if (e.User.Id != NadekoBot.OwnerID) return;
|
||||
if (e.User.Id != NadekoBot.OwnerId) return;
|
||||
try {
|
||||
await (await client.GetInvite(e.GetArg("code"))).Accept();
|
||||
} catch (Exception ex) {
|
||||
@ -77,7 +77,7 @@ namespace NadekoBot.Modules {
|
||||
.Description("Bind a trello bot to a single channel. You will receive notifications from your board when something is added or edited.")
|
||||
.Parameter("board_id", Discord.Commands.ParameterType.Required)
|
||||
.Do(async e => {
|
||||
if (e.User.Id != NadekoBot.OwnerID) return;
|
||||
if (e.User.Id != NadekoBot.OwnerId) return;
|
||||
if (bound != null) return;
|
||||
try {
|
||||
bound = e.Channel;
|
||||
@ -93,7 +93,7 @@ namespace NadekoBot.Modules {
|
||||
cgb.CreateCommand("unbind")
|
||||
.Description("Unbinds a bot from the channel and board.")
|
||||
.Do(async e => {
|
||||
if (e.User.Id != NadekoBot.OwnerID) return;
|
||||
if (e.User.Id != NadekoBot.OwnerId) return;
|
||||
if (bound == null || bound != e.Channel) return;
|
||||
t.Stop();
|
||||
bound = null;
|
||||
@ -106,7 +106,7 @@ namespace NadekoBot.Modules {
|
||||
.Alias("list")
|
||||
.Description("Lists all lists yo ;)")
|
||||
.Do(async e => {
|
||||
if (e.User.Id != NadekoBot.OwnerID) return;
|
||||
if (e.User.Id != NadekoBot.OwnerId) return;
|
||||
if (bound == null || board == null || bound != e.Channel) return;
|
||||
await e.Channel.SendMessage("Lists for a board '" + board.Name + "'\n" + string.Join("\n", board.Lists.Select(l => "**• " + l.ToString() + "**")));
|
||||
});
|
||||
@ -115,7 +115,7 @@ namespace NadekoBot.Modules {
|
||||
.Description("Lists all cards from the supplied list. You can supply either a name or an index.")
|
||||
.Parameter("list_name", Discord.Commands.ParameterType.Unparsed)
|
||||
.Do(async e => {
|
||||
if (e.User.Id != NadekoBot.OwnerID) return;
|
||||
if (e.User.Id != NadekoBot.OwnerId) return;
|
||||
if (bound == null || board == null || bound != e.Channel || e.GetArg("list_name") == null) return;
|
||||
|
||||
int num;
|
||||
|
@ -9,53 +9,49 @@ using Discord.Audio;
|
||||
using NadekoBot.Extensions;
|
||||
using System.Timers;
|
||||
using System.Linq;
|
||||
using NadekoBot.Classes;
|
||||
|
||||
namespace NadekoBot {
|
||||
class NadekoBot {
|
||||
public static DiscordClient client;
|
||||
public class NadekoBot {
|
||||
public static DiscordClient Client;
|
||||
public static string botMention;
|
||||
public static string GoogleAPIKey = null;
|
||||
public static ulong OwnerID;
|
||||
public static Channel OwnerPrivateChannel = null;
|
||||
public static string password;
|
||||
public static string TrelloAppKey;
|
||||
public static bool ForwardMessages = false;
|
||||
public static Credentials creds;
|
||||
public static Credentials Creds { get; set; }
|
||||
|
||||
static void Main() {
|
||||
//load credentials from credentials.json
|
||||
bool loadTrello = false;
|
||||
try {
|
||||
creds = JsonConvert.DeserializeObject<Credentials>(File.ReadAllText("credentials.json"));
|
||||
botMention = creds.BotMention;
|
||||
if (string.IsNullOrWhiteSpace(creds.GoogleAPIKey)) {
|
||||
Creds = JsonConvert.DeserializeObject<Credentials>(File.ReadAllText("credentials.json"));
|
||||
botMention = Creds.BotMention;
|
||||
if (string.IsNullOrWhiteSpace(Creds.GoogleAPIKey)) {
|
||||
Console.WriteLine("No google api key found. You will not be able to use music and links won't be shortened.");
|
||||
}
|
||||
else {
|
||||
Console.WriteLine("Google API key provided.");
|
||||
GoogleAPIKey = creds.GoogleAPIKey;
|
||||
GoogleAPIKey = Creds.GoogleAPIKey;
|
||||
}
|
||||
if (string.IsNullOrWhiteSpace(creds.TrelloAppKey)) {
|
||||
if (string.IsNullOrWhiteSpace(Creds.TrelloAppKey)) {
|
||||
Console.WriteLine("No trello appkey found. You will not be able to use trello commands.");
|
||||
}
|
||||
else {
|
||||
Console.WriteLine("Trello app key provided.");
|
||||
TrelloAppKey = creds.TrelloAppKey;
|
||||
TrelloAppKey = Creds.TrelloAppKey;
|
||||
loadTrello = true;
|
||||
}
|
||||
if (creds.ForwardMessages != true)
|
||||
if (Creds.ForwardMessages != true)
|
||||
Console.WriteLine("Not forwarding messages.");
|
||||
else {
|
||||
ForwardMessages = true;
|
||||
Console.WriteLine("Forwarding messages.");
|
||||
}
|
||||
if (string.IsNullOrWhiteSpace(creds.SoundCloudClientID))
|
||||
if (string.IsNullOrWhiteSpace(Creds.SoundCloudClientID))
|
||||
Console.WriteLine("No soundcloud Client ID found. Soundcloud streaming is disabled.");
|
||||
else
|
||||
Console.WriteLine("SoundCloud streaming enabled.");
|
||||
|
||||
OwnerID = creds.OwnerID;
|
||||
password = creds.Password;
|
||||
}
|
||||
catch (Exception ex) {
|
||||
Console.WriteLine($"Failed to load stuff from credentials.json, RTFM\n{ex.Message}");
|
||||
@ -64,7 +60,7 @@ namespace NadekoBot {
|
||||
}
|
||||
|
||||
//create new discord client
|
||||
client = new DiscordClient(new DiscordConfigBuilder() {
|
||||
Client = new DiscordClient(new DiscordConfigBuilder() {
|
||||
MessageCacheSize = 20,
|
||||
LogLevel = LogSeverity.Warning,
|
||||
LogHandler = (s, e) => {
|
||||
@ -93,16 +89,16 @@ namespace NadekoBot {
|
||||
});
|
||||
|
||||
//reply to personal messages and forward if enabled.
|
||||
client.MessageReceived += Client_MessageReceived;
|
||||
Client.MessageReceived += Client_MessageReceived;
|
||||
|
||||
//add command service
|
||||
var commands = client.AddService<CommandService>(commandService);
|
||||
var commands = Client.AddService<CommandService>(commandService);
|
||||
|
||||
//create module service
|
||||
var modules = client.AddService<ModuleService>(new ModuleService());
|
||||
var modules = Client.AddService<ModuleService>(new ModuleService());
|
||||
|
||||
//add audio service
|
||||
var audio = client.AddService<AudioService>(new AudioService(new AudioServiceConfigBuilder() {
|
||||
var audio = Client.AddService<AudioService>(new AudioService(new AudioServiceConfigBuilder() {
|
||||
Channels = 2,
|
||||
EnableEncryption = false,
|
||||
EnableMultiserver = true,
|
||||
@ -123,9 +119,9 @@ namespace NadekoBot {
|
||||
modules.Add(new NSFW(), "NSFW", ModuleFilter.None);
|
||||
|
||||
//run the bot
|
||||
client.ExecuteAndWait(async () => {
|
||||
Client.ExecuteAndWait(async () => {
|
||||
try {
|
||||
await client.Connect(creds.Username, creds.Password);
|
||||
await Client.Connect(Creds.Username, Creds.Password);
|
||||
}
|
||||
catch (Exception ex) {
|
||||
Console.WriteLine($"Probably wrong EMAIL or PASSWORD.\n{ex.Message}");
|
||||
@ -139,7 +135,7 @@ namespace NadekoBot {
|
||||
Console.WriteLine("-----------------");
|
||||
|
||||
try {
|
||||
OwnerPrivateChannel = await client.CreatePrivateChannel(OwnerID);
|
||||
OwnerPrivateChannel = await Client.CreatePrivateChannel(OwnerId);
|
||||
}
|
||||
catch {
|
||||
Console.WriteLine("Failed creating private channel with the owner");
|
||||
@ -147,7 +143,7 @@ namespace NadekoBot {
|
||||
|
||||
Classes.Permissions.PermissionsHandler.Initialize();
|
||||
|
||||
client.ClientAPI.SendingRequest += (s, e) => {
|
||||
Client.ClientAPI.SendingRequest += (s, e) => {
|
||||
|
||||
try {
|
||||
var request = e.Request as Discord.API.Client.Rest.SendMessageRequest;
|
||||
@ -182,7 +178,7 @@ namespace NadekoBot {
|
||||
static bool repliedRecently = false;
|
||||
private static async void Client_MessageReceived(object sender, MessageEventArgs e) {
|
||||
try {
|
||||
if (e.Server != null || e.User.Id == client.CurrentUser.Id) return;
|
||||
if (e.Server != null || e.User.Id == Client.CurrentUser.Id) return;
|
||||
if (PollCommand.ActivePolls.SelectMany(kvp => kvp.Key.Users.Select(u => u.Id)).Contains(e.User.Id)) return;
|
||||
// just ban this trash AutoModerator
|
||||
// and cancer christmass spirit
|
||||
@ -192,9 +188,9 @@ namespace NadekoBot {
|
||||
e.User.Id == 143515953525817344)
|
||||
return; // FU
|
||||
|
||||
if (!NadekoBot.creds.DontJoinServers) {
|
||||
if (!NadekoBot.Creds.DontJoinServers) {
|
||||
try {
|
||||
await (await client.GetInvite(e.Message.Text)).Accept();
|
||||
await (await Client.GetInvite(e.Message.Text)).Accept();
|
||||
await e.Channel.SendMessage("I got in!");
|
||||
return;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user