From c137c99b58005f446f4b594b2f196a27f27dcef6 Mon Sep 17 00:00:00 2001 From: xSprite Date: Sun, 28 Oct 2018 04:26:10 +0100 Subject: [PATCH] New structure admin.cs, small changes some commands --- Server/Commands/Admin.cs | 1658 +++++++++++++++++++------------------- 1 file changed, 816 insertions(+), 842 deletions(-) diff --git a/Server/Commands/Admin.cs b/Server/Commands/Admin.cs index 678851c9..126100a2 100644 --- a/Server/Commands/Admin.cs +++ b/Server/Commands/Admin.cs @@ -39,14 +39,599 @@ namespace reallife_gamemode.Server.Commands string publicMessage = "~b~(( " + player.GetUser().AdminLevel.GetName() + " " + player.Name + ": " + message + " ))"; NAPI.Chat.SendChatMessageToAll(publicMessage); } + [Command("team", "~m~Benutzung: ~s~/team")] + public void CmdAdminTeam(Client player) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + player.SendChatMessage("Online Teammitglieder:"); + + List playerlist = NAPI.Pools.GetAllPlayers(); + foreach (Client currentPlayer in playerlist) + { + if (currentPlayer.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? false) + { + player.SendChatMessage(currentPlayer.Name); + } + } + } + [Command("dimension")] + public void CmdAdminDimension(Client player) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + player.SendChatMessage("Deine Dimension ist ~g~" + player.Dimension); + } + [Command("to", "~m~Benutzung: ~s~/to [Name]")] + public void CmdAdminGoto(Client player, string name) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + Client target = ClientService.GetClientByName(name); + + if (target == null || !target.IsLoggedIn()) + { + ChatService.PlayerNotFound(player); + return; + } + //TODO: Als Supporter nur, wenn mit dem Ziel ein offenes Ticket besteht. Ansonsten kein Teleport + if (player.IsInVehicle && player.VehicleSeat == -1) player.Vehicle.Position = target.Position; + else player.Position = target.Position; + } + [Command("position")] + public void CmdAdminShowPos(Client player) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + player.SendChatMessage("Position: X Y Z: " + player.Position); + } + [Command("gh", "~m~Benutzung: ~s~/gh [Name]")] + public void CmdAdminGethere(Client player, string name) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + Client target = ClientService.GetClientByName(name); + + if (target == null || !target.IsLoggedIn()) + { + ChatService.PlayerNotFound(player); + return; + } + //TODO: Als Supporter nur, wenn mit dem Ziel ein offenes Ticket besteht. Ansonsten kein Teleport + if (target.IsInVehicle && target.VehicleSeat == -1) target.Vehicle.Position = player.Position; + else target.Position = player.Position; + target.SendChatMessage("Du wurdest von " + player.Name + " teleportiert."); + } + [Command("aw", "~m~Benutzung: ~s~/aw [Spieler] [Nachricht]", GreedyArg = true)] + public void CmdAdminMsg(Client player, string name, string msg) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + Client target = ClientService.GetClientByName(name); + if (target == null || !target.IsLoggedIn()) + { + ChatService.PlayerNotFound(player); + return; + } + + /* if (target == player) //TODO: wieder reintun, musste testen + { + ChatService.ErrorMsg(player); + return; + }*/ + player.SendChatMessage("~y~PM an " + target.Name + ": " + msg + " "); + string Message = "~b~(( " + player.GetUser().AdminLevel.GetName() + " " + player.Name + ": " + msg + " ))"; + NAPI.Chat.SendChatMessageToPlayer(target, Message); + } + [Command("factionlist", "~m~Benutzung: ~s~/factionlist")] + public void CmdAdminFactionlist(Client player) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + using (var dbContext = new DatabaseContext()) + { + player.SendChatMessage("~m~__________ ~s~Fraktionen ~m~__________"); + foreach (Entities.Faction f in dbContext.Factions) + { + player.SendChatMessage(f.Id.ToString().PadRight(3) + " | " + f.Name); + } + } + } #endregion #region ALevel1 + [Command("a", "~m~Benutzung: ~s~/a [Nachricht]", GreedyArg = true)] + public void CmdAdminA(Client player, string message) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + ChatService.BroadcastAdmin("~r~[ADMINCHAT]: " + player.GetUser().AdminLevel.GetName() + " " + player.Name + "~w~: " + message, AdminLevel.ADMIN); + } + [Command("freeze", "~m~Benutzung: ~s~/freeze [Spieler]")] + public void CmdAdminFreeze(Client player, string targetname) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + Client target = ClientService.GetClientByName(targetname); + if (target == null || !target.IsLoggedIn()) + { + ChatService.PlayerNotFound(player); + return; + } + player.SendChatMessage("Du hast ~y~" + target.Name + " ~s~gefreezed."); + target.SendChatMessage("Du wurdest von ~y~" + player.Name + "~s~ gefreezed."); + target.Freeze(true); + } + [Command("unfreeze", "~m~Benutzung: ~s~/unfreeze [Spieler]")] + public void CmdAdminUnfreeze(Client player, string targetname) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + Client target = ClientService.GetClientByName(targetname); + if (target == null || !target.IsLoggedIn()) + { + ChatService.PlayerNotFound(player); + return; + } + player.SendChatMessage("Du hast ~y~" + target.Name + " ~s~unfreezed."); + target.SendChatMessage("Du wurdest von ~y~" + player.Name + "~s~ unfreezed."); + target.Freeze(false); + } + [Command("gotolist")] //TODO Als Browser anzeigeN?? + public void CmdAdminGotoList(Client player) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + var gotoString = ""; + foreach (GotoPoint point in LoadManager.GotoPointList) + { + if (point.Active) + { + gotoString += point.Description + ", "; + } + } + player.SendChatMessage(gotoString); + } + [Command("mark")] + public void CmdAdminMark(Client player) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + player.SetData("mark", player.Position); + player.SendNotification("~y~Mark ~s~gespeichert", true); + } + [Command("gotomark")] + public void CmdAdminGotoMark(Client player) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + if (!player.HasData("mark")) + { + player.SendChatMessage("~r~[FEHLER]~s~ Du hast noch keine Markierung gesetzt. ~m~(/mark)"); + return; + } + + if (player.IsInVehicle && player.VehicleSeat == -1) player.Vehicle.Position = player.GetData("mark"); + 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++) + { + NAPI.Chat.SendChatMessageToAll(""); + } + } + + [Command("up", "~m~Benutzung: ~s~/up [Wert]")] + public void CmdAdminUp(Client player, int value = 5) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + if (player.IsInVehicle) + { + player.Vehicle.Position = new Vector3(player.Vehicle.Position.X, player.Vehicle.Position.Y, player.Vehicle.Position.Z + value); + } + else + { + player.Position = new Vector3(player.Position.X, player.Position.Y, player.Position.Z + value); + } + } + + [Command("dn", "~m~Benutzung: ~s~/dn [Wert]")] + public void CmdAdminDn(Client player, int value = 5) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + if (player.IsInVehicle) + { + player.Vehicle.Position = new Vector3(player.Vehicle.Position.X, player.Vehicle.Position.Y, player.Vehicle.Position.Z - value); + } + else + { + player.Position = new Vector3(player.Position.X, player.Position.Y, player.Position.Z - value); + } + } + + [Command("rt", "~m~Benutzung: ~s~/rt [Wert]")] + public void CmdAdminRt(Client player, int value = 5) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + float playerHeading = player.Heading; + + if (playerHeading < 45 || playerHeading >= 315) + { + Vector3 playerPosition = new Vector3(player.Position.X + value, player.Position.Y, player.Position.Z); + if (player.IsInVehicle && player.VehicleSeat == -1) player.Vehicle.Position = playerPosition; + else player.Position = playerPosition; + } + else if (playerHeading < 315 && playerHeading >= 225) + { + Vector3 playerPosition = new Vector3(player.Position.X, player.Position.Y - value, player.Position.Z); + if (player.IsInVehicle && player.VehicleSeat == -1) player.Vehicle.Position = playerPosition; + else player.Position = playerPosition; + } + else if (playerHeading >= 135 && playerHeading < 225) + { + Vector3 playerPosition = new Vector3(player.Position.X - value, player.Position.Y, player.Position.Z); + if (player.IsInVehicle && player.VehicleSeat == -1) player.Vehicle.Position = playerPosition; + else player.Position = playerPosition; + } + else if (playerHeading >= 45 && playerHeading < 135) + { + Vector3 playerPosition = new Vector3(player.Position.X, player.Position.Y + value, player.Position.Z); + if (player.IsInVehicle && player.VehicleSeat == -1) player.Vehicle.Position = playerPosition; + else player.Position = playerPosition; + } + } + + [Command("lt", "~m~Benutzung: ~s~/lt [Wert]")] + public void CmdAdminLt(Client player, int value = 5) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + float playerHeading = player.Heading; + + if (playerHeading < 45 || playerHeading >= 315) + { + Vector3 playerPosition = new Vector3(player.Position.X - value, player.Position.Y, player.Position.Z); + if (player.IsInVehicle && player.VehicleSeat == -1) player.Vehicle.Position = playerPosition; + else player.Position = playerPosition; + } + else if (playerHeading < 315 && playerHeading >= 225) + { + Vector3 playerPosition = new Vector3(player.Position.X, player.Position.Y + value, player.Position.Z); + if (player.IsInVehicle && player.VehicleSeat == -1) player.Vehicle.Position = playerPosition; + else player.Position = playerPosition; + } + else if (playerHeading >= 135 && playerHeading < 225) + { + Vector3 playerPosition = new Vector3(player.Position.X + value, player.Position.Y, player.Position.Z); + if (player.IsInVehicle && player.VehicleSeat == -1) player.Vehicle.Position = playerPosition; + else player.Position = playerPosition; + } + else if (playerHeading >= 45 && playerHeading < 135) + { + Vector3 playerPosition = new Vector3(player.Position.X, player.Position.Y - value, player.Position.Z); + if (player.IsInVehicle && player.VehicleSeat == -1) player.Vehicle.Position = playerPosition; + else player.Position = playerPosition; + } + } + [Command("setdimension", "~m~Benutzung: ~s~/setdimension [Spieler] [Dimension]")] + public void CmdAdminSetDimension(Client player, string targetname, uint dimension) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + Client target = ClientService.GetClientByName(targetname); + if (target == null || !target.IsLoggedIn()) + { + ChatService.PlayerNotFound(player); + return; + } + target.Dimension = dimension; + target.SendChatMessage("~s~Deine Dimension wurde auf ~g~" + dimension + "~s~ geändert."); + player.SendChatMessage("~s~Die Dimension von ~y~" + target.Name + " ~s~wurde auf ~g~" + dimension + "~s~ geändert."); + } + [Command("kick", "~m~Benutzung: ~s~/kick [Player] [Grund]")] + public void CmdAdminKick(Client player, string targetname, string reason) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + Client target = ClientService.GetClientByName(targetname); + if (target == null || !target.IsLoggedIn()) + { + ChatService.PlayerNotFound(player); + return; + } + + string targetPlayername = NAPI.Player.GetPlayerName(target); + string adminPlayername = NAPI.Player.GetPlayerName(player); + + NAPI.Chat.SendChatMessageToPlayer(target, "~r~KICKINFO: ~w~Du wurdest von " + adminPlayername + " vom Server gekickt: " + reason); + target.Kick(); + NAPI.Chat.SendChatMessageToAll("~y~INFO: ~w~" + targetPlayername + " wurde von " + player.GetUser().AdminLevel.GetName() + " " + adminPlayername + " gekickt: " + reason); + } + [Command("ip", "~m~Benutzung: ~s~/ip [Spieler]")] + public void CmdAdminIp(Client player, string targetname) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + Client target = ClientService.GetClientByName(targetname); + if (target == null || !target.IsLoggedIn()) + { + ChatService.PlayerNotFound(player); + return; + } + player.SendChatMessage("IP von ~y~" + NAPI.Player.GetPlayerName(target) + ": ~g~" + target.Address); + } + [Command("ban", "~m~Benutzung: ~s~/ban [User] [Zeit in Minuten(0 für Permanent)] [Grund] ", GreedyArg = true)] + public void CmdAdminBan(Client admin, string user, int mins, string reason) + { + if (!admin.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(admin); + return; + } + + Client target = ClientService.GetClientByName(user); + + if (target == null || !target.IsLoggedIn()) + { + ChatService.PlayerNotFound(admin); + return; + } + + target.GetUser().BanPlayer(admin, reason, mins); + } + [Command("unban", "~m~Benutzung: ~s~/unban [Name] ", GreedyArg = true)] + public void CmdAdminUnban(Client admin, string userName) + { + if (!admin.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(admin); + return; + } + + Entities.User user; + + using (var dbContext = new DatabaseContext()) + { + user = dbContext.Users.FirstOrDefault(u => u.Name == userName); + if (user == null) + { + admin.SendChatMessage("~r~[FEHLER]~s~ Dieser Spieler existiert nicht."); + return; + } + + if (user.BanId == null) + { + admin.SendChatMessage("~r~[FEHLER]~s~ Dieser Spieler ist nicht gebannt."); + return; + } + + Ban ban = dbContext.Bans.FirstOrDefault(b => b.Id == user.BanId); + if (ban == null) + { + admin.SendChatMessage("~r~[FEHLER]~s~ Dieser Spieler ist nicht gebannt."); + return; + } + + if (ban.Applied == ban.UntilDateTime) + { + user.UnbanPlayer(admin); + } + else + { + int currentTimestamp = (int)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds; + if (ban.UntilDateTime < currentTimestamp) + { + admin.SendChatMessage("~r~[FEHLER]~s~ Dieser Spieler ist nicht gebannt."); + return; + } + } + user.UnbanPlayer(admin); + } + + string message = "~y~INFO: ~s~Der Spieler ~y~" + user.Name + " ~s~wurde von ~y~" + admin.Name + " ~s~entbannt."; + ChatService.BroadcastAdmin(message, AdminLevel.ADMIN); + } + [Command("goto", "~m~Benutzung: ~s~/goto [Ort]")] + public void CmdAdminGotoPoint(Client player, string location) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + using (var dbContext = new DatabaseContext()) + { + Entities.GotoPoint p = dbContext.GotoPoints.FirstOrDefault(x => x.Description == location); + + if (player.IsInVehicle && player.VehicleSeat == -1) player.Vehicle.Position = new Vector3(p.X, p.Y, p.Z); + else player.Position = new Vector3(p.X, p.Y, p.Z); + + } + } + [Command("spec", "~m~Benutzung: ~s~/spec [Player]")] + public void CmdAdminSpectate(Client player, string name) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + Client target = ClientService.GetClientByName(name); + if (target == null || !target.IsLoggedIn()) + { + ChatService.PlayerNotFound(player); + return; + } + if (target == player) + { + ChatService.ErrorMsg(player); + return; + } + + bool spec = player.GetData("spec"); + + if (spec == false) + { + NAPI.Player.SetPlayerToSpectatePlayer(player, target); + player.SetData("spec", true); + } + else + { + NAPI.Player.UnspectatePlayer(player); + player.SetData("spec", false); + } + + } + [Command("slap", "~m~Benutzung: ~s~/slap [Spieler] (Höhe)")] + public void CmdAdminSlap(Client player, string name, int wert = 5) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + Client target = ClientService.GetClientByName(name); + if (target == null || !target.IsLoggedIn()) + { + ChatService.PlayerNotFound(player); + return; + } + + target.Position = new Vector3(target.Position.X, target.Position.Y, target.Position.Z + wert); + player.SendChatMessage("Du hast " + target.Name + " geslappt. Höhe: " + wert + ""); + } + [Command("takeweapon", "~m~Benutzung: ~s~/takeweapon [Spieler]")] + public void CmdAdminTakeWeapon(Client player, string name) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + Client target = ClientService.GetClientByName(name); + if (target == null || !target.IsLoggedIn()) + { + ChatService.PlayerNotFound(player); + return; + } + target.RemoveAllWeapons(); + target.SendChatMessage("~b~Deine Waffen wurden dir von " + player.Name + "(Admin) abgenommen"); + player.SendChatMessage("~b~Dem Spieler " + target.Name + " wurden erfolgreich alle Waffen abgenommen "); + } #endregion #region ALevel2 + [Command("sethp", "~m~Benutzung: ~s~/sethp [Spieler] (Hp)")] + public void CmdAdminSetHp(Client player, string name, int hp = 100) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN2) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + Client target = ClientService.GetClientByName(name); + if (target == null || !target.IsLoggedIn()) + { + ChatService.PlayerNotFound(player); + return; + } + + target.Health = hp; + target.SendChatMessage("~b~Deine HP wurden von " + player.Name + " auf " + hp + " gesetzt."); + player.SendChatMessage("~b~Du hast die HP von " + target.Name + " auf " + hp + " gesetzt."); + } [Command("clothes", "~m~Benutzung: ~s~/clothes [Spieler] [Slot] [Component ID] (Textur)")] public void CmdAdminClothes(Client player, string name, int slot, int component, int texture = 0) { @@ -65,7 +650,7 @@ namespace reallife_gamemode.Server.Commands target.SetClothes(slot, component, texture); } - [Command("props", "~m~Benutzung: ~s~/props [Slot] [Component ID] (Textur)")] + [Command("props", "~m~Benutzung: ~s~/props [Spieler] [Slot] [Component ID] (Textur)")] public void CmdAdminProps(Client player, string name, int slot, int component, int texture = 0) { if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN2) ?? true) @@ -83,43 +668,27 @@ namespace reallife_gamemode.Server.Commands target.SetAccessories(slot, component, texture); } - #endregion - - - #region ALevel3 - #endregion - - - #region ALevel1337 - [Command("vmod", "~m~Benutzung: ~s~/vmod [Slot] [Mod ID]")] - public void CmdAdminVmod(Client player, int slot, int mod) + [Command("gotox", "~m~Benutzung: ~s~/gotox [X] [Y] [Z]")] + public void CmdAdminGotoxyz(Client player, float x, float y, float z) { - if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN2) ?? true) { ChatService.NotAuthorized(player); return; } - - if (!player.IsInVehicle) - { - player.SendChatMessage("~r~[FEHLER]~s~ Du sitzt momentan nicht in einem Fahrzeug."); - return; - } - - if (mod == -1) player.Vehicle.RemoveMod(slot); - else player.Vehicle.SetMod(slot, mod); + if (player.IsInVehicle && player.VehicleSeat == -1) player.Vehicle.Position = new Vector3(x, y, z); + else player.Position = new Vector3(x, y, z); } + #endregion - #region ALevel1338 - #endregion - - + #region ALevel3 [Command("veh", "~m~Benutzung: ~s~/veh [Fahrzeug] (Farbe 1) (Farbe 2)")] public void CmdAdminVeh(Client player, string hash, int color1 = 111, int color2 = 111) { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN3) ?? true) + //TODO: Bestimmte Autos nur ab Adminlevel 1337, "normale Fahrzeuge" schon ab Adminlevel 3. { ChatService.NotAuthorized(player); return; @@ -150,11 +719,10 @@ namespace reallife_gamemode.Server.Commands player.SetIntoVehicle(v.Handle, -1); } - [Command("fv")] public void CmdAdminFixveh(Client player) { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN3) ?? true) { ChatService.NotAuthorized(player); return; @@ -167,51 +735,10 @@ namespace reallife_gamemode.Server.Commands } player.Vehicle.Repair(); } - - [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.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - if (!player.IsInVehicle) - { - player.SendChatMessage("~r~[FEHLER]~s~ 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.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - if (!player.IsInVehicle) - { - player.SendChatMessage("~r~[FEHLER]~s~ Du sitzt momentan nicht in einem Fahrzeug."); - return; - } - - Vehicle veh = NAPI.Player.GetPlayerVehicle(player); - NAPI.Vehicle.SetVehicleTyreSmokeColor(veh, new Color(r, g, b)); - - } - [Command("vdestroy")] public void CmdAdminDelveh(Client player) { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN3) ?? true) { ChatService.NotAuthorized(player); return; @@ -228,123 +755,29 @@ namespace reallife_gamemode.Server.Commands player.Vehicle.Delete(); } - - [Command("to", "~m~Benutzung: ~s~/to [Name]")] - public void CmdAdminGoto(Client player, string name) + [Command("vcolor", "~m~Benutzung: ~s~/vcolor [Farb-ID1] [Farb-ID2]")] + public void CmdAdminColor(Client player, int color1, int color2) { - if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true) + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN3) ?? true) { ChatService.NotAuthorized(player); return; } - Client target = ClientService.GetClientByName(name); - - if (target == null || !target.IsLoggedIn()) + if (!player.IsInVehicle) { - ChatService.PlayerNotFound(player); + player.SendChatMessage("~r~[FEHLER]~s~ Du sitzt momentan in keinem Fahrzeug!"); return; } - if (player.IsInVehicle && player.VehicleSeat == -1) player.Vehicle.Position = target.Position; - else player.Position = target.Position; + player.Vehicle.PrimaryColor = color1; + player.Vehicle.SecondaryColor = color2; + player.SendChatMessage("Farb-ID1 " + color1 + ", Farb-ID2 " + color2 + ""); } - - [Command("position")] - public void CmdAdminShowPos(Client player) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - player.SendChatMessage("Position: X Y Z: " + player.Position); - } - - [Command("goto", "~m~Benutzung: ~s~/goto [Ort]")] - public void CmdAdminGotoPoint(Client player, string location) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - using (var dbContext = new DatabaseContext()) - { - Entities.GotoPoint p = dbContext.GotoPoints.FirstOrDefault(x => x.Description == location); - - if (player.IsInVehicle && player.VehicleSeat == -1) player.Vehicle.Position = new Vector3(p.X, p.Y, p.Z); - else player.Position = new Vector3(p.X, p.Y, p.Z); - - } - } - - [Command("gotox", "~m~Benutzung: ~s~/gotox [X] [Y] [Z]")] - public void CmdAdminGotoxyz(Client player, float x, float y, float z) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - if (player.IsInVehicle && player.VehicleSeat == -1) player.Vehicle.Position = new Vector3(x, y, z); - else player.Position = new Vector3(x, y, z); - } - - [Command("gh", "~m~Benutzung: ~s~/gh [Name]")] - public void CmdAdminGethere(Client player, string name) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - Client target = ClientService.GetClientByName(name); - - if (target == null || !target.IsLoggedIn()) - { - ChatService.PlayerNotFound(player); - return; - } - - if (target.IsInVehicle && target.VehicleSeat == -1) target.Vehicle.Position = player.Position; - else target.Position = player.Position; - target.SendChatMessage("Du wurdest von " + player.Name + " teleportiert."); - } - - [Command("ipl", "~m~Benutzung: ~s~/ipl [Load / Remove] [Name]")] - public void CmdAdminIpl(Client player, string option, string name) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - option = option.ToLower(); - - if (option == "load") - { - NAPI.World.RequestIpl(name); - player.SendChatMessage("~g~Das IPL ~s~" + name + " ~g~wurde erfolgreich geladen"); - } - else if (option == "remove") - { - NAPI.World.RemoveIpl(name); - player.SendChatMessage("~g~Das IPL ~s~" + name + " ~g~wurde erfolgreich entladen"); - } - else - { - player.SendChatMessage("~m~Benutzung: ~s~/ipl [Load / Remove] [Name]"); - } - } - [Command("giveweapon", "~m~Benutzung: ~s~/giveweapon [Spieler] [Waffe] [Munition]")] public void CmdAdminGiveweapon(Client player, string name, string weapon, int ammo) { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN3) ?? true) { ChatService.NotAuthorized(player); return; @@ -375,32 +808,10 @@ namespace reallife_gamemode.Server.Commands target.SendChatMessage("~b~Du hast von " + player.Name + " eine/n " + wHash + " mit einer Munition von " + ammo + " erhalten."); player.SendChatMessage("~b~Du hast " + target.Name + " eine/n " + wHash + " mit einer Munition von " + ammo + " gegeben."); } - - [Command("sethp", "~m~Benutzung: ~s~/sethp [Spieler] (Leben)")] - public void CmdAdminSetHp(Client player, string name, int hp = 100) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - Client target = ClientService.GetClientByName(name); - if (target == null || !target.IsLoggedIn()) - { - ChatService.PlayerNotFound(player); - return; - } - - target.Health = hp; - target.SendChatMessage("~b~Dein Leben wurde von " + player.Name + " auf " + hp + " gesetzt."); - player.SendChatMessage("~b~Du hast das Leben von " + target.Name + " auf " + hp + " gesetzt."); - } - [Command("arevive", "~m~Benutzung: ~s~/arevive [Spieler]")] public void CmdAdminRevive(Client player, string name) { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN3) ?? true) { ChatService.NotAuthorized(player); return; @@ -423,11 +834,10 @@ namespace reallife_gamemode.Server.Commands NAPI.Player.SpawnPlayer(target, target.Position); target.Health = 100; } - [Command("setarmor", "~m~Benutzung: ~s~/setarmor [Spieler] (Armor)")] public void CmdAdminSetArmor(Client player, string name, int armor = 100) { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN3) ?? true) { ChatService.NotAuthorized(player); return; @@ -444,31 +854,14 @@ namespace reallife_gamemode.Server.Commands target.SendChatMessage("~b~Deine Rüstung wurde von " + player.Name + " auf " + armor + " gesetzt."); player.SendChatMessage("~b~Du hast die Rüstung von " + target.Name + " auf " + armor + " gesetzt."); } + #endregion - [Command("slap", "~m~Benutzung: ~s~/slap [Spieler] (Höhe)")] - public void CmdAdminSlap(Client player, string name, int wert = 5) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - Client target = ClientService.GetClientByName(name); - if (target == null || !target.IsLoggedIn()) - { - ChatService.PlayerNotFound(player); - return; - } - - target.Position = new Vector3(target.Position.X, target.Position.Y, target.Position.Z + wert); - player.SendChatMessage("Du hast "+target.Name+" geslappt. Höhe: "+wert+""); - } + #region ALevel1337 [Command("setskin", "~m~Benutzung: ~s~/setskin [Spieler] [Skin]")] public void CmdAdminSetSkin(Client player, string name, string Skin) { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) { ChatService.NotAuthorized(player); return; @@ -486,11 +879,10 @@ namespace reallife_gamemode.Server.Commands player.SendChatMessage("~b~Du hast den Skin von " + target.Name + " zu " + skin + " gesetzt."); target.SetSkin(NAPI.Util.PedNameToModel(Skin)); } - - [Command("vcolor", "~m~Benutzung: ~s~/vcolor [Farb-ID1] [Farb-ID2]")] - public void CmdAdminColor(Client player, int color1, int color2) + [Command("vmod", "~m~Benutzung: ~s~/vmod [Slot] [Mod ID]")] + public void CmdAdminVmod(Client player, int slot, int mod) { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) { ChatService.NotAuthorized(player); return; @@ -498,64 +890,81 @@ namespace reallife_gamemode.Server.Commands if (!player.IsInVehicle) { - player.SendChatMessage("~r~[FEHLER]~s~ Du sitzt momentan in keinem Fahrzeug!"); + player.SendChatMessage("~r~[FEHLER]~s~ Du sitzt momentan nicht in einem Fahrzeug."); return; } - player.Vehicle.PrimaryColor = color1; - player.Vehicle.SecondaryColor = color2; - player.SendChatMessage("Farb-ID1 " + color1 + ", Farb-ID2 " + color2 + ""); + if (mod == -1) player.Vehicle.RemoveMod(slot); + else player.Vehicle.SetMod(slot, mod); } - - [Command("aw", "~m~Benutzung: ~s~/aw [Spieler] [Nachricht]", GreedyArg = true)] - public void CmdAdminMsg(Client player, string name, string msg) + [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.ADMIN) ?? true) + if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) { ChatService.NotAuthorized(player); return; } - Client target = ClientService.GetClientByName(name); - if (target == null || !target.IsLoggedIn()) + if (!player.IsInVehicle) { - ChatService.PlayerNotFound(player); + player.SendChatMessage("~r~[FEHLER]~s~ Du sitzt momentan nicht in einem Fahrzeug."); return; } - if (target == player) - { - ChatService.ErrorMsg(player); - return; - } - - target.SendChatMessage("~y~PM von " + player.Name + ": " + msg + " "); - player.SendChatMessage("~y~PM an " + target.Name + ": " + msg + " "); + Vehicle veh = NAPI.Player.GetPlayerVehicle(player); + NAPI.Vehicle.SetVehicleNeonColor(veh, r, g, b); + NAPI.Vehicle.SetVehicleNeonState(veh, true); } - [Command("takeweapon", "~m~Benutzung: ~s~/takeweapon [Spieler]")] - public void CmdAdminTakeWeapon(Client player, string name) + [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.ADMIN) ?? true) + if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) { ChatService.NotAuthorized(player); return; } - Client target = ClientService.GetClientByName(name); - if (target == null || !target.IsLoggedIn()) + + if (!player.IsInVehicle) { - ChatService.PlayerNotFound(player); + player.SendChatMessage("~r~[FEHLER]~s~ Du sitzt momentan nicht in einem Fahrzeug."); return; } - target.RemoveAllWeapons(); - target.SendChatMessage("~b~Deine Waffen wurden dir von " + player.Name + "(Admin) abgenommen"); - player.SendChatMessage("~b~Dem Spieler " + target.Name + " wurden erfolgreich alle Waffen abgenommen "); - } + 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) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + option = option.ToLower(); + + if (option == "load") + { + NAPI.World.RequestIpl(name); + player.SendChatMessage("~g~Das IPL ~s~" + name + " ~g~wurde erfolgreich geladen"); + } + else if (option == "remove") + { + NAPI.World.RemoveIpl(name); + player.SendChatMessage("~g~Das IPL ~s~" + name + " ~g~wurde erfolgreich entladen"); + } + else + { + player.SendChatMessage("~m~Benutzung: ~s~/ipl [Load / Remove] [Name]"); + } + } [Command("rsethp", "~m~Benutzung: ~s~/rsethp [Radius] (Leben)")] public void CmdAdminRangeSetHP(Client player, float radius, int hp = 100) { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) { ChatService.NotAuthorized(player); return; @@ -572,9 +981,9 @@ namespace reallife_gamemode.Server.Commands } [Command("freekh", "~m~Benutzung: ~s~/freekh (Radius)")] - public void CmdAdminFreekh(Client player, float radius=9999999) + public void CmdAdminFreekh(Client player, float radius = 999999999) { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) { ChatService.NotAuthorized(player); return; @@ -584,28 +993,28 @@ namespace reallife_gamemode.Server.Commands foreach (var managedClient in peopleInRange) { if (!managedClient.IsLoggedIn()) return; - if (!managedClient.HasData("isDead") || managedClient.GetData("isDead") == false) continue; - if (radius == 9999999) + if (radius == 999999999) { managedClient.SendChatMessage("~b~Admin " + player.Name + " hat alle Spieler wiederbelebt"); + player.SendChatMessage("~b~Du hast " + peopleInRange.Count + " Spieler wiederbelebt"); } else { managedClient.SendChatMessage("~b~Admin " + player.Name + " hat im Radius von " + radius + " alle Spieler wiederbelebt"); + player.SendChatMessage("~b~Du hast " + peopleInRange.Count + " Spieler wiederbelebt"); } + if (!managedClient.HasData("isDead") || managedClient.GetData("isDead") == false) continue; managedClient.TriggerEvent("onPlayerRevived"); managedClient.SendNotification("Du wurdest von Admin ~y~" + player.Name + "~s~ wiederbelebt."); managedClient.SetData("isDead", false); NAPI.Player.SpawnPlayer(managedClient, managedClient.Position); managedClient.Health = 100; - player.SendChatMessage("~b~Du hast " + peopleInRange.Count + " 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.ADMIN) ?? true) + if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) { ChatService.NotAuthorized(player); return; @@ -620,34 +1029,10 @@ namespace reallife_gamemode.Server.Commands } player.SendChatMessage("~b~Die Rüstung von " + peopleInRange.Count + " Spielern wurde auf " + Armor + " gesetzt."); } - - [Command("time", "~m~Benutzung: ~s~/time [Stunde] (Minuten) (Sekunden)")] - public void CmdAdminSetTime(Client player, int hour, int min = 0, int sec = 0) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - string broadcastMsg = $"Serverzeit wurde auf {hour:D2}:{min:D2}:{sec:D2} gesetzt!"; - NAPI.Notification.SendNotificationToAll(broadcastMsg); - NAPI.World.SetTime(hour, min, sec); - return; - - } - - [Command("val")] - public void Val(Client player) - { - // TODO: Remove on release - NAPI.Chat.SendChatMessageToAll("Value of " + player.Name + ": " + player.Handle.Value); - } - [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.ADMIN) ?? true) + if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) { ChatService.NotAuthorized(player); return; @@ -671,30 +1056,25 @@ namespace reallife_gamemode.Server.Commands } player.SendChatMessage("~b~Du hast " + peopleInRange.Count + " Spielern eine " + weapon + " mit " + munition + " Munition gegeben"); } - - [Command("factionlist", "~m~Benutzung: ~s~/factionlist")] - public void CmdAdminFactionlist(Client player) + [Command("time", "~m~Benutzung: ~s~/time [Stunde] (Minuten) (Sekunden)")] + public void CmdAdminSetTime(Client player, int hour, int min = 0, int sec = 0) { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) { ChatService.NotAuthorized(player); return; } - using(var dbContext = new DatabaseContext()) - { - player.SendChatMessage("~m~__________ ~s~Fraktionen ~m~__________"); - foreach(Entities.Faction f in dbContext.Factions) - { - player.SendChatMessage(f.Id.ToString().PadRight(3) + " | " + f.Name); - } - } - } + string broadcastMsg = $"Serverzeit wurde auf {hour:D2}:{min:D2}:{sec:D2} gesetzt!"; + NAPI.Notification.SendNotificationToAll(broadcastMsg); + NAPI.World.SetTime(hour, min, sec); + return; + } [Command("ainvite", "~m~Benutzung: ~s~/ainvite [Name] [Fraktion]")] public void CmdAdminAinvite(Client player, string name, int faction) { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) { ChatService.NotAuthorized(player); return; @@ -715,7 +1095,7 @@ namespace reallife_gamemode.Server.Commands player.SendChatMessage("~r~[FEHLER]~s~ Diese Fraktion existiert nicht (Liste: ~m~/factionlist)."); return; } - + Entities.User u = target.GetUser(dbContext); if (faction != 0) @@ -735,17 +1115,16 @@ namespace reallife_gamemode.Server.Commands player.SendChatMessage("~b~[ADMIN]~s~ Du hast hast den Spieler ~y~" + target.Name + "~s~ administrativ aus seiner Fraktion geworfen."); target.SendChatMessage("~b~[ADMIN]~s~ Du wurdest von ~y~" + player.Name + "~s~ administrativ aus deiner Fraktion geworfen."); } - + u.FactionLeader = false; dbContext.SaveChanges(); } } - [Command("makeleader", "~m~Benutzung: ~s~/makeleader [Name] [Fraktion]")] public void CmdAdminMakeleader(Client player, string name, int faction) { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) { ChatService.NotAuthorized(player); return; @@ -768,7 +1147,7 @@ namespace reallife_gamemode.Server.Commands } Entities.User u = target.GetUser(dbContext); - + u.FactionId = f.Id; u.FactionRankId = dbContext.FactionRanks. OrderByDescending(x => x.Order) @@ -781,37 +1160,21 @@ namespace reallife_gamemode.Server.Commands dbContext.SaveChanges(); } } - - [Command("ban", "~m~Benutzung: ~s~/ban [User] [Zeit in Minuten(0 für Permanent)] [Grund] ", GreedyArg = true)] - public void CmdAdminBan(Client admin, string user, int mins, string reason) - { - if (!admin.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(admin); - return; - } - - Client target = ClientService.GetClientByName(user); - - if(target == null || !target.IsLoggedIn()) - { - ChatService.PlayerNotFound(admin); - return; - } - - target.GetUser().BanPlayer(admin, reason, mins); - } - [Command("save", "~m~Benutzung: ~s~/save [Typ = ~g~Blip, Goto (X), ~r~Marker, Ped, Pickup, TextLabel, ~g~Vehicle, FVehicle, SVehicle] (Beschreibung) = (X)")] public void CmdAdminSave(Client player, string typ, string description = null) { + if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } switch (typ) { case "Blip": player.TriggerEvent("saveBlip"); break; case "Goto": - if(description == null) + if (description == null) { player.SendChatMessage("Für Goto musst du einen dritten Parameter angeben. Beispiel: Ort des Goto-Punktes."); return; @@ -821,9 +1184,9 @@ namespace reallife_gamemode.Server.Commands using (var dbContext = new DatabaseContext()) { GotoPoint p = dbContext.GotoPoints.FirstOrDefault(x => x.Description == description); - if(p == null) + if (p == null) { - SaveManager.SaveGotoPoint(player, description); + SaveManager.SaveGotoPoint(player, description); player.SendNotification("Goto-Punkt ~g~" + description + "~s~ gespeichert.", true); } else @@ -831,9 +1194,9 @@ namespace reallife_gamemode.Server.Commands player.SendChatMessage("Einen Goto-Punkt mit dieser Bezeichnung gibt es schon!"); } } - + } - + break; case "Vehicle": if (player.IsInVehicle) @@ -849,7 +1212,7 @@ namespace reallife_gamemode.Server.Commands case "FVehicle": if (player.IsInVehicle) { - if(player.GetUser().FactionId == null) + if (player.GetUser().FactionId == null) { player.SendChatMessage("~m~Du bist in keiner Fraktion! Invite dich erst mit ~y~/ainvite"); return; @@ -880,10 +1243,15 @@ namespace reallife_gamemode.Server.Commands } } - + #region loadCommand [Command("load", "~m~Benutzung: ~s~/load [Typ = OnlineBunkers, ArcadiusBusinessCentre, MazeBankBuilding, LomBank, MazeBankWest, ClubWareHouse, SpecialLocations, GRHYacht, DHYacht, PYacht, AircraftCarrier, BridgeTC, BridgeTN, NorthYankton, ONeilsFarmB, ONeilsFarm, Morgue")] public void CmdAdminloadlocation(Client player, string typ) { + if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } switch (typ) { case "OnlineBunkers": @@ -1040,8 +1408,8 @@ namespace reallife_gamemode.Server.Commands player.SendChatMessage("~y~Bridge Train Crash~s~ erfolgreich geladen!"); break; case "BridgeTN": - NAPI.World.RequestIpl("canyonriver01"); - NAPI.World.RequestIpl("railing_start"); + NAPI.World.RequestIpl("canyonriver01"); + NAPI.World.RequestIpl("railing_start"); player.SendChatMessage("~y~Bridge Train Normal~s~ erfolgreich geladen!"); break; case "NorthYankton": @@ -1086,7 +1454,7 @@ namespace reallife_gamemode.Server.Commands NAPI.World.RequestIpl("des_farmhs_end_occl"); player.SendChatMessage("~y~ONeils Farm Burnt~s~ erfolgreich geladen!"); break; - case "ONeilsFarm": + case "ONeilsFarm": NAPI.World.RequestIpl("farm"); NAPI.World.RequestIpl("farm_props"); NAPI.World.RequestIpl("farm_int"); @@ -1098,65 +1466,14 @@ namespace reallife_gamemode.Server.Commands player.SendChatMessage("~y~Morgue~s~ erfolgreich geladen!"); break; } + } - - [Command("unban", "~m~Benutzung: ~s~/unban [Name] ", GreedyArg = true)] - public void CmdAdminUnban(Client admin, string userName) - { - if (!admin.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(admin); - return; - } - - Entities.User user; - - using (var dbContext = new DatabaseContext()) - { - user = dbContext.Users.FirstOrDefault(u => u.Name == userName); - if(user == null) - { - admin.SendChatMessage("~r~[FEHLER]~s~ Dieser Spieler existiert nicht."); - return; - } - - if(user.BanId == null) - { - admin.SendChatMessage("~r~[FEHLER]~s~ Dieser Spieler ist nicht gebannt."); - return; - } - - Ban ban = dbContext.Bans.FirstOrDefault(b => b.Id == user.BanId); - if(ban == null) - { - admin.SendChatMessage("~r~[FEHLER]~s~ Dieser Spieler ist nicht gebannt."); - return; - } - - if(ban.Applied == ban.UntilDateTime) - { - user.UnbanPlayer(admin); - } - else - { - int currentTimestamp = (int)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds; - if(ban.UntilDateTime < currentTimestamp) - { - admin.SendChatMessage("~r~[FEHLER]~s~ Dieser Spieler ist nicht gebannt."); - return; - } - } - user.UnbanPlayer(admin); - } - - string message = "~y~INFO: ~s~Der Spieler ~y~" + user.Name + " ~s~wurde von ~y~" + admin.Name + " ~s~entbannt."; - ChatService.BroadcastAdmin(message, AdminLevel.ADMIN); - } - + #endregion + // [Command("managefactionranks", "~m~Benutzung: ~s~/managefactionranks [Fraktions-ID]")] public void CmdFactionManageFactionRanks(Client player, int factionID) { - if(!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) { ChatService.NotAuthorized(player); return; @@ -1193,6 +1510,116 @@ namespace reallife_gamemode.Server.Commands player.TriggerEvent("manageFactionRanks", json); } } + [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) + { + player.SendChatMessage("~r~[FEHLER]~s~ Dieses Wetter existiert nicht."); + return; + } + + Weather weatherBefore = NAPI.World.GetWeather(); + NAPI.World.SetWeather(weather); + Weather weatherAfter = NAPI.World.GetWeather(); + + if (!weatherBefore.Equals(weatherAfter)) + { + NAPI.Chat.SendChatMessageToPlayer(player, "~w~Wetter geändert: " + NAPI.World.GetWeather()); + NAPI.Notification.SendNotificationToAll("Das Wetter wurde auf ~g~ " + NAPI.World.GetWeather() + "~s~ geändert.", true); + } + else + { + NAPI.Chat.SendChatMessageToPlayer(player, "~w~Das Wetter konnte nicht geändert werden"); + } + } + [Command("aspeed", "~m~Benutzung: ~s~/aspeed [Modifier]")] //TODO: Überarbeiten ?? SetPlayerVelocity ?? + public void CmdAdminAspeed(Client player, float modifier) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + if (!player.IsInVehicle) + { + player.SendChatMessage("~r~[FEHLER]~s~ Du sitzt momentan nicht in einem Fahrzeug."); + return; + } + + player.Vehicle.EnginePowerMultiplier = modifier; + } + [Command("setmoney")] + public void SetPlayerMoney(Client player, string receiver, int amount) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + Client target = ClientService.GetClientByName(receiver); + if (target == null || !target.IsLoggedIn()) + { + ChatService.PlayerNotFound(player); + return; + } + + using (var dbContext = new DatabaseContext()) + { + target.GetUser().GetUserBankAccount(dbContext).Balance = amount; + dbContext.SaveChanges(); + } + player.SendChatMessage("~b~[ADMIN]~s~ Du hast das Geld von " + target.Name + " auf ~g~$" + amount + "~s~ gesetzt."); + target.SendChatMessage("~b~[ADMIN]~s~ Dein Geld wurde von Admin " + player.Name + " auf ~g~$" + amount + "~s~ gesetzt."); + } + + [Command("givemoney")] + public void GivePlayerMoney(Client player, string receiver, int amount) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + Client target = ClientService.GetClientByName(receiver); + if (target == null || !target.IsLoggedIn()) + { + ChatService.PlayerNotFound(player); + return; + } + + using (var dbContext = new DatabaseContext()) + { + target.GetUser().GetUserBankAccount(dbContext).Balance += amount; + dbContext.SaveChanges(); + } + player.SendChatMessage("~b~[ADMIN]~s~ Du hast " + target.Name + " ~g~$" + amount + "~s~ gegeben."); + target.SendChatMessage("~b~[ADMIN]~s~ Admin " + player.Name + " hat dir ~g~$" + amount + "~s~ gegeben."); + } + #endregion + + #region ALevel1338 + // ): + #endregion + + /* ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */ //TEST COMMAND [Command("own")] @@ -1233,367 +1660,12 @@ namespace reallife_gamemode.Server.Commands else player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!"); } - [Command("a", "~m~Benutzung: ~s~/a [Nachricht]", GreedyArg = true)] - public void CmdAdminA(Client player, string message) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - ChatService.BroadcastAdmin("~r~Admin " + player.Name + "~w~: " + message, AdminLevel.ADMIN); - } - [Command("team", "~m~Benutzung: ~s~/team")] - public void CmdAdminTeam(Client player) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - player.SendChatMessage("Online Teammitglieder:"); - List playerlist = NAPI.Pools.GetAllPlayers(); - foreach (Client currentPlayer in playerlist) - { - if (currentPlayer.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? false) - { - player.SendChatMessage(currentPlayer.Name); - } - } - } - - [Command("setweather", "~m~Benutzung: ~s~/setweather [Wetter]")] - public void CmdAdminSetweather(Client player, string weather) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? 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) - { - player.SendChatMessage("~r~[FEHLER]~s~ Dieses Wetter existiert nicht."); - return; - } - - Weather weatherBefore = NAPI.World.GetWeather(); - NAPI.World.SetWeather(weather); - Weather weatherAfter = NAPI.World.GetWeather(); - - if (!weatherBefore.Equals(weatherAfter)) - { - NAPI.Chat.SendChatMessageToPlayer(player, "~w~Wetter geändert: " + NAPI.World.GetWeather()); - NAPI.Notification.SendNotificationToAll("Das Wetter wurde auf ~g~ "+NAPI.World.GetWeather()+"~s~ geändert.", true); - } - else - { - NAPI.Chat.SendChatMessageToPlayer(player, "~w~Das Wetter konnte nicht geändert werden"); - } - } - - [Command("freeze", "~m~Benutzung: ~s~/freeze [Spieler]")] - public void CmdAdminFreeze(Client player, string targetname) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - Client target = ClientService.GetClientByName(targetname); - if (target == null || !target.IsLoggedIn()) - { - ChatService.PlayerNotFound(player); - return; - } - - target.Freeze(true); - } - [Command("dimension")] - public void CmdAdminDimension(Client player) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - player.SendChatMessage("Deine Dimension ist ~g~" + player.Dimension); - } - [Command("setdimension", "~m~Benutzung: ~s~/setdimension [Spieler] [Dimension]")] - public void CmdAdminSetDimension(Client player, string targetname, uint dimension) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - Client target = ClientService.GetClientByName(targetname); - if (target == null || !target.IsLoggedIn()) - { - ChatService.PlayerNotFound(player); - return; - } - target.Dimension = dimension; - target.SendChatMessage("~s~Deine Dimension wurde auf ~g~" + dimension + "~s~ geändert."); - player.SendChatMessage("~s~Die Dimension von ~y~" + target.Name + " ~s~wurde auf ~g~" + dimension + "~s~ geändert."); - } - - [Command("unfreeze", "~m~Benutzung: ~s~/unfreeze [Spieler]")] - public void CmdAdminUnfreeze(Client player, string targetname) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - Client target = ClientService.GetClientByName(targetname); - if (target == null || !target.IsLoggedIn()) - { - ChatService.PlayerNotFound(player); - return; - } - - target.Freeze(false); - } - - [Command("kick", "~m~Benutzung: ~s~/kick [Player] [Grund]")] - public void CmdAdminKick(Client player, string targetname, string reason) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - Client target = ClientService.GetClientByName(targetname); - if (target == null || !target.IsLoggedIn()) - { - ChatService.PlayerNotFound(player); - return; - } - - string targetPlayername = NAPI.Player.GetPlayerName(target); - string adminPlayername = NAPI.Player.GetPlayerName(player); - - NAPI.Chat.SendChatMessageToPlayer(target, "~r~KICKINFO: ~w~Du wurdest von " + adminPlayername + " vom Server gekickt: " + reason); - target.Kick(); - NAPI.Chat.SendChatMessageToAll("~y~INFO: ~w~" + targetPlayername + " wurde von " + adminPlayername + " gekickt: " + reason); - } - - [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++) - { - NAPI.Chat.SendChatMessageToAll(""); - } - } - - [Command("up", "~m~Benutzung: ~s~/up [Wert]")] - public void CmdAdminUp(Client player, int value = 5) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - if (player.IsInVehicle) - { - player.Vehicle.Position = new Vector3(player.Vehicle.Position.X, player.Vehicle.Position.Y, player.Vehicle.Position.Z + value); - } - else - { - player.Position = new Vector3(player.Position.X, player.Position.Y, player.Position.Z + value); - } - } - - [Command("dn", "~m~Benutzung: ~s~/dn [Wert]")] - public void CmdAdminDn(Client player, int value = 5) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - if (player.IsInVehicle) - { - player.Vehicle.Position = new Vector3(player.Vehicle.Position.X, player.Vehicle.Position.Y, player.Vehicle.Position.Z - value); - } else - { - player.Position = new Vector3(player.Position.X, player.Position.Y, player.Position.Z - value); - } - } - - [Command("rt", "~m~Benutzung: ~s~/rt [Wert]")] - public void CmdAdminRt(Client player, int value = 5) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - float playerHeading = player.Heading; - - if (playerHeading < 45 || playerHeading >= 315) - { - Vector3 playerPosition = new Vector3(player.Position.X + value, player.Position.Y, player.Position.Z); - if (player.IsInVehicle && player.VehicleSeat == -1) player.Vehicle.Position = playerPosition; - else player.Position = playerPosition; - } - else if (playerHeading < 315 && playerHeading >= 225) - { - Vector3 playerPosition = new Vector3(player.Position.X, player.Position.Y - value, player.Position.Z); - if (player.IsInVehicle && player.VehicleSeat == -1) player.Vehicle.Position = playerPosition; - else player.Position = playerPosition; - } - else if (playerHeading >= 135 && playerHeading < 225) - { - Vector3 playerPosition = new Vector3(player.Position.X - value, player.Position.Y, player.Position.Z); - if (player.IsInVehicle && player.VehicleSeat == -1) player.Vehicle.Position = playerPosition; - else player.Position = playerPosition; - } - else if (playerHeading >= 45 && playerHeading < 135) - { - Vector3 playerPosition = new Vector3(player.Position.X, player.Position.Y + value, player.Position.Z); - if (player.IsInVehicle && player.VehicleSeat == -1) player.Vehicle.Position = playerPosition; - else player.Position = playerPosition; - } - } - - [Command("lt", "~m~Benutzung: ~s~/lt [Wert]")] - public void CmdAdminLt(Client player, int value = 5) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - float playerHeading = player.Heading; - - if (playerHeading < 45 || playerHeading >= 315) - { - Vector3 playerPosition = new Vector3(player.Position.X - value, player.Position.Y, player.Position.Z); - if (player.IsInVehicle && player.VehicleSeat == -1) player.Vehicle.Position = playerPosition; - else player.Position = playerPosition; - } - else if (playerHeading < 315 && playerHeading >= 225) - { - Vector3 playerPosition = new Vector3(player.Position.X, player.Position.Y + value, player.Position.Z); - if (player.IsInVehicle && player.VehicleSeat == -1) player.Vehicle.Position = playerPosition; - else player.Position = playerPosition; - } - else if (playerHeading >= 135 && playerHeading < 225) - { - Vector3 playerPosition = new Vector3(player.Position.X + value, player.Position.Y, player.Position.Z); - if (player.IsInVehicle && player.VehicleSeat == -1) player.Vehicle.Position = playerPosition; - else player.Position = playerPosition; - } - else if (playerHeading >= 45 && playerHeading < 135) - { - Vector3 playerPosition = new Vector3(player.Position.X, player.Position.Y - value, player.Position.Z); - if (player.IsInVehicle && player.VehicleSeat == -1) player.Vehicle.Position = playerPosition; - else player.Position = playerPosition; - } - } - - [Command("spec", "~m~Benutzung: ~s~/spec [Player]")] - public void CmdAdminSpectate(Client player, string name) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - Client target = ClientService.GetClientByName(name); - if (target == null || !target.IsLoggedIn()) - { - ChatService.PlayerNotFound(player); - return; - } - if (target == player) - { - ChatService.ErrorMsg(player); - return; - } - - bool spec = player.GetData("spec"); - - if (spec == false) - { - NAPI.Player.SetPlayerToSpectatePlayer(player, target); - player.SetData("spec", true); - } - else - { - NAPI.Player.UnspectatePlayer(player); - player.SetData("spec", false); - } - - } - - [Command("ip", "~m~Benutzung: ~s~/ip [Spieler]")] - public void CmdAdminIp(Client player, string targetname) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - Client target = ClientService.GetClientByName(targetname); - if (target == null || !target.IsLoggedIn()) - { - ChatService.PlayerNotFound(player); - return; - } - player.SendChatMessage("IP von " + NAPI.Player.GetPlayerName(target) + ": " + target.Address); - } //TODO TEST COMMAND - [Command("aspeed", "~m~Benutzung: ~s~/aspeed [Modifier]")] - public void CmdAdminAspeed(Client player, float modifier) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - if (!player.IsInVehicle) - { - player.SendChatMessage("~r~[FEHLER]~s~ Du sitzt momentan nicht in einem Fahrzeug."); - return; - } - - player.Vehicle.EnginePowerMultiplier = modifier; - } //TEST COMMAND [Command("myvehicles")] @@ -1619,53 +1691,6 @@ namespace reallife_gamemode.Server.Commands } } - [Command("setmoney")] - public void SetPlayerMoney(Client player, string receiver, int amount) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - Client target = ClientService.GetClientByName(receiver); - if(target == null || !target.IsLoggedIn()) - { - ChatService.PlayerNotFound(player); - return; - } - - using(var dbContext = new DatabaseContext()) - { - target.GetUser().GetUserBankAccount(dbContext).Balance = amount; - dbContext.SaveChanges(); - } - player.SendChatMessage("~b~[ADMIN]~s~ Du hast das Geld von " + target.Name + " auf ~g~$" + amount + "~s~ gesetzt."); - target.SendChatMessage("~b~[ADMIN]~s~ Dein Geld wurde von Admin " + player.Name + " auf ~g~$" + amount + "~s~ gesetzt."); - } - - [Command("givemoney")] - public void GivePlayerMoney(Client player, string receiver, int amount) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - Client target = ClientService.GetClientByName(receiver); - if (target == null || !target.IsLoggedIn()) - { - ChatService.PlayerNotFound(player); - return; - } - - using (var dbContext = new DatabaseContext()) - { - target.GetUser().GetUserBankAccount(dbContext).Balance += amount; - dbContext.SaveChanges(); - } - player.SendChatMessage("~b~[ADMIN]~s~ Du hast " + target.Name + " ~g~$" + amount + "~s~ gegeben."); - target.SendChatMessage("~b~[ADMIN]~s~ Admin " + player.Name + " hat dir ~g~$" + amount + "~s~ gegeben."); - } //TODO [Command("fpay")] @@ -1713,57 +1738,6 @@ namespace reallife_gamemode.Server.Commands } } - //TODO Als Browser anzeigeN?? - [Command("gotolist")] - public void CmdAdminGotoList(Client player) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - var gotoString = ""; - foreach(GotoPoint point in LoadManager.GotoPointList) - { - if(point.Active) - { - gotoString += point.Description + ", "; - } - } - player.SendChatMessage(gotoString); - } - - [Command("mark")] - public void CmdAdminMark(Client player) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - player.SetData("mark", player.Position); - player.SendNotification("~y~Mark ~s~gespeichert", true); - } - - [Command("gotomark")] - public void CmdAdminGotoMark(Client player) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - if(!player.HasData("mark")) - { - player.SendChatMessage("~r~[FEHLER]~s~ Du hast noch keine Markierung gesetzt. ~m~(/mark)"); - return; - } - - if (player.IsInVehicle && player.VehicleSeat == -1) player.Vehicle.Position = player.GetData("mark"); - else player.Position = player.GetData("mark"); - } - [Command("getincar", "~m~Benutzung: ~s~/getincar [Name]")] public void CmdAdminGetincar(Client player, string name) {