First working version

This commit is contained in:
2024-09-29 23:42:26 +05:00
commit d4ddc609b3
14 changed files with 765 additions and 0 deletions

View File

@@ -0,0 +1,65 @@
package ru.bitheaven.donpayintegplug;
import org.json.JSONArray;
import org.json.JSONObject;
import ru.bitheaven.donpayintegplug.config.Action;
import ru.bitheaven.donpayintegplug.config.Config;
import ru.bitheaven.donpayintegplug.config.ConfigHandler;
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.logging.Logger;
public class DonateThread extends Thread {
private int lastDonate = ConfigHandler.load().getLastDonate();
private final Logger logger;
public DonateThread(Logger logger) {
this.logger = logger;
}
public void run() {
String token = ConfigHandler.load().getDonpayToken();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://donatepay.ru/api/v1/notifications?access_token=" + token + "&type=donation&order=ASC&after=" + lastDonate))
.GET()
.build();
HttpResponse<String> response;
try {
response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
} catch (IOException | InterruptedException e) {
throw new RuntimeException(e);
}
JSONArray array = new JSONObject(response.body()).getJSONArray("data");
for(int i = 0; i < array.length(); i++) {
JSONObject objects = array.getJSONObject(i);
boolean finded = false;
String cmd = "", msg = "";
for(Action element : ConfigHandler.load().getActions()) {
if(element.getSum() == objects.getJSONObject("vars").getFloat("sum")) {
cmd = element.getCommand();
msg = element.getMessage();
finded = true;
break;
}
}
if(!finded) continue;
lastDonate = objects.getInt("id");
DonPayIntegPlug.commands.addLast("title @a title \"" + msg.replace("{username}", objects.getJSONObject("vars").getString("name")) + "\"");
DonPayIntegPlug.commands.addLast(cmd.replace("{username}", objects.getJSONObject("vars").getString("name")));
logger.info(String.format("Exec donate #%d", lastDonate));
Config config = ConfigHandler.load();
config.setLastDonate(lastDonate);
ConfigHandler.save(config);
}
}
}