Fixed .greettest byetest greetdmtest and boosttest command if you didn't have them enabled. Also fixed greetdmtest sending messages twice.

This commit is contained in:
Toastie 2024-09-22 14:18:41 +12:00
parent 6b44f9f5b7
commit 8ec4e6cbb0
Signed by: toastie_t0ast
GPG key ID: 27F3B6855AFD40A4
2 changed files with 37 additions and 11 deletions

View file

@ -200,27 +200,44 @@ public partial class Administration
if (!isEnabled) if (!isEnabled)
{ {
var cmdName = type switch var cmdName = GetCmdName(type);
{
GreetType.Greet => "greet",
GreetType.Bye => "bye",
GreetType.Boost => "boost",
GreetType.GreetDm => "greetdm",
_ => "unknown_command"
};
await Response().Pending(strs.boostmsg_enable($"`{prefix}{cmdName}`")).SendAsync(); await Response().Pending(strs.boostmsg_enable($"`{prefix}{cmdName}`")).SendAsync();
} }
} }
private static string GetCmdName(GreetType type)
{
var cmdName = type switch
{
GreetType.Greet => "greet",
GreetType.Bye => "bye",
GreetType.Boost => "boost",
GreetType.GreetDm => "greetdm",
_ => "unknown_command"
};
return cmdName;
}
public async Task Test(GreetType type, IGuildUser? user = null) public async Task Test(GreetType type, IGuildUser? user = null)
{ {
user ??= (IGuildUser)ctx.User; user ??= (IGuildUser)ctx.User;
await _service.Test(ctx.Guild.Id, type, (ITextChannel)ctx.Channel, user); await _service.Test(ctx.Guild.Id, type, (ITextChannel)ctx.Channel, user);
var conf = await _service.GetGreetSettingsAsync(ctx.Guild.Id, type); var conf = await _service.GetGreetSettingsAsync(ctx.Guild.Id, type);
var cmd = $"`{prefix}{GetCmdName(type)}`";
var str = type switch
{
GreetType.Greet => strs.boostmsg_enable(cmd),
GreetType.Bye => strs.greetmsg_enable(cmd),
GreetType.Boost => strs.byemsg_enable(cmd),
GreetType.GreetDm => strs.greetdmmsg_enable(cmd),
_ => strs.error
};
if (conf?.IsEnabled is not true) if (conf?.IsEnabled is not true)
await Response().Pending(strs.boostmsg_enable($"`{prefix}boost`")).SendAsync(); await Response().Pending(str).SendAsync();
} }
} }
} }

View file

@ -457,7 +457,17 @@ public class GreetService : IEService, IReadyExecutor
{ {
var conf = await GetGreetSettingsAsync(guildId, type); var conf = await GetGreetSettingsAsync(guildId, type);
if (conf is null) if (conf is null)
return false; {
conf = new GreetSettings()
{
ChannelId = channel.Id,
GreetType = type,
IsEnabled = false,
GuildId = guildId,
AutoDeleteTimer = 30,
MessageText = GetDefaultGreet(type)
};
}
await SendMessage(conf, channel, user); await SendMessage(conf, channel, user);
return true; return true;
@ -467,7 +477,6 @@ public class GreetService : IEService, IReadyExecutor
{ {
if (conf.GreetType == GreetType.GreetDm) if (conf.GreetType == GreetType.GreetDm)
{ {
await _greetQueue.Writer.WriteAsync((conf, user, channel as ITextChannel));
return await GreetDmUser(conf, user); return await GreetDmUser(conf, user);
} }