From 615fec34ceec6845bda44eed2bc0507382d3a334 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 3 Jun 2025 22:42:19 +0200 Subject: [PATCH] Update Lifestream IPC --- Questionable/External/LifestreamIpc.cs | 54 ++++++++++++-------------- 1 file changed, 24 insertions(+), 30 deletions(-) diff --git a/Questionable/External/LifestreamIpc.cs b/Questionable/External/LifestreamIpc.cs index 443d1409..a6a05777 100644 --- a/Questionable/External/LifestreamIpc.cs +++ b/Questionable/External/LifestreamIpc.cs @@ -1,51 +1,45 @@ -using System.Collections.Generic; +using System; using Dalamud.Plugin; using Dalamud.Plugin.Ipc; -using Dalamud.Plugin.Services; -using Lumina.Excel.Sheets; using Microsoft.Extensions.Logging; -using Questionable.Data; using Questionable.Model.Common; namespace Questionable.External; internal sealed class LifestreamIpc { - private readonly AetheryteData _aetheryteData; - private readonly IDataManager _dataManager; private readonly ILogger _logger; - private readonly ICallGateSubscriber _aethernetTeleport; + private readonly ICallGateSubscriber _aethernetTeleportByPlaceNameId; + private readonly ICallGateSubscriber _aethernetTeleportById; + private readonly ICallGateSubscriber _aethernetTeleportToFirmament; - public LifestreamIpc(IDalamudPluginInterface pluginInterface, AetheryteData aetheryteData, IDataManager dataManager, ILogger logger) + public LifestreamIpc(IDalamudPluginInterface pluginInterface, ILogger logger) { - _aetheryteData = aetheryteData; - _dataManager = dataManager; _logger = logger; - _aethernetTeleport = pluginInterface.GetIpcSubscriber("Lifestream.AethernetTeleport"); + _aethernetTeleportByPlaceNameId = + pluginInterface.GetIpcSubscriber("Lifestream.AethernetTeleportByPlaceNameId"); + _aethernetTeleportById = + pluginInterface.GetIpcSubscriber("Lifestream.AethernetTeleportById"); + _aethernetTeleportToFirmament = + pluginInterface.GetIpcSubscriber("Lifestream.AethernetTeleportToFirmament"); } public bool Teleport(EAetheryteLocation aetheryteLocation) { - string? name = aetheryteLocation switch + _logger.LogInformation("Teleporting to '{Name}'", aetheryteLocation); + return aetheryteLocation switch { - EAetheryteLocation.IshgardFirmament => "Firmament", - EAetheryteLocation.FirmamentMendicantsCourt => GetPlaceName(3436), - EAetheryteLocation.FirmamentMattock => GetPlaceName(3473), - EAetheryteLocation.FirmamentNewNest => GetPlaceName(3475), - EAetheryteLocation.FirmanentSaintRoellesDais => GetPlaceName(3474), - EAetheryteLocation.FirmamentFeatherfall => GetPlaceName(3525), - EAetheryteLocation.FirmamentHoarfrostHall => GetPlaceName(3528), - EAetheryteLocation.FirmamentWesternRisensongQuarter => GetPlaceName(3646), - EAetheryteLocation.FIrmamentEasternRisensongQuarter => GetPlaceName(3645), - _ => _aetheryteData.AethernetNames.GetValueOrDefault(aetheryteLocation), + EAetheryteLocation.IshgardFirmament => _aethernetTeleportToFirmament.InvokeFunc(), + EAetheryteLocation.FirmamentMendicantsCourt => _aethernetTeleportByPlaceNameId.InvokeFunc(3436), + EAetheryteLocation.FirmamentMattock => _aethernetTeleportByPlaceNameId.InvokeFunc(3473), + EAetheryteLocation.FirmamentNewNest => _aethernetTeleportByPlaceNameId.InvokeFunc(3475), + EAetheryteLocation.FirmanentSaintRoellesDais => _aethernetTeleportByPlaceNameId.InvokeFunc(3474), + EAetheryteLocation.FirmamentFeatherfall => _aethernetTeleportByPlaceNameId.InvokeFunc(3525), + EAetheryteLocation.FirmamentHoarfrostHall => _aethernetTeleportByPlaceNameId.InvokeFunc(3528), + EAetheryteLocation.FirmamentWesternRisensongQuarter => _aethernetTeleportByPlaceNameId.InvokeFunc(3646), + EAetheryteLocation.FIrmamentEasternRisensongQuarter => _aethernetTeleportByPlaceNameId.InvokeFunc(3645), + EAetheryteLocation.None => throw new ArgumentOutOfRangeException(nameof(aetheryteLocation)), + _ => _aethernetTeleportById.InvokeFunc((uint)aetheryteLocation), }; - - if (name == null) - return false; - - _logger.LogInformation("Teleporting to '{Name}'", name); - return _aethernetTeleport.InvokeFunc(name); } - - private string GetPlaceName(uint rowId) => _dataManager.GetExcelSheet().GetRow(rowId).Name.ToString(); } -- 2.20.1