rework urls in config.yml
This commit is contained in:
@ -39,6 +39,7 @@ public final class popa extends JavaPlugin implements Listener {
|
|||||||
|
|
||||||
|
|
||||||
private HttpClient httpClient;
|
private HttpClient httpClient;
|
||||||
|
private String apiBase;
|
||||||
private String apiUrl;
|
private String apiUrl;
|
||||||
private String serverIp;
|
private String serverIp;
|
||||||
private String commandsUrl;
|
private String commandsUrl;
|
||||||
@ -57,13 +58,26 @@ public final class popa extends JavaPlugin implements Listener {
|
|||||||
saveDefaultConfig();
|
saveDefaultConfig();
|
||||||
reloadConfig();
|
reloadConfig();
|
||||||
|
|
||||||
|
// База для всех урлов
|
||||||
|
apiBase = getConfig().getString("api-base", "http://localhost:8000");
|
||||||
|
|
||||||
// Получаем настройки из конфига
|
// Получаем настройки из конфига
|
||||||
String apiBase = getConfig().getString("api-base", "http://localhost:8000");
|
apiUrl = apiBase + "/api/server/events";
|
||||||
apiUrl = getConfig().getString("api-url", apiBase + "/api/server/events");
|
commandsUrl = apiBase + "/api/server/commands";
|
||||||
commandsUrl = getConfig().getString("commands-url", apiBase + "/api/server/commands");
|
inventoryRequestsUrl = apiBase + "/api/server/inventory/requests";
|
||||||
inventoryRequestsUrl = getConfig().getString("inventory-requests-url", apiBase + "/api/server/inventory/requests");
|
marketplaceUrl = apiBase + "/api/marketplace";
|
||||||
|
bonusesUrl = apiBase + "/api/bonuses/effects";
|
||||||
|
|
||||||
|
|
||||||
serverIp = getConfig().getString("server-ip", getServerIp());
|
serverIp = getConfig().getString("server-ip", getServerIp());
|
||||||
|
|
||||||
|
// Интервалы из конфига (в секундах)
|
||||||
|
int commandsInterval = getConfig().getInt("commands-interval-seconds", 5);
|
||||||
|
int inventoryInterval = getConfig().getInt("inventory-interval-seconds", 5);
|
||||||
|
int onlineUpdateInterval = getConfig().getInt("online-update-interval-seconds", 60);
|
||||||
|
int marketplaceInterval = getConfig().getInt("marketplace-interval-seconds", 3);
|
||||||
|
int bonusesInterval = getConfig().getInt("bonuses-interval-seconds", 10);
|
||||||
|
|
||||||
// Инициализируем HTTP клиент
|
// Инициализируем HTTP клиент
|
||||||
httpClient = HttpClient.newBuilder()
|
httpClient = HttpClient.newBuilder()
|
||||||
.version(HttpClient.Version.HTTP_1_1)
|
.version(HttpClient.Version.HTTP_1_1)
|
||||||
@ -87,24 +101,55 @@ public final class popa extends JavaPlugin implements Listener {
|
|||||||
|
|
||||||
// Запускаем планировщик для проверки команд
|
// Запускаем планировщик для проверки команд
|
||||||
scheduler = Executors.newSingleThreadScheduledExecutor();
|
scheduler = Executors.newSingleThreadScheduledExecutor();
|
||||||
scheduler.scheduleAtFixedRate(this::checkAndExecuteCommands, 5, 5, TimeUnit.SECONDS);
|
|
||||||
|
|
||||||
// Запускаем планировщик для проверки запросов инвентаря
|
|
||||||
scheduler.scheduleAtFixedRate(this::checkInventoryRequests, 5, 5, TimeUnit.SECONDS);
|
|
||||||
|
|
||||||
// Отправка текущих онлайн-игроков при старте плагина
|
// Проверка команд
|
||||||
scheduler.scheduleAtFixedRate(this::sendOnlinePlayersUpdate, 60, 60, TimeUnit.SECONDS);
|
scheduler.scheduleAtFixedRate(
|
||||||
|
this::checkAndExecuteCommands,
|
||||||
|
commandsInterval,
|
||||||
|
commandsInterval,
|
||||||
|
TimeUnit.SECONDS
|
||||||
|
);
|
||||||
|
|
||||||
marketplaceUrl = getConfig().getString("api-base", "http://localhost:8000") + "/api/marketplace";
|
// Проверка запросов инвентаря
|
||||||
scheduler.scheduleAtFixedRate(this::checkMarketplaceOperations, 3, 3, TimeUnit.SECONDS);
|
scheduler.scheduleAtFixedRate(
|
||||||
|
this::checkInventoryRequests,
|
||||||
|
inventoryInterval,
|
||||||
|
inventoryInterval,
|
||||||
|
TimeUnit.SECONDS
|
||||||
|
);
|
||||||
|
|
||||||
bonusesUrl = getConfig().getString("api-base", "http://localhost:8000") + "/api/bonuses/effects";
|
// Отправка текущих онлайн-игроков
|
||||||
scheduler.scheduleAtFixedRate(this::checkPlayerBonuses, 10, 10, TimeUnit.SECONDS);
|
scheduler.scheduleAtFixedRate(
|
||||||
|
this::sendOnlinePlayersUpdate,
|
||||||
|
onlineUpdateInterval,
|
||||||
|
onlineUpdateInterval,
|
||||||
|
TimeUnit.SECONDS
|
||||||
|
);
|
||||||
|
|
||||||
|
// Маркетплейс
|
||||||
|
scheduler.scheduleAtFixedRate(
|
||||||
|
this::checkMarketplaceOperations,
|
||||||
|
marketplaceInterval,
|
||||||
|
marketplaceInterval,
|
||||||
|
TimeUnit.SECONDS
|
||||||
|
);
|
||||||
|
|
||||||
|
// Бонусы
|
||||||
|
scheduler.scheduleAtFixedRate(
|
||||||
|
this::checkPlayerBonuses,
|
||||||
|
bonusesInterval,
|
||||||
|
bonusesInterval,
|
||||||
|
TimeUnit.SECONDS
|
||||||
|
);
|
||||||
|
|
||||||
getLogger().info("PopaPlugin has been enabled!");
|
getLogger().info("PopaPlugin has been enabled!");
|
||||||
|
getLogger().info("API base: " + apiBase);
|
||||||
getLogger().info("API URL: " + apiUrl);
|
getLogger().info("API URL: " + apiUrl);
|
||||||
getLogger().info("Commands URL: " + commandsUrl);
|
getLogger().info("Commands URL: " + commandsUrl);
|
||||||
getLogger().info("Inventory Requests URL: " + inventoryRequestsUrl);
|
getLogger().info("Inventory Requests URL: " + inventoryRequestsUrl);
|
||||||
|
getLogger().info("Marketplace URL: " + marketplaceUrl);
|
||||||
|
getLogger().info("Bonuses URL: " + bonusesUrl);
|
||||||
getLogger().info("Server IP: " + serverIp);
|
getLogger().info("Server IP: " + serverIp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -383,6 +428,12 @@ public final class popa extends JavaPlugin implements Listener {
|
|||||||
if (json.has("status") && "success".equals(json.get("status").getAsString())) {
|
if (json.has("status") && "success".equals(json.get("status").getAsString())) {
|
||||||
if (json.has("inventory_requests")) {
|
if (json.has("inventory_requests")) {
|
||||||
JsonArray requests = json.getAsJsonArray("inventory_requests");
|
JsonArray requests = json.getAsJsonArray("inventory_requests");
|
||||||
|
|
||||||
|
if (requests.size() == 0) {
|
||||||
|
// тишина, просто выходим
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
getLogger().info("Найдено запросов инвентаря: " + requests.size());
|
getLogger().info("Найдено запросов инвентаря: " + requests.size());
|
||||||
|
|
||||||
for (JsonElement req : requests) {
|
for (JsonElement req : requests) {
|
||||||
@ -521,7 +572,7 @@ public final class popa extends JavaPlugin implements Listener {
|
|||||||
*/
|
*/
|
||||||
private void sendInventoryToBackend(String jsonPayload) {
|
private void sendInventoryToBackend(String jsonPayload) {
|
||||||
HttpRequest request = HttpRequest.newBuilder()
|
HttpRequest request = HttpRequest.newBuilder()
|
||||||
.uri(URI.create(getConfig().getString("api-base", "http://localhost:8000") + "/api/server/inventory/submit"))
|
.uri(URI.create(apiBase + "/api/server/inventory/submit"))
|
||||||
.version(HttpClient.Version.HTTP_1_1)
|
.version(HttpClient.Version.HTTP_1_1)
|
||||||
.header("Content-Type", "application/json")
|
.header("Content-Type", "application/json")
|
||||||
.POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
|
.POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
|
||||||
|
|||||||
@ -1,8 +1,12 @@
|
|||||||
# Настройки API
|
# Настройки API
|
||||||
api-base: "http://localhost:3001"
|
api-base: "http://localhost:3001"
|
||||||
api-url: "http://localhost:3001/api/server/events"
|
|
||||||
commands-url: "http://localhost:3001/api/server/commands"
|
|
||||||
inventory-requests-url: "http://localhost:3001/api/server/inventory/requests"
|
|
||||||
|
|
||||||
# IP сервера (оставьте пустым для автоматического определения)
|
# IP сервера (оставьте пустым для автоматического определения)
|
||||||
server-ip: "survival.hub.popa-popa.ru"
|
server-ip: "minecraft.hub.popa-popa.ru"
|
||||||
|
|
||||||
|
# Интервалы обновления (в секундах)
|
||||||
|
commands-interval-seconds: 5 # проверка команд
|
||||||
|
inventory-interval-seconds: 5 # запросы инвентаря
|
||||||
|
online-update-interval-seconds: 60 # отправка онлайна
|
||||||
|
marketplace-interval-seconds: 3 # операции маркета
|
||||||
|
bonuses-interval-seconds: 10 # проверка бонусов
|
||||||
Reference in New Issue
Block a user