fix server crash when player with job quits

This commit is contained in:
hydrant
2019-06-23 20:31:36 +02:00
parent 6caee0f2ec
commit 8ab086f011
3 changed files with 11 additions and 4 deletions

View File

@@ -541,8 +541,10 @@ export default function vehicleSync() {
//Make doors breakable again //Make doors breakable again
setTimeout(() => { setTimeout(() => {
for (x = 0; x < 8; x++) { for (x = 0; x < 8; x++) {
if (entity) {
entity.setDoorBreakable(x, true); entity.setDoorBreakable(x, true);
} }
}
}, 1500); }, 1500);
} }
}); });

View File

@@ -37,7 +37,7 @@ namespace ReallifeGamemode.Server.Events
} }
JobBase job = JobManager.GetJob(player.GetUser().JobId ?? -1); 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()) using (var saveUser = new DatabaseContext())
{ {

View File

@@ -29,6 +29,7 @@ namespace ReallifeGamemode.Server.Job
public void StartJob(Client player) public void StartJob(Client player)
{ {
if (_inJob.Contains(player)) return;
_inJob.Add(player); _inJob.Add(player);
ChatService.SendMessage(player, $"~y~[JOB]~s~ Du hast deinen Job ~o~{this.Name}~s~ gestartet."); 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); JobStart?.Invoke(player);
} }
public void StopJob(Client player) public void StopJob(Client player, bool quit = false)
{ {
if (!_inJob.Contains(player)) return;
_inJob.Remove(player); _inJob.Remove(player);
if (quit)
{
ChatService.SendMessage(player, $"~y~[JOB]~s~ Du hast deinen Job ~o~{this.Name}~s~ beendet."); ChatService.SendMessage(player, $"~y~[JOB]~s~ Du hast deinen Job ~o~{this.Name}~s~ beendet.");
}
JobStop?.Invoke(player); JobStop?.Invoke(player);
} }