Skip to content

Commit

Permalink
Update Version API 1.0-RC3.2
Browse files Browse the repository at this point in the history
Feactures : #19
  • Loading branch information
Euphillya committed Feb 1, 2024
1 parent 3c610d2 commit c779f48
Show file tree
Hide file tree
Showing 8 changed files with 137 additions and 7 deletions.
18 changes: 15 additions & 3 deletions .idea/sonarlint/issuestore/index.pb

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 15 additions & 3 deletions .idea/sonarlint/securityhotspotstore/index.pb

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion api/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ dependencies {
}

group = "fr.euphyllia.skyllia";
version = "1.0-RC3.1";
version = "1.0-RC3.2";

publishing {
repositories {
Expand Down
35 changes: 35 additions & 0 deletions api/src/main/java/fr/euphyllia/skyllia/api/SkylliaAPI.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package fr.euphyllia.skyllia.api;

import fr.euphyllia.skyllia.api.skyblock.Island;
import fr.euphyllia.skyllia.api.skyblock.model.Position;
import org.bukkit.Chunk;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.util.UUID;
import java.util.concurrent.CompletableFuture;

public final class SkylliaAPI {

private static SkylliaImplementation implementation;

public static void setImplementation(SkylliaImplementation skylliaImplementation) {
implementation = skylliaImplementation;
}

public static @Nullable CompletableFuture<@NotNull Island> getIslandByPlayerId(UUID playerUniqueId) {
return implementation.getIslandByPlayerId(playerUniqueId);
}

public static @Nullable CompletableFuture<@NotNull Island> getIslandByIslandId(UUID islandId) {
return implementation.getIslandByIslandId(islandId);
}

public static @Nullable @NotNull Island getIslandByPosition(Position position) {
return implementation.getIslandByPosition(position);
}

public static @Nullable @NotNull Island getIslandByChunk(Chunk chunk) {
return implementation.getIslandByChunk(chunk);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package fr.euphyllia.skyllia.api;

import fr.euphyllia.skyllia.api.skyblock.Island;
import fr.euphyllia.skyllia.api.skyblock.model.Position;
import org.bukkit.Chunk;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.util.UUID;
import java.util.concurrent.CompletableFuture;

public interface SkylliaImplementation {

public @Nullable CompletableFuture<@NotNull Island> getIslandByPlayerId(UUID playerUniqueId);

public CompletableFuture<@NotNull Island> getIslandByIslandId(UUID islandId);

public @NotNull Island getIslandByPosition(Position position);

public @NotNull Island getIslandByChunk(Chunk chunk);
}
1 change: 1 addition & 0 deletions plugin/src/main/java/fr/euphyllia/skyllia/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ public void onEnable() {
this.loadListener();
this.runCache();
this.disabledConfig();
this.interneAPI.loadAPI();
}

@Override
Expand Down
5 changes: 5 additions & 0 deletions plugin/src/main/java/fr/euphyllia/skyllia/api/InterneAPI.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import fr.euphyllia.skyllia.database.query.MariaDBTransactionQuery;
import fr.euphyllia.skyllia.database.query.exec.IslandQuery;
import fr.euphyllia.skyllia.managers.Managers;
import fr.euphyllia.skyllia.managers.skyblock.APISkyllia;
import fr.euphyllia.skyllia.managers.skyblock.SkyblockManager;
import net.kyori.adventure.text.minimessage.MiniMessage;
import org.apache.logging.log4j.Level;
Expand Down Expand Up @@ -191,4 +192,8 @@ public WorldNMS getWorldNMS() {
public PlayerNMS getPlayerNMS() {
return this.playerNMS;
}

public void loadAPI() {
SkylliaAPI.setImplementation(new APISkyllia(this));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package fr.euphyllia.skyllia.managers.skyblock;

import fr.euphyllia.skyllia.api.InterneAPI;
import fr.euphyllia.skyllia.api.SkylliaImplementation;
import fr.euphyllia.skyllia.api.skyblock.Island;
import fr.euphyllia.skyllia.api.skyblock.model.Position;
import fr.euphyllia.skyllia.cache.PositionIslandCache;
import fr.euphyllia.skyllia.utils.RegionUtils;
import org.bukkit.Chunk;
import org.jetbrains.annotations.NotNull;

import java.util.UUID;
import java.util.concurrent.CompletableFuture;

public final class APISkyllia implements SkylliaImplementation {


private final InterneAPI interneAPI;

public APISkyllia(InterneAPI interneAPI) {
this.interneAPI = interneAPI;
}

@Override
public CompletableFuture<@NotNull Island> getIslandByPlayerId(UUID playerUniqueId) {
return this.interneAPI.getSkyblockManager().getIslandByPlayerId(playerUniqueId);
}

@Override
public CompletableFuture<@NotNull Island> getIslandByIslandId(UUID islandId) {
return this.interneAPI.getSkyblockManager().getIslandByIslandId(islandId);
}

@Override
public @NotNull Island getIslandByPosition(Position position) {
return PositionIslandCache.getIsland(position);
}

@Override
public @NotNull Island getIslandByChunk(Chunk chunk) {
Position position = RegionUtils.getRegionInChunk(chunk.getX(), chunk.getZ());
return PositionIslandCache.getIsland(position);
}
}

0 comments on commit c779f48

Please sign in to comment.