From aadea751ace8f78d48e2678b6fc500fe1e8f3432 Mon Sep 17 00:00:00 2001
From: Him188 <Him188@mamoe.net>
Date: Wed, 6 May 2020 11:52:44 +0800
Subject: [PATCH] Add precondition checks

---
 .../kotlin/net/mamoe/mirai/utils/ExternalImageJvm.kt       | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/ExternalImageJvm.kt b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/ExternalImageJvm.kt
index 85bc40311..2eaa943dc 100644
--- a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/ExternalImageJvm.kt
+++ b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/ExternalImageJvm.kt
@@ -37,7 +37,12 @@ fun BufferedImage.toExternalImage(formatName: String = "png"): ExternalImage =
  * @param deleteOnClose 若为 `true`, 图片发送后将会删除这个文件
  */
 @JvmOverloads
-fun File.toExternalImage(deleteOnClose: Boolean = false): ExternalImage = ExternalImage(asReusableInput(deleteOnClose))
+fun File.toExternalImage(deleteOnClose: Boolean = false): ExternalImage {
+    require(this.isFile) { "File must be a file" }
+    require(this.exists()) { "File must exist" }
+    require(this.canRead()) { "File must can be read" }
+    return ExternalImage(asReusableInput(deleteOnClose))
+}
 
 /**
  * 将 [URL] 委托为 [ExternalImage].