#Java returns modified object before I actually modify it

1 messages · Page 1 of 1 (latest)

tidal siloBOT
#

<@&987246399047479336> please have a look, thanks.

heady warren
#

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;
                }
            }
        }
    }
tidal siloBOT
# heady warren This is the so called jsonUtil: ```java public void addWager(String uuid, S...

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 ;
      }
    }
  }
}
heady warren
#
    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();
    }
tidal siloBOT
# heady warren ```java private JsonObject jsonObject; public JsonUtil(JsonObject jsonOb...

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();
}
heady warren
#

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": []
    }
  ]
}
tidal siloBOT
# heady warren And this is a version of the current json file: ```json { "wagers": [ { ...

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" : [] }
  ] }
heady warren
#

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));
    }
tidal siloBOT