/// <inheritdoc/> public void HandlePacket(Player player, Span <byte> packet) { if (packet.Length < EnterGateRequest.Length) { return; } EnterGateRequest request = packet; var gateNumber = request.GateNumber; if (gateNumber == 0) { this.teleportAction.TryTeleportWithSkill(player, new Point(request.TeleportTargetX, request.TeleportTargetY)); return; } var gate = player.SelectedCharacter?.CurrentMap?.EnterGates.FirstOrDefault(g => g.Number == gateNumber); if (gate is null) { player.Logger.LogWarning("Gate {0} not found in current map {1}", gateNumber, player.SelectedCharacter?.CurrentMap); return; } this.warpAction.EnterGate(player, gate); }
/// <inheritdoc/> public void HandlePacket(Player player, Span <byte> packet) { if (packet.Length < EnterGateRequest.Length) { return; } EnterGateRequest request = packet; var gateNumber = request.GateNumber; EnterGate gate = player.SelectedCharacter.CurrentMap.EnterGates.FirstOrDefault(g => g.Number == gateNumber); if (gate == null) { player.Logger.LogWarning("Gate {0} not found in current map {1}", gateNumber, player.SelectedCharacter.CurrentMap); return; } this.warpAction.EnterGate(player, gate); }
/// <inheritdoc/> public void HandlePacket(Player player, Span <byte> packet) { if (packet.Length < 8) { return; } EnterGateRequest request = packet; var gateNumber = request.GateNumber; EnterGate gate = player.SelectedCharacter.CurrentMap.EnterGates.FirstOrDefault(g => NumberConversionExtensions.ToUnsigned(g.Number) == gateNumber); if (gate == null) { Logger.WarnFormat("Gate {0} not found in current map {1}", gateNumber, player.SelectedCharacter.CurrentMap); return; } this.warpAction.EnterGate(player, gate); }