Skip to content

Commit

Permalink
Added many internal providers to the API for public use (#807)
Browse files Browse the repository at this point in the history
  • Loading branch information
OmerBenGera committed Dec 30, 2021
1 parent 44f18fc commit e2d8659
Show file tree
Hide file tree
Showing 18 changed files with 159 additions and 79 deletions.
Expand Up @@ -3,8 +3,11 @@
import com.bgsoftware.superiorskyblock.api.hooks.AFKProvider;
import com.bgsoftware.superiorskyblock.api.hooks.EconomyProvider;
import com.bgsoftware.superiorskyblock.api.hooks.MenusProvider;
import com.bgsoftware.superiorskyblock.api.hooks.PermissionsProvider;
import com.bgsoftware.superiorskyblock.api.hooks.PricesProvider;
import com.bgsoftware.superiorskyblock.api.hooks.SpawnersProvider;
import com.bgsoftware.superiorskyblock.api.hooks.StackedBlocksProvider;
import com.bgsoftware.superiorskyblock.api.hooks.VanishProvider;
import com.bgsoftware.superiorskyblock.api.hooks.WorldsProvider;
import com.bgsoftware.superiorskyblock.api.hooks.listener.ISkinsListener;
import com.bgsoftware.superiorskyblock.api.hooks.listener.IStackedBlocksListener;
Expand Down Expand Up @@ -74,18 +77,18 @@ public interface ProvidersManager {
*/
void setBankEconomyProvider(EconomyProvider economyProvider);

/**
* Get the currently used afk providers.
*/
List<AFKProvider> getAFKProviders();

/**
* Add AFK Provider to the plugin.
*
* @param afkProvider The afk-provider to add.
*/
void addAFKProvider(AFKProvider afkProvider);

/**
* Get the currently used afk providers.
*/
List<AFKProvider> getAFKProviders();

/**
* Get the currently used menus-provider.
*/
Expand All @@ -98,6 +101,42 @@ public interface ProvidersManager {
*/
void setMenusProvider(MenusProvider menuProvider);

/**
* Get the currently used permissions-provider.
*/
PermissionsProvider getPermissionsProvider();

/**
* Set a new permissions-provider to the plugin.
*
* @param permissionsProvider The new permissions-provider to use.
*/
void setPermissionsProvider(PermissionsProvider permissionsProvider);

/**
* Get the currently used prices-provider.
*/
PricesProvider getPricesProvider();

/**
* Set a new prices-provider to the plugin.
*
* @param pricesProvider The new prices-provider to use.
*/
void setPricesProvider(PricesProvider pricesProvider);

/**
* Get the currently used vanish-provider.
*/
VanishProvider getVanishProvider();

/**
* Set a new vanish-provider to the plugin.
*
* @param vanishProvider The new vanish-provider to use.
*/
void setVanishProvider(VanishProvider vanishProvider);

/**
* Register a new skins listener.
*
Expand Down
Expand Up @@ -4,6 +4,11 @@

public interface AFKProvider {

/**
* Check whether a player is considered AFK.
*
* @param player The player to check.
*/
boolean isAFK(Player player);

}
@@ -0,0 +1,17 @@
package com.bgsoftware.superiorskyblock.api.hooks;

import org.bukkit.entity.Player;

public interface PermissionsProvider {

/**
* Check whether a player has permission.
*
* @param player The player to check permissions for.
* @param permission The permission to check.
* @return whether the player has permission excluding his operator status.
* This means that the permission must be given explicitly to the player for the method to return true.
*/
boolean hasPermission(Player player, String permission);

}
@@ -0,0 +1,28 @@
package com.bgsoftware.superiorskyblock.api.hooks;

import com.bgsoftware.superiorskyblock.api.key.Key;

import javax.annotation.Nullable;
import java.math.BigDecimal;

public interface PricesProvider {

/**
* Get price of a block/item.
*
* @param key The key of the block or the item.
* @return The price of that block/item.
*/
BigDecimal getPrice(Key key);

/**
* Get the correct block-key for a price.
* Mostly used for legacy-versions where data values of blocks can be ignored.
*
* @param blockKey The original block-key.
* @return The correct-block key for a price.
*/
@Nullable
Key getBlockKey(Key blockKey);

}
@@ -0,0 +1,14 @@
package com.bgsoftware.superiorskyblock.api.hooks;

import org.bukkit.entity.Player;

public interface VanishProvider {

/**
* Check whether a player is vanished from online players.
*
* @param player The player to check
*/
boolean isVanished(Player player);

}
Expand Up @@ -4,6 +4,7 @@
import com.Zrips.CMI.events.CMIPlayerUnVanishEvent;
import com.Zrips.CMI.events.CMIPlayerVanishEvent;
import com.bgsoftware.superiorskyblock.SuperiorSkyblockPlugin;
import com.bgsoftware.superiorskyblock.api.hooks.VanishProvider;
import com.bgsoftware.superiorskyblock.utils.logic.PlayersLogic;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
Expand Down
@@ -1,6 +1,7 @@
package com.bgsoftware.superiorskyblock.hooks.provider;

import com.bgsoftware.superiorskyblock.SuperiorSkyblockPlugin;
import com.bgsoftware.superiorskyblock.api.hooks.VanishProvider;
import com.bgsoftware.superiorskyblock.utils.logic.PlayersLogic;
import com.earth2me.essentials.Essentials;
import net.ess3.api.events.VanishStatusChangeEvent;
Expand Down
@@ -1,6 +1,7 @@
package com.bgsoftware.superiorskyblock.hooks.provider;

import com.bgsoftware.superiorskyblock.SuperiorSkyblockPlugin;
import com.bgsoftware.superiorskyblock.api.hooks.PermissionsProvider;
import net.luckperms.api.LuckPerms;
import net.luckperms.api.cacheddata.CachedDataManager;
import net.luckperms.api.model.user.User;
Expand Down
@@ -1,6 +1,7 @@
package com.bgsoftware.superiorskyblock.hooks.provider;

import com.bgsoftware.superiorskyblock.SuperiorSkyblockPlugin;
import com.bgsoftware.superiorskyblock.api.hooks.PricesProvider;
import com.bgsoftware.superiorskyblock.api.key.Key;
import com.bgsoftware.superiorskyblock.key.dataset.KeyMap;
import net.brcdev.shopgui.ShopGuiPlugin;
Expand Down Expand Up @@ -59,8 +60,8 @@ public BigDecimal getPrice(Key key) {
}

@Override
public com.bgsoftware.superiorskyblock.key.Key getBlockKey(com.bgsoftware.superiorskyblock.key.Key blockKey) {
return cachedPrices.getKey(blockKey, null);
public Key getBlockKey(Key blockKey) {
return cachedPrices.getKey((com.bgsoftware.superiorskyblock.key.Key) blockKey, null);
}

}
@@ -1,6 +1,7 @@
package com.bgsoftware.superiorskyblock.hooks.provider;

import com.bgsoftware.superiorskyblock.SuperiorSkyblockPlugin;
import com.bgsoftware.superiorskyblock.api.hooks.VanishProvider;
import com.bgsoftware.superiorskyblock.utils.logic.PlayersLogic;
import de.myzelyam.api.vanish.PlayerVanishStateChangeEvent;
import de.myzelyam.api.vanish.VanishAPI;
Expand Down
@@ -1,6 +1,7 @@
package com.bgsoftware.superiorskyblock.hooks.provider;

import com.bgsoftware.superiorskyblock.SuperiorSkyblockPlugin;
import com.bgsoftware.superiorskyblock.api.hooks.VanishProvider;
import com.bgsoftware.superiorskyblock.utils.logic.PlayersLogic;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
Expand Down
Expand Up @@ -5,10 +5,13 @@
import com.bgsoftware.superiorskyblock.api.hooks.AFKProvider;
import com.bgsoftware.superiorskyblock.api.hooks.EconomyProvider;
import com.bgsoftware.superiorskyblock.api.hooks.MenusProvider;
import com.bgsoftware.superiorskyblock.api.hooks.PermissionsProvider;
import com.bgsoftware.superiorskyblock.api.hooks.PricesProvider;
import com.bgsoftware.superiorskyblock.api.hooks.SpawnersProvider;
import com.bgsoftware.superiorskyblock.api.hooks.SpawnersSnapshotProvider;
import com.bgsoftware.superiorskyblock.api.hooks.StackedBlocksProvider;
import com.bgsoftware.superiorskyblock.api.hooks.StackedBlocksSnapshotProvider;
import com.bgsoftware.superiorskyblock.api.hooks.VanishProvider;
import com.bgsoftware.superiorskyblock.api.hooks.WorldsProvider;
import com.bgsoftware.superiorskyblock.api.hooks.listener.ISkinsListener;
import com.bgsoftware.superiorskyblock.api.hooks.listener.IStackedBlocksListener;
Expand All @@ -19,16 +22,13 @@
import com.bgsoftware.superiorskyblock.hooks.provider.AsyncProvider_Default;
import com.bgsoftware.superiorskyblock.hooks.provider.EconomyProvider_Default;
import com.bgsoftware.superiorskyblock.hooks.provider.MenusProvider_Default;
import com.bgsoftware.superiorskyblock.hooks.provider.PermissionsProvider;
import com.bgsoftware.superiorskyblock.hooks.provider.PermissionsProvider_Default;
import com.bgsoftware.superiorskyblock.hooks.provider.PlaceholdersProvider;
import com.bgsoftware.superiorskyblock.hooks.provider.PricesProvider;
import com.bgsoftware.superiorskyblock.hooks.provider.PricesProvider_Default;
import com.bgsoftware.superiorskyblock.hooks.provider.SpawnersProvider_AutoDetect;
import com.bgsoftware.superiorskyblock.hooks.provider.SpawnersProvider_Default;
import com.bgsoftware.superiorskyblock.hooks.provider.StackedBlocksProvider_AutoDetect;
import com.bgsoftware.superiorskyblock.hooks.provider.StackedBlocksProvider_Default;
import com.bgsoftware.superiorskyblock.hooks.provider.VanishProvider;
import com.bgsoftware.superiorskyblock.hooks.provider.WorldsProvider_Default;
import com.bgsoftware.superiorskyblock.hooks.support.PlaceholderHook;
import com.bgsoftware.superiorskyblock.key.Key;
Expand Down Expand Up @@ -153,14 +153,14 @@ public void setBankEconomyProvider(EconomyProvider bankEconomyProvider) {
}

@Override
public void addAFKProvider(AFKProvider afkProvider) {
Preconditions.checkNotNull(afkProvider, "afkProvider parameter cannot be null.");
AFKProvidersList.add(afkProvider);
public List<AFKProvider> getAFKProviders() {
return Collections.unmodifiableList(this.AFKProvidersList);
}

@Override
public List<AFKProvider> getAFKProviders() {
return Collections.unmodifiableList(this.AFKProvidersList);
public void addAFKProvider(AFKProvider afkProvider) {
Preconditions.checkNotNull(afkProvider, "afkProvider parameter cannot be null.");
AFKProvidersList.add(afkProvider);
}

@Override
Expand All @@ -174,6 +174,36 @@ public void setMenusProvider(MenusProvider menusProvider) {
this.menusProvider = menusProvider;
}

@Override
public PermissionsProvider getPermissionsProvider() {
return permissionsProvider;
}

@Override
public void setPermissionsProvider(PermissionsProvider permissionsProvider) {
this.permissionsProvider = permissionsProvider;
}

@Override
public PricesProvider getPricesProvider() {
return pricesProvider;
}

@Override
public void setPricesProvider(PricesProvider pricesProvider) {
this.pricesProvider = pricesProvider;
}

@Override
public VanishProvider getVanishProvider() {
return vanishProvider;
}

@Override
public void setVanishProvider(VanishProvider vanishProvider) {
this.vanishProvider = vanishProvider;
}

@Override
public void registerSkinsListener(ISkinsListener skinsListener) {
this.skinsListeners.add(skinsListener);
Expand Down Expand Up @@ -248,18 +278,6 @@ public void releaseSnapshots(ChunkPosition chunkPosition) {
}
}

public PermissionsProvider getPermissionsProvider() {
return permissionsProvider;
}

public PricesProvider getPricesProvider() {
return pricesProvider;
}

public VanishProvider getVanishProvider() {
return vanishProvider;
}

public AsyncProvider getAsyncProvider() {
return asyncProvider;
}
Expand Down Expand Up @@ -450,10 +468,6 @@ private void registerVanishProvider() {
vanishProvider.ifPresent(this::setVanishProvider);
}

private void setVanishProvider(VanishProvider vanishProvider) {
this.vanishProvider = vanishProvider;
}

private void registerAFKProvider() {
if (Bukkit.getPluginManager().isPluginEnabled("CMI")) {
Optional<AFKProvider> afkProvider = createInstance("AFKProvider_CMI");
Expand Down Expand Up @@ -513,14 +527,6 @@ private void registerPlaceholdersProvider() {
PlaceholderHook.register(plugin, placeholdersProviders);
}

private void setPermissionsProvider(PermissionsProvider permissionsProvider) {
this.permissionsProvider = permissionsProvider;
}

private void setPricesProvider(PricesProvider pricesProvider) {
this.pricesProvider = pricesProvider;
}

private void registerHook(String className) {
try {
Class<?> clazz = Class.forName("com.bgsoftware.superiorskyblock.hooks.support." + className);
Expand Down

This file was deleted.

@@ -1,5 +1,6 @@
package com.bgsoftware.superiorskyblock.hooks.provider;

import com.bgsoftware.superiorskyblock.api.hooks.PermissionsProvider;
import org.bukkit.entity.Player;

public final class PermissionsProvider_Default implements PermissionsProvider {
Expand Down

This file was deleted.

@@ -1,6 +1,7 @@
package com.bgsoftware.superiorskyblock.hooks.provider;

import com.bgsoftware.superiorskyblock.key.Key;
import com.bgsoftware.superiorskyblock.api.hooks.PricesProvider;
import com.bgsoftware.superiorskyblock.api.key.Key;

import java.math.BigDecimal;

Expand All @@ -9,7 +10,7 @@ public final class PricesProvider_Default implements PricesProvider {
private final BigDecimal INVALID_WORTH = BigDecimal.valueOf(-1);

@Override
public BigDecimal getPrice(com.bgsoftware.superiorskyblock.api.key.Key key) {
public BigDecimal getPrice(Key key) {
return INVALID_WORTH;
}

Expand Down

0 comments on commit e2d8659

Please sign in to comment.