diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index b460ceb2..640c40f5 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -31,7 +31,8 @@ namespace ReallifeGamemode.Server.Commands { public class AdminCommands : Script { - #region Test + + #region Todo [Command("eat", "~m~Benutzung: ~s~/eat [Item]")] public void CmdAdminEat(Client player, string item) { @@ -124,6 +125,54 @@ namespace ReallifeGamemode.Server.Commands ChatService.SendMessage(player, msg); } + #endregion + #region Mapping / Entwicklung + + [Command("team", "~m~Benutzung: ~s~/team")] + public void CmdAdminTeam(Client player) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.MAPPING) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + ChatService.SendMessage(player, "Online Teammitglieder:"); + + List playerlist = NAPI.Pools.GetAllPlayers().FindAll(c => c.GetUser()?.IsAdmin(AdminLevel.MAPPING) ?? false).OrderByDescending(c => c.GetUser().AdminLevel).ToList(); + foreach (Client currentPlayer in playerlist) + { + ChatService.SendMessage(player, currentPlayer.GetUser().AdminLevel.GetName() + " | " + currentPlayer.Name + " | ID: " + currentPlayer.Handle.Value); + } + } + + [Command("tc", "~m~Benutzung: ~s~/tc [Nachricht]", GreedyArg = true)] + public void CmdTeamC(Client player, string message) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.MAPPING) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + message = Regex.Replace(message, "(~[a-zA-Z]~)|(!{(.*)})", ""); + + ChatService.BroadcastAdmin("!{#578A83}** TC " + player.Name + ":~w~ " + message, AdminLevel.MAPPING); + } + + [Command("position", "~m~Benutzung: ~s~/position")] + public void CmdAdminPosition(Client player) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + ChatService.SendMessage(player, "Position: X Y Z: " + player.Position + " Richtung: " + player.Heading); + } + + #endregion #region Support @@ -169,24 +218,6 @@ namespace ReallifeGamemode.Server.Commands ChatService.Broadcast(publicMessage); } - [Command("team", "~m~Benutzung: ~s~/team")] - public void CmdAdminTeam(Client player) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.MAPPING) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - ChatService.SendMessage(player, "Online Teammitglieder:"); - - List playerlist = NAPI.Pools.GetAllPlayers().FindAll(c => c.GetUser()?.IsAdmin(AdminLevel.MAPPING) ?? false).OrderByDescending(c => c.GetUser().AdminLevel).ToList(); - foreach (Client currentPlayer in playerlist) - { - ChatService.SendMessage(player, currentPlayer.GetUser().AdminLevel.GetName() + " | " + currentPlayer.Name + " | ID: " + currentPlayer.Handle.Value); - } - } - [Command("dimension", "~m~Benutzung: ~s~/dimension")] public void CmdAdminDimension(Client player) { @@ -224,18 +255,6 @@ namespace ReallifeGamemode.Server.Commands ChatService.SendMessage(player, "~c~* Du hast dich teleportiert."); } - [Command("position", "~m~Benutzung: ~s~/position")] - public void CmdAdminPosition(Client player) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - ChatService.SendMessage(player, "Position: X Y Z: " + player.Position + " Richtung: " + player.Heading); - } - [Command("gh", "~m~Benutzung: ~s~/gh [Name]")] public void CmdAdminGethere(Client player, string name) { @@ -262,7 +281,7 @@ namespace ReallifeGamemode.Server.Commands ChatService.SendMessage(target, "~c~* Du wurdest teleportiert."); } - [Command("aw", "~m~Benutzung: ~s~/aw [Spieler] [Nachricht]", GreedyArg = true)] + [Command("pm", "~m~Benutzung: ~s~/pm [Spieler] [Nachricht]", GreedyArg = true)] public void CmdAdminMsg(Client player, string name, string msg) { if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true) @@ -291,8 +310,8 @@ namespace ReallifeGamemode.Server.Commands ChatService.SendMessage(target, Message); } - [Command("factionlist", "~m~Benutzung: ~s~/factionlist")] - public void CmdAdminFactionlist(Client player) + [Command("skick", "~m~Benutzung: ~s~/skick [Player] [Grund]", GreedyArg = true)] + public void CmdAdminSKick(Client player, string targetname, string reason) { if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true) { @@ -300,18 +319,24 @@ namespace ReallifeGamemode.Server.Commands return; } - using (var dbContext = new DatabaseContext()) + Client target = ClientService.GetClientByNameOrId(targetname); + if (target == null || !target.IsLoggedIn()) { - ChatService.SendMessage(player, "~m~__________ ~s~Fraktionen ~m~__________"); - foreach (Faction f in dbContext.Factions) - { - ChatService.SendMessage(player, f.Id.ToString().PadRight(3) + " | " + f.Name); - } + ChatService.PlayerNotFound(player); + return; } + + string targetPlayername = NAPI.Player.GetPlayerName(target); + string adminPlayername = NAPI.Player.GetPlayerName(player); + + ChatService.SendMessage(target, "~r~KICKINFO: ~w~Du wurdest von " + adminPlayername + " vom Server gekickt: " + reason); + target.Kick(); + + ChatService.BroadcastAdmin("~y~SKICK: ~w~" + targetPlayername + " wurde von " + player.GetUser().AdminLevel.GetName() + " " + adminPlayername + " gekickt: " + reason, AdminLevel.MAPPING); } - [Command("businesslist", "~m~Benutzung: ~s~/businesslist")] - public void CmdAdminBusinessList(Client player) + [Command("clearchat", "~m~Benutzung: ~s~/clearchat")] + public void CmdAdminClearchat(Client player) { if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true) { @@ -319,42 +344,12 @@ namespace ReallifeGamemode.Server.Commands return; } - ChatService.SendMessage(player, "~m~__________ ~s~Businesses ~m~__________"); - foreach (BusinessBase b in BusinessManager.Businesses.OrderBy(b => b.Id)) + for (int i = 0; i < 20; i++) { - ChatService.SendMessage(player, b.Id.ToString().PadRight(3) + " | " + b.Name + (b is CarDealerBusinessBase ? " | Autohaus" : "")); + ChatService.Broadcast(""); } } - [Command("tc", "~m~Benutzung: ~s~/tc [Nachricht]", GreedyArg = true)] - public void CmdTeamC(Client player, string message) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.MAPPING) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - message = Regex.Replace(message, "(~[a-zA-Z]~)|(!{(.*)})", ""); - - ChatService.BroadcastAdmin("!{#578A83}** TC " + player.Name + ":~w~ " + message, AdminLevel.MAPPING); - } - - [Command("joblist", "~m~Benutzung: ~s~/joblist")] - public void CmdAdminJoblist(Client player) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - ChatService.SendMessage(player, "~m~__________ ~s~Jobs ~m~__________"); - foreach (JobBase job in JobManager.GetJobs()) - { - ChatService.SendMessage(player, job.Id.ToString().PadRight(3) + " | " + job.Name); - } - } #endregion #region ALevel1 @@ -386,22 +381,6 @@ namespace ReallifeGamemode.Server.Commands NAPI.ClientEvent.TriggerClientEventForAll("countdown", timer, text); } - [Command("aunjail", "~m~Benutzung: ~s~/aunjail [Spieler]", GreedyArg = true)] - public void CmdAdminAunjai(Client player, string targetname) - { - Client target = ClientService.GetClientByNameOrId(targetname); - if (target == null) - return; - - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - Jail.Release_Jail_Admin(player, target); - } - [Command("a", "~m~Benutzung: ~s~/a [Nachricht]", GreedyArg = true)] public void CmdAdminA(Client player, string message) { @@ -509,21 +488,6 @@ namespace ReallifeGamemode.Server.Commands else player.Position = player.GetData("mark"); } - [Command("clearchat", "~m~Benutzung: ~s~/clearchat")] - public void CmdAdminClearchat(Client player) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - for (int i = 0; i < 20; i++) - { - ChatService.Broadcast(""); - } - } - [Command("up", "~m~Benutzung: ~s~/up [Wert]")] public void CmdAdminUp(Client player, int value = 5) { @@ -912,6 +876,58 @@ namespace ReallifeGamemode.Server.Commands v.Position = player.Position; player.Position = player.Position.Add(new Vector3(0, 0, 2)); } + + [Command("factionlist", "~m~Benutzung: ~s~/factionlist")] + public void CmdAdminFactionlist(Client player) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + using (var dbContext = new DatabaseContext()) + { + ChatService.SendMessage(player, "~m~__________ ~s~Fraktionen ~m~__________"); + foreach (Faction f in dbContext.Factions) + { + ChatService.SendMessage(player, f.Id.ToString().PadRight(3) + " | " + f.Name); + } + } + } + + [Command("businesslist", "~m~Benutzung: ~s~/businesslist")] + public void CmdAdminBusinessList(Client player) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + ChatService.SendMessage(player, "~m~__________ ~s~Businesses ~m~__________"); + foreach (BusinessBase b in BusinessManager.Businesses.OrderBy(b => b.Id)) + { + ChatService.SendMessage(player, b.Id.ToString().PadRight(3) + " | " + b.Name + (b is CarDealerBusinessBase ? " | Autohaus" : "")); + } + } + + [Command("joblist", "~m~Benutzung: ~s~/joblist")] + public void CmdAdminJoblist(Client player) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + ChatService.SendMessage(player, "~m~__________ ~s~Jobs ~m~__________"); + foreach (JobBase job in JobManager.GetJobs()) + { + ChatService.SendMessage(player, job.Id.ToString().PadRight(3) + " | " + job.Name); + } + } + #endregion #region ALevel2 [Command("sethp", "~m~Benutzung: ~s~/sethp [Spieler] (Hp)")] @@ -1014,10 +1030,77 @@ namespace ReallifeGamemode.Server.Commands if (player.IsInVehicle && player.VehicleSeat == -1) player.Vehicle.Position = new Vector3(x, y, z); else player.Position = new Vector3(x, y, z); } + + [Command("aunjail", "~m~Benutzung: ~s~/aunjail [Spieler]", GreedyArg = true)] + public void CmdAdminAunjai(Client player, string targetname) + { + Client target = ClientService.GetClientByNameOrId(targetname); + if (target == null) + return; + + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN2) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + Jail.Release_Jail_Admin(player, target); + } + + [Command("arevive", "~m~Benutzung: ~s~/arevive [Spieler]")] + public void CmdAdminRevive(Client player, string name) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN2) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + Client target = ClientService.GetClientByNameOrId(name); + if (target == null || !target.IsLoggedIn()) + { + ChatService.PlayerNotFound(player); + return; + } + if (target.Health != 0) + { + ChatService.ErrorMessage(player, "Der Spieler ist nicht tot"); + return; + } + target.TriggerEvent("onPlayerRevived"); + target.SendNotification("Du wurdest von Admin ~y~" + player.Name + "~s~ wiederbelebt."); + target.SetData("isDead", false); + NAPI.Player.SpawnPlayer(target, target.Position); + target.Health = 100; + + MedicTask task = Medic.ReviveTasks.FirstOrDefault(t => t.Victim == target.Name); + Medic.RemoveTaskFromList(task); + } + + [Command("setarmor", "~m~Benutzung: ~s~/setarmor [Spieler] (Armor)")] + public void CmdAdminSetArmor(Client player, string name, int armor = 100) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN2) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + Client target = ClientService.GetClientByNameOrId(name); + if (target == null || !target.IsLoggedIn()) + { + ChatService.PlayerNotFound(player); + return; + } + + target.Armor = armor; + ChatService.SendMessage(target, "~b~Deine Rüstung wurde von " + player.Name + " auf " + armor + " gesetzt."); + ChatService.SendMessage(player, "~b~Du hast die Rüstung von " + target.Name + " auf " + armor + " gesetzt."); + } + #endregion #region ALevel3 - [Command("adice", "~m~Benutzung: ~s~/adice [Zahl]")] public void CmdUserAdice(Client player, int number) { @@ -1209,8 +1292,8 @@ namespace ReallifeGamemode.Server.Commands ChatService.SendMessage(player, "~b~Du hast " + target.Name + " eine/n " + hash + " mit einer Munition von " + ammo + " gegeben."); } - [Command("arevive", "~m~Benutzung: ~s~/arevive [Spieler]")] - public void CmdAdminRevive(Client player, string name) + [Command("vmod", "~m~Benutzung: ~s~/vmod [Slot] [Mod ID]")] + public void CmdAdminVmod(Client player, int slot, int mod) { if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN3) ?? true) { @@ -1218,29 +1301,17 @@ namespace ReallifeGamemode.Server.Commands return; } - Client target = ClientService.GetClientByNameOrId(name); - if (target == null || !target.IsLoggedIn()) + if (!player.IsInVehicle) { - ChatService.PlayerNotFound(player); + ChatService.ErrorMessage(player, "Du sitzt momentan nicht in einem Fahrzeug"); return; } - if (target.Health != 0) - { - ChatService.ErrorMessage(player, "Der Spieler ist nicht tot"); - return; - } - target.TriggerEvent("onPlayerRevived"); - target.SendNotification("Du wurdest von Admin ~y~" + player.Name + "~s~ wiederbelebt."); - target.SetData("isDead", false); - NAPI.Player.SpawnPlayer(target, target.Position); - target.Health = 100; - MedicTask task = Medic.ReviveTasks.FirstOrDefault(t => t.Victim == target.Name); - Medic.RemoveTaskFromList(task); + player.Vehicle.SetMod(slot, mod); } - [Command("setarmor", "~m~Benutzung: ~s~/setarmor [Spieler] (Armor)")] - public void CmdAdminSetArmor(Client player, string name, int armor = 100) + [Command("aneon", "~m~Benutzung: ~s~/aneon [R][G][B]")] + public void CmdAdminNeon(Client player, int r, int g, int b) { if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN3) ?? true) { @@ -1248,20 +1319,182 @@ namespace ReallifeGamemode.Server.Commands return; } - Client target = ClientService.GetClientByNameOrId(name); - if (target == null || !target.IsLoggedIn()) + if (!player.IsInVehicle) { - ChatService.PlayerNotFound(player); + ChatService.ErrorMessage(player, "Du sitzt momentan nicht in einem Fahrzeug"); return; } - target.Armor = armor; - ChatService.SendMessage(target, "~b~Deine Rüstung wurde von " + player.Name + " auf " + armor + " gesetzt."); - ChatService.SendMessage(player, "~b~Du hast die Rüstung von " + target.Name + " auf " + armor + " gesetzt."); + Vehicle veh = NAPI.Player.GetPlayerVehicle(player); + NAPI.Vehicle.SetVehicleNeonColor(veh, r, g, b); + NAPI.Vehicle.SetVehicleNeonState(veh, true); } + + [Command("vehsmoke", "~m~Benutzung: ~s~/vehsmoke [R][G][B]")] + public void CmdAdminVehSmoke(Client player, int r, int g, int b) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN3) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + if (!player.IsInVehicle) + { + ChatService.ErrorMessage(player, "Du sitzt momentan nicht in einem Fahrzeug"); + return; + } + + Vehicle veh = NAPI.Player.GetPlayerVehicle(player); + NAPI.Vehicle.SetVehicleTyreSmokeColor(veh, new Color(r, g, b)); + } + + [Command("rsethp", "~m~Benutzung: ~s~/rsethp [Radius] (Leben)")] + public void CmdAdminRangeSetHP(Client player, float radius, int hp = 100) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN3) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + var peopleInRange = NAPI.Player.GetPlayersInRadiusOfPlayer(radius, player); + + foreach (var managedClient in peopleInRange) + { + if (!managedClient.IsLoggedIn()) return; + managedClient.Health = hp; + ChatService.SendMessage(managedClient, "~b~Admin " + player.Name + " hat im Radius von " + radius + " die HP auf " + hp + " gesetzt."); + } + ChatService.SendMessage(player, "~b~Das Leben von " + peopleInRange.Count + " Spielern wurde auf " + hp + " gesetzt."); + } + + [Command("rsetarmor", "~m~Benutzung: ~s~/rsetarmor [Radius] (Armor)")] + public void CmdAdminRangeSetArmor(Client player, float radius, int Armor = 100) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN3) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + var peopleInRange = NAPI.Player.GetPlayersInRadiusOfPlayer(radius, player); + + foreach (var managedClient in peopleInRange) + { + if (!managedClient.IsLoggedIn()) return; + managedClient.Armor = Armor; + ChatService.SendMessage(managedClient, "~b~Admin " + player.Name + " hat im Radius von " + radius + " die Rüstung auf " + Armor + " gesetzt."); + } + ChatService.SendMessage(player, "~b~Die Rüstung von " + peopleInRange.Count + " Spielern wurde auf " + Armor + " gesetzt."); + } + + [Command("rgiveweapon", "~m~Benutzung: ~s~/rgiveweapon [Radius] [Waffe] [Munition]")] + public void CmdAdminRangeGiveWeapon(Client player, float radius, string weapon, int munition) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN3) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + weapon = weapon.ToLower(); + + if (!uint.TryParse(weapon, out uint uHash)) + { + if (weapon.Contains("mk2") && !weapon.Contains("_mk2")) weapon = weapon.Replace("mk2", "_mk2"); + uHash = NAPI.Util.GetHashKey($"weapon_{weapon}"); + } + + if (!WeaponManager.IsValidHash(uHash)) + { + ChatService.ErrorMessage(player, "Diese Waffe existiert nicht"); + return; + } + + WeaponHash weaponHash = (WeaponHash)uHash; + + var peopleInRange = NAPI.Player.GetPlayersInRadiusOfPlayer(radius, player); + + foreach (var managedClient in peopleInRange) + { + if (!managedClient.IsLoggedIn()) return; + managedClient.GiveWeapon(weaponHash, munition); + ChatService.SendMessage(managedClient, "~b~Admin " + player.Name + " hat im Radius von " + radius + " eine/n " + weapon + " mit " + munition + " Munition vergeben."); + } + ChatService.SendMessage(player, "~b~Du hast " + peopleInRange.Count + " Spielern eine " + weapon + " mit " + munition + " Munition gegeben"); + } + + [Command("settime", "~m~Benutzung: ~s~/settime [Stunde] (Minuten) (Sekunden)")] + public void CmdAdminSetTime(Client player, int hour, int min = 0, int sec = 0) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN3) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + if (hour > 23 || min > 59 || sec > 59) + { + ChatService.ErrorMessage(player, "Es wurde eine ungültige Zeit eingegeben"); + return; + } + + if (hour == -1) + { + ChatService.SendMessage(player, "Es wird nun wieder die Echtzeit genutzt."); + TimeManager.StartTimeManager(); + return; + } + string broadcastMsg = $"Serverzeit wurde auf ~g~{hour:D2}:{min:D2}:{sec:D2} ~s~gesetzt!"; + NAPI.Notification.SendNotificationToAll(broadcastMsg); + TimeManager.PauseTimeManager(); + NAPI.World.SetTime(hour, min, sec); + return; + + } + + [Command("setweather", "~m~Benutzung: ~s~/setweather [Wetter]")] + public void CmdAdminSetweather(Client player, string weather) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN3) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + bool found = false; + foreach (string w in Enum.GetNames(typeof(Weather))) + { + if (w.ToLower() == weather) + { + found = true; + break; + } + } + + if (!found) + { + ChatService.ErrorMessage(player, "Dieses Wetter existiert nicht"); + return; + } + + Weather weatherBefore = NAPI.World.GetWeather(); + NAPI.World.SetWeather(weather); + Weather weatherAfter = NAPI.World.GetWeather(); + + if (!weatherBefore.Equals(weatherAfter)) + { + ChatService.SendMessage(player, "~w~Wetter geändert: " + NAPI.World.GetWeather()); + NAPI.Notification.SendNotificationToAll("Das Wetter wurde von ~g~" + player.Name + " ~s~auf ~g~" + NAPI.World.GetWeather() + "~s~ geändert.", true); + } + else + { + ChatService.SendMessage(player, "~w~Das Wetter konnte nicht geändert werden"); + } + } + #endregion #region ALevel1337 - [Command("gotocp", "~m~Benutzung: ~s~/sethandmoney [Name/ID] [Menge]")] + [Command("gotocp", "~m~Benutzung: ~s~/gotocp")] public void CmdAdminGotocp(Client admin) { admin.TriggerEvent("getCP"); @@ -1443,63 +1676,6 @@ namespace ReallifeGamemode.Server.Commands NAPI.Data.SetWorldData("blipTemplate", newTempBlip); } - [Command("vmod", "~m~Benutzung: ~s~/vmod [Slot] [Mod ID]")] - public void CmdAdminVmod(Client player, int slot, int mod) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - if (!player.IsInVehicle) - { - ChatService.ErrorMessage(player, "Du sitzt momentan nicht in einem Fahrzeug"); - return; - } - - player.Vehicle.SetMod(slot, mod); - } - - [Command("aneon", "~m~Benutzung: ~s~/aneon [R][G][B]")] - public void CmdAdminNeon(Client player, int r, int g, int b) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - if (!player.IsInVehicle) - { - ChatService.ErrorMessage(player, "Du sitzt momentan nicht in einem Fahrzeug"); - return; - } - - Vehicle veh = NAPI.Player.GetPlayerVehicle(player); - NAPI.Vehicle.SetVehicleNeonColor(veh, r, g, b); - NAPI.Vehicle.SetVehicleNeonState(veh, true); - } - - [Command("vehsmoke", "~m~Benutzung: ~s~/vehsmoke [R][G][B]")] - public void CmdAdminVehSmoke(Client player, int r, int g, int b) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - if (!player.IsInVehicle) - { - ChatService.ErrorMessage(player, "Du sitzt momentan nicht in einem Fahrzeug"); - return; - } - - Vehicle veh = NAPI.Player.GetPlayerVehicle(player); - NAPI.Vehicle.SetVehicleTyreSmokeColor(veh, new Color(r, g, b)); - } - [Command("ipl", "~m~Benutzung: ~s~/ipl [Load / Remove] [Name]")] public void CmdAdminIpl(Client player, string option, string name) { @@ -1527,25 +1703,6 @@ namespace ReallifeGamemode.Server.Commands } } - [Command("rsethp", "~m~Benutzung: ~s~/rsethp [Radius] (Leben)")] - public void CmdAdminRangeSetHP(Client player, float radius, int hp = 100) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - var peopleInRange = NAPI.Player.GetPlayersInRadiusOfPlayer(radius, player); - - foreach (var managedClient in peopleInRange) - { - if (!managedClient.IsLoggedIn()) return; - managedClient.Health = hp; - ChatService.SendMessage(managedClient, "~b~Admin " + player.Name + " hat im Radius von " + radius + " die HP auf " + hp + " gesetzt."); - } - ChatService.SendMessage(player, "~b~Das Leben von " + peopleInRange.Count + " Spielern wurde auf " + hp + " gesetzt."); - } - [Command("freekh", "~m~Benutzung: ~s~/freekh (Radius)")] public void CmdAdminFreekh(Client player, float radius = -1) { @@ -1581,90 +1738,6 @@ namespace ReallifeGamemode.Server.Commands ChatService.SendMessage(player, "~b~Du hast " + playerRevided + " Spieler wiederbelebt."); } - [Command("rsetarmor", "~m~Benutzung: ~s~/rsetarmor [Radius] (Armor)")] - public void CmdAdminRangeSetArmor(Client player, float radius, int Armor = 100) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - var peopleInRange = NAPI.Player.GetPlayersInRadiusOfPlayer(radius, player); - - foreach (var managedClient in peopleInRange) - { - if (!managedClient.IsLoggedIn()) return; - managedClient.Armor = Armor; - ChatService.SendMessage(managedClient, "~b~Admin " + player.Name + " hat im Radius von " + radius + " die Rüstung auf " + Armor + " gesetzt."); - } - ChatService.SendMessage(player, "~b~Die Rüstung von " + peopleInRange.Count + " Spielern wurde auf " + Armor + " gesetzt."); - } - - [Command("rgiveweapon", "~m~Benutzung: ~s~/rgiveweapon [Radius] [Waffe] [Munition]")] - public void CmdAdminRangeGiveWeapon(Client player, float radius, string weapon, int munition) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - weapon = weapon.ToLower(); - - if (!uint.TryParse(weapon, out uint uHash)) - { - if (weapon.Contains("mk2") && !weapon.Contains("_mk2")) weapon = weapon.Replace("mk2", "_mk2"); - uHash = NAPI.Util.GetHashKey($"weapon_{weapon}"); - } - - if (!WeaponManager.IsValidHash(uHash)) - { - ChatService.ErrorMessage(player, "Diese Waffe existiert nicht"); - return; - } - - WeaponHash weaponHash = (WeaponHash)uHash; - - var peopleInRange = NAPI.Player.GetPlayersInRadiusOfPlayer(radius, player); - - foreach (var managedClient in peopleInRange) - { - if (!managedClient.IsLoggedIn()) return; - managedClient.GiveWeapon(weaponHash, munition); - ChatService.SendMessage(managedClient, "~b~Admin " + player.Name + " hat im Radius von " + radius + " eine/n " + weapon + " mit " + munition + " Munition vergeben."); - } - ChatService.SendMessage(player, "~b~Du hast " + peopleInRange.Count + " Spielern eine " + weapon + " mit " + munition + " Munition gegeben"); - } - - [Command("time", "~m~Benutzung: ~s~/time [Stunde] (Minuten) (Sekunden)")] - public void CmdAdminTime(Client player, int hour, int min = 0, int sec = 0) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - if (hour > 23 || min > 59 || sec > 59) - { - ChatService.ErrorMessage(player, "Es wurde eine ungültige Zeit eingegeben"); - return; - } - - if (hour == -1) - { - ChatService.SendMessage(player, "Es wird nun wieder die Echtzeit genutzt."); - TimeManager.StartTimeManager(); - return; - } - string broadcastMsg = $"Serverzeit wurde auf ~g~{hour:D2}:{min:D2}:{sec:D2} ~s~gesetzt!"; - NAPI.Notification.SendNotificationToAll(broadcastMsg); - TimeManager.PauseTimeManager(); - NAPI.World.SetTime(hour, min, sec); - return; - - } - [Command("ainvite", "~m~Benutzung: ~s~/ainvite [Name] [Fraktion]")] public void CmdAdminAinvite(Client player, string name, int faction) { @@ -2332,46 +2405,6 @@ namespace ReallifeGamemode.Server.Commands } } - [Command("setweather", "~m~Benutzung: ~s~/setweather [Wetter]")] - public void CmdAdminSetweather(Client player, string weather) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - bool found = false; - foreach (string w in Enum.GetNames(typeof(Weather))) - { - if (w.ToLower() == weather) - { - found = true; - break; - } - } - - if (!found) - { - ChatService.ErrorMessage(player, "Dieses Wetter existiert nicht"); - return; - } - - Weather weatherBefore = NAPI.World.GetWeather(); - NAPI.World.SetWeather(weather); - Weather weatherAfter = NAPI.World.GetWeather(); - - if (!weatherBefore.Equals(weatherAfter)) - { - ChatService.SendMessage(player, "~w~Wetter geändert: " + NAPI.World.GetWeather()); - NAPI.Notification.SendNotificationToAll("Das Wetter wurde von ~g~" + player.Name + " ~s~auf ~g~" + NAPI.World.GetWeather() + "~s~ geändert.", true); - } - else - { - ChatService.SendMessage(player, "~w~Das Wetter konnte nicht geändert werden"); - } - } - [Command("aspeed", "~m~Benutzung: ~s~/aspeed [Modifier]")] //TODO: Überarbeiten ?? SetPlayerVelocity ?? public void CmdAdminAspeed(Client player, int modifier) { @@ -3066,6 +3099,7 @@ namespace ReallifeGamemode.Server.Commands Gangwar.Gangwar.loadTurfs(); Gangwar.Gangwar.loadTurfs_ToAllClients(); } + [Command("deleteturf", "~m~Benutzung:~s~ /DeleteTurfs")] public void CmdAdmDeleteTurf(Client player) { @@ -3076,6 +3110,7 @@ namespace ReallifeGamemode.Server.Commands } player.TriggerEvent("ADMIN:DeleteTurf"); } + [Command("setturfpoint", "~m~Benutzung:~s~ /setturfpoint")] public void CmdAdmSetTurfPoint(Client player) { @@ -3153,10 +3188,12 @@ namespace ReallifeGamemode.Server.Commands if (mode == 1) { target.TriggerEvent("toggleBlackScreen", true); + ChatService.BroadcastAdmin("~b~[ADMIN]~s~ " + player.Name + " hat " + target.Name + " einen Blackscreen gesetzt. ", AdminLevel.ADMIN); } else if (mode == 0) { target.TriggerEvent("toggleBlackScreen", false); + ChatService.BroadcastAdmin("~b~[ADMIN]~s~ " + player.Name + " hat " + target.Name + " den Blackscreen entfernt. ", AdminLevel.ADMIN); } }