diff --git a/CMD_LevelingSystem/Level.cs b/CMD_LevelingSystem/Level.cs index 22f30e3..e11fd3f 100644 --- a/CMD_LevelingSystem/Level.cs +++ b/CMD_LevelingSystem/Level.cs @@ -23,6 +23,12 @@ internal class Level : DBCommand public async void Execute(SocketCommandContext context, SocketMessage message, DiscordSocketClient client, bool isDM) { + if (!File.Exists(Config.GetValue("LevelingSystemPath") + $"/{message.Author.Id}.dat")) + { + await context.Channel.SendMessageAsync("You are now unranked !"); + return; + } + var user = await Functions.ConvertFromJson(Config.GetValue("LevelingSystemPath") + $"/{message.Author.Id}.dat"); if (user == null) { diff --git a/CMD_LevelingSystem/User.cs b/CMD_LevelingSystem/User.cs index 1b0736a..bf26b87 100644 --- a/CMD_LevelingSystem/User.cs +++ b/CMD_LevelingSystem/User.cs @@ -1,9 +1,18 @@ -namespace CMD_LevelingSystem; +using Discord.WebSocket; + +namespace CMD_LevelingSystem; + +public class DiscordUser +{ + public string Username { get; set; } + public ushort DiscordTag { get; set; } + public ulong userID { get; set; } +} public class User { - public string userID { get; set; } - public int CurrentLevel { get; set; } - public long CurrentEXP { get; set; } - public long RequiredEXPToLevelUp { get; set; } + public DiscordUser user { get; set; } + public int CurrentLevel { get; set; } + public long CurrentEXP { get; set; } + public long RequiredEXPToLevelUp { get; set; } } diff --git a/DiscordBot/Program.cs b/DiscordBot/Program.cs index 909558e..1414f89 100644 --- a/DiscordBot/Program.cs +++ b/DiscordBot/Program.cs @@ -23,7 +23,6 @@ namespace DiscordBot public static void Main(string[] args) { Directory.CreateDirectory("./Data/Resources"); - Directory.CreateDirectory("./Data/Languages"); Directory.CreateDirectory("./Data/Plugins/Commands"); Directory.CreateDirectory("./Data/Plugins/Events"); PreLoadComponents(); diff --git a/EVE_LevelingSystem/Level.cs b/EVE_LevelingSystem/Level.cs index 202ae2a..f4a9c6b 100644 --- a/EVE_LevelingSystem/Level.cs +++ b/EVE_LevelingSystem/Level.cs @@ -1,4 +1,5 @@ -using Discord.WebSocket; +using Discord; +using Discord.WebSocket; using EVE_LevelingSystem.LevelingSystemCore; using PluginManager; using PluginManager.Interfaces; @@ -45,9 +46,9 @@ namespace EVE_LevelingSystem return; } - user = new User() { CurrentEXP = 0, CurrentLevel = 1, RequiredEXPToLevelUp = LevelCalculator.GetNextLevelRequiredEXP(1), userID = userID }; + user = new User { CurrentEXP = 0, CurrentLevel = 1, RequiredEXPToLevelUp = LevelCalculator.GetNextLevelRequiredEXP(1), user = new DiscordUser { DiscordTag = arg.Author.DiscriminatorValue, userID = arg.Author.Id, Username = arg.Author.Username } }; if (user.AddEXP()) await arg.Channel.SendMessageAsync($"{arg.Author.Mention} is now level {user.CurrentLevel}"); - await Functions.SaveToJsonFile($"{Config.GetValue("LevelingSystemPath")}/{userID}.dat", user); + await Functions.SaveToJsonFile($"{Config.GetValue("LevelingSystemPath")}/{userID}.dat", user); } } } diff --git a/EVE_LevelingSystem/LevelingSystemCore/LevelCalculator.cs b/EVE_LevelingSystem/LevelingSystemCore/LevelCalculator.cs index 62c6d1c..733adac 100644 --- a/EVE_LevelingSystem/LevelingSystemCore/LevelCalculator.cs +++ b/EVE_LevelingSystem/LevelingSystemCore/LevelCalculator.cs @@ -25,7 +25,7 @@ namespace EVE_LevelingSystem.LevelingSystemCore internal static bool AddEXP(this User user) { - if (OnWaitingList.Contains(user.userID)) return false; + if (OnWaitingList.Contains(user.user.userID.ToString())) return false; Random r = new Random(); int exp = r.Next(2, 12); Int64 userXP = user.CurrentEXP; @@ -40,14 +40,14 @@ namespace EVE_LevelingSystem.LevelingSystemCore user.CurrentEXP += exp; - OnWaitingList.Add(user.userID); + OnWaitingList.Add(user.user.userID.ToString()); new Thread(() => { int minutesToWait = Level.globalSettings.TimeToWaitBetweenMessages; Thread.Sleep(60000 * minutesToWait); - OnWaitingList.Remove(user.userID); + OnWaitingList.Remove(user.user.userID.ToString()); } ); diff --git a/EVE_LevelingSystem/LevelingSystemCore/User.cs b/EVE_LevelingSystem/LevelingSystemCore/User.cs index 3a11227..b857392 100644 --- a/EVE_LevelingSystem/LevelingSystemCore/User.cs +++ b/EVE_LevelingSystem/LevelingSystemCore/User.cs @@ -1,9 +1,20 @@ -namespace EVE_LevelingSystem.LevelingSystemCore; +using Discord; +using Discord.WebSocket; -public class User +namespace EVE_LevelingSystem.LevelingSystemCore { - public string userID { get; set; } - public int CurrentLevel { get; set; } - public long CurrentEXP { get; set; } - public long RequiredEXPToLevelUp { get; set; } -} + public class DiscordUser + { + public string Username { get; set; } + public ushort DiscordTag { get; set; } + public ulong userID { get; set; } + } + + public class User + { + public DiscordUser user { get; set; } + public int CurrentLevel { get; set; } + public long CurrentEXP { get; set; } + public long RequiredEXPToLevelUp { get; set; } + } +} \ No newline at end of file diff --git a/PluginManager/Config.cs b/PluginManager/Config.cs index 981e791..04193ed 100644 --- a/PluginManager/Config.cs +++ b/PluginManager/Config.cs @@ -61,6 +61,7 @@ namespace PluginManager } public static async Task LoadConfig() + { string path = Functions.dataFolder + "var.dat"; if (File.Exists(path)) diff --git a/PluginManager/Others/Functions.cs b/PluginManager/Others/Functions.cs index 93e85d9..0857eb1 100644 --- a/PluginManager/Others/Functions.cs +++ b/PluginManager/Others/Functions.cs @@ -239,8 +239,7 @@ namespace PluginManager.Others /// public static async Task SaveToJsonFile(string file, T Data) { - string jsonText = JsonSerializer.Serialize(Data, typeof(T), new JsonSerializerOptions { WriteIndented = true }); - await File.WriteAllTextAsync(file, jsonText); + using (var s = File.OpenWrite(file)) await JsonSerializer.SerializeAsync(s, Data, typeof(T), new JsonSerializerOptions { WriteIndented = true }); } ///