changed acmd levels

This commit is contained in:
raviatex
2020-01-14 17:00:12 +01:00
parent e42502b278
commit 60be340178

View File

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