#Java returns modified object before I actually modify it
1 messages · Page 1 of 1 (latest)
This is the so called jsonUtil:
public void addWager(String uuid, String playername, long wager){
if(!this.jsonObject.has("wagers")){
this.jsonObject.add("wagers", new JsonArray());
}
JsonArray wagers = this.jsonObject.getAsJsonArray("wagers");
JsonObject wagerObject = new JsonObject();
wagerObject.addProperty("uuid", uuid.toString());
wagerObject.addProperty("playername", playername);
wagerObject.addProperty("wager", wager);
wagers.add(wagerObject);
saveJsonToFile();
}
public void updateWager(String uuid, String playername, long wager){
if(!isPlayerInWagerFile(uuid)){
return;
}
if(this.jsonObject.has("wagers")){
JsonArray wagers = this.jsonObject.getAsJsonArray("wagers");
for(JsonElement element : wagers){
JsonObject wagerObject = element.getAsJsonObject();
if(wagerObject.has("uuid") && wagerObject.get("uuid").getAsString().equalsIgnoreCase(uuid)){
wagerObject.addProperty("playername", playername);
wagerObject.addProperty("wager", wager);
saveJsonToFile();
break;
}
}
}
}
Detected code, here are some useful tools:
Formatted code
public void addWager(String uuid, String playername, long wager) {
if (!this .jsonObject.has("wagers")) {
this .jsonObject.add("wagers", new JsonArray());
}
JsonArray wagers = this .jsonObject.getAsJsonArray("wagers");
JsonObject wagerObject = new JsonObject();
wagerObject.addProperty("uuid", uuid.toString());
wagerObject.addProperty("playername", playername);
wagerObject.addProperty("wager", wager);
wagers.add(wagerObject);
saveJsonToFile();
}
public void updateWager(String uuid, String playername, long wager) {
if (!isPlayerInWagerFile(uuid)) {
return ;
}
if (this .jsonObject.has("wagers")) {
JsonArray wagers = this .jsonObject.getAsJsonArray("wagers");
for (JsonElement element : wagers) {
JsonObject wagerObject = element.getAsJsonObject();
if (wagerObject.has("uuid") && wagerObject.get("uuid").getAsString().equalsIgnoreCase(uuid)) {
wagerObject.addProperty("playername", playername);
wagerObject.addProperty("wager", wager);
saveJsonToFile();
break ;
}
}
}
}
private JsonObject jsonObject;
public JsonUtil(JsonObject jsonObject){
this.jsonObject = jsonObject;
}
public static JsonObject readJsonFromFile(String filePath) throws FileNotFoundException, JsonParseException {
Scanner scanner = new Scanner(new File(filePath));
StringBuilder jsonContent = new StringBuilder();
while (scanner.hasNextLine()) {
jsonContent.append(scanner.nextLine());
}
scanner.close();
return new JsonParser().parse(jsonContent.toString()).getAsJsonObject();
}
Detected code, here are some useful tools:
Formatted code
private JsonObject jsonObject;
public JsonUtil(JsonObject jsonObject) {
this .jsonObject = jsonObject;
}
public static JsonObject readJsonFromFile(String filePath) throws FileNotFoundException, JsonParseException {
Scanner scanner = new Scanner(new File(filePath));
StringBuilder jsonContent = new StringBuilder();
while (scanner.hasNextLine()) {
jsonContent.append(scanner.nextLine());
}
scanner.close();
return new JsonParser().parse(jsonContent.toString()).getAsJsonObject();
}
And this is a version of the current json file:
{
"wagers": [
{
"uuid": "92f46abd-d2ad-41e5-9c68-c309b98d28db",
"playername": "GGEmpire",
"wager": 57802
},
{
"uuid": "ac01ba6f-d151-41cc-a1b4-2e04460f122f",
"playername": "TheRivalHD",
"wager": 3124
},
{
"uuid": "ce020333-d1c1-41ef-9d22-e5ad886d7c36",
"playername": "Raxiders",
"wager": 1562
},
{
"uuid": "8f28a911-0f24-40b3-a257-baac52affeea",
"playername": "Devil_Fruit",
"wager": 4686
}
],
"jackpots": [
{
"price": 1562,
"times_purchased": 32,
"last_username": "Devil_Fruit"
},
{
"price": 15000,
"times_purchased": 3,
"last_username": "GGEmpire"
}
],
"holos": [
{
"type": "jackpot",
"holo_name": "99",
"lines": [
{
"1": 1562
},
{
"2": 15000
}
]
},
{
"type": "umsatz",
"holo_name": "98",
"lines": []
}
]
}
Detected code, here are some useful tools:
Formatted code
{
"wagers" : [{
"uuid" : "92f46abd-d2ad-41e5-9c68-c309b98d28db", "playername" : "GGEmpire", "wager" : 57802}
, {
"uuid" : "ac01ba6f-d151-41cc-a1b4-2e04460f122f", "playername" : "TheRivalHD", "wager" : 3124}
, {
"uuid" : "ce020333-d1c1-41ef-9d22-e5ad886d7c36", "playername" : "Raxiders", "wager" : 1562}
, {
"uuid" : "8f28a911-0f24-40b3-a257-baac52affeea", "playername" : "Devil_Fruit", "wager" : 4686}
] , "jackpots" : [{
"price" : 1562, "times_purchased" : 32, "last_username" : "Devil_Fruit"}
, {
"price" : 15000, "times_purchased" : 3, "last_username" : "GGEmpire"}
] , "holos" : [{
"type" : "jackpot", "holo_name" : "99", "lines" : [{
"1" : 1562}
, {
"2" : 15000}
] }
, {
"type" : "umsatz", "holo_name" : "98", "lines" : [] }
] }
When I run this code, for some reason both the new and the old topthree have the same value of the new values in the json, which I dont understand
Oh and this is my function to get the top three players
public List<JsonObject> getTopThreeWagers() {
JsonArray wagers = this.jsonObject.getAsJsonArray("wagers");
List<JsonObject> topWagers = new ArrayList<>();
for (JsonElement element : wagers) {
topWagers.add(element.getAsJsonObject());
}
topWagers.sort(Comparator.comparingLong(o -> ((JsonObject) o).get("wager").getAsLong()).reversed());
return topWagers.subList(0, Math.min(topWagers.size(), 3));
}
Detected code, here are some useful tools:
Request failed: Too Many Requests. Too many sessions, try again later :(.