// DM the user a security disclaimer, and then the token in a separate message (for easy copying on mobile)
vardm=awaitctx.Rest.CreateDmAsync(ctx.Author.Id);
awaitdm.SendMessageFixedAsync(
$"{Emojis.Warn} Please note that this grants access to modify (and delete!) all your system data, so keep it safe and secure. If it leaks or you need a new one, you can invalidate this one with `pk;token refresh`.\n\nYour token is below:");
// DM the user an invalidation disclaimer, and then the token in a separate message (for easy copying on mobile)
vardm=awaitctx.Rest.CreateDmAsync(ctx.Author.Id);
awaitdm.SendMessageFixedAsync($"{Emojis.Warn} Your previous API token has been invalidated. You will need to change it anywhere it's currently used.\n\nYour token is below:");
// Make the new token after sending the first DM; this ensures if we can't DM, we also don't end up
// breaking their existing token as a side effect :)
vartoken=awaitMakeAndSetNewToken(ctx.System);
awaitdm.SendMessageFixedAsync(token);
// If we're not already in a DM, reply with a reminder to check
if(!(ctx.ChannelisDiscordDmChannel))
awaitctx.Reply($"{Emojis.Success} Check your DMs!");