Skip to content

Commit 7357962

Browse files
committed
refactor(plugin): update PluginAction class for improved async handling and settings initialization
1 parent 4eb5118 commit 7357962

File tree

1 file changed

+14
-18
lines changed

1 file changed

+14
-18
lines changed

Diff for: FXCommands/PluginAction.cs

+14-18
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
namespace FXCommands
99
{
10-
[PluginActionId("com.egg-rp.fxcommands")]
10+
[PluginActionId("tf.josh.fxcommands")]
1111
public class PluginAction : PluginBase
1212
{
1313

@@ -231,49 +231,45 @@ public string CommandReleased
231231
#endregion
232232
public PluginAction(SDConnection connection, InitialPayload payload) : base(connection, payload)
233233
{
234-
if (payload.Settings == null || payload.Settings.Count == 0)
235-
{
236-
this.settings = PluginSettings.CreateDefaultSettings();
237-
}
238-
else
239-
{
240-
this.settings = payload.Settings.ToObject<PluginSettings>();
241-
}
234+
settings = payload.Settings == null || payload.Settings.Count == 0
235+
? PluginSettings.CreateDefaultSettings()
236+
: payload.Settings.ToObject<PluginSettings>();
237+
242238
connectionManager = new ConnectionManager();
243239
connectionManager.InitializeClients();
244240
}
245241

246242
public override void Dispose()
247243
{
248-
Logger.Instance.LogMessage(TracingLevel.INFO, $"Destructor called");
244+
Logger.Instance.LogMessage(TracingLevel.INFO, "Destructor called");
249245
connectionManager.Dispose();
246+
System.GC.Collect(); // Force garbage collection
250247
}
251248

252-
public override void KeyPressed(KeyPayload payload)
249+
public override async void KeyPressed(KeyPayload payload)
253250
{
254251
Logger.Instance.LogMessage(TracingLevel.INFO, "Key Pressed");
255-
256252
if (!string.IsNullOrEmpty(settings.CurrentCommandAction.CommandPressed))
257253
{
258-
SendMessage(settings.CurrentCommandAction.CommandPressed);
254+
await SendMessageAsync(settings.CurrentCommandAction.CommandPressed);
259255
}
260256
}
261257

262-
public override void KeyReleased(KeyPayload payload)
258+
public override async void KeyReleased(KeyPayload payload)
263259
{
264260
Logger.Instance.LogMessage(TracingLevel.INFO, "Key Released");
265261
if (!string.IsNullOrEmpty(settings.CurrentCommandAction.CommandReleased))
266262
{
267-
SendMessage(settings.CurrentCommandAction.CommandReleased);
263+
await SendMessageAsync(settings.CurrentCommandAction.CommandReleased);
268264
}
269265
settings.CurrentState++;
270266
if (settings.CurrentState >= settings.DesiredStates) settings.CurrentState = 0;
271-
SetStateAsync((uint)settings.CurrentState);
267+
await SetStateAsync((uint)settings.CurrentState);
272268
}
273269

274-
private void SendMessage(string message)
270+
private async Task SendMessageAsync(string message)
275271
{
276-
connectionManager.SendMessage(message);
272+
await Task.Run(() => connectionManager.SendMessage(message));
277273
}
278274

279275
public override void OnTick() { }

0 commit comments

Comments
 (0)