public async Task OnPlayerDeath(User player, IEntity killer, UInt32 reason) { if (player.paintballArena == 0) { await Task.Delay(120000); player.Spawn(new Position(359f, -594, 28.6f), 100); player.Health = 200; player.Armor = 200; } else { PaintballHandler.HandleDeath(player); } return; }
public Task onPlayerDisconnect(User player, string reason) { var dbChar = Main.database.CharacterCollection.AsQueryable().FirstOrDefault(c => c.ownerObjId == player.uid); if (dbChar == null) { return(Task.CompletedTask); } foreach (User p in Alt.GetAllPlayers().Where(x => player.Position.IsInRange(x.Position, 20f))) { NotifyHandler.SendNotification(p, $"Anti-Offlineflucht {dbChar.firstName} {dbChar.lastName} ist disconnected! Grund: {reason}"); Console.WriteLine("Disconnect Reason: " + reason); } //save position if (player.paintballArena == 0) { dbChar.pos_x = player.Position.X; dbChar.pos_y = player.Position.Y; dbChar.pos_z = player.Position.Z; dbChar.health = player.Health; dbChar.armor = player.Armor; dbChar.isOnline = false; } if (player.paintballArena != 0) { PaintballHandler.HandleDisconnect(player); } Main.database.CharacterCollection.ReplaceOne(x => x.ownerObjId == player.uid, dbChar); return(Task.CompletedTask); }