Restructure system description command
This commit is contained in:
		| @@ -38,12 +38,35 @@ namespace PluralKit.Bot | ||||
|         public async Task Description(Context ctx) { | ||||
|             ctx.CheckSystem(); | ||||
|  | ||||
|             if (ctx.MatchFlag("c", "clear")) | ||||
|             { | ||||
|                 ctx.System.Description = null; | ||||
|                 await _data.SaveSystem(ctx.System); | ||||
|                 await ctx.Reply($"{Emojis.Success} System description cleared."); | ||||
|                 return; | ||||
|             } | ||||
|              | ||||
|             var newDescription = ctx.RemainderOrNull()?.NormalizeLineEndSpacing(); | ||||
|             if (newDescription != null && newDescription.Length > Limits.MaxDescriptionLength) throw Errors.DescriptionTooLongError(newDescription.Length); | ||||
|  | ||||
|             ctx.System.Description = newDescription; | ||||
|             await _data.SaveSystem(ctx.System); | ||||
|             await ctx.Reply($"{Emojis.Success} System description {(newDescription != null ? "changed" : "cleared")}."); | ||||
|             if (newDescription == null) | ||||
|             { | ||||
|                 if (ctx.System.Description == null) | ||||
|                     await ctx.Reply("Your system does not have a description set. To set one, type `pk;s description <description>`."); | ||||
|                 else if (ctx.MatchFlag("r", "raw")) | ||||
|                     await ctx.Reply($"```\n{ctx.System.Description}\n```"); | ||||
|                 else | ||||
|                     await ctx.Reply(embed: new EmbedBuilder() | ||||
|                         .WithTitle("System description") | ||||
|                         .WithDescription(ctx.System.Description) | ||||
|                         .WithFooter("To print the description with formatting, type `pk;s description -raw`. To clear it, type `pk;s description -clear`. To change it, type `pk;s description <new description>`.") | ||||
|                         .Build()); | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 if (newDescription.Length > Limits.MaxDescriptionLength) throw Errors.DescriptionTooLongError(newDescription.Length); | ||||
|                 ctx.System.Description = newDescription; | ||||
|                 await _data.SaveSystem(ctx.System); | ||||
|                 await ctx.Reply($"{Emojis.Success} System description changed."); | ||||
|             } | ||||
|         } | ||||
|          | ||||
|         public async Task Tag(Context ctx) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user