diff --git a/Server/Managers/DoorManager.cs b/Server/Managers/DoorManager.cs index f443e374..bee1cac8 100644 --- a/Server/Managers/DoorManager.cs +++ b/Server/Managers/DoorManager.cs @@ -6,6 +6,7 @@ using GTANetworkAPI; using reallife_gamemode.Model; using reallife_gamemode.Server.Entities; using reallife_gamemode.Server.Extensions; +using reallife_gamemode.Server.Util; /** * @overview Life of German Reallife - Managers BankManager (BankManager.cs) * @author VegaZ @@ -28,64 +29,21 @@ namespace reallife_gamemode.Server.Managers foreach (Door d in NearDoors) { Door currentDoor = saveDoor.Doors.FirstOrDefault(c => c.Id == d.Id); - if (d.Locked == true) + + if(!user.IsAdmin(AdminLevel.ADMIN) && (d.FactionId != user.FactionId || d.FactionId == null)) { - if (d.FactionId == null) - { - if (user.AdminLevel >= Util.AdminLevel.ADMIN) - { - player.SendNotification(d.Name + " ~g~aufgeschlossen.", false); - NAPI.Pools.GetAllPlayers().ForEach(p => p.TriggerEvent("changeDoorState", d.Model, d.X, d.Y, d.Z, 0, 0.0f, 0.0f, 0.0f)); - currentDoor.Locked = false; - } - else - { - player.SendNotification("~r~Du hast kein Recht diese T\u00fcr aufzuschlie\u00dfen!"); - } - } - else - { - if (d.FactionId == user.FactionId) - { - player.SendNotification(d.Name + " ~g~aufgeschlossen.", false); - NAPI.Pools.GetAllPlayers().ForEach(p => p.TriggerEvent("changeDoorState", d.Model, d.X, d.Y, d.Z, 0, 0.0f, 0.0f, 0.0f)); - currentDoor.Locked = false; - } - else - { - player.SendNotification("~r~Du hast kein Recht diese T\u00fcr aufzuschlie\u00dfen!"); - } - } - } - else - { - if (d.FactionId == null) - { - if (user.AdminLevel >= Util.AdminLevel.ADMIN) - { - player.SendNotification(d.Name + " ~r~abgeschlossen.", false); - NAPI.Pools.GetAllPlayers().ForEach(p => p.TriggerEvent("changeDoorState", d.Model, d.X, d.Y, d.Z, 1, 0.0f, 0.0f, 0.0f)); - currentDoor.Locked = true; - } - else - { - player.SendNotification("~r~Du hast kein Recht diese T\u00fcr abzuschlie\u00dfen!"); - } - } - else - { - if (d.FactionId == user.FactionId) - { - player.SendNotification(d.Name + " ~r~abgeschlossen.", false); - NAPI.Pools.GetAllPlayers().ForEach(p => p.TriggerEvent("changeDoorState", d.Model, d.X, d.Y, d.Z, 1, 0.0f, 0.0f, 0.0f)); - currentDoor.Locked = true; - } - else - { - player.SendNotification("~r~Du hast kein Recht diese T\u00fcr abzuschlie\u00dfen!"); - } - } + string lockState = "~r~Du hast kein Recht diese T\u00fcr " + (d.Locked == true ? "auf" : "ab") + "zuschlie\u00dfen!"; + player.SendNotification(lockState, false); + continue; } + + currentDoor.Locked = !currentDoor.Locked; + + string notStr = d.Name + " " + (d.Locked == false ? "auf" : "ab") + "geschlossen"; + + player.SendNotification(notStr, false); + + NAPI.Pools.GetAllPlayers().ForEach(p => p.TriggerEvent("changeDoorState", d.Model, d.X, d.Y, d.Z, (currentDoor.Locked ? 1 : 0), 0.0f, 0.0f, 0.0f)); } saveDoor.SaveChanges(); }