diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index 733ede66..e7255a76 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -23,7 +23,7 @@ using ReallifeGamemode.Services; /** * @overview Life of German Reallife - Admin Commands (Admin.cs) -* @author VegaZ, hydrant, xSprite, balbo, kookroach, aviate +* @author VegaZ, hydrant, xSprite, balbo, kookroach, aviate, MichaPlays * @copyright (c) 2008 - 2019 Life of German */ @@ -31,7 +31,7 @@ namespace ReallifeGamemode.Server.Commands { public class AdminCommands : Script { - + #region Todo [Command("eat", "~m~Benutzung: ~s~/eat [Item]")] public void CmdAdminEat(Client player, string item) @@ -126,8 +126,54 @@ namespace ReallifeGamemode.Server.Commands } #endregion + #region ahelp + [Command("ahelp", "~m~Benutzung: ~s~/ahelp")] + public void CmdAdminHelp(Client player) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.MAPPING) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + else + { + switch (player.GetUser().AdminLevel) + { + case AdminLevel.MAPPING: + ChatService.SendMessage(player, "~b~ " + "/team, /tc, /position"); + break; + case AdminLevel.ENTWICKLUNG: + ChatService.SendMessage(player, "~b~ " + "/team, /tc, /position"); + break; + case AdminLevel.SUPPORTER: + ChatService.SendMessage(player, "~b~ " + "/tsupport, /showtickets, /rc, /rc quit, /o, /pm, /dimension, /to, /gh, /clearchat, /skick"); + break; + case AdminLevel.ADMIN: + ChatService.SendMessage(player, "~b~ " + "/a, /countdown, /freeze, /unfreeze, /mark, /gotmark, /gotox, /up, /setdimension, /spec, /warn, /ip, /kick, /ban /unban, /slap, /takeweapon, /tov, /ghv, /factionlist, /businesslist, /joblist"); + break; + case AdminLevel.ADMIN2: + ChatService.SendMessage(player, "~b~ " + "/sethp, /setarmor, /arevive, /aunjail, /aclear, /clothes, /props,/aclear"); + break; + case AdminLevel.ADMIN3: + ChatService.SendMessage(player, "~b~ " + "/adice, /settime, /setweather, /rsetarmor, /rgiveweapon, /giveweapon, /veh, /fv, /vfix, /vdestroy, /vlivery, /vcolor, /vehsmoke, /aneon, /mod, /showtuningmenu, /rvdestroy, /vsethp"); + break; + case AdminLevel.HEADADMIN: + ChatService.SendMessage(player, "~b~ " + "/aspeed, /set, /setmoney, /givemoney, /sethandmoney, /givehandmoney, /paydaydrop, /setwage, /freekh, /ainvite, /makeleader, /managefactionranks, /setweaponrack, /rmweaponrack, /setweaponrank, /giveitem, /inventory, /save, /remove, /house, /setbusinessbankbalance, /reloaddors, /interior, /editmode, /setbliptemplate, /ipl, /load, /quicksavemode, /createturf, /setturf, /cancleturf, /reloadturfs, /deleteturfs, /setturfpoint"); + break; + case AdminLevel.PROJEKTLEITUNG: + ChatService.SendMessage(player, "~b~ " + "/makeadmin, /whitelist, /blind"); + break; + } + } + + } + + + + #endregion + #region Mapping / Entwicklung - + [Command("team", "~m~Benutzung: ~s~/team")] public void CmdAdminTeam(Client player) { @@ -175,7 +221,50 @@ namespace ReallifeGamemode.Server.Commands #endregion #region Support + [Command("tsupport", "~m~Benutzung: ~s~/tsupport", Alias = "ts")] + public void tsup(Client player) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + if (!GlobalHelper.tsupAdmins.Contains(player)) + { + GlobalHelper.tsupAdmins.Add(player); + player.SetSharedData("blipColor", 30); + ChatService.SendMessage(player, "~g~ ** " + "Du befindest dich im T-Support"); + } + else + { + GlobalHelper.tsupAdmins.Remove(player); + ChatService.SendMessage(player, "!{#ee4d2e}** " + "Du befindest dich nicht mehr im T-Support"); + + + + using (var dbContext = new DatabaseContext()) + { + User targetUser = player.GetUser(dbContext); + switch (targetUser.FactionId) + { + case null: + player.SetSharedData("blipColor", 0); + break; + case 8: + player.SetSharedData("blipColor", 83); + break; + case 7: + player.SetSharedData("blipColor", 52); + break; + case 4: + player.SetSharedData("blipColor", 5); + break; + } + } + } + } + [Command("aduty", "~m~Benutzung: ~s~/aduty")] public void CmdAduty(Client player) { @@ -188,7 +277,7 @@ namespace ReallifeGamemode.Server.Commands if (!GlobalHelper.DutyAdmins.Contains(player)) { GlobalHelper.DutyAdmins.Add(player); - ChatService.Broadcast("!{#ee4d2e}** " + player.Name + " hat sich zum Support angemeldet"); + ChatService.Broadcast("~g~[SUPPORT] " + player.Name + " hat sich zum Support angemeldet"); player.TriggerEvent("toggleADutyMode", true); @@ -197,7 +286,7 @@ namespace ReallifeGamemode.Server.Commands else { GlobalHelper.DutyAdmins.Remove(player); - ChatService.Broadcast("!{#ee4d2e}** " + player.Name + " hat sich vom Support abgemeldet"); + ChatService.Broadcast("!{#ee4d2e}[SUPPORT] " + player.Name + " hat sich vom Support abgemeldet"); player.TriggerEvent("toggleADutyMode", false); } @@ -1098,6 +1187,55 @@ namespace ReallifeGamemode.Server.Commands ChatService.SendMessage(player, "~b~Du hast die Rüstung von " + target.Name + " auf " + armor + " gesetzt."); } + [Command("aclear", "~m~Benutzung: ~s~/aclear [Name / ID] [Grund]", GreedyArg = true)] + public void CmdFactionClear(Client player, string nameOrId, string reason) + { + + User user = player.GetUser(); + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN2) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + Client target = ClientService.GetClientByNameOrId(nameOrId); + if (target == null || !target.IsLoggedIn()) + { + ChatService.PlayerNotFound(player); + return; + } + + using (var dbContext = new DatabaseContext()) + { + User targetUser = target.GetUser(dbContext); + if (targetUser.Wanteds == 0) + { + ChatService.ErrorMessage(player, "Der Spieler hat keine Wanteds"); + return; + } + ChatService.SendMessage(target, "!{#8181E9}Deine Akte wurde vom Admin " + player.Name + " gelöscht. Grund: " + reason); + ChatService.BroadcastFaction("!{#8181E9}HQ: Die Akte von " + target.Name + " wurde vom Admin " + player.Name + " gelöscht. Grund: " + reason + ".", new List() { 1, 3 }); + switch (targetUser.FactionId) + { + case null: + target.SetSharedData("blipColor", 0); + break; + case 8: + target.SetSharedData("blipColor", 83); + break; + case 7: + target.SetSharedData("blipColor", 52); + break; + case 4: + target.SetSharedData("blipColor", 5); + break; + } + target.TriggerEvent("jailTime", 0); + + targetUser.Wanteds = 0; + dbContext.SaveChanges(); + } + } #endregion #region ALevel3 diff --git a/ReallifeGamemode.Server/Util/GlobalHelper.cs b/ReallifeGamemode.Server/Util/GlobalHelper.cs index 0907152e..0d6e053c 100644 --- a/ReallifeGamemode.Server/Util/GlobalHelper.cs +++ b/ReallifeGamemode.Server/Util/GlobalHelper.cs @@ -9,6 +9,7 @@ namespace ReallifeGamemode.Server.Util public static class GlobalHelper { public static List DutyAdmins = new List(); + public static List tsupAdmins = new List(); public static Dictionary CustomJoinMessages = new Dictionary {