add option to stop job, enable engine of job vehicle only when player is in job
This commit is contained in:
@@ -4,6 +4,7 @@ using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Job;
|
||||
using ReallifeGamemode.Server.Models;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@@ -46,13 +47,13 @@ namespace ReallifeGamemode.Server.Managers
|
||||
[RemoteEvent("CLIENT:JobCenter_CancelJob")]
|
||||
public void CancelJobEvent(Client player)
|
||||
{
|
||||
using(var dbContext = new DatabaseContext())
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
User u = player.GetUser(dbContext);
|
||||
|
||||
if (u == null) return;
|
||||
|
||||
if(u.JobId == null)
|
||||
if (u.JobId == null)
|
||||
{
|
||||
ChatService.Error(player, "Du hast momentan keinen Job, den du kündigen könntest.");
|
||||
return;
|
||||
@@ -83,7 +84,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
|
||||
JobBase job = JobManager.GetJob(jobId);
|
||||
|
||||
if(job == null)
|
||||
if (job == null)
|
||||
{
|
||||
ChatService.Error(player, "Bei der Job-Annahme ist ein Fehler aufgetretet: Dieser Job wurde nicht gefunden");
|
||||
return;
|
||||
@@ -118,13 +119,60 @@ namespace ReallifeGamemode.Server.Managers
|
||||
|
||||
JobBase job = GetJob(u.JobId.Value);
|
||||
|
||||
if(job.GetUsersInJob().Contains(player))
|
||||
if (job.GetUsersInJob().Contains(player))
|
||||
{
|
||||
ChatService.Error(player, "Du bist schon in deinem Job aktiv");
|
||||
return;
|
||||
}
|
||||
|
||||
if (job.NeedVehicleToStart && !job.GetJobVehicles().Any(v => v.Vehicle.Handle.Value == player.Vehicle?.Handle.Value))
|
||||
{
|
||||
ChatService.Error(player, "Zum Start dieses Jobs musst du in einem Jobfahrzeug sein");
|
||||
return;
|
||||
}
|
||||
|
||||
job.StartJob(player);
|
||||
}
|
||||
|
||||
[RemoteEvent("CLIENT:Job_StopJob")]
|
||||
public void StopJob(Client player)
|
||||
{
|
||||
User u = player.GetUser();
|
||||
|
||||
if (u.JobId == null) return;
|
||||
|
||||
JobBase job = GetJob(u.JobId.Value);
|
||||
|
||||
if (!job.GetUsersInJob().Contains(player))
|
||||
{
|
||||
ChatService.Error(player, "Du führst deinen Job momentan nicht aus");
|
||||
return;
|
||||
}
|
||||
|
||||
if (job.NeedVehicleToStart && player.Vehicle != null)
|
||||
{
|
||||
VehicleStreaming.SetEngineState(player.Vehicle, false);
|
||||
VehicleStreaming.SetLockStatus(player.Vehicle, false);
|
||||
player.WarpOutOfVehicle();
|
||||
}
|
||||
|
||||
job.StopJob(player);
|
||||
}
|
||||
|
||||
[ServerEvent(Event.PlayerExitVehicle)]
|
||||
public void JobPlayerExitVehicle(Client player, Vehicle veh)
|
||||
{
|
||||
User u = player.GetUser();
|
||||
|
||||
if (u.JobId == null) return;
|
||||
|
||||
JobBase job = GetJob(u.JobId.Value);
|
||||
|
||||
if (job.GetUsersInJob().Contains(player) && job.NeedVehicleToStart)
|
||||
{
|
||||
job.StopJob(player);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user