mirror of
https://gitlab.com/Kwoth/nadekobot.git
synced 2025-09-10 17:28:27 -04:00
Removed redundant parenthesis
This commit is contained in:
@@ -226,7 +226,7 @@ public sealed class Bot
|
||||
clientReady.TrySetResult(true);
|
||||
try
|
||||
{
|
||||
foreach (var chan in (await Client.GetDMChannelsAsync().ConfigureAwait(false)))
|
||||
foreach (var chan in await Client.GetDMChannelsAsync().ConfigureAwait(false))
|
||||
{
|
||||
await chan.CloseAsync().ConfigureAwait(false);
|
||||
}
|
||||
@@ -281,7 +281,7 @@ public sealed class Bot
|
||||
GuildConfig gc;
|
||||
await using (var uow = _db.GetDbContext())
|
||||
{
|
||||
gc = uow.GuildConfigsForId(arg.Id);
|
||||
gc = uow.GuildConfigsForId(arg.Id, null);
|
||||
}
|
||||
await JoinedGuild.Invoke(gc).ConfigureAwait(false);
|
||||
});
|
||||
|
@@ -13,6 +13,6 @@ public sealed class OwnerOnlyAttribute : PreconditionAttribute
|
||||
{
|
||||
var creds = services.GetRequiredService<IBotCredsProvider>().GetCreds();
|
||||
|
||||
return Task.FromResult((creds.IsOwner(context.User) || context.Client.CurrentUser.Id == context.User.Id ? PreconditionResult.FromSuccess() : PreconditionResult.FromError("Not owner")));
|
||||
return Task.FromResult(creds.IsOwner(context.User) || context.Client.CurrentUser.Id == context.User.Id ? PreconditionResult.FromSuccess() : PreconditionResult.FromError("Not owner"));
|
||||
}
|
||||
}
|
@@ -345,7 +345,7 @@ public sealed class ConcurrentHashSet<T> : IReadOnlyCollection<T>, ICollection<T
|
||||
Node previous = null;
|
||||
for (var current = tables.Buckets[bucketNo]; current != null; current = current.Next)
|
||||
{
|
||||
Debug.Assert((previous is null && current == tables.Buckets[bucketNo]) || previous.Next == current);
|
||||
Debug.Assert(previous is null && current == tables.Buckets[bucketNo] || previous.Next == current);
|
||||
|
||||
if (hashcode == current.Hashcode && _comparer.Equals(current.Item, item))
|
||||
{
|
||||
@@ -471,7 +471,7 @@ public sealed class ConcurrentHashSet<T> : IReadOnlyCollection<T>, ICollection<T
|
||||
Node previous = null;
|
||||
for (var current = tables.Buckets[bucketNo]; current != null; current = current.Next)
|
||||
{
|
||||
Debug.Assert((previous is null && current == tables.Buckets[bucketNo]) || previous.Next == current);
|
||||
Debug.Assert(previous is null && current == tables.Buckets[bucketNo] || previous.Next == current);
|
||||
if (hashcode == current.Hashcode && _comparer.Equals(current.Item, item))
|
||||
{
|
||||
return false;
|
||||
|
@@ -27,7 +27,7 @@ public class DownloadTracker : INService
|
||||
var added = LastDownloads.AddOrUpdate(
|
||||
guild.Id,
|
||||
now,
|
||||
(key, old) => (now - old) > TimeSpan.FromHours(1) ? now : old);
|
||||
(key, old) => now - old > TimeSpan.FromHours(1) ? now : old);
|
||||
|
||||
// means that this entry was just added - download the users
|
||||
if (added == now)
|
||||
|
@@ -99,7 +99,7 @@ public abstract class NadekoModule : ModuleBase
|
||||
{
|
||||
dsc.MessageReceived += MessageReceived;
|
||||
|
||||
if ((await Task.WhenAny(userInputTask.Task, Task.Delay(10000)).ConfigureAwait(false)) != userInputTask.Task)
|
||||
if (await Task.WhenAny(userInputTask.Task, Task.Delay(10000)).ConfigureAwait(false) != userInputTask.Task)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
@@ -36,7 +36,7 @@ public class NadekoRandom : Random
|
||||
var bytes = new byte[sizeof(int)];
|
||||
_rng.GetBytes(bytes);
|
||||
var sign = Math.Sign(BitConverter.ToInt32(bytes, 0));
|
||||
return (sign * BitConverter.ToInt32(bytes, 0)) % (maxValue - minValue) + minValue;
|
||||
return sign * BitConverter.ToInt32(bytes, 0) % (maxValue - minValue) + minValue;
|
||||
}
|
||||
|
||||
public long NextLong(long minValue, long maxValue)
|
||||
@@ -48,7 +48,7 @@ public class NadekoRandom : Random
|
||||
var bytes = new byte[sizeof(long)];
|
||||
_rng.GetBytes(bytes);
|
||||
var sign = Math.Sign(BitConverter.ToInt64(bytes, 0));
|
||||
return (sign * BitConverter.ToInt64(bytes, 0)) % (maxValue - minValue) + minValue;
|
||||
return sign * BitConverter.ToInt64(bytes, 0) % (maxValue - minValue) + minValue;
|
||||
}
|
||||
|
||||
public override void NextBytes(byte[] buffer)
|
||||
|
@@ -10,7 +10,7 @@ public static class PlatformHelper
|
||||
public static int ProcessorCount {
|
||||
get {
|
||||
var now = Environment.TickCount;
|
||||
if (_processorCount == 0 || (now - _lastProcessorCountRefreshTicks) >= ProcessorCountRefreshIntervalMs)
|
||||
if (_processorCount == 0 || now - _lastProcessorCountRefreshTicks >= ProcessorCountRefreshIntervalMs)
|
||||
{
|
||||
_processorCount = Environment.ProcessorCount;
|
||||
_lastProcessorCountRefreshTicks = now;
|
||||
|
@@ -24,7 +24,7 @@ public sealed record SmartEmbedText : SmartText
|
||||
!string.IsNullOrWhiteSpace(Url) ||
|
||||
!string.IsNullOrWhiteSpace(Thumbnail) ||
|
||||
!string.IsNullOrWhiteSpace(Image) ||
|
||||
(Footer != null && (!string.IsNullOrWhiteSpace(Footer.Text) || !string.IsNullOrWhiteSpace(Footer.IconUrl))) ||
|
||||
Footer != null && (!string.IsNullOrWhiteSpace(Footer.Text) || !string.IsNullOrWhiteSpace(Footer.IconUrl)) ||
|
||||
Fields is { Length: > 0 };
|
||||
|
||||
public static SmartEmbedText FromEmbed(IEmbed eb, string plainText = null)
|
||||
|
@@ -37,7 +37,7 @@ public sealed class ShmartNumberTypeReader : NadekoTypeReader<ShmartNumber>
|
||||
{
|
||||
var expr = new NCalc.Expression(i, NCalc.EvaluateOptions.IgnoreCase);
|
||||
expr.EvaluateParameter += (str, ev) => EvaluateParam(str, ev, context);
|
||||
var lon = (long)(decimal.Parse(expr.Evaluate().ToString()));
|
||||
var lon = (long)decimal.Parse(expr.Evaluate().ToString());
|
||||
return TypeReaderResult.FromSuccess(new ShmartNumber(lon, input));
|
||||
}
|
||||
catch (Exception)
|
||||
|
@@ -48,11 +48,11 @@ public static class DiscordUserExtensions
|
||||
public static int GetUserGlobalRank(this DbSet<DiscordUser> users, ulong id)
|
||||
{
|
||||
return users.AsQueryable()
|
||||
.Where(x => x.TotalXp > (users
|
||||
.Where(x => x.TotalXp > users
|
||||
.AsQueryable()
|
||||
.Where(y => y.UserId == id)
|
||||
.Select(y => y.TotalXp)
|
||||
.FirstOrDefault()))
|
||||
.FirstOrDefault())
|
||||
.Count() + 1;
|
||||
}
|
||||
|
||||
|
@@ -69,10 +69,11 @@ public static class GuildConfigExtensions
|
||||
/// <summary>
|
||||
/// Gets and creates if it doesn't exist a config for a guild.
|
||||
/// </summary>
|
||||
/// <param name="guildId">For which guild</param>
|
||||
/// <param name="includes">Use to manipulate the set however you want</param>
|
||||
/// <param name="ctx">Context</param>
|
||||
/// <param name="guildId">Id of the guide</param>
|
||||
/// <param name="includes">Use to manipulate the set however you want. Pass null to include everything</param>
|
||||
/// <returns>Config for the guild</returns>
|
||||
public static GuildConfig GuildConfigsForId(this NadekoContext ctx, ulong guildId, Func<DbSet<GuildConfig>, IQueryable<GuildConfig>> includes = null)
|
||||
public static GuildConfig GuildConfigsForId(this NadekoContext ctx, ulong guildId, Func<DbSet<GuildConfig>, IQueryable<GuildConfig>> includes)
|
||||
{
|
||||
GuildConfig config;
|
||||
|
||||
@@ -91,13 +92,13 @@ public static class GuildConfigExtensions
|
||||
|
||||
if (config is null)
|
||||
{
|
||||
ctx.GuildConfigs.Add((config = new()
|
||||
ctx.GuildConfigs.Add(config = new()
|
||||
{
|
||||
GuildId = guildId,
|
||||
Permissions = Permissionv2.GetDefaultPermlist,
|
||||
WarningsInitialized = true,
|
||||
WarnPunishments = DefaultWarnPunishments,
|
||||
}));
|
||||
});
|
||||
ctx.SaveChanges();
|
||||
}
|
||||
|
||||
@@ -150,11 +151,11 @@ public static class GuildConfigExtensions
|
||||
|
||||
if (config is null) // if there is no guildconfig, create new one
|
||||
{
|
||||
ctx.GuildConfigs.Add((config = new()
|
||||
ctx.GuildConfigs.Add(config = new()
|
||||
{
|
||||
GuildId = guildId,
|
||||
Permissions = Permissionv2.GetDefaultPermlist
|
||||
}));
|
||||
});
|
||||
ctx.SaveChanges();
|
||||
}
|
||||
else if (config.Permissions is null || !config.Permissions.Any()) // if no perms, add default ones
|
||||
|
@@ -60,12 +60,11 @@ public static class UserXpExtensions
|
||||
return xps
|
||||
.AsQueryable()
|
||||
.AsNoTracking()
|
||||
.Where(x => x.GuildId == guildId && ((x.Xp + x.AwardedXp) >
|
||||
(xps.AsQueryable()
|
||||
.Where(y => y.UserId == userId && y.GuildId == guildId)
|
||||
.Select(y => y.Xp + y.AwardedXp)
|
||||
.FirstOrDefault())
|
||||
))
|
||||
.Where(x => x.GuildId == guildId && x.Xp + x.AwardedXp >
|
||||
xps.AsQueryable()
|
||||
.Where(y => y.UserId == userId && y.GuildId == guildId)
|
||||
.Select(y => y.Xp + y.AwardedXp)
|
||||
.FirstOrDefault())
|
||||
.Count() + 1;
|
||||
}
|
||||
|
||||
|
@@ -25,7 +25,7 @@ public sealed class UserSpamStats : IDisposable
|
||||
lock (applyLock)
|
||||
{
|
||||
var upperMsg = message.Content.ToUpperInvariant();
|
||||
if (upperMsg != LastMessage || (string.IsNullOrWhiteSpace(upperMsg) && message.Attachments.Any()))
|
||||
if (upperMsg != LastMessage || string.IsNullOrWhiteSpace(upperMsg) && message.Attachments.Any())
|
||||
{
|
||||
LastMessage = upperMsg;
|
||||
while (timers.TryDequeue(out var old))
|
||||
|
@@ -154,7 +154,7 @@ public partial class Administration
|
||||
}
|
||||
else
|
||||
{
|
||||
var g = ((SocketGuild)ctx.Guild);
|
||||
var g = (SocketGuild)ctx.Guild;
|
||||
foreach (var rr in rrs)
|
||||
{
|
||||
var ch = g.GetTextChannel(rr.ChannelId);
|
||||
@@ -164,7 +164,7 @@ public partial class Administration
|
||||
msg = await ch.GetMessageAsync(rr.MessageId).ConfigureAwait(false) as IUserMessage;
|
||||
}
|
||||
var content = msg?.Content.TrimTo(30) ?? "DELETED!";
|
||||
embed.AddField($"**{rr.Index + 1}.** {(ch?.Name ?? "DELETED!")}",
|
||||
embed.AddField($"**{rr.Index + 1}.** {ch?.Name ?? "DELETED!"}",
|
||||
GetText(strs.reaction_roles_message(rr.ReactionRoles?.Count ?? 0, content)));
|
||||
}
|
||||
}
|
||||
@@ -197,7 +197,7 @@ public partial class Administration
|
||||
{
|
||||
var runnerUser = (IGuildUser)ctx.User;
|
||||
var runnerMaxRolePosition = runnerUser.GetRoles().Max(x => x.Position);
|
||||
if ((ctx.User.Id != ctx.Guild.OwnerId) && runnerMaxRolePosition <= roleToAdd.Position)
|
||||
if (ctx.User.Id != ctx.Guild.OwnerId && runnerMaxRolePosition <= roleToAdd.Position)
|
||||
return;
|
||||
try
|
||||
{
|
||||
@@ -271,7 +271,7 @@ public partial class Administration
|
||||
.Where(x => !x.IsManaged && x != x.Guild.EveryoneRole)
|
||||
.ToList();
|
||||
|
||||
if (user.Id == ctx.Guild.OwnerId || (ctx.User.Id != ctx.Guild.OwnerId && guser.GetRoles().Max(x => x.Position) <= userRoles.Max(x => x.Position)))
|
||||
if (user.Id == ctx.Guild.OwnerId || ctx.User.Id != ctx.Guild.OwnerId && guser.GetRoles().Max(x => x.Position) <= userRoles.Max(x => x.Position))
|
||||
return;
|
||||
try
|
||||
{
|
||||
|
@@ -81,8 +81,8 @@ public sealed class ImageOnlyChannelService : IEarlyBehavior
|
||||
var newState = false;
|
||||
using var uow = _db.GetDbContext();
|
||||
if (forceDisable
|
||||
|| (_enabledOn.TryGetValue(guildId, out var channels)
|
||||
&& channels.TryRemove(channelId)))
|
||||
|| _enabledOn.TryGetValue(guildId, out var channels)
|
||||
&& channels.TryRemove(channelId))
|
||||
{
|
||||
uow.ImageOnlyChannels.Delete(x => x.ChannelId == channelId);
|
||||
}
|
||||
|
@@ -225,7 +225,7 @@ public sealed class LogCommandService : ILogCommandService
|
||||
logSetting.LogVoicePresenceId =
|
||||
logSetting.UserMutedId =
|
||||
logSetting.LogVoicePresenceTTSId =
|
||||
(value ? channelId : (ulong?) null);
|
||||
value ? channelId : (ulong?) null;
|
||||
;
|
||||
await uow.SaveChangesAsync();
|
||||
GuildLogSettings.AddOrUpdate(guildId, id => logSetting, (id, old) => logSetting);
|
||||
@@ -244,7 +244,7 @@ public sealed class LogCommandService : ILogCommandService
|
||||
var g = after.Guild;
|
||||
|
||||
if (!GuildLogSettings.TryGetValue(g.Id, out var logSetting)
|
||||
|| (logSetting.UserUpdatedId is null))
|
||||
|| logSetting.UserUpdatedId is null)
|
||||
return;
|
||||
|
||||
ITextChannel logChannel;
|
||||
@@ -303,54 +303,54 @@ public sealed class LogCommandService : ILogCommandService
|
||||
switch (type)
|
||||
{
|
||||
case LogType.Other:
|
||||
channelId = logSetting.LogOtherId = (logSetting.LogOtherId is null ? cid : default);
|
||||
channelId = logSetting.LogOtherId = logSetting.LogOtherId is null ? cid : default;
|
||||
break;
|
||||
case LogType.MessageUpdated:
|
||||
channelId = logSetting.MessageUpdatedId = (logSetting.MessageUpdatedId is null ? cid : default);
|
||||
channelId = logSetting.MessageUpdatedId = logSetting.MessageUpdatedId is null ? cid : default;
|
||||
break;
|
||||
case LogType.MessageDeleted:
|
||||
channelId = logSetting.MessageDeletedId = (logSetting.MessageDeletedId is null ? cid : default);
|
||||
channelId = logSetting.MessageDeletedId = logSetting.MessageDeletedId is null ? cid : default;
|
||||
//logSetting.DontLogBotMessageDeleted = (options == "nobot");
|
||||
break;
|
||||
case LogType.UserJoined:
|
||||
channelId = logSetting.UserJoinedId = (logSetting.UserJoinedId is null ? cid : default);
|
||||
channelId = logSetting.UserJoinedId = logSetting.UserJoinedId is null ? cid : default;
|
||||
break;
|
||||
case LogType.UserLeft:
|
||||
channelId = logSetting.UserLeftId = (logSetting.UserLeftId is null ? cid : default);
|
||||
channelId = logSetting.UserLeftId = logSetting.UserLeftId is null ? cid : default;
|
||||
break;
|
||||
case LogType.UserBanned:
|
||||
channelId = logSetting.UserBannedId = (logSetting.UserBannedId is null ? cid : default);
|
||||
channelId = logSetting.UserBannedId = logSetting.UserBannedId is null ? cid : default;
|
||||
break;
|
||||
case LogType.UserUnbanned:
|
||||
channelId = logSetting.UserUnbannedId = (logSetting.UserUnbannedId is null ? cid : default);
|
||||
channelId = logSetting.UserUnbannedId = logSetting.UserUnbannedId is null ? cid : default;
|
||||
break;
|
||||
case LogType.UserUpdated:
|
||||
channelId = logSetting.UserUpdatedId = (logSetting.UserUpdatedId is null ? cid : default);
|
||||
channelId = logSetting.UserUpdatedId = logSetting.UserUpdatedId is null ? cid : default;
|
||||
break;
|
||||
case LogType.UserMuted:
|
||||
channelId = logSetting.UserMutedId = (logSetting.UserMutedId is null ? cid : default);
|
||||
channelId = logSetting.UserMutedId = logSetting.UserMutedId is null ? cid : default;
|
||||
break;
|
||||
case LogType.ChannelCreated:
|
||||
channelId = logSetting.ChannelCreatedId = (logSetting.ChannelCreatedId is null ? cid : default);
|
||||
channelId = logSetting.ChannelCreatedId = logSetting.ChannelCreatedId is null ? cid : default;
|
||||
break;
|
||||
case LogType.ChannelDestroyed:
|
||||
channelId = logSetting.ChannelDestroyedId =
|
||||
(logSetting.ChannelDestroyedId is null ? cid : default);
|
||||
logSetting.ChannelDestroyedId is null ? cid : default;
|
||||
break;
|
||||
case LogType.ChannelUpdated:
|
||||
channelId = logSetting.ChannelUpdatedId = (logSetting.ChannelUpdatedId is null ? cid : default);
|
||||
channelId = logSetting.ChannelUpdatedId = logSetting.ChannelUpdatedId is null ? cid : default;
|
||||
break;
|
||||
case LogType.UserPresence:
|
||||
channelId = logSetting.LogUserPresenceId =
|
||||
(logSetting.LogUserPresenceId is null ? cid : default);
|
||||
logSetting.LogUserPresenceId is null ? cid : default;
|
||||
break;
|
||||
case LogType.VoicePresence:
|
||||
channelId = logSetting.LogVoicePresenceId =
|
||||
(logSetting.LogVoicePresenceId is null ? cid : default);
|
||||
logSetting.LogVoicePresenceId is null ? cid : default;
|
||||
break;
|
||||
case LogType.VoicePresenceTTS:
|
||||
channelId = logSetting.LogVoicePresenceTTSId =
|
||||
(logSetting.LogVoicePresenceTTSId is null ? cid : default);
|
||||
logSetting.LogVoicePresenceTTSId is null ? cid : default;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -376,7 +376,7 @@ public sealed class LogCommandService : ILogCommandService
|
||||
return;
|
||||
|
||||
if (!GuildLogSettings.TryGetValue(usr.Guild.Id, out var logSetting)
|
||||
|| (logSetting.LogVoicePresenceTTSId is null))
|
||||
|| logSetting.LogVoicePresenceTTSId is null)
|
||||
return;
|
||||
|
||||
ITextChannel logChannel;
|
||||
@@ -416,7 +416,7 @@ public sealed class LogCommandService : ILogCommandService
|
||||
try
|
||||
{
|
||||
if (!GuildLogSettings.TryGetValue(usr.Guild.Id, out var logSetting)
|
||||
|| (logSetting.UserMutedId is null))
|
||||
|| logSetting.UserMutedId is null)
|
||||
return;
|
||||
|
||||
ITextChannel logChannel;
|
||||
@@ -460,7 +460,7 @@ public sealed class LogCommandService : ILogCommandService
|
||||
try
|
||||
{
|
||||
if (!GuildLogSettings.TryGetValue(usr.Guild.Id, out var logSetting)
|
||||
|| (logSetting.UserMutedId is null))
|
||||
|| logSetting.UserMutedId is null)
|
||||
return;
|
||||
|
||||
ITextChannel logChannel;
|
||||
@@ -512,7 +512,7 @@ public sealed class LogCommandService : ILogCommandService
|
||||
return;
|
||||
|
||||
if (!GuildLogSettings.TryGetValue(users.First().Guild.Id, out var logSetting)
|
||||
|| (logSetting.LogOtherId is null))
|
||||
|| logSetting.LogOtherId is null)
|
||||
return;
|
||||
ITextChannel logChannel;
|
||||
if ((logChannel = await TryGetLogChannel(users.First().Guild, logSetting, LogType.Other)
|
||||
@@ -681,7 +681,7 @@ public sealed class LogCommandService : ILogCommandService
|
||||
var after = (IGuildChannel) cafter;
|
||||
|
||||
if (!GuildLogSettings.TryGetValue(before.Guild.Id, out var logSetting)
|
||||
|| (logSetting.ChannelUpdatedId is null)
|
||||
|| logSetting.ChannelUpdatedId is null
|
||||
|| logSetting.LogIgnores.Any(ilc => ilc.LogItemId == after.Id && ilc.ItemType == IgnoredItemType.Channel))
|
||||
return;
|
||||
|
||||
@@ -732,7 +732,7 @@ public sealed class LogCommandService : ILogCommandService
|
||||
return;
|
||||
|
||||
if (!GuildLogSettings.TryGetValue(ch.Guild.Id, out var logSetting)
|
||||
|| (logSetting.ChannelDestroyedId is null)
|
||||
|| logSetting.ChannelDestroyedId is null
|
||||
|| logSetting.LogIgnores.Any(ilc => ilc.LogItemId == ch.Id && ilc.ItemType == IgnoredItemType.Channel))
|
||||
return;
|
||||
|
||||
@@ -817,7 +817,7 @@ public sealed class LogCommandService : ILogCommandService
|
||||
return;
|
||||
|
||||
if (!GuildLogSettings.TryGetValue(usr.Guild.Id, out var logSetting)
|
||||
|| (logSetting.LogVoicePresenceId is null)
|
||||
|| logSetting.LogVoicePresenceId is null
|
||||
|| logSetting.LogIgnores.Any(ilc => ilc.LogItemId == iusr.Id && ilc.ItemType == IgnoredItemType.User))
|
||||
return;
|
||||
|
||||
@@ -870,7 +870,7 @@ public sealed class LogCommandService : ILogCommandService
|
||||
try
|
||||
{
|
||||
if (!GuildLogSettings.TryGetValue(usr.Guild.Id, out var logSetting)
|
||||
|| (logSetting.UserLeftId is null)
|
||||
|| logSetting.UserLeftId is null
|
||||
|| logSetting.LogIgnores.Any(ilc => ilc.LogItemId == usr.Id && ilc.ItemType == IgnoredItemType.User))
|
||||
return;
|
||||
|
||||
@@ -905,7 +905,7 @@ public sealed class LogCommandService : ILogCommandService
|
||||
try
|
||||
{
|
||||
if (!GuildLogSettings.TryGetValue(usr.Guild.Id, out var logSetting)
|
||||
|| (logSetting.UserJoinedId is null))
|
||||
|| logSetting.UserJoinedId is null)
|
||||
return;
|
||||
|
||||
ITextChannel logChannel;
|
||||
@@ -946,7 +946,7 @@ public sealed class LogCommandService : ILogCommandService
|
||||
try
|
||||
{
|
||||
if (!GuildLogSettings.TryGetValue(guild.Id, out var logSetting)
|
||||
|| (logSetting.UserUnbannedId is null)
|
||||
|| logSetting.UserUnbannedId is null
|
||||
|| logSetting.LogIgnores.Any(ilc => ilc.LogItemId == usr.Id && ilc.ItemType == IgnoredItemType.User))
|
||||
return;
|
||||
|
||||
@@ -981,7 +981,7 @@ public sealed class LogCommandService : ILogCommandService
|
||||
try
|
||||
{
|
||||
if (!GuildLogSettings.TryGetValue(guild.Id, out var logSetting)
|
||||
|| (logSetting.UserBannedId is null)
|
||||
|| logSetting.UserBannedId is null
|
||||
|| logSetting.LogIgnores.Any(ilc => ilc.LogItemId == usr.Id && ilc.ItemType == IgnoredItemType.User))
|
||||
return;
|
||||
|
||||
@@ -1029,7 +1029,7 @@ public sealed class LogCommandService : ILogCommandService
|
||||
return;
|
||||
|
||||
if (!GuildLogSettings.TryGetValue(channel.Guild.Id, out var logSetting)
|
||||
|| (logSetting.MessageDeletedId is null)
|
||||
|| logSetting.MessageDeletedId is null
|
||||
|| logSetting.LogIgnores.Any(ilc => ilc.LogItemId == channel.Id && ilc.ItemType == IgnoredItemType.Channel))
|
||||
return;
|
||||
|
||||
@@ -1087,7 +1087,7 @@ public sealed class LogCommandService : ILogCommandService
|
||||
return;
|
||||
|
||||
if (!GuildLogSettings.TryGetValue(channel.Guild.Id, out var logSetting)
|
||||
|| (logSetting.MessageUpdatedId is null)
|
||||
|| logSetting.MessageUpdatedId is null
|
||||
|| logSetting.LogIgnores.Any(ilc => ilc.LogItemId == channel.Id && ilc.ItemType == IgnoredItemType.Channel))
|
||||
return;
|
||||
|
||||
|
@@ -299,7 +299,7 @@ public class MuteService : INService
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var toOverwrite in (await guild.GetTextChannelsAsync().ConfigureAwait(false)))
|
||||
foreach (var toOverwrite in await guild.GetTextChannelsAsync().ConfigureAwait(false))
|
||||
{
|
||||
try
|
||||
{
|
||||
|
@@ -190,7 +190,7 @@ public class RoleCommandsService : INService
|
||||
{
|
||||
var toAdd = user.Guild.GetRole(dbRero.RoleId);
|
||||
|
||||
return (toAdd != null && !user.Roles.Contains(toAdd))
|
||||
return toAdd != null && !user.Roles.Contains(toAdd)
|
||||
? user.AddRoleAsync(toAdd)
|
||||
: Task.CompletedTask;
|
||||
}
|
||||
|
@@ -320,7 +320,7 @@ WHERE GuildId={guildId}
|
||||
// these 3 don't make sense with time
|
||||
if ((punish == PunishmentAction.Softban || punish == PunishmentAction.Kick || punish == PunishmentAction.RemoveRoles) && time != null)
|
||||
return false;
|
||||
if (number <= 0 || (time != null && time.Time > TimeSpan.FromDays(49)))
|
||||
if (number <= 0 || time != null && time.Time > TimeSpan.FromDays(49))
|
||||
return false;
|
||||
|
||||
using (var uow = _db.GetDbContext())
|
||||
@@ -334,7 +334,7 @@ WHERE GuildId={guildId}
|
||||
{
|
||||
Count = number,
|
||||
Punishment = punish,
|
||||
Time = (int?)(time?.Time.TotalMinutes) ?? 0,
|
||||
Time = (int?)time?.Time.TotalMinutes ?? 0,
|
||||
RoleId = punish == PunishmentAction.AddRole ? role.Id : default(ulong?),
|
||||
});
|
||||
uow.SaveChanges();
|
||||
|
@@ -37,7 +37,7 @@ public partial class Administration
|
||||
// bot can't punish a user who is higher in the hierarchy. Discord will return 403
|
||||
// moderator can be owner, in which case role hierarchy doesn't matter
|
||||
// otherwise, moderator has to have a higher role
|
||||
if ((botMaxRole <= targetMaxRole || (ctx.User.Id != ownerId && targetMaxRole >= modMaxRole)) || target.Id == ownerId)
|
||||
if (botMaxRole <= targetMaxRole || ctx.User.Id != ownerId && targetMaxRole >= modMaxRole || target.Id == ownerId)
|
||||
{
|
||||
await ReplyErrorLocalizedAsync(strs.hierarchy);
|
||||
return false;
|
||||
|
@@ -20,8 +20,8 @@ public class CustomReactions : NadekoModule<CustomReactionsService>
|
||||
_clientFactory = clientFactory;
|
||||
}
|
||||
|
||||
private bool AdminInGuildOrOwnerInDm() => (ctx.Guild is null && _creds.IsOwner(ctx.User))
|
||||
|| (ctx.Guild != null && ((IGuildUser)ctx.User).GuildPermissions.Administrator);
|
||||
private bool AdminInGuildOrOwnerInDm() => ctx.Guild is null && _creds.IsOwner(ctx.User)
|
||||
|| ctx.Guild != null && ((IGuildUser)ctx.User).GuildPermissions.Administrator;
|
||||
|
||||
[NadekoCommand, Aliases]
|
||||
public async Task AddCustReact(string key, [Leftover] string message)
|
||||
@@ -53,7 +53,7 @@ public class CustomReactions : NadekoModule<CustomReactionsService>
|
||||
if (string.IsNullOrWhiteSpace(message) || id < 0)
|
||||
return;
|
||||
|
||||
if ((channel is null && !_creds.IsOwner(ctx.User)) || (channel != null && !((IGuildUser)ctx.User).GuildPermissions.Administrator))
|
||||
if (channel is null && !_creds.IsOwner(ctx.User) || channel != null && !((IGuildUser)ctx.User).GuildPermissions.Administrator)
|
||||
{
|
||||
await ReplyErrorLocalizedAsync(strs.insuff_perms).ConfigureAwait(false);
|
||||
return;
|
||||
|
@@ -60,7 +60,7 @@ public static class CustomReactionExtensions
|
||||
if (word.Length < str.Length && str.isValidWordDivider(word.Length))
|
||||
return WordPosition.Start;
|
||||
}
|
||||
else if ((wordIndex + word.Length) == str.Length)
|
||||
else if (wordIndex + word.Length == str.Length)
|
||||
{
|
||||
if (str.isValidWordDivider(wordIndex - 1))
|
||||
return WordPosition.End;
|
||||
|
@@ -264,7 +264,7 @@ public sealed class CustomReactionsService : IEarlyBehavior, IReadyExecutor
|
||||
if (toDelete is null)
|
||||
return null;
|
||||
|
||||
if ((toDelete.IsGlobal() && guildId is null) || (guildId == toDelete.GuildId))
|
||||
if (toDelete.IsGlobal() && guildId is null || guildId == toDelete.GuildId)
|
||||
{
|
||||
uow.CustomReactions.Remove(toDelete);
|
||||
await uow.SaveChangesAsync();
|
||||
|
@@ -78,7 +78,7 @@ public partial class Gambling
|
||||
GetText(strs.animal_race_won_money(
|
||||
Format.Bold(winner.Username),
|
||||
winner.Animal.Icon,
|
||||
(race.FinishedUsers[0].Bet * (race.Users.Count - 1)) + CurrencySign)));
|
||||
race.FinishedUsers[0].Bet * (race.Users.Count - 1) + CurrencySign)));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -111,7 +111,7 @@ public partial class Gambling
|
||||
{String.Join("\n", race.Users.Select(p =>
|
||||
{
|
||||
var index = race.FinishedUsers.IndexOf(p);
|
||||
var extra = (index == -1 ? "" : $"#{index + 1} {(index == 0 ? "🏆" : "")}");
|
||||
var extra = index == -1 ? "" : $"#{index + 1} {(index == 0 ? "🏆" : "")}";
|
||||
return $"{(int)(p.Progress / 60f * 100),-2}%|{new string('‣', p.Progress) + p.Animal.Icon + extra}";
|
||||
}))}
|
||||
|🏁🏁🏁🏁🏁🏁🏁🏁🏁🏁🏁🏁🏁🏁🏁🔚|";
|
||||
|
@@ -179,7 +179,7 @@ public class Blackjack
|
||||
{
|
||||
var hw = Dealer.GetHandValue();
|
||||
while (hw < 17
|
||||
|| (hw == 17 && Dealer.Cards.Count(x => x.Number == 1) > (Dealer.GetRawHandValue() - 17) / 10))// hit on soft 17
|
||||
|| hw == 17 && Dealer.Cards.Count(x => x.Number == 1) > (Dealer.GetRawHandValue() - 17) / 10)// hit on soft 17
|
||||
{
|
||||
/* Dealer has
|
||||
A 6
|
||||
|
@@ -252,13 +252,13 @@ public class Deck
|
||||
{
|
||||
if (cards.GroupBy(card => card.Number).Count() != cards.Count())
|
||||
return false;
|
||||
var toReturn = (cards.Max(card => (int)card.Number)
|
||||
- cards.Min(card => (int)card.Number) == 4);
|
||||
var toReturn = cards.Max(card => (int)card.Number)
|
||||
- cards.Min(card => (int)card.Number) == 4;
|
||||
if (toReturn || cards.All(c => c.Number != 1)) return toReturn;
|
||||
|
||||
var newCards = cards.Select(c => c.Number == 1 ? new(c.Suit, 14) : c);
|
||||
return (newCards.Max(card => (int)card.Number)
|
||||
- newCards.Min(card => (int)card.Number) == 4);
|
||||
return newCards.Max(card => (int)card.Number)
|
||||
- newCards.Min(card => (int)card.Number) == 4;
|
||||
}
|
||||
|
||||
bool hasThreeOfKind(List<Card> cards) => cards.GroupBy(card => card.Number)
|
||||
|
@@ -167,8 +167,8 @@ public class ReactionEvent : ICurrencyEvent
|
||||
|| msg.Id != _msg.Id // same message
|
||||
|| gu.IsBot // no bots
|
||||
|| (DateTime.UtcNow - gu.CreatedAt).TotalDays <= 5 // no recently created accounts
|
||||
|| (_noRecentlyJoinedServer && // if specified, no users who joined the server in the last 24h
|
||||
(gu.JoinedAt is null || (DateTime.UtcNow - gu.JoinedAt.Value).TotalDays < 1))) // and no users for who we don't know when they joined
|
||||
|| _noRecentlyJoinedServer && // if specified, no users who joined the server in the last 24h
|
||||
(gu.JoinedAt is null || (DateTime.UtcNow - gu.JoinedAt.Value).TotalDays < 1)) // and no users for who we don't know when they joined
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@@ -158,8 +158,8 @@ public sealed class Connect4Game : IDisposable
|
||||
if (CurrentPhase == Phase.Ended || CurrentPhase == Phase.Joining)
|
||||
return false;
|
||||
|
||||
if (!((_players[0].Value.UserId == userId && CurrentPhase == Phase.P1Move)
|
||||
|| (_players[1].Value.UserId == userId && CurrentPhase == Phase.P2Move)))
|
||||
if (!(_players[0].Value.UserId == userId && CurrentPhase == Phase.P1Move
|
||||
|| _players[1].Value.UserId == userId && CurrentPhase == Phase.P2Move))
|
||||
return false;
|
||||
|
||||
if (inputCol < 0 || inputCol > NumberOfColumns) //invalid input
|
||||
|
@@ -185,7 +185,7 @@ public partial class Gambling
|
||||
{
|
||||
for (var j = 0; j < Connect4Game.NumberOfColumns; j++)
|
||||
{
|
||||
var cur = game.GameState[i + (j * Connect4Game.NumberOfRows) - 1];
|
||||
var cur = game.GameState[i + j * Connect4Game.NumberOfRows - 1];
|
||||
|
||||
if (cur == Connect4Game.Field.Empty)
|
||||
sb.Append("⚫"); //black circle
|
||||
|
@@ -65,8 +65,8 @@ public partial class Gambling : GamblingModule<GamblingService>
|
||||
.WithTitle(GetText(strs.economy_state))
|
||||
.AddField(GetText(strs.currency_owned), ((BigInteger)(ec.Cash - ec.Bot)).ToString("N", _enUsCulture) + CurrencySign)
|
||||
.AddField(GetText(strs.currency_one_percent), (onePercent * 100).ToString("F2") + "%")
|
||||
.AddField(GetText(strs.currency_planted), ((BigInteger)ec.Planted) + CurrencySign)
|
||||
.AddField(GetText(strs.owned_waifus_total), ((BigInteger)ec.Waifus) + CurrencySign)
|
||||
.AddField(GetText(strs.currency_planted), (BigInteger)ec.Planted + CurrencySign)
|
||||
.AddField(GetText(strs.owned_waifus_total), (BigInteger)ec.Waifus + CurrencySign)
|
||||
.AddField(GetText(strs.bot_currency), ec.Bot.ToString("N", _enUsCulture) + CurrencySign)
|
||||
.AddField(GetText(strs.total), ((BigInteger)(ec.Cash + ec.Planted + ec.Waifus)).ToString("N", _enUsCulture) + CurrencySign)
|
||||
.WithOkColor();
|
||||
@@ -146,7 +146,7 @@ public partial class Gambling : GamblingModule<GamblingService>
|
||||
{
|
||||
role = role ?? ctx.Guild.EveryoneRole;
|
||||
|
||||
var members = (await role.GetMembersAsync().ConfigureAwait(false));
|
||||
var members = await role.GetMembersAsync().ConfigureAwait(false);
|
||||
var membersArray = members as IUser[] ?? members.ToArray();
|
||||
if (membersArray.Length == 0)
|
||||
{
|
||||
@@ -271,9 +271,9 @@ public partial class Gambling : GamblingModule<GamblingService>
|
||||
}
|
||||
|
||||
await _cs.AddAsync(usr,
|
||||
$"Awarded by bot owner. ({ctx.User.Username}/{ctx.User.Id}) {(msg ?? "")}",
|
||||
$"Awarded by bot owner. ({ctx.User.Username}/{ctx.User.Id}) {msg ?? ""}",
|
||||
amount,
|
||||
gamble: (ctx.Client.CurrentUser.Id != usrId)).ConfigureAwait(false);
|
||||
gamble: ctx.Client.CurrentUser.Id != usrId).ConfigureAwait(false);
|
||||
await ReplyConfirmLocalizedAsync(strs.awarded(n(amount) + CurrencySign, $"<@{usrId}>"));
|
||||
}
|
||||
|
||||
@@ -329,7 +329,7 @@ public partial class Gambling : GamblingModule<GamblingService>
|
||||
return;
|
||||
|
||||
if (await _cs.RemoveAsync(user, $"Taken by bot owner.({ctx.User.Username}/{ctx.User.Id})", amount,
|
||||
gamble: (ctx.Client.CurrentUser.Id != user.Id)).ConfigureAwait(false))
|
||||
gamble: ctx.Client.CurrentUser.Id != user.Id).ConfigureAwait(false))
|
||||
await ReplyConfirmLocalizedAsync(strs.take(n(amount) + CurrencySign, Format.Bold(user.ToString()))).ConfigureAwait(false);
|
||||
else
|
||||
await ReplyErrorLocalizedAsync(strs.take_fail(n(amount) + CurrencySign, Format.Bold(user.ToString()), CurrencySign));
|
||||
@@ -344,7 +344,7 @@ public partial class Gambling : GamblingModule<GamblingService>
|
||||
return;
|
||||
|
||||
if (await _cs.RemoveAsync(usrId, $"Taken by bot owner.({ctx.User.Username}/{ctx.User.Id})", amount,
|
||||
gamble: (ctx.Client.CurrentUser.Id != usrId)).ConfigureAwait(false))
|
||||
gamble: ctx.Client.CurrentUser.Id != usrId).ConfigureAwait(false))
|
||||
await ReplyConfirmLocalizedAsync(strs.take(amount + CurrencySign, $"<@{usrId}>"));
|
||||
else
|
||||
await ReplyErrorLocalizedAsync(strs.take_fail(amount + CurrencySign, Format.Code(usrId.ToString()), CurrencySign));
|
||||
@@ -440,7 +440,7 @@ public partial class Gambling : GamblingModule<GamblingService>
|
||||
var winner = rdGame.Winner == rdGame.P1
|
||||
? ctx.User
|
||||
: u;
|
||||
description += $"\n**{winner}** Won {n(((long)(rdGame.Amount * 2 * 0.98))) + CurrencySign}";
|
||||
description += $"\n**{winner}** Won {n((long)(rdGame.Amount * 2 * 0.98)) + CurrencySign}";
|
||||
|
||||
embed = embed.WithDescription(description);
|
||||
|
||||
@@ -609,7 +609,7 @@ public partial class Gambling : GamblingModule<GamblingService>
|
||||
public async Task Rps(RpsPick pick, ShmartNumber amount = default)
|
||||
{
|
||||
long oldAmount = amount;
|
||||
if (!await CheckBetOptional(amount).ConfigureAwait(false) || (amount == 1))
|
||||
if (!await CheckBetOptional(amount).ConfigureAwait(false) || amount == 1)
|
||||
return;
|
||||
|
||||
string getRpsPick(RpsPick p)
|
||||
@@ -646,9 +646,9 @@ public partial class Gambling : GamblingModule<GamblingService>
|
||||
embed.WithOkColor();
|
||||
msg = GetText(strs.rps_draw(getRpsPick(pick)));
|
||||
}
|
||||
else if ((pick == RpsPick.Paper && nadekoPick == RpsPick.Rock) ||
|
||||
(pick == RpsPick.Rock && nadekoPick == RpsPick.Scissors) ||
|
||||
(pick == RpsPick.Scissors && nadekoPick == RpsPick.Paper))
|
||||
else if (pick == RpsPick.Paper && nadekoPick == RpsPick.Rock ||
|
||||
pick == RpsPick.Rock && nadekoPick == RpsPick.Scissors ||
|
||||
pick == RpsPick.Scissors && nadekoPick == RpsPick.Paper)
|
||||
{
|
||||
amount = (long)(amount * base._config.BetFlip.Multiplier);
|
||||
await _cs.AddAsync(ctx.User.Id,
|
||||
|
@@ -110,7 +110,7 @@ public class WaifuService : INService
|
||||
.Count();
|
||||
|
||||
return (int) Math.Ceiling(waifu.Price * 1.25f) +
|
||||
((divorces + affs + 2) * settings.Waifu.Multipliers.WaifuReset);
|
||||
(divorces + affs + 2) * settings.Waifu.Multipliers.WaifuReset;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -164,7 +164,7 @@ public class WaifuService : INService
|
||||
await using (var uow = _db.GetDbContext())
|
||||
{
|
||||
w = uow.WaifuInfo.ByWaifuUserId(target.Id);
|
||||
isAffinity = (w?.Affinity?.UserId == user.Id);
|
||||
isAffinity = w?.Affinity?.UserId == user.Id;
|
||||
if (w is null)
|
||||
{
|
||||
var claimer = uow.GetOrCreateUser(user);
|
||||
@@ -202,7 +202,7 @@ public class WaifuService : INService
|
||||
{
|
||||
var oldClaimer = w.Claimer;
|
||||
w.Claimer = uow.GetOrCreateUser(user);
|
||||
w.Price = amount + (amount / 4);
|
||||
w.Price = amount + amount / 4;
|
||||
result = WaifuClaimResult.Success;
|
||||
|
||||
uow.WaifuUpdates.Add(new()
|
||||
|
@@ -212,7 +212,7 @@ public partial class Gambling
|
||||
}
|
||||
|
||||
private static long GetProfitAmount(int price) =>
|
||||
(int)(Math.Ceiling(0.90 * price));
|
||||
(int)Math.Ceiling(0.90 * price);
|
||||
|
||||
[NadekoCommand, Aliases]
|
||||
[RequireContext(ContextType.Guild)]
|
||||
@@ -300,7 +300,7 @@ public partial class Gambling
|
||||
set => set.Include(x => x.ShopEntries)
|
||||
.ThenInclude(x => x.Items)).ShopEntries);
|
||||
entry = entries.ElementAtOrDefault(index);
|
||||
if (entry != null && (rightType = (entry.Type == ShopEntryType.List)))
|
||||
if (entry != null && (rightType = entry.Type == ShopEntryType.List))
|
||||
{
|
||||
if (added = entry.Items.Add(item))
|
||||
{
|
||||
|
@@ -227,7 +227,7 @@ public partial class Gambling
|
||||
foreach (var w in waifus)
|
||||
{
|
||||
var j = i++;
|
||||
embed.AddField("#" + ((page * 9) + j + 1) + " - " + w.Price + CurrencySign, w.ToString(), false);
|
||||
embed.AddField("#" + (page * 9 + j + 1) + " - " + w.Price + CurrencySign, w.ToString(), false);
|
||||
}
|
||||
|
||||
await ctx.Channel.EmbedAsync(embed);
|
||||
|
@@ -198,7 +198,7 @@ public class Help : NadekoModule<HelpService>
|
||||
{
|
||||
succ = new((await Task.WhenAll(cmds.Select(async x =>
|
||||
{
|
||||
var pre = (await x.CheckPreconditionsAsync(Context, _services).ConfigureAwait(false));
|
||||
var pre = await x.CheckPreconditionsAsync(Context, _services).ConfigureAwait(false);
|
||||
return (Cmd: x, Succ: pre.IsSuccess);
|
||||
})).ConfigureAwait(false))
|
||||
.Where(x => x.Succ)
|
||||
|
@@ -145,7 +145,7 @@ public sealed class YtdlYoutubeResolver : IYoutubeResolver
|
||||
var match = expiryRegex.Match(streamUrl);
|
||||
if (match.Success && double.TryParse(match.Groups["timestamp"].ToString(), out var timestamp))
|
||||
{
|
||||
var realExpiry = (timestamp.ToUnixTimestamp() - DateTime.UtcNow);
|
||||
var realExpiry = timestamp.ToUnixTimestamp() - DateTime.UtcNow;
|
||||
if (realExpiry > TimeSpan.FromMinutes(60))
|
||||
return realExpiry.Subtract(TimeSpan.FromMinutes(30));
|
||||
|
||||
|
@@ -326,7 +326,7 @@ public sealed partial class Music : NadekoModule<IMusicService>
|
||||
desc = add + "\n" + desc;
|
||||
|
||||
var embed = _eb.Create()
|
||||
.WithAuthor(GetText(strs.player_queue(curPage + 1, (tracks.Count / LQ_ITEMS_PER_PAGE) + 1)),
|
||||
.WithAuthor(GetText(strs.player_queue(curPage + 1, tracks.Count / LQ_ITEMS_PER_PAGE + 1)),
|
||||
MusicIconUrl)
|
||||
.WithDescription(desc)
|
||||
.WithFooter($" {mp.PrettyVolume()} | 🎶 {tracks.Count} | ⌛ {mp.PrettyTotalTime()} ")
|
||||
@@ -428,7 +428,7 @@ public sealed partial class Music : NadekoModule<IMusicService>
|
||||
}
|
||||
|
||||
var embed = _eb.Create()
|
||||
.WithAuthor(GetText(strs.removed_song) + " #" + (index), MusicIconUrl)
|
||||
.WithAuthor(GetText(strs.removed_song) + " #" + index, MusicIconUrl)
|
||||
.WithDescription(song.PrettyName())
|
||||
.WithFooter(song.PrettyInfo())
|
||||
.WithErrorColor();
|
||||
|
@@ -33,10 +33,10 @@ public static class PermissionExtensions
|
||||
//false = applicable, not allowed
|
||||
public static bool? CheckPermission(this Permissionv2 perm, IUserMessage message, string commandName, string moduleName)
|
||||
{
|
||||
if (!((perm.SecondaryTarget == SecondaryPermissionType.Command &&
|
||||
perm.SecondaryTargetName.ToLowerInvariant() == commandName.ToLowerInvariant()) ||
|
||||
(perm.SecondaryTarget == SecondaryPermissionType.Module &&
|
||||
perm.SecondaryTargetName.ToLowerInvariant() == moduleName.ToLowerInvariant()) ||
|
||||
if (!(perm.SecondaryTarget == SecondaryPermissionType.Command &&
|
||||
perm.SecondaryTargetName.ToLowerInvariant() == commandName.ToLowerInvariant() ||
|
||||
perm.SecondaryTarget == SecondaryPermissionType.Module &&
|
||||
perm.SecondaryTargetName.ToLowerInvariant() == moduleName.ToLowerInvariant() ||
|
||||
perm.SecondaryTarget == SecondaryPermissionType.AllModules))
|
||||
return null;
|
||||
|
||||
|
@@ -102,7 +102,7 @@ public partial class Searches
|
||||
var i = 0;
|
||||
var fs = string.Join("\n", feeds.Skip(cur * 10)
|
||||
.Take(10)
|
||||
.Select(x => $"`{(cur * 10) + (++i)}.` <#{x.ChannelId}> {x.Url}"));
|
||||
.Select(x => $"`{cur * 10 + ++i}.` <#{x.ChannelId}> {x.Url}"));
|
||||
|
||||
return embed.WithDescription(fs);
|
||||
|
||||
|
@@ -89,7 +89,7 @@ public partial class Searches
|
||||
{
|
||||
var character = tempList[i];
|
||||
|
||||
sb.AppendLine($"#{i + 1 + (curPage * 9),-4}{character.Name,-23}{ShortLeagueName(character.League),-10}{character.Class,-13}{character.Level,-3}");
|
||||
sb.AppendLine($"#{i + 1 + curPage * 9,-4}{character.Name,-23}{ShortLeagueName(character.League),-10}{character.Class,-13}{character.Level,-3}");
|
||||
}
|
||||
|
||||
sb.AppendLine("```");
|
||||
|
@@ -241,7 +241,7 @@ public partial class Searches : NadekoModule<SearchesService>
|
||||
if (!elems.Any())
|
||||
return;
|
||||
|
||||
var img = (elems.ElementAtOrDefault(new NadekoRandom().Next(0, elems.Count))?.Children?.FirstOrDefault() as IHtmlImageElement);
|
||||
var img = elems.ElementAtOrDefault(new NadekoRandom().Next(0, elems.Count))?.Children?.FirstOrDefault() as IHtmlImageElement;
|
||||
|
||||
if (img?.Source is null)
|
||||
return;
|
||||
|
@@ -125,7 +125,7 @@ public partial class Searches
|
||||
{
|
||||
var elem = elements[index];
|
||||
eb.AddField(
|
||||
$"**#{(index + 1) + (12 * cur)}** {elem.Username.ToLower()}",
|
||||
$"**#{index + 1 + 12 * cur}** {elem.Username.ToLower()}",
|
||||
$"【{elem.Type}】\n<#{elem.ChannelId}>\n{elem.Message?.TrimTo(50)}",
|
||||
true);
|
||||
}
|
||||
|
@@ -60,7 +60,7 @@ public partial class Utility
|
||||
var embed = _eb.Create().WithOkColor();
|
||||
foreach (var inv in invites)
|
||||
{
|
||||
var expiryString = (inv.MaxAge is null || inv.MaxAge == 0 || inv.CreatedAt is null)
|
||||
var expiryString = inv.MaxAge is null || inv.MaxAge == 0 || inv.CreatedAt is null
|
||||
? "∞"
|
||||
: (inv.CreatedAt.Value.AddSeconds(inv.MaxAge.Value).UtcDateTime - DateTime.UtcNow)
|
||||
.ToString(@"d\.hh\:mm\:ss");
|
||||
|
@@ -36,7 +36,7 @@ public partial class Utility
|
||||
return;
|
||||
}
|
||||
|
||||
var rem = (_service.Interval - (DateTime.UtcNow - _service.LastUpdate));
|
||||
var rem = _service.Interval - (DateTime.UtcNow - _service.LastUpdate);
|
||||
var helpcmd = Format.Code(Prefix + "donate");
|
||||
await ctx.Channel.EmbedAsync(_eb.Create().WithOkColor()
|
||||
.WithDescription(GetText(strs.clpa_obsolete))
|
||||
|
@@ -213,7 +213,7 @@ public partial class Utility
|
||||
{
|
||||
var q = uow.Quotes.GetById(id);
|
||||
|
||||
if ((q?.GuildId != ctx.Guild.Id) || (!hasManageMessages && q.AuthorId != ctx.Message.Author.Id))
|
||||
if (q?.GuildId != ctx.Guild.Id || !hasManageMessages && q.AuthorId != ctx.Message.Author.Id)
|
||||
{
|
||||
response = GetText(strs.quotes_remove_none);
|
||||
}
|
||||
|
@@ -131,7 +131,7 @@ public partial class Utility
|
||||
var when = rem.When;
|
||||
var diff = when - DateTime.UtcNow;
|
||||
embed.AddField(
|
||||
$"#{++i + (page * 10)} {rem.When:HH:mm yyyy-MM-dd} UTC (in {(int) diff.TotalHours}h {(int) diff.Minutes}m)",
|
||||
$"#{++i + page * 10} {rem.When:HH:mm yyyy-MM-dd} UTC (in {(int) diff.TotalHours}h {(int) diff.Minutes}m)",
|
||||
$@"`Target:` {(rem.IsPrivate ? "DM" : "Channel")}
|
||||
`TargetId:` {rem.ChannelId}
|
||||
`Message:` {rem.Message?.TrimTo(50)}", false);
|
||||
|
@@ -116,8 +116,8 @@ public partial class Utility
|
||||
: TimeSpan.FromDays(1));
|
||||
|
||||
if (string.IsNullOrWhiteSpace(message)
|
||||
|| (interval != null &&
|
||||
(interval.Time > TimeSpan.FromMinutes(25000) || interval.Time < TimeSpan.FromMinutes(1))))
|
||||
|| interval != null &&
|
||||
(interval.Time > TimeSpan.FromMinutes(25000) || interval.Time < TimeSpan.FromMinutes(1)))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@@ -89,7 +89,7 @@ public sealed class RunningRepeater
|
||||
// interval (2.4h) * 0.834 is 2.0016 and that is the initial interval
|
||||
|
||||
var initialIntervalMultiplier = 1 - (triggerCount - Math.Truncate(triggerCount));
|
||||
return DateTime.UtcNow + (Repeater.Interval * initialIntervalMultiplier);
|
||||
return DateTime.UtcNow + Repeater.Interval * initialIntervalMultiplier;
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
|
@@ -79,10 +79,10 @@ public partial class Utility
|
||||
{
|
||||
if (originUnit.UnitType == "currency")
|
||||
{
|
||||
res = (value * targetUnit.Modifier) / originUnit.Modifier;
|
||||
res = value * targetUnit.Modifier / originUnit.Modifier;
|
||||
}
|
||||
else
|
||||
res = (value * originUnit.Modifier) / targetUnit.Modifier;
|
||||
res = value * originUnit.Modifier / targetUnit.Modifier;
|
||||
}
|
||||
res = Math.Round(res, 4);
|
||||
|
||||
|
@@ -87,7 +87,7 @@ public partial class Utility : NadekoModule
|
||||
await ReplyErrorLocalizedAsync(strs.nobody_playing_game).ConfigureAwait(false);
|
||||
else
|
||||
{
|
||||
await SendConfirmAsync("```css\n" + string.Join("\n", arr.GroupBy(item => (i++) / 2)
|
||||
await SendConfirmAsync("```css\n" + string.Join("\n", arr.GroupBy(item => i++ / 2)
|
||||
.Select(ig => string.Concat(ig.Select(el => $"• {el,-27}")))) + "\n```")
|
||||
.ConfigureAwait(false);
|
||||
}
|
||||
@@ -348,7 +348,7 @@ public partial class Utility : NadekoModule
|
||||
if (page < 0)
|
||||
return;
|
||||
|
||||
var guilds = await Task.Run(() => _client.Guilds.OrderBy(g => g.Name).Skip((page) * 15).Take(15)).ConfigureAwait(false);
|
||||
var guilds = await Task.Run(() => _client.Guilds.OrderBy(g => g.Name).Skip(page * 15).Take(15)).ConfigureAwait(false);
|
||||
|
||||
if (!guilds.Any())
|
||||
{
|
||||
|
@@ -74,7 +74,7 @@ public partial class Xp
|
||||
[NadekoCommand, Aliases]
|
||||
public async Task ClubIcon([Leftover] string url = null)
|
||||
{
|
||||
if ((!Uri.IsWellFormedUriString(url, UriKind.Absolute) && url != null)
|
||||
if (!Uri.IsWellFormedUriString(url, UriKind.Absolute) && url != null
|
||||
|| !await _service.SetClubIcon(ctx.User.Id, url is null ? null : new Uri(url)))
|
||||
{
|
||||
await ReplyErrorLocalizedAsync(strs.club_icon_error).ConfigureAwait(false);
|
||||
|
@@ -294,7 +294,7 @@ public class ClubService : INService
|
||||
if (usr is null)
|
||||
return false;
|
||||
|
||||
if (club.OwnerId == usr.Id || (usr.IsClubAdmin && club.Owner.UserId != bannerId)) // can't ban the owner kek, whew
|
||||
if (club.OwnerId == usr.Id || usr.IsClubAdmin && club.Owner.UserId != bannerId) // can't ban the owner kek, whew
|
||||
return false;
|
||||
|
||||
club.Bans.Add(new()
|
||||
@@ -345,7 +345,7 @@ public class ClubService : INService
|
||||
if (usr is null)
|
||||
return false;
|
||||
|
||||
if (club.OwnerId == usr.Id || (usr.IsClubAdmin && club.Owner.UserId != kickerId))
|
||||
if (club.OwnerId == usr.Id || usr.IsClubAdmin && club.Owner.UserId != kickerId)
|
||||
return false;
|
||||
|
||||
club.Users.Remove(usr);
|
||||
|
@@ -940,9 +940,9 @@ public class XpService : INService
|
||||
//xp bar
|
||||
if (_template.User.Xp.Bar.Show)
|
||||
{
|
||||
var xpPercent = (global.LevelXp / (float) global.RequiredXp);
|
||||
var xpPercent = global.LevelXp / (float) global.RequiredXp;
|
||||
DrawXpBar(xpPercent, _template.User.Xp.Bar.Global, img);
|
||||
xpPercent = (guild.LevelXp / (float) guild.RequiredXp);
|
||||
xpPercent = guild.LevelXp / (float) guild.RequiredXp;
|
||||
DrawXpBar(xpPercent, _template.User.Xp.Bar.Guild, img);
|
||||
}
|
||||
|
||||
@@ -970,7 +970,7 @@ public class XpService : INService
|
||||
? "+ "
|
||||
: "";
|
||||
var awX = _template.User.Xp.Awarded.Pos.X -
|
||||
(Math.Max(0, (stats.FullGuildStats.AwardedXp.ToString().Length - 2)) * 5);
|
||||
Math.Max(0, stats.FullGuildStats.AwardedXp.ToString().Length - 2) * 5;
|
||||
var awY = _template.User.Xp.Awarded.Pos.Y;
|
||||
img.Mutate(x => x.DrawText($"({sign}{stats.FullGuildStats.AwardedXp})",
|
||||
_fonts.NotoSans.CreateFont(_template.User.Xp.Awarded.FontSize, FontStyle.Bold),
|
||||
|
@@ -338,7 +338,7 @@ public partial class Xp : NadekoModule<XpService>
|
||||
|
||||
await ctx.Channel.TriggerTypingAsync();
|
||||
|
||||
var socketGuild = ((SocketGuild)ctx.Guild);
|
||||
var socketGuild = (SocketGuild)ctx.Guild;
|
||||
var allUsers = new List<UserXpStats>();
|
||||
if (opts.Clean)
|
||||
{
|
||||
@@ -384,7 +384,7 @@ public partial class Xp : NadekoModule<XpService>
|
||||
awardStr = $"({userXpData.AwardedXp})";
|
||||
|
||||
embed.AddField(
|
||||
$"#{(i + 1 + curPage * 9)} {(user?.ToString() ?? users[i].UserId.ToString())}",
|
||||
$"#{i + 1 + curPage * 9} {user?.ToString() ?? users[i].UserId.ToString()}",
|
||||
$"{GetText(strs.level_x(levelStats.Level))} - {levelStats.TotalXp}xp {awardStr}");
|
||||
}
|
||||
return embed;
|
||||
@@ -412,7 +412,7 @@ public partial class Xp : NadekoModule<XpService>
|
||||
{
|
||||
var user = users[i];
|
||||
embed.AddField(
|
||||
$"#{i + 1 + page * 9} {(user.ToString())}",
|
||||
$"#{i + 1 + page * 9} {user.ToString()}",
|
||||
$"{GetText(strs.level_x(new LevelStats(users[i].TotalXp).Level))} - {users[i].TotalXp}xp");
|
||||
}
|
||||
}
|
||||
|
@@ -146,8 +146,8 @@ public class CommandHandler : INService
|
||||
"Channel: {2}\n\t" +
|
||||
"Message: {3}",
|
||||
usrMsg.Author + " [" + usrMsg.Author.Id + "]", // {0}
|
||||
(channel is null ? "PRIVATE" : channel.Guild.Name + " [" + channel.Guild.Id + "]"), // {1}
|
||||
(channel is null ? "PRIVATE" : channel.Name + " [" + channel.Id + "]"), // {2}
|
||||
channel is null ? "PRIVATE" : channel.Guild.Name + " [" + channel.Guild.Id + "]", // {1}
|
||||
channel is null ? "PRIVATE" : channel.Name + " [" + channel.Id + "]", // {2}
|
||||
usrMsg.Content // {3}
|
||||
);
|
||||
}
|
||||
|
@@ -50,10 +50,10 @@ public class GreetSettingsService : INService
|
||||
{
|
||||
// if user is a new booster
|
||||
// or boosted again the same server
|
||||
if ((oldUser is { PremiumSince: null } && newUser is { PremiumSince: not null })
|
||||
|| (oldUser?.PremiumSince is { } oldDate
|
||||
&& newUser?.PremiumSince is { } newDate
|
||||
&& newDate > oldDate))
|
||||
if (oldUser is { PremiumSince: null } && newUser is { PremiumSince: not null }
|
||||
|| oldUser?.PremiumSince is { } oldDate
|
||||
&& newUser?.PremiumSince is { } newDate
|
||||
&& newDate > oldDate)
|
||||
{
|
||||
var conf = GetOrAddSettingsForGuild(newUser.Guild.Id);
|
||||
if (!conf.SendBoostMessage) return Task.CompletedTask;
|
||||
|
@@ -375,7 +375,7 @@ public class GoogleApiService : IGoogleApiService, INService
|
||||
text = await http.GetStringAsync(url).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
return (string.Concat(JArray.Parse(text)[0].Select(x => x[0])));
|
||||
return string.Concat(JArray.Parse(text)[0].Select(x => x[0]));
|
||||
}
|
||||
|
||||
private string ConvertToLanguageCode(string language)
|
||||
|
@@ -39,15 +39,15 @@ public static class IEnumerableExtensions
|
||||
var n = list.Count;
|
||||
while (n > 1)
|
||||
{
|
||||
var box = new byte[(n / Byte.MaxValue) + 1];
|
||||
var box = new byte[n / Byte.MaxValue + 1];
|
||||
int boxSum;
|
||||
do
|
||||
{
|
||||
provider.GetBytes(box);
|
||||
boxSum = box.Sum(b => b);
|
||||
} while (!(boxSum < n * ((Byte.MaxValue * box.Length) / n)));
|
||||
} while (!(boxSum < n * (Byte.MaxValue * box.Length / n)));
|
||||
|
||||
var k = (boxSum % n);
|
||||
var k = boxSum % n;
|
||||
n--;
|
||||
var value = list[k];
|
||||
list[k] = list[n];
|
||||
|
@@ -115,7 +115,7 @@ public static class StringExtensions
|
||||
for (var j = 1; j <= m; j++)
|
||||
{
|
||||
// Step 5
|
||||
var cost = (t[j - 1] == s[i - 1]) ? 0 : 1;
|
||||
var cost = t[j - 1] == s[i - 1] ? 0 : 1;
|
||||
|
||||
// Step 6
|
||||
d[i, j] = Math.Min(
|
||||
|
Reference in New Issue
Block a user