- Removed NadekoCommand and Aliases attribute from all commands

- All commands must be marked as partial
- Added [Cmd] Attribute to all commands
- Cmd Attribute comes from the source generator which adds [NadekoCommand] and [Aliases] Attribute to each command
- Should be updated in the future probably to be more performant and maybe add extra data to the commands
- Started reorganizing modules and submodules
This commit is contained in:
Kwoth
2021-12-31 16:04:12 +01:00
parent 6eee161b6b
commit 25eeffa163
107 changed files with 1620 additions and 3236 deletions

View File

@@ -0,0 +1,62 @@
#nullable disable
using NadekoBot.Modules.Administration.Services;
namespace NadekoBot.Modules.Administration;
public partial class Administration
{
[Group]
public partial class PlayingRotateCommands : NadekoSubmodule<PlayingRotateService>
{
[Cmd]
[OwnerOnly]
public async partial Task RotatePlaying()
{
if (_service.ToggleRotatePlaying())
await ReplyConfirmLocalizedAsync(strs.ropl_enabled);
else
await ReplyConfirmLocalizedAsync(strs.ropl_disabled);
}
[Cmd]
[OwnerOnly]
public async partial Task AddPlaying(ActivityType t, [Leftover] string status)
{
await _service.AddPlaying(t, status);
await ReplyConfirmLocalizedAsync(strs.ropl_added);
}
[Cmd]
[OwnerOnly]
public async partial Task ListPlaying()
{
var statuses = _service.GetRotatingStatuses();
if (!statuses.Any())
{
await ReplyErrorLocalizedAsync(strs.ropl_not_set);
}
else
{
var i = 1;
await ReplyConfirmLocalizedAsync(strs.ropl_list(string.Join("\n\t",
statuses.Select(rs => $"`{i++}.` *{rs.Type}* {rs.Status}"))));
}
}
[Cmd]
[OwnerOnly]
public async partial Task RemovePlaying(int index)
{
index -= 1;
var msg = await _service.RemovePlayingAsync(index);
if (msg is null)
return;
await ReplyConfirmLocalizedAsync(strs.reprm(msg));
}
}
}