mirror of
https://gitlab.com/Kwoth/nadekobot.git
synced 2025-09-10 17:28:27 -04:00
Fixed .log userpresence, closes #402
This commit is contained in:
@@ -73,6 +73,7 @@ public sealed class LogCommandService : ILogCommandService, IReadyExecutor
|
|||||||
_client.UserVoiceStateUpdated += _client_UserVoiceStateUpdated;
|
_client.UserVoiceStateUpdated += _client_UserVoiceStateUpdated;
|
||||||
_client.UserVoiceStateUpdated += _client_UserVoiceStateUpdated_TTS;
|
_client.UserVoiceStateUpdated += _client_UserVoiceStateUpdated_TTS;
|
||||||
_client.GuildMemberUpdated += _client_GuildUserUpdated;
|
_client.GuildMemberUpdated += _client_GuildUserUpdated;
|
||||||
|
_client.PresenceUpdated += _client_PresenceUpdated;
|
||||||
_client.UserUpdated += _client_UserUpdated;
|
_client.UserUpdated += _client_UserUpdated;
|
||||||
_client.ChannelCreated += _client_ChannelCreated;
|
_client.ChannelCreated += _client_ChannelCreated;
|
||||||
_client.ChannelDestroyed += _client_ChannelDestroyed;
|
_client.ChannelDestroyed += _client_ChannelDestroyed;
|
||||||
@@ -90,6 +91,59 @@ public sealed class LogCommandService : ILogCommandService, IReadyExecutor
|
|||||||
_punishService.OnUserWarned += PunishServiceOnOnUserWarned;
|
_punishService.OnUserWarned += PunishServiceOnOnUserWarned;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async Task _client_PresenceUpdated(SocketUser user, SocketPresence? before, SocketPresence? after)
|
||||||
|
{
|
||||||
|
if (user is not SocketGuildUser gu)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!GuildLogSettings.TryGetValue(gu.Guild.Id, out var logSetting)
|
||||||
|
|| before is null
|
||||||
|
|| after is null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
ITextChannel? logChannel;
|
||||||
|
|
||||||
|
if (!user.IsBot
|
||||||
|
&& logSetting.LogUserPresenceId is not null
|
||||||
|
&& (logChannel =
|
||||||
|
await TryGetLogChannel(gu.Guild, logSetting, LogType.UserPresence)) is not null)
|
||||||
|
{
|
||||||
|
if (before.Status != after.Status)
|
||||||
|
{
|
||||||
|
var str = "🎭"
|
||||||
|
+ Format.Code(PrettyCurrentTime(gu.Guild))
|
||||||
|
+ GetText(logChannel.Guild,
|
||||||
|
strs.user_status_change("👤" + Format.Bold(gu.Username),
|
||||||
|
Format.Bold(after.Status.ToString())));
|
||||||
|
PresenceUpdates.AddOrUpdate(logChannel,
|
||||||
|
new List<string>
|
||||||
|
{
|
||||||
|
str
|
||||||
|
},
|
||||||
|
(_, list) =>
|
||||||
|
{
|
||||||
|
list.Add(str);
|
||||||
|
return list;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else if (before.Activities.FirstOrDefault()?.Name != after.Activities.FirstOrDefault()?.Name)
|
||||||
|
{
|
||||||
|
var str =
|
||||||
|
$"👾`{PrettyCurrentTime(gu.Guild)}`👤__**{gu.Username}**__ is now playing **{after.Activities.FirstOrDefault()?.Name ?? "-"}**.";
|
||||||
|
PresenceUpdates.AddOrUpdate(logChannel,
|
||||||
|
new List<string>
|
||||||
|
{
|
||||||
|
str
|
||||||
|
},
|
||||||
|
(_, list) =>
|
||||||
|
{
|
||||||
|
list.Add(str);
|
||||||
|
return list;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private Task _client_ThreadDeleted(Cacheable<SocketThreadChannel, ulong> sch)
|
private Task _client_ThreadDeleted(Cacheable<SocketThreadChannel, ulong> sch)
|
||||||
{
|
{
|
||||||
_ = Task.Run(async () =>
|
_ = Task.Run(async () =>
|
||||||
@@ -192,7 +246,9 @@ public sealed class LogCommandService : ILogCommandService, IReadyExecutor
|
|||||||
})
|
})
|
||||||
.WhenAll();
|
.WhenAll();
|
||||||
}
|
}
|
||||||
catch { }
|
catch
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -261,7 +317,6 @@ public sealed class LogCommandService : ILogCommandService, IReadyExecutor
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private async Task PunishServiceOnOnUserWarned(Warning arg)
|
private async Task PunishServiceOnOnUserWarned(Warning arg)
|
||||||
{
|
{
|
||||||
if (!GuildLogSettings.TryGetValue(arg.GuildId, out var logSetting) || logSetting.LogWarnsId is null)
|
if (!GuildLogSettings.TryGetValue(arg.GuildId, out var logSetting) || logSetting.LogWarnsId is null)
|
||||||
@@ -676,46 +731,6 @@ public sealed class LogCommandService : ILogCommandService, IReadyExecutor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!before.IsBot
|
|
||||||
&& logSetting.LogUserPresenceId is not null
|
|
||||||
&& (logChannel =
|
|
||||||
await TryGetLogChannel(before.Guild, logSetting, LogType.UserPresence)) is not null)
|
|
||||||
{
|
|
||||||
if (before.Status != after.Status)
|
|
||||||
{
|
|
||||||
var str = "🎭"
|
|
||||||
+ Format.Code(PrettyCurrentTime(after.Guild))
|
|
||||||
+ GetText(logChannel.Guild,
|
|
||||||
strs.user_status_change("👤" + Format.Bold(after.Username),
|
|
||||||
Format.Bold(after.Status.ToString())));
|
|
||||||
PresenceUpdates.AddOrUpdate(logChannel,
|
|
||||||
new List<string>
|
|
||||||
{
|
|
||||||
str
|
|
||||||
},
|
|
||||||
(_, list) =>
|
|
||||||
{
|
|
||||||
list.Add(str);
|
|
||||||
return list;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else if (before.Activities.FirstOrDefault()?.Name != after.Activities.FirstOrDefault()?.Name)
|
|
||||||
{
|
|
||||||
var str =
|
|
||||||
$"👾`{PrettyCurrentTime(after.Guild)}`👤__**{after.Username}**__ is now playing **{after.Activities.FirstOrDefault()?.Name ?? "-"}**.";
|
|
||||||
PresenceUpdates.AddOrUpdate(logChannel,
|
|
||||||
new List<string>
|
|
||||||
{
|
|
||||||
str
|
|
||||||
},
|
|
||||||
(_, list) =>
|
|
||||||
{
|
|
||||||
list.Add(str);
|
|
||||||
return list;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
@@ -1060,7 +1075,6 @@ public sealed class LogCommandService : ILogCommandService, IReadyExecutor
|
|||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var embed = _eb.Create()
|
var embed = _eb.Create()
|
||||||
|
Reference in New Issue
Block a user