Skip to content

Commit 8c7f330

Browse files
committed
User config operation now only happen locally and are synced via command
1 parent 76b7fe1 commit 8c7f330

File tree

3 files changed

+10
-101
lines changed

3 files changed

+10
-101
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>net.kyrptonaught</groupId>
88
<artifactId>LEMBackend</artifactId>
9-
<version>0.0.12</version>
9+
<version>0.0.13</version>
1010

1111
<properties>
1212
<maven.compiler.source>17</maven.compiler.source>

src/main/java/net/kyrptonaught/LEMBackend/userConfig/UserConfigModule.java

Lines changed: 6 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -12,69 +12,24 @@
1212

1313
public class UserConfigModule extends Module {
1414

15-
public final ConcurrentHashMap<String, PlayerConfigs> playerCache = new ConcurrentHashMap<>();
16-
1715
public UserConfigModule() {
1816
super("data/userConfigs");
1917
}
2018

21-
public PlayerConfigs getPlayerConfig(String player) {
22-
if (!playerCache.containsKey(player))
23-
load(player);
24-
25-
return playerCache.get(player);
26-
}
27-
28-
public void unloadPlayer(String player) {
29-
if (playerCache.containsKey(player)) {
30-
save(player);
31-
playerCache.remove(player);
32-
}
33-
}
34-
35-
public void setValue(String player, String key, String value) {
36-
getPlayerConfig(player).setValue(key, value);
37-
save(player);
38-
}
39-
40-
41-
public ConcurrentHashMap<String, String> getValues(String player) {
42-
return getPlayerConfig(player).getValues();
43-
}
44-
45-
public void removeValue(String player, String key) {
46-
getPlayerConfig(player).removeValue(key);
47-
save(player);
48-
}
49-
50-
public void saveToPreset(String player, String presetID, JsonObject keys) {
51-
getPlayerConfig(player).saveToPreset(presetID, keys);
52-
save(player);
53-
}
54-
55-
public void loadFromPreset(String player, String presetID, JsonArray keys) {
56-
getPlayerConfig(player).loadFromPreset(presetID, keys);
57-
save(player);
58-
}
19+
public JsonObject loadPlayer(String player) {
20+
JsonObject obj = readFileJson(LEMBackend.gson, player + ".json", JsonObject.class);
21+
if(obj == null) obj = new JsonObject();
5922

60-
public void load(String player) {
61-
JsonObject userConfigObj = readFileJson(LEMBackend.gson, player + ".json", JsonObject.class);
62-
playerCache.put(player, PlayerConfigs.load(userConfigObj));
23+
return obj;
6324
}
6425

65-
public void save(String player) {
66-
writeFile(player + ".json", LEMBackend.gson.toJson(playerCache.get(player)));
26+
public void syncPlayer(String player, String json) {
27+
writeFile(player + ".json", json);
6728
}
6829

6930
@Override
7031
public void load(Gson gson) {
7132
createDirectories();
7233
}
7334

74-
@Override
75-
public void save(Gson gson) {
76-
createDirectories();
77-
78-
playerCache.keySet().forEach(this::save);
79-
}
8035
}
Lines changed: 3 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,26 @@
11
package net.kyrptonaught.LEMBackend.userConfig;
22

3-
import com.google.gson.JsonArray;
4-
import com.google.gson.JsonObject;
53
import io.javalin.http.Context;
64
import net.kyrptonaught.LEMBackend.ModuleRouter;
75

8-
import java.util.concurrent.ConcurrentHashMap;
9-
106
public class UserConfigRouter extends ModuleRouter<UserConfigModule> {
117

128
@Override
139
public void addRoutes() {
1410
route(HTTP.GET, "/v0/{secret}/getUserConfig/{uuid}", this::getUserConfig);
15-
route(HTTP.POST, "/v0/{secret}/syncUserConfig/{uuid}/{key}/{value}", this::syncUserConfig);
16-
route(HTTP.POST, "/v0/{secret}/removeUserConfig/{uuid}/{key}", this::removeUserConfig);
17-
route(HTTP.POST, "/v0/{secret}/userConfigSaveToPreset/{uuid}/{preset}", this::saveToPreset);
18-
route(HTTP.POST, "/v0/{secret}/userConfigLoadFromPreset/{uuid}/{preset}", this::loadFromPreset);
19-
route(HTTP.POST, "/v0/{secret}/unloadUserConfig/{uuid}", this::unloadPlayer);
11+
route(HTTP.POST, "/v0/{secret}/syncUserConfig/{uuid}", this::syncUserConfig);
2012
}
2113

2214
public void getUserConfig(Context ctx) {
2315
String uuid = ctx.pathParam("uuid");
2416

25-
ConcurrentHashMap<String, String> dataStorage = module.getValues(uuid);
26-
ctx.json(dataStorage);
17+
ctx.json(module.loadPlayer(uuid));
2718
}
2819

2920
public void syncUserConfig(Context ctx) {
30-
String key = ctx.pathParam("key");
31-
String uuid = ctx.pathParam("uuid");
32-
String value = ctx.pathParam("value");
33-
34-
module.setValue(uuid, key, value);
35-
ctx.result("success");
36-
}
37-
38-
public void removeUserConfig(Context ctx) {
39-
String key = ctx.pathParam("key");
40-
String uuid = ctx.pathParam("uuid");
41-
42-
module.removeValue(uuid, key);
43-
ctx.result("success");
44-
}
45-
46-
public void saveToPreset(Context ctx) {
47-
String uuid = ctx.pathParam("uuid");
48-
String presetID = ctx.pathParam("preset");
49-
50-
JsonObject keys = ctx.bodyAsClass(JsonObject.class);
51-
module.saveToPreset(uuid, presetID, keys);
52-
ctx.result("success");
53-
}
54-
55-
public void loadFromPreset(Context ctx) {
56-
String uuid = ctx.pathParam("uuid");
57-
String presetID = ctx.pathParam("preset");
58-
59-
JsonArray keys = ctx.bodyAsClass(JsonArray.class);
60-
module.loadFromPreset(uuid, presetID, keys);
61-
62-
ConcurrentHashMap<String, String> dataStorage = module.getValues(uuid);
63-
ctx.json(dataStorage);
64-
}
65-
66-
public void unloadPlayer(Context ctx) {
6721
String uuid = ctx.pathParam("uuid");
6822

69-
module.unloadPlayer(uuid);
23+
module.syncPlayer(uuid, ctx.body());
7024
ctx.result("success");
7125
}
7226
}

0 commit comments

Comments
 (0)