Convert event destructuring
This commit is contained in:
parent
5a52abed77
commit
227d68a2a4
@ -120,7 +120,8 @@ namespace PluralKit.Bot
|
|||||||
builder.RegisterModule(new ConfigModule<BotConfig>("Bot"));
|
builder.RegisterModule(new ConfigModule<BotConfig>("Bot"));
|
||||||
builder.RegisterModule(new LoggingModule("bot", cfg =>
|
builder.RegisterModule(new LoggingModule("bot", cfg =>
|
||||||
{
|
{
|
||||||
cfg.Destructure.With<EventDestructuring>();
|
// TODO: do we need this?
|
||||||
|
// cfg.Destructure.With<EventDestructuring>();
|
||||||
}));
|
}));
|
||||||
builder.RegisterModule(new MetricsModule());
|
builder.RegisterModule(new MetricsModule());
|
||||||
builder.RegisterModule<DataStoreModule>();
|
builder.RegisterModule<DataStoreModule>();
|
||||||
|
@ -1,19 +1,19 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
using DSharpPlus.Entities;
|
using Myriad.Gateway;
|
||||||
using DSharpPlus.EventArgs;
|
|
||||||
|
|
||||||
using Serilog.Core;
|
using Serilog.Core;
|
||||||
using Serilog.Events;
|
using Serilog.Events;
|
||||||
|
|
||||||
namespace PluralKit.Bot
|
namespace PluralKit.Bot
|
||||||
{
|
{
|
||||||
|
// This class is unused and commented out in Init.cs - it's here from before the lib conversion. Is it needed??
|
||||||
public class EventDestructuring: IDestructuringPolicy
|
public class EventDestructuring: IDestructuringPolicy
|
||||||
{
|
{
|
||||||
public bool TryDestructure(object value, ILogEventPropertyValueFactory propertyValueFactory,
|
public bool TryDestructure(object value, ILogEventPropertyValueFactory propertyValueFactory,
|
||||||
out LogEventPropertyValue result)
|
out LogEventPropertyValue result)
|
||||||
{
|
{
|
||||||
if (!(value is DiscordEventArgs dea))
|
if (!(value is IGatewayEvent evt))
|
||||||
{
|
{
|
||||||
result = null;
|
result = null;
|
||||||
return false;
|
return false;
|
||||||
@ -21,30 +21,30 @@ namespace PluralKit.Bot
|
|||||||
|
|
||||||
var props = new List<LogEventProperty>
|
var props = new List<LogEventProperty>
|
||||||
{
|
{
|
||||||
new LogEventProperty("Type", new ScalarValue(dea.EventType())),
|
new("Type", new ScalarValue(evt.EventType())),
|
||||||
};
|
};
|
||||||
|
|
||||||
void AddMessage(DiscordMessage msg)
|
void AddMessage(ulong id, ulong channelId, ulong? guildId, ulong? author)
|
||||||
{
|
{
|
||||||
props.Add(new LogEventProperty("MessageId", new ScalarValue(msg.Id)));
|
props.Add(new LogEventProperty("MessageId", new ScalarValue(id)));
|
||||||
props.Add(new LogEventProperty("ChannelId", new ScalarValue(msg.ChannelId)));
|
props.Add(new LogEventProperty("ChannelId", new ScalarValue(channelId)));
|
||||||
props.Add(new LogEventProperty("GuildId", new ScalarValue(msg.Channel.GuildId)));
|
props.Add(new LogEventProperty("GuildId", new ScalarValue(guildId ?? 0)));
|
||||||
|
|
||||||
if (msg.Author != null)
|
if (author != null)
|
||||||
props.Add(new LogEventProperty("AuthorId", new ScalarValue(msg.Author.Id)));
|
props.Add(new LogEventProperty("AuthorId", new ScalarValue(author)));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (value is MessageCreateEventArgs mc)
|
if (value is MessageCreateEvent mc)
|
||||||
AddMessage(mc.Message);
|
AddMessage(mc.Id, mc.ChannelId, mc.GuildId, mc.Author.Id);
|
||||||
else if (value is MessageUpdateEventArgs mu)
|
else if (value is MessageUpdateEvent mu)
|
||||||
AddMessage(mu.Message);
|
AddMessage(mu.Id, mu.ChannelId, mu.GuildId.Value, mu.Author.Value?.Id);
|
||||||
else if (value is MessageDeleteEventArgs md)
|
else if (value is MessageDeleteEvent md)
|
||||||
AddMessage(md.Message);
|
AddMessage(md.Id, md.ChannelId, md.GuildId, null);
|
||||||
else if (value is MessageReactionAddEventArgs mra)
|
else if (value is MessageReactionAddEvent mra)
|
||||||
{
|
{
|
||||||
AddMessage(mra.Message);
|
AddMessage(mra.MessageId, mra.ChannelId, mra.GuildId, null);
|
||||||
props.Add(new LogEventProperty("ReactingUserId", new ScalarValue(mra.User.Id)));
|
props.Add(new LogEventProperty("ReactingUserId", new ScalarValue(mra.Emoji)));
|
||||||
props.Add(new LogEventProperty("Emoji", new ScalarValue(mra.Emoji.GetDiscordName())));
|
props.Add(new LogEventProperty("Emoji", new ScalarValue(mra.Emoji.Name)));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Want shard last, just for visual reasons
|
// Want shard last, just for visual reasons
|
||||||
|
@ -2,16 +2,12 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Reflection;
|
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
using DSharpPlus;
|
|
||||||
using DSharpPlus.Entities;
|
|
||||||
using DSharpPlus.EventArgs;
|
|
||||||
|
|
||||||
using Myriad.Builders;
|
using Myriad.Builders;
|
||||||
using Myriad.Extensions;
|
using Myriad.Extensions;
|
||||||
|
using Myriad.Gateway;
|
||||||
using Myriad.Rest;
|
using Myriad.Rest;
|
||||||
using Myriad.Rest.Types;
|
using Myriad.Rest.Types;
|
||||||
using Myriad.Types;
|
using Myriad.Types;
|
||||||
@ -20,8 +16,6 @@ using NodaTime;
|
|||||||
|
|
||||||
using PluralKit.Core;
|
using PluralKit.Core;
|
||||||
|
|
||||||
using Permissions = DSharpPlus.Permissions;
|
|
||||||
|
|
||||||
namespace PluralKit.Bot
|
namespace PluralKit.Bot
|
||||||
{
|
{
|
||||||
public static class DiscordUtils
|
public static class DiscordUtils
|
||||||
@ -190,7 +184,7 @@ namespace PluralKit.Bot
|
|||||||
return $"<{match.Value}>";
|
return $"<{match.Value}>";
|
||||||
});
|
});
|
||||||
|
|
||||||
public static string EventType(this DiscordEventArgs evt) =>
|
public static string EventType(this IGatewayEvent evt) =>
|
||||||
evt.GetType().Name.Replace("EventArgs", "");
|
evt.GetType().Name.Replace("Event", "");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user