diff --git a/vMenu/CommonFunctions.cs b/vMenu/CommonFunctions.cs index a4873ddb..94f05713 100644 --- a/vMenu/CommonFunctions.cs +++ b/vMenu/CommonFunctions.cs @@ -386,20 +386,20 @@ public async void BanPlayer(Player player, bool forever) { if (forever) { - TriggerServerEvent("vMenu.PermBanPlayer", player.ServerId, banReason); + TriggerServerEvent("vMenu:PermBanPlayer", player.ServerId, banReason); } else { string banDurationHours = await GetUserInput("Ban Duration (in hours) Max: 720 (1 month)", "1.5", 10); if (double.TryParse(banDurationHours, out double banHours)) { - TriggerServerEvent("vMenu.TempBanPlayer", player.ServerId, banHours, banReason); + TriggerServerEvent("vMenu:TempBanPlayer", player.ServerId, banHours, banReason); } else { if (int.TryParse(banDurationHours, out int banHoursInt)) { - TriggerServerEvent("vMenu.TempBanPlayer", player.ServerId, (double)banHoursInt, banReason); + TriggerServerEvent("vMenu:TempBanPlayer", player.ServerId, (double)banHoursInt, banReason); } else { diff --git a/vMenu/EventManager.cs b/vMenu/EventManager.cs index 138a09d4..8eb43d73 100644 --- a/vMenu/EventManager.cs +++ b/vMenu/EventManager.cs @@ -38,21 +38,43 @@ public EventManager() EventHandlers.Add("vMenu:SetupAddonPeds", new Action(SetAddonModels)); EventHandlers.Add("vMenu:SetupAddonCars", new Action(SetAddonModels)); EventHandlers.Add("vMenu:SetupAddonWeapons", new Action(SetAddonModels)); + EventHandlers.Add("vMenu:GoodBye", new Action(GoodBye)); Tick += WeatherSync; Tick += TimeSync; } + /// + /// Used for cheating idiots. + /// + private void GoodBye() + { + ForceSocialClubUpdate(); + } + + /// + /// Triggers a settings update. + /// + /// private void UpdateSettings(dynamic options) { MainMenu.SetOptions(options); } + /// + /// Triggers a permissions update. + /// + /// private void UpdatePermissions(dynamic permissions) { MainMenu.SetPermissions(permissions); } + /// + /// Triggers a addons list update. + /// + /// + /// private void SetAddonModels(string addonType, dynamic addons) { Dictionary models = new Dictionary(); diff --git a/vMenuServer/BanManager.cs b/vMenuServer/BanManager.cs index d3b12f1b..f6d2a7e0 100644 --- a/vMenuServer/BanManager.cs +++ b/vMenuServer/BanManager.cs @@ -26,15 +26,15 @@ struct BanRecord /// /// List of ban records. /// - private List BannedPlayersList = new List(); + private static List BannedPlayersList = new List(); /// /// Constructor. /// public BanManager() { - EventHandlers.Add("vMenu.TempBanPlayer", new Action(BanPlayer)); - EventHandlers.Add("vMenu.PermBanPlayer", new Action(BanPlayer)); + EventHandlers.Add("vMenu:TempBanPlayer", new Action(BanPlayer)); + EventHandlers.Add("vMenu:PermBanPlayer", new Action(BanPlayer)); EventHandlers.Add("playerConnecting", new Action(CheckForBans)); BannedPlayersList = GetBanList(); } @@ -43,7 +43,7 @@ public BanManager() /// Gets the ban list from the bans.json file. /// /// - private List GetBanList() + private static List GetBanList() { var banList = new List(); string bansJson = LoadResourceFile(GetCurrentResourceName(), "bans.json"); @@ -265,7 +265,7 @@ private string GetRemainingTimeMessage(TimeSpan remainingTime) /// /// /// - private bool AddBan(BanRecord ban) + private static bool AddBan(BanRecord ban) { BannedPlayersList = GetBanList(); var found = false; @@ -327,17 +327,18 @@ private bool RemoveBan(BanRecord record) /// Someone trying to trigger fake server events? Well, goodbye idiots. /// /// - public void BanCheater(Player source) + public static void BanCheater(Player source) { AddBan(new BanRecord() { bannedBy = "Yourself, idiot.", bannedUntil = new DateTime(3000, 1, 1), - banReason = "You know exactly what you did wrong, you're a fucking idiot, but nobody needs to tell you that.", + banReason = "You know exactly what you did wrong, you're a fucking idiot, but nobody needs to tell you that. Enjoy this: https://youtu.be/dQw4w9WgXcQ", identifiers = source.Identifiers.ToList(), playerName = source.Name }); - source.Drop("Enjoy, idiot."); + //source.Drop("Enjoy, idiot."); + source.TriggerEvent("vMenu:GoodBye"); // this is much more fun than just kicking them. } } } diff --git a/vMenuServer/MainServer.cs b/vMenuServer/MainServer.cs index 6d34254c..683d85c2 100644 --- a/vMenuServer/MainServer.cs +++ b/vMenuServer/MainServer.cs @@ -454,9 +454,13 @@ private void KickPlayer([FromSource] Player source, int target, string kickReaso TriggerClientEvent(player: source, eventName: "vMenu:KickCallback", args: "Sorry, this player can ~r~not ~w~be kicked."); return; } - // If this happens, the person who thinks they're funny knows exactly what this is for. - TriggerClientEvent(player: source, eventName: "vMenu:KickCallback", args: "Have a nice day :)"); - // todo: Make sure they enjoy their day. + else + { + BanManager.BanCheater(new PlayerList()[target]); + } + //// If this happens, the person who thinks they're funny knows exactly what this is for. + //TriggerClientEvent(player: source, eventName: "vMenu:KickCallback", args: "Have a nice day :)"); + //// todo: Make sure they enjoy their day. } /// @@ -473,7 +477,10 @@ private void KillPlayer([FromSource] Player source, int target) TriggerClientEvent(player: targetPlayer, eventName: "vMenu:KillMe"); return; } - // todo: enjoy. + else + { + BanManager.BanCheater(new PlayerList()[target]); + } } /// @@ -490,7 +497,10 @@ private void SummonPlayer([FromSource] Player source, int target) TriggerClientEvent(player: targetPlayer, eventName: "vMenu:GoToPlayer", args: source.Handle); return; } - // todo: enjoy. + else + { + BanManager.BanCheater(new PlayerList()[target]); + } } #endregion