diff --git a/Plain Craft Launcher 2/Modules/ModEvent.vb b/Plain Craft Launcher 2/Modules/ModEvent.vb
index 693f4ca..e6bd0ec 100644
--- a/Plain Craft Launcher 2/Modules/ModEvent.vb
+++ b/Plain Craft Launcher 2/Modules/ModEvent.vb
@@ -115,6 +115,13 @@
PageOtherTest.StartCustomDownload(Data(0), "未知")
End Try
+ Case "修改设置"
+ If Setup.IsEncoded(Data(0)) Then
+ Throw New Exception($"无法修改受加密保护的设置:{Data(0)}")
+ End If
+ Setup.Set(Data(0), Data(1))
+ Hint("已修改设置!", HintType.Finish)
+
Case Else
MyMsgBox("未知的事件类型:" & Type & vbCrLf & "请检查事件类型填写是否正确,或者 PCL 是否为最新版本。", "事件执行失败")
End Select
diff --git a/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb b/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb
index 5d8b968..6a301ac 100644
--- a/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb
+++ b/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb
@@ -357,6 +357,13 @@
Return Not HasIniKey(Version.Path & "PCL\Setup.ini", Key)
End Select
End Function
+ '''
+ ''' 某个设置项是否加密。
+ '''
+ Public Function IsEncoded(Key As String) As Boolean
+ If Not SetupDict.ContainsKey(Key) Then Throw New KeyNotFoundException("未找到设置项:" & Key) With {.Source = Key}
+ Return SetupDict(Key).Encoded
+ End Function
'''
''' 读取设置。