im trying to bridge donation platform to be used in Forge. but the PARSER make the data get stuck and wont run the method properly, i can't see any error in the console either
here is what i've been do:
ForgeriaWebSocketClient.java
public CompletionStage<?> onText(WebSocket ws, CharSequence data, boolean last) {
LOGGER.info("[Forgeria] Data: " + MessageParser.parse(data.toString()));
return WebSocket.Listener.super.onText(ws, data, last);
}
MessageParser.java
public static List<IncomingDonation> parse(String payload) {
LOGGER.info("[Forgeria] MessageParse 1");
List<IncomingDonation> result = new ArrayList<>();
// BUG: parser make the data got stuck
JsonObject obj = PARSER.parse(payload).getAsJsonObject();
LOGGER.info("[Forgeria] MessageParse 2");
String type = obj.get("type").getAsString();
if ("donations".equals(type)) {
JsonArray jData = obj.get("data").getAsJsonArray();
for (JsonElement el : jData) {
JsonObject jdonation = el.getAsJsonObject();
int amount = jdonation.get("amount").getAsNumber().intValue();
String name = jdonation.get("donator").getAsString();
String message = jdonation.get("message").getAsString();
boolean replay = jdonation.has("is_replay") && jdonation.get("is_replay").getAsBoolean();
IncomingDonation incomingDonation = new IncomingDonation.Builder()
.setAmount(amount)
.setName(name)
.setMessage(message)
.setReplay(replay)
.build();
result.add(incomingDonation);
}
}
return result;
}