Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion Plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
<properties>
<java.version>21</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<mc.version>1.21.11</mc.version>
</properties>

Expand Down
4 changes: 1 addition & 3 deletions Plugin/src/main/java/dev/lrxh/neptune/Neptune.java
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,7 @@
import org.bukkit.plugin.ServicePriority;
import org.bukkit.plugin.java.JavaPlugin;

import java.util.Arrays;
import java.util.Optional;
import java.util.UUID;
import java.util.*;
import java.util.function.Consumer;

@Getter
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

@Getter
public enum SettingsLocale implements IDataAccessor {
CHECK_FOR_UPDATES("CHECK_FOR_UPDATES", DataType.BOOLEAN, "true"),
FRIENDLY_FIRE("FRIENDLY_FIRE", DataType.BOOLEAN, "false"),
COMMANDS_AFTER_MATCH_WINNER("COMMAND_AFTER_MATCH.WINNER", DataType.STRING_LIST, "NONE"),
COMMANDS_AFTER_MATCH_LOSER("COMMAND_AFTER_MATCH.LOSER", DataType.STRING_LIST, "NONE"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import dev.lrxh.neptune.feature.party.Party;
import dev.lrxh.neptune.profile.data.ProfileState;
import dev.lrxh.neptune.profile.impl.Profile;
import dev.lrxh.neptune.utils.UpdateChecker;
import dev.lrxh.neptune.utils.tasks.NeptuneRunnable;
import dev.lrxh.neptune.utils.tasks.TaskScheduler;
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
Expand All @@ -24,6 +25,7 @@
import org.bukkit.event.inventory.CraftItemEvent;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.event.player.*;
import org.bukkit.event.server.ServerLoadEvent;
import org.bukkit.event.weather.WeatherChangeEvent;
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.metadata.FixedMetadataValue;
Expand All @@ -32,13 +34,17 @@
import java.util.Objects;

public class GlobalListener implements Listener {

private boolean isPlayerNotInMatch(Profile profile) {
if (profile == null) return true;
ProfileState state = profile.getState();
return !state.equals(ProfileState.IN_GAME) && !state.equals(ProfileState.IN_SPECTATOR) || profile.getMatch() == null;
}

@EventHandler
public void updateCheck(ServerLoadEvent e) {
UpdateChecker.run();
}

@EventHandler
public void onCreatureSpawnEvent(CreatureSpawnEvent event) {
if (event.getSpawnReason().equals(CreatureSpawnEvent.SpawnReason.SPAWNER_EGG) || event.getSpawnReason().equals(CreatureSpawnEvent.SpawnReason.BUCKET)) {
Expand Down
45 changes: 45 additions & 0 deletions Plugin/src/main/java/dev/lrxh/neptune/utils/UpdateChecker.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package dev.lrxh.neptune.utils;

import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import dev.lrxh.neptune.Neptune;
import dev.lrxh.neptune.configs.impl.SettingsLocale;
import lombok.experimental.UtilityClass;
import org.bukkit.Bukkit;

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.Objects;

@UtilityClass
public class UpdateChecker {
int behindBy = 0;
private void checkForUpdates() throws IOException, InterruptedException {
if (!SettingsLocale.CHECK_FOR_UPDATES.getBoolean()) return;
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.github.com/repos/Solara-Development/Neptune/compare/master..." + GithubUtils.getCommitId()))
.header("Accept", "application/vnd.github+json")
.build();
HttpClient client = HttpClient.newHttpClient();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
JsonObject json = JsonParser.parseString(response.body()).getAsJsonObject();
String status = json.get("status").getAsString();
if (Objects.equals(status, "behind")) {
behindBy = json.get("behind_by").getAsInt();
Neptune.get().getLogger().info("Your Neptune version is behind by " + behindBy + (behindBy == 1 ? " version" : " versions") + "!");
Neptune.get().getLogger().info("It is recommended to update to the latest version available here: https://github.com/Solara-Development/Neptune#-installation");
}
}
public void run() {
Bukkit.getScheduler().runTaskAsynchronously(Neptune.get(), () -> {
try {
checkForUpdates();
} catch (Exception e) {
Neptune.get().getLogger().warning("Failed to check for updates! " + e.getMessage());
}
});
}
}
Loading