-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMyMod.cpp
More file actions
71 lines (56 loc) · 1.78 KB
/
Copy pathMyMod.cpp
File metadata and controls
71 lines (56 loc) · 1.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include "mod/MyMod.h"
#include <filesystem>
#include <pl/Mod.hpp>
namespace clange_me {
ClangeMeMod &ClangeMeMod::instance() {
static ClangeMeMod instance;
return instance;
}
ClangeMeMod::ClangeMeMod() : mSelf(*ll::mod::NativeMod::current()) {}
bool ClangeMeMod::load() {
auto &self = getSelf();
self.getLogger().debug("Loading...");
std::error_code ec;
std::filesystem::create_directories(self.getDataDir(), ec);
if (ec) {
self.getLogger().error("Failed to create data directory {}: {}", self.getDataDir().string(),
ec.message());
return false;
}
std::filesystem::create_directories(self.getConfigDir(), ec);
if (ec) {
self.getLogger().error("Failed to create config directory {}: {}",
self.getConfigDir().string(), ec.message());
return false;
}
mConfigFile.emplace();
if (!mConfigFile->load()) {
self.getLogger().warn("Failed to load typed config");
return false;
}
mConfig = mConfigFile->value();
self.getLogger().info("Loaded {} from {}", self.getName(), self.getModDir().string());
return true;
}
bool ClangeMeMod::enable() {
auto &self = getSelf();
self.getLogger().debug("Enabling...");
if (!mConfig.enabled) {
self.getLogger().info("clange_me is disabled by config");
return true;
}
self.getLogger().info("Config message: {}", mConfig.message);
return true;
}
bool ClangeMeMod::disable() {
getSelf().getLogger().debug("Disabling...");
// Undo enable-time state here.
return true;
}
bool ClangeMeMod::unload() {
getSelf().getLogger().debug("Unloading...");
// Release load-time resources here.
mConfigFile.reset();
return true;
}
} // namespace clange_me