mirror of
https://github.com/tgstation/tgstation-server.git
synced 2026-08-28 23:52:36 +01:00
Send watchdog events in a better fashion
This commit is contained in:
@@ -141,7 +141,15 @@
|
||||
return result
|
||||
if(TGS4_TOPIC_EVENT)
|
||||
intercepted_message_queue = list()
|
||||
event_handler.HandleEvent(text2num(params[TGS4_PARAMETER_DATA]))
|
||||
var/list/event_notification = json_decode(params[TGS4_PARAMETER_DATA])
|
||||
var/list/event_parameters = event_notification["Parameters"]
|
||||
|
||||
var/list/event_call = list(event_notification["Type"])
|
||||
if(event_parameters)
|
||||
event_call += event_parameters
|
||||
|
||||
event_handler.HandleEvent(arglist(event_call))
|
||||
|
||||
. = json_encode(intercepted_message_queue)
|
||||
intercepted_message_queue = null
|
||||
return
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Tgstation.Server.Host.Components.Interop
|
||||
{
|
||||
/// <summary>
|
||||
/// For notifying DD of <see cref="EventType"/>s
|
||||
/// </summary>
|
||||
sealed class EventNotification
|
||||
{
|
||||
/// <summary>
|
||||
/// The <see cref="EventType"/>
|
||||
/// </summary>
|
||||
public EventType Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The event parameters
|
||||
/// </summary>
|
||||
public IEnumerable<string> Parameters { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -801,12 +801,14 @@ namespace Tgstation.Server.Host.Components.Watchdog
|
||||
return true;
|
||||
|
||||
var builder = new StringBuilder(Constants.DMTopicEvent);
|
||||
if (parameters != null)
|
||||
foreach (var I in parameters)
|
||||
{
|
||||
builder.Append("&");
|
||||
builder.Append(byondTopicSender.SanitizeString(I));
|
||||
}
|
||||
builder.Append("&");
|
||||
var notification = new EventNotification
|
||||
{
|
||||
Type = eventType,
|
||||
Parameters = parameters
|
||||
};
|
||||
var json = JsonConvert.SerializeObject(notification);
|
||||
builder.Append(byondTopicSender.SanitizeString(json));
|
||||
|
||||
var activeServer = AlphaIsActive ? alphaServer : bravoServer;
|
||||
results = await activeServer.SendCommand(builder.ToString(), cancellationToken).ConfigureAwait(false);
|
||||
|
||||
Reference in New Issue
Block a user