diff --git a/ReallifeGamemode.Client/vehiclesync/vehiclesync.ts b/ReallifeGamemode.Client/vehiclesync/vehiclesync.ts index 2236355c..e263dae0 100644 --- a/ReallifeGamemode.Client/vehiclesync/vehiclesync.ts +++ b/ReallifeGamemode.Client/vehiclesync/vehiclesync.ts @@ -541,7 +541,9 @@ export default function vehicleSync() { //Make doors breakable again setTimeout(() => { for (x = 0; x < 8; x++) { - entity.setDoorBreakable(x, true); + if (entity) { + entity.setDoorBreakable(x, true); + } } }, 1500); } diff --git a/ReallifeGamemode.Server/Events/Disconnect.cs b/ReallifeGamemode.Server/Events/Disconnect.cs index 4674f19d..709b2abe 100644 --- a/ReallifeGamemode.Server/Events/Disconnect.cs +++ b/ReallifeGamemode.Server/Events/Disconnect.cs @@ -37,7 +37,7 @@ namespace ReallifeGamemode.Server.Events } JobBase job = JobManager.GetJob(player.GetUser().JobId ?? -1); - if (job != null) job.StopJob(player); + if (job != null) job.StopJob(player, true); using (var saveUser = new DatabaseContext()) { diff --git a/ReallifeGamemode.Server/Job/JobBase.cs b/ReallifeGamemode.Server/Job/JobBase.cs index c171b6f7..c952e9cd 100644 --- a/ReallifeGamemode.Server/Job/JobBase.cs +++ b/ReallifeGamemode.Server/Job/JobBase.cs @@ -29,6 +29,7 @@ namespace ReallifeGamemode.Server.Job public void StartJob(Client player) { + if (_inJob.Contains(player)) return; _inJob.Add(player); ChatService.SendMessage(player, $"~y~[JOB]~s~ Du hast deinen Job ~o~{this.Name}~s~ gestartet."); @@ -36,11 +37,15 @@ namespace ReallifeGamemode.Server.Job JobStart?.Invoke(player); } - public void StopJob(Client player) + public void StopJob(Client player, bool quit = false) { + if (!_inJob.Contains(player)) return; _inJob.Remove(player); - ChatService.SendMessage(player, $"~y~[JOB]~s~ Du hast deinen Job ~o~{this.Name}~s~ beendet."); + if (quit) + { + ChatService.SendMessage(player, $"~y~[JOB]~s~ Du hast deinen Job ~o~{this.Name}~s~ beendet."); + } JobStop?.Invoke(player); }