fix: Fixed xpcurrew breaking xp gain if user gains 0 xp from being in a voice channel while voice xp is enabled

This commit is contained in:
Kwoth
2024-08-12 12:28:11 +00:00
parent f7406ec90b
commit 88c42b74c7

View File

@@ -178,8 +178,9 @@ public class XpService : INService, IReadyExecutor, IExecNoCommand
{
foreach (var user in globalToAdd)
{
var amount = user.Value.XpAmount * conf.CurrencyPerXp;
await _cs.AddAsync(user.Key, (long)(amount), null);
var amount = (long)(user.Value.XpAmount * conf.CurrencyPerXp);
if (amount > 0)
await _cs.AddAsync(user.Key, amount, null);
}
}
@@ -422,8 +423,8 @@ public class XpService : INService, IReadyExecutor, IExecNoCommand
await _sender.Response(chan)
.Confirm(_strings.GetText(strs.level_up_global(user.Mention,
Format.Bold(newLevel.ToString())),
guild.Id))
Format.Bold(newLevel.ToString())),
guild.Id))
.SendAsync();
}
}
@@ -769,9 +770,10 @@ public class XpService : INService, IReadyExecutor, IExecNoCommand
private bool ShouldTrackXp(SocketGuildUser user, IMessageChannel channel)
{
var channelId = channel.Id;
if (_excludedChannels.TryGetValue(user.Guild.Id, out var chans) && (chans.Contains(channelId)
|| (channel is SocketThreadChannel tc && chans.Contains(tc.ParentChannel.Id))))
if (_excludedChannels.TryGetValue(user.Guild.Id, out var chans)
&& (chans.Contains(channelId)
|| (channel is SocketThreadChannel tc && chans.Contains(tc.ParentChannel.Id))))
return false;
if (_excludedServers.Contains(user.Guild.Id))