46 lines
1.6 KiB
C#
Raw Normal View History

2020-02-01 13:03:02 +01:00
using System.Threading.Tasks;
using PluralKit.Core;
namespace PluralKit.Bot
2020-02-01 13:03:02 +01:00
{
public class System
{
2020-08-29 13:46:27 +02:00
private readonly EmbedService _embeds;
private readonly IDatabase _db;
private readonly ModelRepository _repo;
2020-02-01 13:03:02 +01:00
2020-08-29 13:46:27 +02:00
public System(EmbedService embeds, IDatabase db, ModelRepository repo)
2020-02-01 13:03:02 +01:00
{
_embeds = embeds;
2020-08-29 13:46:27 +02:00
_db = db;
_repo = repo;
2020-02-01 13:03:02 +01:00
}
public async Task Query(Context ctx, PKSystem system) {
if (system == null) throw Errors.NoSystemError;
await ctx.Reply(embed: await _embeds.CreateSystemEmbed(ctx, system, ctx.LookupContextFor(system)));
2020-02-01 13:03:02 +01:00
}
2020-04-24 15:50:28 -04:00
2020-02-01 13:03:02 +01:00
public async Task New(Context ctx)
{
ctx.CheckNoSystem();
var systemName = ctx.RemainderOrNull();
if (systemName != null && systemName.Length > Limits.MaxSystemNameLength)
throw Errors.SystemNameTooLongError(systemName.Length);
2020-08-29 13:46:27 +02:00
var system = _db.Execute(async c =>
{
var system = await _repo.CreateSystem(c, systemName);
await _repo.AddAccount(c, system.Id, ctx.Author.Id);
return system;
});
2020-08-29 13:46:27 +02:00
// TODO: better message, perhaps embed like in groups?
2020-02-09 22:35:16 +01:00
await ctx.Reply($"{Emojis.Success} Your system has been created. Type `pk;system` to view it, and type `pk;system help` for more information about commands you can use now. Now that you have that set up, check out the getting started guide on setting up members and proxies: <https://pluralkit.me/start>");
2020-02-01 13:03:02 +01:00
}
}
}