Skip to content

Commit

Permalink
Added the ability to create island and superiorplayer objects from th…
Browse files Browse the repository at this point in the history
…e FactoriesManager
  • Loading branch information
OmerBenGera committed Sep 16, 2022
1 parent ca7d257 commit 805d9c4
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 28 deletions.
Expand Up @@ -5,9 +5,11 @@
import com.bgsoftware.superiorskyblock.api.factory.DatabaseBridgeFactory;
import com.bgsoftware.superiorskyblock.api.factory.IslandsFactory;
import com.bgsoftware.superiorskyblock.api.factory.PlayersFactory;
import com.bgsoftware.superiorskyblock.api.island.Island;
import com.bgsoftware.superiorskyblock.api.island.bank.BankTransaction;
import com.bgsoftware.superiorskyblock.api.wrappers.BlockOffset;
import com.bgsoftware.superiorskyblock.api.wrappers.BlockPosition;
import com.bgsoftware.superiorskyblock.api.wrappers.SuperiorPlayer;
import org.bukkit.Location;

import javax.annotation.Nullable;
Expand Down Expand Up @@ -60,6 +62,26 @@ public interface FactoriesManager {
@Nullable
DatabaseBridgeFactory getDatabaseBridgeFactory();

/**
* Create a new Island object.
* Warning: This island is not saved into the database unless inserting it manually!
*
* @param superiorPlayer The owner of the island.
* @param uuid The uuid of the island.
* @param location The location of the island.
* @param islandName The name of the island.
* @param schemName The schematic used to create the island.
*/
Island createIsland(@Nullable SuperiorPlayer superiorPlayer, UUID uuid, Location location, String islandName, String schemName);

/**
* Create a new SuperiorPlayer object.
* Warning: This player is not saved into the database unless inserting it manually!
*
* @param playerUUID The uuid of the player.
*/
SuperiorPlayer createPlayer(UUID playerUUID);

/**
* Create a {@link BlockOffset} object from given offsets.
*
Expand Down
Expand Up @@ -103,6 +103,36 @@ public DatabaseBridgeFactory getDatabaseBridgeFactory() {
return databaseBridgeFactory;
}

@Override
public Island createIsland(@Nullable SuperiorPlayer superiorPlayer, UUID uuid, Location location, String islandName, String schemName) {
SIsland island = new SIsland(superiorPlayer, uuid, location, islandName, schemName);
return islandsFactory == null ? island : islandsFactory.createIsland(island);
}

public Optional<Island> createIsland(DatabaseCache<CachedIslandInfo> cache, DatabaseResult resultSet) {
Optional<Island> island = SIsland.fromDatabase(cache, resultSet);

if (!island.isPresent())
return island;

return islandsFactory == null ? island : island.map(islandsFactory::createIsland);
}

@Override
public SuperiorPlayer createPlayer(UUID playerUUID) {
SSuperiorPlayer superiorPlayer = new SSuperiorPlayer(playerUUID);
return playersFactory == null ? superiorPlayer : playersFactory.createPlayer(superiorPlayer);
}

public Optional<SuperiorPlayer> createPlayer(DatabaseCache<CachedPlayerInfo> databaseCache, DatabaseResult resultSet) {
Optional<SuperiorPlayer> superiorPlayer = SSuperiorPlayer.fromDatabase(databaseCache, resultSet);

if (!superiorPlayer.isPresent())
return superiorPlayer;

return playersFactory == null ? superiorPlayer : superiorPlayer.map(playersFactory::createPlayer);
}

@Override
public BlockOffset createBlockOffset(int offsetX, int offsetY, int offsetZ) {
return SBlockOffset.fromOffsets(offsetX, offsetY, offsetZ);
Expand All @@ -129,34 +159,6 @@ public BankTransaction createTransaction(@Nullable UUID player, BankAction actio
return new SBankTransaction(player, action, position, time, failureReason, amount);
}

public Optional<Island> createIsland(DatabaseCache<CachedIslandInfo> cache, DatabaseResult resultSet) {
Optional<Island> island = SIsland.fromDatabase(cache, resultSet);

if (!island.isPresent())
return island;

return islandsFactory == null ? island : island.map(islandsFactory::createIsland);
}

public Island createIsland(SuperiorPlayer superiorPlayer, UUID uuid, Location location, String islandName, String schemName) {
SIsland island = new SIsland(superiorPlayer, uuid, location, islandName, schemName);
return islandsFactory == null ? island : islandsFactory.createIsland(island);
}

public Optional<SuperiorPlayer> createPlayer(DatabaseCache<CachedPlayerInfo> databaseCache, DatabaseResult resultSet) {
Optional<SuperiorPlayer> superiorPlayer = SSuperiorPlayer.fromDatabase(databaseCache, resultSet);

if (!superiorPlayer.isPresent())
return superiorPlayer;

return playersFactory == null ? superiorPlayer : superiorPlayer.map(playersFactory::createPlayer);
}

public SuperiorPlayer createPlayer(UUID player) {
SSuperiorPlayer superiorPlayer = new SSuperiorPlayer(player);
return playersFactory == null ? superiorPlayer : playersFactory.createPlayer(superiorPlayer);
}

public IslandBank createIslandBank(Island island, Supplier<Boolean> isGiveInterestFailed) {
SIslandBank islandBank = new SIslandBank(island, isGiveInterestFailed);
return banksFactory == null ? islandBank : banksFactory.createIslandBank(island, islandBank);
Expand Down

0 comments on commit 805d9c4

Please sign in to comment.