From 20b8c4fbfb171f77e30eb0f3a9975a31805c75c6 Mon Sep 17 00:00:00 2001 From: nahkampfaffe Date: Mon, 24 Sep 2018 05:13:22 +0200 Subject: [PATCH 01/16] added commands: a, team, setweather --- Server/Commands/Admin.cs | 80 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 73 insertions(+), 7 deletions(-) diff --git a/Server/Commands/Admin.cs b/Server/Commands/Admin.cs index 852fb227..3a18d086 100644 --- a/Server/Commands/Admin.cs +++ b/Server/Commands/Admin.cs @@ -8,7 +8,7 @@ using reallife_gamemode.Server.Util; /** * @overview Life of German Reallife - Admin Commands (Admin.cs) -* @author VegaZ, hydrant +* @author VegaZ, hydrant, balbo * @copyright (c) 2008 - 2018 Life of German */ @@ -43,7 +43,7 @@ namespace reallife_gamemode.Server.Commands player.SendChatMessage("~r~[FEHLER]~s~ Du sitzt momentan schon in einem Fahrzeug."); return; } - + Vehicle v = NAPI.Vehicle.CreateVehicle(hash, player.Position, player.Rotation.Z, color1, color2); player.SetIntoVehicle(v.Handle, -1); @@ -99,7 +99,7 @@ namespace reallife_gamemode.Server.Commands Client target = ClientService.GetClientByName(name); - if(target == null) + if (target == null) { ChatService.PlayerNotFound(player); return; @@ -150,13 +150,13 @@ namespace reallife_gamemode.Server.Commands } option = option.ToLower(); - - if(option == "load") + + if (option == "load") { NAPI.World.RequestIpl(name); player.SendChatMessage("~g~Das IPL ~s~" + name + " ~g~wurde erfolgreich geladen"); } - else if(option == "remove") + else if (option == "remove") { NAPI.World.RemoveIpl(name); player.SendChatMessage("~g~Das IPL ~s~" + name + " ~g~wurde erfolgreich entladen"); @@ -191,7 +191,7 @@ namespace reallife_gamemode.Server.Commands WeaponHash wHash = NAPI.Util.WeaponNameToModel(weapon); - if(wHash == default(WeaponHash)) + if (wHash == default(WeaponHash)) { player.SendChatMessage("~r~[FEHLER]~s~ Diese Waffe existiert nicht."); return; @@ -199,5 +199,71 @@ namespace reallife_gamemode.Server.Commands target.GiveWeapon(wHash, ammo); } + + [Command("a", "~m~Benutzung: ~s~/a [Nachricht]")] + public void CmdAdminA(Client player, string message) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + List playerlist = NAPI.Pools.GetAllPlayers(); + foreach (Client currentPlayer in playerlist) { + if (currentPlayer.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + NAPI.Chat.SendChatMessageToPlayer(currentPlayer, "~b~A-Chat: ~w~" + message); + } + } + } + + + [Command("team", "~m~Benutzung: ~s~/team")] + public void CmdAdminTeam(Client player) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + NAPI.Chat.SendChatMessageToPlayer(player, "Online Teammitglieder:"); + + List playerlist = NAPI.Pools.GetAllPlayers(); + foreach (Client currentPlayer in playerlist) + { + if (currentPlayer.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true) + { + NAPI.Chat.SendChatMessageToPlayer(player, "~w~" + NAPI.Player.GetPlayerName(currentPlayer)); + + } + } + } + + [Command("setweather", "~m~Benutzung: ~s~/setweather [WEATHER]")] + public void CmdAdminSetweather(Client player, string weather) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + Weather weatherBefore = NAPI.World.GetWeather(); + NAPI.World.SetWeather(weather); + Weather weatherAfter = NAPI.World.GetWeather(); + + if (!weatherBefore.Equals(weatherAfter)) + { + NAPI.Chat.SendChatMessageToPlayer(player, "~w~Weather changed to " + NAPI.World.GetWeather())); + } else + { + NAPI.Chat.SendChatMessageToPlayer(player, "~w~Unable to change weather"); + } + + player.Vehicle.PrimaryColor = 1; + } + } } From a3130c8756f61b59dcba6bbd0493b573b34e7bf9 Mon Sep 17 00:00:00 2001 From: nahkampfaffe Date: Mon, 24 Sep 2018 21:21:40 +0200 Subject: [PATCH 02/16] added some admin commands --- Server/Commands/Admin.cs | 77 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 74 insertions(+), 3 deletions(-) diff --git a/Server/Commands/Admin.cs b/Server/Commands/Admin.cs index 3a18d086..69cd9cae 100644 --- a/Server/Commands/Admin.cs +++ b/Server/Commands/Admin.cs @@ -213,7 +213,7 @@ namespace reallife_gamemode.Server.Commands foreach (Client currentPlayer in playerlist) { if (currentPlayer.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) { - NAPI.Chat.SendChatMessageToPlayer(currentPlayer, "~b~A-Chat: ~w~" + message); + NAPI.Chat.SendChatMessageToPlayer(currentPlayer, "~r~Admin " + NAPI.Player.GetPlayerName(player) + "~w~: " + message); } } } @@ -261,9 +261,80 @@ namespace reallife_gamemode.Server.Commands { NAPI.Chat.SendChatMessageToPlayer(player, "~w~Unable to change weather"); } - - player.Vehicle.PrimaryColor = 1; } + [Command("freeze", "~m~Benutzung: ~s~/freeze [Player]")] + 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) + { + ChatService.PlayerNotFound(target); + return; + } + target.Freeze(true); + } + + [Command("unfreeze", "~m~Benutzung: ~s~/freeze [Player]")] + 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) + { + ChatService.PlayerNotFound(target); + 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) + { + ChatService.PlayerNotFound(target); + 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(""); + } + } } } From 64f955c0a6cb564629d308ab5918512d9743dc88 Mon Sep 17 00:00:00 2001 From: nahkampfaffe Date: Mon, 24 Sep 2018 21:33:45 +0200 Subject: [PATCH 03/16] fixed some admin commands --- Server/Commands/Admin.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Server/Commands/Admin.cs b/Server/Commands/Admin.cs index 768b1ffd..a8c9199c 100644 --- a/Server/Commands/Admin.cs +++ b/Server/Commands/Admin.cs @@ -570,7 +570,7 @@ namespace reallife_gamemode.Server.Commands List playerlist = NAPI.Pools.GetAllPlayers(); foreach (Client currentPlayer in playerlist) { - if (currentPlayer.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + if (currentPlayer.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? false) { NAPI.Chat.SendChatMessageToPlayer(currentPlayer, "~r~Admin " + NAPI.Player.GetPlayerName(player) + "~w~: " + message); } @@ -592,7 +592,7 @@ namespace reallife_gamemode.Server.Commands List playerlist = NAPI.Pools.GetAllPlayers(); foreach (Client currentPlayer in playerlist) { - if (currentPlayer.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true) + if (currentPlayer.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? false) { NAPI.Chat.SendChatMessageToPlayer(player, "~w~" + NAPI.Player.GetPlayerName(currentPlayer)); @@ -615,7 +615,7 @@ namespace reallife_gamemode.Server.Commands if (!weatherBefore.Equals(weatherAfter)) { - NAPI.Chat.SendChatMessageToPlayer(player, "~w~Weather changed to " + NAPI.World.GetWeather())); + NAPI.Chat.SendChatMessageToPlayer(player, "~w~Weather changed to " + NAPI.World.GetWeather()); } else { NAPI.Chat.SendChatMessageToPlayer(player, "~w~Unable to change weather"); From 0b066b58880b88071eb4126cd1a3371d195d4bd3 Mon Sep 17 00:00:00 2001 From: nahkampfaffe Date: Mon, 24 Sep 2018 22:38:58 +0200 Subject: [PATCH 04/16] added up down lt and rt --- Server/Commands/Admin.cs | 134 ++++++++++++++++++++++++++++++++------- 1 file changed, 112 insertions(+), 22 deletions(-) diff --git a/Server/Commands/Admin.cs b/Server/Commands/Admin.cs index a8c9199c..b22c0daf 100644 --- a/Server/Commands/Admin.cs +++ b/Server/Commands/Admin.cs @@ -62,7 +62,7 @@ namespace reallife_gamemode.Server.Commands Vehicle v = NAPI.Vehicle.CreateVehicle(hash, player.Position, player.Rotation.Z, color1, color2); player.SetIntoVehicle(v.Handle, -1); - player.SendChatMessage("Maxspeed: + " +player.Vehicle.MaxSpeed + ""); + player.SendChatMessage("Maxspeed: + " + player.Vehicle.MaxSpeed + ""); } [Command("fv")] @@ -267,7 +267,7 @@ namespace reallife_gamemode.Server.Commands } target.GiveWeapon(wHash, ammo); - target.SendChatMessage("~b~Du hast von " +player.Name +" eine/n " + wHash + " mit einer Munition von " +ammo + " erhalten."); + 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."); } @@ -399,8 +399,8 @@ namespace reallife_gamemode.Server.Commands ChatService.ErrorMsg(player); return; } - target.SendChatMessage("~y~PM von "+ player.Name + ": " + msg +" "); - player.SendChatMessage("~y~PM an "+ target.Name + ": " + msg + " "); + target.SendChatMessage("~y~PM von " + player.Name + ": " + msg + " "); + player.SendChatMessage("~y~PM an " + target.Name + ": " + msg + " "); } [Command("takeweapon", "~m~Benutzung: ~s~/takeweapon [Spieler]")] @@ -445,9 +445,9 @@ namespace reallife_gamemode.Server.Commands foreach (var managedClient in peopleInRange) { managedClient.Health = hp; - managedClient.SendChatMessage("~b~Admin "+ player.Name + " hat im Radius von " + radius + " die HP auf " + hp + " gesetzt."); + managedClient.SendChatMessage("~b~Admin " + player.Name + " hat im Radius von " + radius + " die HP auf " + hp + " gesetzt."); } - player.SendChatMessage("~b~Das Leben von " + peopleInRange.Count + " Spielern wurde auf "+ hp + " gesetzt."); + player.SendChatMessage("~b~Das Leben von " + peopleInRange.Count + " Spielern wurde auf " + hp + " gesetzt."); } [Command("rsetarmor", "~m~Benutzung: ~s~/rsetarmor [Radius] (Armor)")] @@ -522,9 +522,9 @@ namespace reallife_gamemode.Server.Commands foreach (var managedClient in peopleInRange) { managedClient.GiveWeapon(wHash, munition); - managedClient.SendChatMessage("~b~Admin " +player.Name + " hat im Radius von " + radius + " eine/n " + weapon +" mit " + munition +" Munition vergeben."); + managedClient.SendChatMessage("~b~Admin " + player.Name + " hat im Radius von " + radius + " eine/n " + weapon + " mit " + munition + " Munition vergeben."); } - player.SendChatMessage("~b~Du hast " + peopleInRange.Count +" Spielern eine " + weapon + " mit " + munition + " Munition gegeben"); + player.SendChatMessage("~b~Du hast " + peopleInRange.Count + " Spielern eine " + weapon + " mit " + munition + " Munition gegeben"); } [Command("save", "~m~Benutzung: ~s~/save [Typ = ~g~Blip, ~r~Marker, Ped, Pickup, TextLabel, ~g~Vehicle")] @@ -549,14 +549,14 @@ namespace reallife_gamemode.Server.Commands if (player.IsInVehicle) { Vehicle vehicle = player.Vehicle; - SaveData.SaveVehicleData((VehicleHash) vehicle.Model, vehicle.Position, vehicle.Heading, vehicle.NumberPlate, + SaveData.SaveVehicleData((VehicleHash)vehicle.Model, vehicle.Position, vehicle.Heading, vehicle.NumberPlate, Convert.ToByte(vehicle.PrimaryColor), Convert.ToByte(vehicle.SecondaryColor), vehicle.Locked, vehicle.EngineStatus, Convert.ToByte(vehicle.Dimension)); } else player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!"); break; - + } - + } [Command("a", "~m~Benutzung: ~s~/a [Nachricht]")] @@ -569,7 +569,8 @@ namespace reallife_gamemode.Server.Commands } List playerlist = NAPI.Pools.GetAllPlayers(); - foreach (Client currentPlayer in playerlist) { + foreach (Client currentPlayer in playerlist) + { if (currentPlayer.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? false) { NAPI.Chat.SendChatMessageToPlayer(currentPlayer, "~r~Admin " + NAPI.Player.GetPlayerName(player) + "~w~: " + message); @@ -595,30 +596,30 @@ namespace reallife_gamemode.Server.Commands if (currentPlayer.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? false) { NAPI.Chat.SendChatMessageToPlayer(player, "~w~" + NAPI.Player.GetPlayerName(currentPlayer)); - } } } [Command("setweather", "~m~Benutzung: ~s~/setweather [WEATHER]")] public void CmdAdminSetweather(Client player, string weather) - { + { if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) { ChatService.NotAuthorized(player); return; } - + Weather weatherBefore = NAPI.World.GetWeather(); NAPI.World.SetWeather(weather); Weather weatherAfter = NAPI.World.GetWeather(); if (!weatherBefore.Equals(weatherAfter)) { - NAPI.Chat.SendChatMessageToPlayer(player, "~w~Weather changed to " + NAPI.World.GetWeather()); - } else + NAPI.Chat.SendChatMessageToPlayer(player, "~w~Wetter geändert: " + NAPI.World.GetWeather()); + } + else { - NAPI.Chat.SendChatMessageToPlayer(player, "~w~Unable to change weather"); + NAPI.Chat.SendChatMessageToPlayer(player, "~w~Wetter konnte nicht geändert werden"); } } @@ -630,7 +631,7 @@ namespace reallife_gamemode.Server.Commands ChatService.NotAuthorized(player); return; } - + Client target = ClientService.GetClientByName(targetname); if (target == null) { @@ -655,7 +656,7 @@ namespace reallife_gamemode.Server.Commands ChatService.PlayerNotFound(target); return; } - target.Freeze(false); + target.Freeze(false); } [Command("kick", "~m~Benutzung: ~s~/kick [Player] [Grund]")] @@ -689,11 +690,100 @@ namespace reallife_gamemode.Server.Commands ChatService.NotAuthorized(player); return; } - - for (int i=0; i<20; i++) + + 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; + } + + Vector3 playerPosition = new Vector3(player.Position.X, player.Position.Y, player.Position.Z + value); + player.Position = playerPosition; + } + + [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; + } + + Vector3 playerPosition = new Vector3(player.Position.X, player.Position.Y, player.Position.Z - value); + player.Position = playerPosition; + } + + [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); + player.Position = playerPosition; + + } + else if (playerHeading < 315 && playerHeading >= 225) + { + Vector3 playerPosition = new Vector3(player.Position.X, player.Position.Y - value, player.Position.Z); + player.Position = playerPosition; + } + else if (playerHeading >= 135 && playerHeading < 225) + { + Vector3 playerPosition = new Vector3(player.Position.X - value, player.Position.Y, player.Position.Z); + player.Position = playerPosition; + } + else if (playerHeading >= 45 && playerHeading < 135) + { + Vector3 playerPosition = new Vector3(player.Position.X, player.Position.Y + value, player.Position.Z); + player.Position = playerPosition; + } + } + + [Command("lt", "~m~Benutzung: ~s~/lt [Wert]")] + public void CmdAdminLt(Client player, int value = 5) + { + + float playerHeading = player.Heading; + + if (playerHeading < 45 || playerHeading >= 315) + { + Vector3 playerPosition = new Vector3(player.Position.X - value, player.Position.Y, player.Position.Z); + player.Position = playerPosition; + + } + else if (playerHeading < 315 && playerHeading >= 225) + { + Vector3 playerPosition = new Vector3(player.Position.X, player.Position.Y + value, player.Position.Z); + player.Position = playerPosition; + } + else if (playerHeading >= 135 && playerHeading < 225) + { + Vector3 playerPosition = new Vector3(player.Position.X + value, player.Position.Y, player.Position.Z); + player.Position = playerPosition; + } + else if (playerHeading >= 45 && playerHeading < 135) + { + Vector3 playerPosition = new Vector3(player.Position.X, player.Position.Y - value, player.Position.Z); + player.Position = playerPosition; + } + } } } From da9d76cb6eb54da14f0182d2c89761191a6a373b Mon Sep 17 00:00:00 2001 From: nahkampfaffe Date: Mon, 24 Sep 2018 22:39:34 +0200 Subject: [PATCH 05/16] fixed up down lt rt commands --- Server/Commands/Admin.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Server/Commands/Admin.cs b/Server/Commands/Admin.cs index b22c0daf..f0e0bc1b 100644 --- a/Server/Commands/Admin.cs +++ b/Server/Commands/Admin.cs @@ -713,6 +713,7 @@ namespace reallife_gamemode.Server.Commands [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); @@ -760,6 +761,11 @@ namespace reallife_gamemode.Server.Commands [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; From 0f837d5ed3e138e546e3f825231fbb40cebac50f Mon Sep 17 00:00:00 2001 From: xSprite Date: Mon, 24 Sep 2018 23:08:07 +0200 Subject: [PATCH 06/16] fix radius commands --- Server/Commands/Admin.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Server/Commands/Admin.cs b/Server/Commands/Admin.cs index 560d4bf6..15ae0b12 100644 --- a/Server/Commands/Admin.cs +++ b/Server/Commands/Admin.cs @@ -463,7 +463,7 @@ namespace reallife_gamemode.Server.Commands foreach (var managedClient in peopleInRange) { - managedClient.Health = Armor; + managedClient.Armor = Armor; managedClient.SendChatMessage("~b~Admin " + player.Name + " hat im Radius von " + radius + " die Rüstung auf " + Armor + " gesetzt."); } player.SendChatMessage("~b~Die Rüstung von " + peopleInRange.Count + " Spielern wurde auf " + Armor + " gesetzt."); @@ -483,8 +483,9 @@ namespace reallife_gamemode.Server.Commands return; } - NAPI.World.SetTime(hour, min, sec); - NAPI.Chat.SendChatMessageToAll("Serverzeit auf " + hour + ":" + min + ":" + sec + " gestellt"); + NAPI.Chat.SendChatMessageToAll("Serverzeit auf " + hour + ":" + min + ":" + sec + " gestellt"); + NAPI.World.SetTime(hour, min, sec); + return; } From 9f1fd1d19ab5795762a1ff805c915b64c01a3fda Mon Sep 17 00:00:00 2001 From: nahkampfaffe Date: Mon, 24 Sep 2018 23:09:37 +0200 Subject: [PATCH 07/16] one more admin command --- Server/Commands/Admin.cs | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/Server/Commands/Admin.cs b/Server/Commands/Admin.cs index f0e0bc1b..00f24afa 100644 --- a/Server/Commands/Admin.cs +++ b/Server/Commands/Admin.cs @@ -602,13 +602,13 @@ namespace reallife_gamemode.Server.Commands [Command("setweather", "~m~Benutzung: ~s~/setweather [WEATHER]")] public void CmdAdminSetweather(Client player, string weather) - { + { if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) { ChatService.NotAuthorized(player); return; } - + Weather weatherBefore = NAPI.World.GetWeather(); NAPI.World.SetWeather(weather); Weather weatherAfter = NAPI.World.GetWeather(); @@ -791,5 +791,24 @@ namespace reallife_gamemode.Server.Commands player.Position = playerPosition; } } + + [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) + { + ChatService.PlayerNotFound(target); + return; + } + player.SendChatMessage("IP von " + NAPI.Player.GetPlayerName(target) + ": " + target.Address); + + } } } From 87bf9c714c7cdfe3359cc679231ae1db3e23b5d8 Mon Sep 17 00:00:00 2001 From: nahkampfaffe Date: Mon, 24 Sep 2018 23:25:53 +0200 Subject: [PATCH 08/16] fixed commands up and dn --- Server/Commands/Admin.cs | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/Server/Commands/Admin.cs b/Server/Commands/Admin.cs index 00f24afa..68b4971d 100644 --- a/Server/Commands/Admin.cs +++ b/Server/Commands/Admin.cs @@ -705,23 +705,18 @@ namespace reallife_gamemode.Server.Commands ChatService.NotAuthorized(player); return; } - - Vector3 playerPosition = new Vector3(player.Position.X, player.Position.Y, player.Position.Z + value); - player.Position = playerPosition; + player.Vehicle.Position = new Vector3(player.Vehicle.Position.X, player.Vehicle.Position.Y, player.Vehicle.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; } - - Vector3 playerPosition = new Vector3(player.Position.X, player.Position.Y, player.Position.Z - value); - player.Position = playerPosition; + player.Vehicle.Position = new Vector3(player.Vehicle.Position.X, player.Vehicle.Position.Y, player.Vehicle.Position.Z - value); } [Command("rt", "~m~Benutzung: ~s~/rt [Wert]")] @@ -808,7 +803,6 @@ namespace reallife_gamemode.Server.Commands return; } player.SendChatMessage("IP von " + NAPI.Player.GetPlayerName(target) + ": " + target.Address); - } } } From c859d83f3536c8aa8a9f197675ddb0801544d3e0 Mon Sep 17 00:00:00 2001 From: nahkampfaffe Date: Mon, 24 Sep 2018 23:30:15 +0200 Subject: [PATCH 09/16] again fix --- Server/Commands/Admin.cs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/Server/Commands/Admin.cs b/Server/Commands/Admin.cs index 9ae28a0f..605b84be 100644 --- a/Server/Commands/Admin.cs +++ b/Server/Commands/Admin.cs @@ -706,7 +706,15 @@ namespace reallife_gamemode.Server.Commands ChatService.NotAuthorized(player); return; } - player.Vehicle.Position = new Vector3(player.Vehicle.Position.X, player.Vehicle.Position.Y, player.Vehicle.Position.Z + value); + + 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]")] @@ -717,7 +725,14 @@ namespace reallife_gamemode.Server.Commands ChatService.NotAuthorized(player); return; } - player.Vehicle.Position = new Vector3(player.Vehicle.Position.X, player.Vehicle.Position.Y, player.Vehicle.Position.Z - value); + + 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]")] From ad8bfe7df741a5bbf09d2af924f043f9ec362d7b Mon Sep 17 00:00:00 2001 From: xSprite Date: Tue, 25 Sep 2018 05:49:11 +0200 Subject: [PATCH 10/16] fix PlayerNotFound --- Server/Commands/Admin.cs | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/Server/Commands/Admin.cs b/Server/Commands/Admin.cs index 605b84be..4c34ff0a 100644 --- a/Server/Commands/Admin.cs +++ b/Server/Commands/Admin.cs @@ -9,11 +9,7 @@ using reallife_gamemode.Server.Util; /** * @overview Life of German Reallife - Admin Commands (Admin.cs) -<<<<<<< HEAD -* @author VegaZ, hydrant, balbo -======= -* @author VegaZ, hydrant, xSprite ->>>>>>> 5e0e0d82f2d05dda2954836a69347d4433839f85 +* @author VegaZ, hydrant, xSprite, balbo * @copyright (c) 2008 - 2018 Life of German */ @@ -636,7 +632,7 @@ namespace reallife_gamemode.Server.Commands Client target = ClientService.GetClientByName(targetname); if (target == null) { - ChatService.PlayerNotFound(target); + ChatService.PlayerNotFound(player); return; } target.Freeze(true); @@ -654,7 +650,7 @@ namespace reallife_gamemode.Server.Commands Client target = ClientService.GetClientByName(targetname); if (target == null) { - ChatService.PlayerNotFound(target); + ChatService.PlayerNotFound(player); return; } target.Freeze(false); @@ -672,7 +668,7 @@ namespace reallife_gamemode.Server.Commands Client target = ClientService.GetClientByName(targetname); if (target == null) { - ChatService.PlayerNotFound(target); + ChatService.PlayerNotFound(player); return; } string targetPlayername = NAPI.Player.GetPlayerName(target); @@ -815,7 +811,7 @@ namespace reallife_gamemode.Server.Commands Client target = ClientService.GetClientByName(targetname); if (target == null) { - ChatService.PlayerNotFound(target); + ChatService.PlayerNotFound(player); return; } player.SendChatMessage("IP von " + NAPI.Player.GetPlayerName(target) + ": " + target.Address); From 881c1ec29ac3709b1629dee7aec2e4bb047166a9 Mon Sep 17 00:00:00 2001 From: xSprite Date: Tue, 25 Sep 2018 08:15:30 +0200 Subject: [PATCH 11/16] Add Connect-Event msg --- Server/Events/Connect.cs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Server/Events/Connect.cs b/Server/Events/Connect.cs index 69e1552b..a2916f66 100644 --- a/Server/Events/Connect.cs +++ b/Server/Events/Connect.cs @@ -6,10 +6,13 @@ using GTANetworkAPI; using Microsoft.EntityFrameworkCore; using reallife_gamemode.Model; using reallife_gamemode.Server.Entities; +using reallife_gamemode.Server.Extensions; +using reallife_gamemode.Server.Services; +using reallife_gamemode.Server.Util; /** * @overview Life of German Reallife - Event Login (Login.cs) -* @author VegaZ +* @author VegaZ, xSprite * @copyright (c) 2008 - 2018 Life of German */ @@ -23,7 +26,16 @@ namespace reallife_gamemode.Server.Events player.SetData("isLoggedIn", false); player.Position = new Vector3(-1883.736, -781.4911, -10); player.FreezePosition = true; + string name = player.Name; + List playerlist = NAPI.Pools.GetAllPlayers(); + foreach (Client currentPlayer in playerlist) + { + if (currentPlayer.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? false) + { + player.SendChatMessage("~m~*** "+player.Name+"["+player.SocialClubName+"] [ID:"+player.Handle.Value+"] ("+player.Address+")"); + } + + } } - } } From f1300d3ec1067e86b3b5c3bed0a9245c45bd68ce Mon Sep 17 00:00:00 2001 From: xSprite Date: Tue, 25 Sep 2018 08:29:43 +0200 Subject: [PATCH 12/16] Fix time command --- Server/Commands/Admin.cs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Server/Commands/Admin.cs b/Server/Commands/Admin.cs index 4c34ff0a..b4a0e348 100644 --- a/Server/Commands/Admin.cs +++ b/Server/Commands/Admin.cs @@ -482,10 +482,22 @@ namespace reallife_gamemode.Server.Commands ChatService.NotAuthorized(player); return; } - - NAPI.Chat.SendChatMessageToAll("Serverzeit auf " + hour + ":" + min + ":" + sec + " gestellt"); + if (min == 0) + { + NAPI.Chat.SendChatMessageToAll("Serverzeit wurde auf "+hour+":00:00 gesetzt!"); NAPI.World.SetTime(hour, min, sec); return; + } + if (sec == 0) + { + NAPI.Chat.SendChatMessageToAll("Serverzeit wurde auf " + hour + ":"+min+":00 gesetzt!"); + NAPI.World.SetTime(hour, min, sec); + return; + } + + NAPI.Chat.SendChatMessageToAll("Serverzeit wurde auf " + hour + ":" + min + ":"+sec+" gesetzt!"); + NAPI.World.SetTime(hour, min, sec); + return; } [Command("val")] From 54f3c89ec77a5f2a98635d747edcbd20bf1d1d4e Mon Sep 17 00:00:00 2001 From: sprayzcs <33363043+sprayzcs@users.noreply.github.com> Date: Tue, 25 Sep 2018 10:43:34 +0200 Subject: [PATCH 13/16] Finally fixed /time --- Server/Commands/Admin.cs | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/Server/Commands/Admin.cs b/Server/Commands/Admin.cs index b4a0e348..3f88f17a 100644 --- a/Server/Commands/Admin.cs +++ b/Server/Commands/Admin.cs @@ -482,20 +482,10 @@ namespace reallife_gamemode.Server.Commands ChatService.NotAuthorized(player); return; } - if (min == 0) - { - NAPI.Chat.SendChatMessageToAll("Serverzeit wurde auf "+hour+":00:00 gesetzt!"); - NAPI.World.SetTime(hour, min, sec); - return; - } - if (sec == 0) - { - NAPI.Chat.SendChatMessageToAll("Serverzeit wurde auf " + hour + ":"+min+":00 gesetzt!"); - NAPI.World.SetTime(hour, min, sec); - return; - } - NAPI.Chat.SendChatMessageToAll("Serverzeit wurde auf " + hour + ":" + min + ":"+sec+" gesetzt!"); + string broadcastMsg = $"Serverzeit wurde auf {hour:D2}:{min:D2}:{sec:D2} gesetzt!"; + + NAPI.Chat.SendChatMessageToAll(broadcastMsg); NAPI.World.SetTime(hour, min, sec); return; From fa689affc72afd2a8d2f5d21859c55beaabf52e2 Mon Sep 17 00:00:00 2001 From: sprayzcs <33363043+sprayzcs@users.noreply.github.com> Date: Tue, 25 Sep 2018 10:57:10 +0200 Subject: [PATCH 14/16] Changed ClientService.GetClientFromName() to case-insensitive names --- Server/Services/ClientService.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Server/Services/ClientService.cs b/Server/Services/ClientService.cs index 6959b3fa..f5459efa 100644 --- a/Server/Services/ClientService.cs +++ b/Server/Services/ClientService.cs @@ -21,13 +21,14 @@ namespace reallife_gamemode.Server.Services * Gibt "null" zurück, falls kein Client gefunden wurde */ Client toReturn = null; + name = name.ToLower(); List playerList = NAPI.Pools.GetAllPlayers(); - toReturn = playerList.Find(p => p.Name == name); + toReturn = playerList.Find(p => p.Name.ToLower() == name); if(toReturn == null) { - toReturn = playerList.Find(p => p.Name.StartsWith(name)); + toReturn = playerList.Find(p => p.Name.ToLower().StartsWith(name)); } return toReturn; From 9048602034c582852a70057a6539f0648221f31b Mon Sep 17 00:00:00 2001 From: xSprite Date: Tue, 25 Sep 2018 21:13:18 +0200 Subject: [PATCH 15/16] Add Spectate command, Connectmsg only if isLoggedIn 1 --- Server/Commands/Admin.cs | 36 ++++++++++++++++++++++++++++++++++++ Server/Events/Connect.cs | 7 +++++-- Server/Events/Login.cs | 1 + 3 files changed, 42 insertions(+), 2 deletions(-) diff --git a/Server/Commands/Admin.cs b/Server/Commands/Admin.cs index b4a0e348..c9a1301b 100644 --- a/Server/Commands/Admin.cs +++ b/Server/Commands/Admin.cs @@ -811,6 +811,42 @@ namespace reallife_gamemode.Server.Commands } } + + [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) + { + 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) { diff --git a/Server/Events/Connect.cs b/Server/Events/Connect.cs index a2916f66..52164028 100644 --- a/Server/Events/Connect.cs +++ b/Server/Events/Connect.cs @@ -32,10 +32,13 @@ namespace reallife_gamemode.Server.Events { if (currentPlayer.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? false) { - player.SendChatMessage("~m~*** "+player.Name+"["+player.SocialClubName+"] [ID:"+player.Handle.Value+"] ("+player.Address+")"); + if (player.GetData("isLoggedIn")) + { + player.SendChatMessage("~m~*** "+player.Name+"["+player.SocialClubName+"] [ID:"+player.Handle.Value+"] ("+player.Address+")"); + } } } } } -} +} \ No newline at end of file diff --git a/Server/Events/Login.cs b/Server/Events/Login.cs index a6534280..8006307e 100644 --- a/Server/Events/Login.cs +++ b/Server/Events/Login.cs @@ -43,6 +43,7 @@ namespace reallife_gamemode.Server.Events NAPI.Player.SpawnPlayer(player, Main.DEFAULT_SPAWN_POSITION, Main.DEFAULT_SPAWN_HEADING); player.SetData("isLoggedIn", true); + player.SetData("spec", true); player.TriggerEvent("draw"); } } From 93818ed28ddf5427bc20581af533e442290ed7e0 Mon Sep 17 00:00:00 2001 From: hydrant Date: Wed, 26 Sep 2018 10:23:11 +0200 Subject: [PATCH 16/16] Add CI configuration --- .gitlab-ci.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000..58db0cf3 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,15 @@ +#stages: +# - build + +#before_script: +# - "dotnet restore" + +#build: +# stage: build +# only: +# - develop +# script: +# - "dotnet build" +# - "cp bin/Debug/netcoreapp2.0/* /ragemp_srv/bridge/resources/reallife-gamemode" +# - "rm -rf /ragemp_srv/client_packages/*" +# - "cp -r Client/* /ragemp_srv/client_packages"