mirror of
https://github.com/RPCS3/discord-bot.git
synced 2025-04-02 20:31:36 +00:00
!warn list recent
This commit is contained in:
parent
981bc40712
commit
ba9a4e5841
@ -53,7 +53,7 @@ namespace CompatBot.Commands
|
|||||||
new AsciiColumn("Username", maxWidth: 24),
|
new AsciiColumn("Username", maxWidth: 24),
|
||||||
new AsciiColumn("User ID", disabled: !ctx.Channel.IsPrivate, alignToRight: true),
|
new AsciiColumn("User ID", disabled: !ctx.Channel.IsPrivate, alignToRight: true),
|
||||||
new AsciiColumn("Count", alignToRight: true),
|
new AsciiColumn("Count", alignToRight: true),
|
||||||
new AsciiColumn("Including removed", disabled: !ctx.Channel.IsPrivate || !isMod, alignToRight: true)
|
new AsciiColumn("All time", disabled: !ctx.Channel.IsPrivate || !isMod, alignToRight: true)
|
||||||
);
|
);
|
||||||
using (var db = new BotDb())
|
using (var db = new BotDb())
|
||||||
{
|
{
|
||||||
@ -89,7 +89,7 @@ namespace CompatBot.Commands
|
|||||||
using (var db = new BotDb())
|
using (var db = new BotDb())
|
||||||
{
|
{
|
||||||
var query = from warn in db.Warning
|
var query = from warn in db.Warning
|
||||||
where warn.IssuerId == moderatorId
|
where warn.IssuerId == moderatorId && !warn.Retracted
|
||||||
orderby warn.Id descending
|
orderby warn.Id descending
|
||||||
select warn;
|
select warn;
|
||||||
foreach (var row in query.Take(number))
|
foreach (var row in query.Take(number))
|
||||||
@ -126,10 +126,13 @@ namespace CompatBot.Commands
|
|||||||
[Description("Shows last issued warnings in chronological order")]
|
[Description("Shows last issued warnings in chronological order")]
|
||||||
public async Task Last(CommandContext ctx, [Description("Optional number of items to show. Default is 10")] int number = 10)
|
public async Task Last(CommandContext ctx, [Description("Optional number of items to show. Default is 10")] int number = 10)
|
||||||
{
|
{
|
||||||
|
var isMod = ctx.User.IsWhitelisted(ctx.Client, ctx.Guild);
|
||||||
|
var showRetractions = ctx.Channel.IsPrivate && isMod;
|
||||||
if (number < 1)
|
if (number < 1)
|
||||||
number = 10;
|
number = 10;
|
||||||
var table = new AsciiTable(
|
var table = new AsciiTable(
|
||||||
new AsciiColumn("ID", alignToRight: true),
|
new AsciiColumn("ID", alignToRight: true),
|
||||||
|
new AsciiColumn("±", disabled: !showRetractions),
|
||||||
new AsciiColumn("Username", maxWidth: 24),
|
new AsciiColumn("Username", maxWidth: 24),
|
||||||
new AsciiColumn("User ID", disabled: !ctx.Channel.IsPrivate, alignToRight: true),
|
new AsciiColumn("User ID", disabled: !ctx.Channel.IsPrivate, alignToRight: true),
|
||||||
new AsciiColumn("Issued by", maxWidth: 15),
|
new AsciiColumn("Issued by", maxWidth: 15),
|
||||||
@ -139,15 +142,30 @@ namespace CompatBot.Commands
|
|||||||
);
|
);
|
||||||
using (var db = new BotDb())
|
using (var db = new BotDb())
|
||||||
{
|
{
|
||||||
var query = from warn in db.Warning
|
IOrderedQueryable<Warning> query;
|
||||||
orderby warn.Id descending
|
if (showRetractions)
|
||||||
select warn;
|
query = from warn in db.Warning
|
||||||
|
orderby warn.Id descending
|
||||||
|
select warn;
|
||||||
|
else
|
||||||
|
query = from warn in db.Warning
|
||||||
|
where !warn.Retracted
|
||||||
|
orderby warn.Id descending
|
||||||
|
select warn;
|
||||||
foreach (var row in query.Take(number))
|
foreach (var row in query.Take(number))
|
||||||
{
|
{
|
||||||
var username = await ctx.GetUserNameAsync(row.DiscordId).ConfigureAwait(false);
|
var username = await ctx.GetUserNameAsync(row.DiscordId).ConfigureAwait(false);
|
||||||
var modname = await ctx.GetUserNameAsync(row.IssuerId, defaultName: "Unknown mod").ConfigureAwait(false);
|
var modname = await ctx.GetUserNameAsync(row.IssuerId, defaultName: "Unknown mod").ConfigureAwait(false);
|
||||||
var timestamp = row.Timestamp.HasValue ? new DateTime(row.Timestamp.Value, DateTimeKind.Utc).ToString("u") : null;
|
var timestamp = row.Timestamp.HasValue ? new DateTime(row.Timestamp.Value, DateTimeKind.Utc).ToString("u") : null;
|
||||||
table.Add(row.Id.ToString(), username, row.DiscordId.ToString(), modname, timestamp, row.Reason, row.FullReason);
|
if (row.Retracted)
|
||||||
|
{
|
||||||
|
var modnameRetracted = row.RetractedBy.HasValue ? await ctx.GetUserNameAsync(row.RetractedBy.Value, defaultName: "Unknown mod").ConfigureAwait(false) : "";
|
||||||
|
var timestampRetracted = row.RetractionTimestamp.HasValue ? new DateTime(row.RetractionTimestamp.Value, DateTimeKind.Utc).ToString("u") : null;
|
||||||
|
table.Add(row.Id.ToString(), "-", username, row.DiscordId.ToString(), modnameRetracted, timestampRetracted, row.RetractionReason, "");
|
||||||
|
table.Add(row.Id.ToString(), "+", username.StrikeThrough(), row.DiscordId.ToString().StrikeThrough(), modname.StrikeThrough(), timestamp.StrikeThrough(), row.Reason.StrikeThrough(), row.FullReason.StrikeThrough());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
table.Add(row.Id.ToString(), "+", username, row.DiscordId.ToString(), modname, timestamp, row.Reason, row.FullReason);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
await ctx.SendAutosplitMessageAsync(new StringBuilder("Recent warnings:").Append(table)).ConfigureAwait(false);
|
await ctx.SendAutosplitMessageAsync(new StringBuilder("Recent warnings:").Append(table)).ConfigureAwait(false);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user