95 lines
4.2 KiB
C#
95 lines
4.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using GTANetworkAPI;
|
|
using reallife_gamemode.Model;
|
|
using reallife_gamemode.Server.Entities;
|
|
using reallife_gamemode.Server.Extensions;
|
|
/**
|
|
* @overview Life of German Reallife - Managers BankManager (BankManager.cs)
|
|
* @author VegaZ
|
|
* @copyright (c) 2008 - 2018 Life of German
|
|
*/
|
|
|
|
namespace reallife_gamemode.Server.Managers
|
|
{
|
|
public class DoorManager : Script
|
|
{
|
|
[RemoteEvent("ChangeDoorState")]
|
|
public void ChangeDoorState(Client player)
|
|
{
|
|
List<Door> NearDoors = new List<Door>();
|
|
var user = player.GetUser();
|
|
|
|
using (var saveDoor = new DatabaseContext())
|
|
{
|
|
NearDoors = saveDoor.Doors.ToList().FindAll(d => new Vector3(d.X, d.Y, d.Z).DistanceTo(player.Position) <= 2);
|
|
foreach (Door d in NearDoors)
|
|
{
|
|
Door currentDoor = saveDoor.Doors.FirstOrDefault(c => c.Id == d.Id);
|
|
if (d.Locked == true)
|
|
{
|
|
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!");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
saveDoor.SaveChanges();
|
|
}
|
|
}
|
|
}
|
|
}
|