This commit is contained in:
Tsubasa6848
2024-01-03 08:35:58 +08:00
Unverified
parent 810600011a
commit 5df234806a
28 changed files with 7034 additions and 2204 deletions
+22 -67
View File
@@ -1,77 +1,32 @@
#include <llapi/LoggerAPI.h>
#include <llapi/ServerAPI.h>
#include "Global.h"
#include "version.h"
#include <memory>
#include <stdio.h>
#include <WinNls.h>
#include <ll/api/plugin/NativePlugin.h>
extern void loadConfig();
extern void loadLanguage();
#include "Plugin.h"
void PluginInit();
namespace plugin {
Logger logger(PLUGIN_NAME);
// The global plugin instance.
std::unique_ptr<Plugin> plugin = nullptr;
void CheckEULA(){
auto readEULA = ReadAllFile("plugins/Cleaner/EULA.txt");
auto EULA = ReplaceStr(readEULA.value()," ","");
if(EULA == "EULA=true"){
PluginInit();
}
else{
if(GetSystemDefaultLangID() == 0x0804){
if(MessageBox(NULL,TEXT("使用Cleaner插件将视为你同意本插件使用协议(EULA)\n\n你是否同意使用Cleaner插件?"),TEXT("Cleaner"),MB_DEFBUTTON2 | MB_ICONQUESTION | MB_YESNOCANCEL) == 6){
WriteAllFile("plugins/Cleaner/EULA.txt","EULA=true");
PluginInit();
}
else{
Logger().fatal("无法加载插件 Cleaner\n 未同意插件 EULA 协议或插件 EULA 协议配置异常。\n 请同意插件 EULA 协议后再重启服务器,具体请参见插件 README.md\n 如果无法接受插件 EULA 协议,请卸载本插件!");
}
}
else{
if(MessageBox(NULL,TEXT("By using the plugin Cleaner, you must agree plugin EULA.\n\nDo you agree to use Cleaner?"),TEXT("Cleaner"),MB_YESNOCANCEL | MB_DEFBUTTON2 | MB_ICONQUESTION) == 6){
WriteAllFile("plugins/Cleaner/EULA.txt","EULA=true");
PluginInit();
}
else{
Logger().fatal("Fail to Load Cleaner!\n Please accept the EULA or check the EULA settings.\n Restart the server after you accepted the EULA. Pleade read README.md\n If you can`t accept the EULA, please uninstall the plugin.");
}
}
}
extern "C" {
_declspec(dllexport) bool ll_plugin_load(ll::plugin::NativePlugin& self) {
plugin = std::make_unique<plugin::Plugin>(self);
return true;
}
BOOL APIENTRY DllMain(HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
ll::registerPlugin(
PLUGIN_NAME,
PLUGIN_INTRODUCTION,
ll::Version(PLUGIN_VERSION_MAJOR, PLUGIN_VERSION_MINOR, PLUGIN_VERSION_REVISION, PLUGIN_LLVERSION_STATUS),
std::map<std::string, std::string>{
{"Author", PLUGIN_AUTHOR},
});
break;
/// @warning Unloading the plugin may cause a crash if the plugin has not released all of its
/// resources. If you are unsure, keep this function commented out.
// _declspec(dllexport) bool ll_plugin_unload(ll::plugin::Plugin&) {
// plugin.reset();
//
// return true;
// }
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
_declspec(dllexport) bool ll_plugin_enable(ll::plugin::NativePlugin&) { return plugin->enable(); }
_declspec(dllexport) bool ll_plugin_disable(ll::plugin::NativePlugin&) { return plugin->disable(); }
}
extern "C"
{
_declspec(dllexport) void onPostInit()
{
std::ios::sync_with_stdio(false);
loadConfig();
loadLanguage();
CheckEULA();
}
}
} // namespace plugin