fix edit transfer window, more crashfix, add version nag on connect
This commit is contained in:
@@ -359,13 +359,12 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase
|
|||||||
public async Task PalettePlusSetPalette(IntPtr character, string palette)
|
public async Task PalettePlusSetPalette(IntPtr character, string palette)
|
||||||
{
|
{
|
||||||
if (!CheckPalettePlusApi()) return;
|
if (!CheckPalettePlusApi()) return;
|
||||||
|
string decodedPalette = Encoding.UTF8.GetString(Convert.FromBase64String(palette));
|
||||||
var gameObj = await _dalamudUtil.CreateGameObject(character).ConfigureAwait(false);
|
var gameObj = await _dalamudUtil.CreateGameObject(character).ConfigureAwait(false);
|
||||||
if (gameObj is Character c)
|
if (gameObj is Character c)
|
||||||
{
|
{
|
||||||
await _dalamudUtil.RunOnFrameworkThread(() =>
|
await _dalamudUtil.RunOnFrameworkThread(() =>
|
||||||
{
|
{
|
||||||
string decodedPalette = Encoding.UTF8.GetString(Convert.FromBase64String(palette));
|
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(decodedPalette))
|
if (string.IsNullOrEmpty(decodedPalette))
|
||||||
{
|
{
|
||||||
Logger.LogTrace("PalettePlus removing for {addr}", c.Address.ToString("X"));
|
Logger.LogTrace("PalettePlus removing for {addr}", c.Address.ToString("X"));
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Authors></Authors>
|
<Authors></Authors>
|
||||||
<Company></Company>
|
<Company></Company>
|
||||||
<Version>0.8.31</Version>
|
<Version>0.8.32</Version>
|
||||||
<Description></Description>
|
<Description></Description>
|
||||||
<Copyright></Copyright>
|
<Copyright></Copyright>
|
||||||
<PackageProjectUrl>https://github.com/Penumbra-Sync/client</PackageProjectUrl>
|
<PackageProjectUrl>https://github.com/Penumbra-Sync/client</PackageProjectUrl>
|
||||||
|
|||||||
@@ -105,25 +105,17 @@ public sealed class GameObjectHandler : DisposableMediatorSubscriberBase
|
|||||||
{
|
{
|
||||||
return await _dalamudUtil.RunOnFrameworkThread(() =>
|
return await _dalamudUtil.RunOnFrameworkThread(() =>
|
||||||
{
|
{
|
||||||
nint curPtr = IntPtr.Zero;
|
var curPtr = _getAddress.Invoke();
|
||||||
try
|
|
||||||
|
if (curPtr == IntPtr.Zero)
|
||||||
{
|
{
|
||||||
curPtr = CurrentAddress().GetAwaiter().GetResult();
|
Address = IntPtr.Zero;
|
||||||
|
DrawObjectAddress = IntPtr.Zero;
|
||||||
if (curPtr == IntPtr.Zero) return true;
|
|
||||||
|
|
||||||
var drawObj = GetDrawObj(curPtr);
|
|
||||||
return IsBeingDrawn(drawObj, curPtr);
|
|
||||||
}
|
|
||||||
catch (Exception)
|
|
||||||
{
|
|
||||||
if (curPtr != IntPtr.Zero)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var drawObj = GetDrawObj(curPtr);
|
||||||
|
return IsBeingDrawn(drawObj, curPtr);
|
||||||
}).ConfigureAwait(false);
|
}).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -195,6 +195,10 @@ public sealed class CachedPlayer : DisposableMediatorSubscriberBase
|
|||||||
{
|
{
|
||||||
throw new InvalidOperationException("Player name not equal to requested name, pointer invalid");
|
throw new InvalidOperationException("Player name not equal to requested name, pointer invalid");
|
||||||
}
|
}
|
||||||
|
if (handler.Address == IntPtr.Zero)
|
||||||
|
{
|
||||||
|
throw new InvalidOperationException("Player pointer is zero, pointer invalid");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task ApplyBaseData(Guid applicationId, Dictionary<string, string> moddedPaths, string manipulationData, CancellationToken token)
|
private async Task ApplyBaseData(Guid applicationId, Dictionary<string, string> moddedPaths, string manipulationData, CancellationToken token)
|
||||||
|
|||||||
@@ -213,6 +213,7 @@ public class DownloadUi : WindowMediatorSubscriberBase
|
|||||||
|
|
||||||
public override bool DrawConditions()
|
public override bool DrawConditions()
|
||||||
{
|
{
|
||||||
|
if (_uiShared.EditTrackerPosition) return true;
|
||||||
if (!_configService.Current.ShowTransferWindow && !_configService.Current.ShowTransferBars) return false;
|
if (!_configService.Current.ShowTransferWindow && !_configService.Current.ShowTransferBars) return false;
|
||||||
if (!_currentDownloads.Any() && !_fileTransferManager.CurrentUploads.Any() && !_uploadingPlayers.Any()) return false;
|
if (!_currentDownloads.Any() && !_fileTransferManager.CurrentUploads.Any() && !_uploadingPlayers.Any()) return false;
|
||||||
if (!IsOpen) return false;
|
if (!IsOpen) return false;
|
||||||
|
|||||||
@@ -174,11 +174,30 @@ public sealed partial class ApiController : DisposableMediatorSubscriberBase, IM
|
|||||||
|
|
||||||
ServerState = ServerState.Connected;
|
ServerState = ServerState.Connected;
|
||||||
|
|
||||||
|
var currentClientVer = Assembly.GetExecutingAssembly().GetName().Version!;
|
||||||
|
|
||||||
if (_connectionDto.ServerVersion != IMareHub.ApiVersion)
|
if (_connectionDto.ServerVersion != IMareHub.ApiVersion)
|
||||||
{
|
{
|
||||||
await StopConnection(ServerState.VersionMisMatch).ConfigureAwait(false);
|
await StopConnection(ServerState.VersionMisMatch).ConfigureAwait(false);
|
||||||
|
if (_connectionDto.CurrentClientVersion > currentClientVer)
|
||||||
|
{
|
||||||
|
Mediator.Publish(new NotificationMessage("Client incompatible",
|
||||||
|
$"Your client is outdated ({currentClientVer.Major}.{currentClientVer.Minor}.{currentClientVer.Build}), current is: " +
|
||||||
|
$"{_connectionDto.CurrentClientVersion.Major}.{_connectionDto.CurrentClientVersion.Minor}.{_connectionDto.CurrentClientVersion.Build}. " +
|
||||||
|
$"This client version is incompatible and will not be able to connect. Please update your Mare Synchronos client.",
|
||||||
|
Dalamud.Interface.Internal.Notifications.NotificationType.Error));
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (_connectionDto.CurrentClientVersion > currentClientVer)
|
||||||
|
{
|
||||||
|
Mediator.Publish(new NotificationMessage("Client outdated",
|
||||||
|
$"Your client is oudated ({currentClientVer.Major}.{currentClientVer.Minor}.{currentClientVer.Build}), current is: " +
|
||||||
|
$"{_connectionDto.CurrentClientVersion.Major}.{_connectionDto.CurrentClientVersion.Minor}.{_connectionDto.CurrentClientVersion.Build}. " +
|
||||||
|
$"Please keep your Mare Synchronos client up-to-date.",
|
||||||
|
Dalamud.Interface.Internal.Notifications.NotificationType.Error));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (HttpRequestException ex)
|
catch (HttpRequestException ex)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user