Simplified doormanager

This commit is contained in:
hydrant
2018-11-02 22:54:27 +01:00
parent 82dac7481b
commit 8dd87b2505

View File

@@ -6,6 +6,7 @@ using GTANetworkAPI;
using reallife_gamemode.Model; using reallife_gamemode.Model;
using reallife_gamemode.Server.Entities; using reallife_gamemode.Server.Entities;
using reallife_gamemode.Server.Extensions; using reallife_gamemode.Server.Extensions;
using reallife_gamemode.Server.Util;
/** /**
* @overview Life of German Reallife - Managers BankManager (BankManager.cs) * @overview Life of German Reallife - Managers BankManager (BankManager.cs)
* @author VegaZ * @author VegaZ
@@ -28,64 +29,21 @@ namespace reallife_gamemode.Server.Managers
foreach (Door d in NearDoors) foreach (Door d in NearDoors)
{ {
Door currentDoor = saveDoor.Doors.FirstOrDefault(c => c.Id == d.Id); 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) string lockState = "~r~Du hast kein Recht diese T\u00fcr " + (d.Locked == true ? "auf" : "ab") + "zuschlie\u00dfen!";
{ player.SendNotification(lockState, false);
if (user.AdminLevel >= Util.AdminLevel.ADMIN) continue;
{
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!");
}
}
} }
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(); saveDoor.SaveChanges();
} }