Skip to content

Commit

Permalink
Small fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
RenNagasaki committed Sep 7, 2024
1 parent 37aba96 commit e0355fb
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 10 deletions.
1 change: 1 addition & 0 deletions Echosync-Data/SyncMessages.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ public enum SyncMessages
Test,
CreateChannel,
JoinDialogue,
LeaveDialogue,
Click,
ClickDone,
ServerShutdown
Expand Down
8 changes: 8 additions & 0 deletions Echosync-Server/Behaviours/EchosyncChannelBehaviour.cs
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,14 @@ protected override void OnMessage(MessageEventArgs e)
UsersReadyState[_channelName].TryAdd(dialogue, new Dictionary<string, bool>());
UsersReadyState[_channelName][dialogue].TryAdd(userName, false);
break;
case SyncMessages.LeaveDialogue:
userName = messageSplit[1];
dialogue = messageSplit[2];
LogHelper.Log($"Message received: '{messageEnum}' from '{userName}/{clientID}' in channel '{_channelName}' for dialogue '{dialogue}'");

if (UsersReadyState[_channelName].ContainsKey(dialogue))
UsersReadyState[_channelName][dialogue].Remove(userName);
break;
case SyncMessages.Click:
userName = messageSplit[1];
dialogue = messageSplit[2];
Expand Down
2 changes: 1 addition & 1 deletion Echosync/Echosync.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<Import Project="Dalamud.Plugin.Bootstrap.targets" />

<PropertyGroup>
<Version>0.0.0.1</Version>
<Version>0.0.0.2</Version>
<Description>Echosync</Description>
<PackageProjectUrl>https://github.com/RenNagasaki/Echosync</PackageProjectUrl>
<PackageLicenseExpression>AGPL-3.0-or-later</PackageLicenseExpression>
Expand Down
19 changes: 10 additions & 9 deletions Echosync/Helper/AddonTalkHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -56,32 +56,33 @@ private unsafe void OnPostDraw(AddonEvent type, AddonArgs args)
{
if (!config.Enabled) return;
if (condition[ConditionFlag.OccupiedSummoningBell]) return;
if (!condition[ConditionFlag.OccupiedInQuestEvent] && !condition[ConditionFlag.OccupiedInCutSceneEvent] && !condition[ConditionFlag.OccupiedInEvent]) return;

var addonTalk = (AddonTalk*)args.Addon.ToPointer();
if (addonTalk != null)
{
var visible = addonTalk->AtkUnitBase.IsVisible;
var dialogue = GetTalkAddonText((AddonTalk*)args.Addon.ToPointer());
if (visible && activeDialogue != dialogue)
if (visible && activeDialogue != dialogue && SyncClientHelper.Connected)
{
activeDialogue = dialogue;
SyncClientHelper.CurrentEvent = LogHelper.EventId(MethodBase.GetCurrentMethod().Name, Enums.TextSource.Sync);
SyncClientHelper.CreateMessage(SyncMessages.JoinDialogue, clientState.LocalPlayer?.Name.TextValue ?? "TEST", activeDialogue);
}


if (SyncClientHelper.AllReady)
if (SyncClientHelper.AllReady && SyncClientHelper.Connected)
{
SyncClientHelper.AllReady = false;
readySend = false;
allowClick = true;
framework.RunOnFrameworkThread(() => Click(args.Addon, SyncClientHelper.CurrentEvent));
}

if (!visible && !string.IsNullOrWhiteSpace(activeDialogue))
if (!visible && !string.IsNullOrWhiteSpace(activeDialogue) && SyncClientHelper.Connected)
{
LogHelper.Info(MethodBase.GetCurrentMethod().Name, $"Addon closed", new EKEventId(0, TextSource.Sync));
LogHelper.Info(MethodBase.GetCurrentMethod().Name, $"Addon closed", SyncClientHelper.CurrentEvent);
SyncClientHelper.CreateMessage(SyncMessages.LeaveDialogue, clientState.LocalPlayer?.Name.TextValue ?? "TEST", activeDialogue);
LogHelper.End(MethodBase.GetCurrentMethod().Name, SyncClientHelper.CurrentEvent);
readySend = false;
SyncClientHelper.AllReady = false;
activeDialogue = "";
Expand All @@ -97,7 +98,8 @@ private unsafe void OnPreReceiveEvent(AddonEvent type, AddonArgs args)
if (!condition[ConditionFlag.OccupiedInQuestEvent] && !condition[ConditionFlag.OccupiedInCutSceneEvent] && !condition[ConditionFlag.OccupiedInEvent]) return;
if (args is not AddonReceiveEventArgs receiveEventArgs) return;

if (receiveEventArgs.AtkEventType == (byte)AtkEventType.MouseClick && receiveEventArgs.EventParam == 0 && SyncClientHelper.Connected)
LogHelper.Info(MethodBase.GetCurrentMethod().Name, $"Param: {receiveEventArgs.EventParam} Type: {receiveEventArgs.AtkEventType} B: {receiveEventArgs.AtkEvent}", SyncClientHelper.CurrentEvent);
if ((receiveEventArgs.AtkEventType == (byte)AtkEventType.MouseClick || receiveEventArgs.AtkEventType == (byte)AtkEventType.InputReceived) && receiveEventArgs.EventParam == 0 && SyncClientHelper.Connected)
{
if (allowClick)
{
Expand All @@ -108,13 +110,12 @@ private unsafe void OnPreReceiveEvent(AddonEvent type, AddonArgs args)

if (!readySend)
{
SyncClientHelper.CurrentEvent = LogHelper.EventId(MethodBase.GetCurrentMethod().Name, Enums.TextSource.Sync);
SyncClientHelper.CreateMessage(SyncMessages.Click, clientState.LocalPlayer?.Name.TextValue ?? "TEST", activeDialogue);
readySend = true;
}

receiveEventArgs.AtkEventType = 0;
}

receiveEventArgs.AtkEventType = 0;
}

private unsafe string GetTalkAddonText(AddonTalk* addonTalk)
Expand Down

0 comments on commit e0355fb

Please sign in to comment.