Added ShopGuiPlus integration
This commit is contained in:
@@ -16,7 +16,7 @@ public class McmmoManager {
|
||||
/**
|
||||
* A set of all registered integrations.
|
||||
*/
|
||||
private final Set<McmmoWrapper> regsistered = new HashSet<>();
|
||||
private final Set<McmmoWrapper> registered = new HashSet<>();
|
||||
|
||||
/**
|
||||
* Register a new integration.
|
||||
@@ -24,7 +24,7 @@ public class McmmoManager {
|
||||
* @param integration The integration to register.
|
||||
*/
|
||||
public void register(@NotNull final McmmoWrapper integration) {
|
||||
regsistered.add(integration);
|
||||
registered.add(integration);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -34,7 +34,7 @@ public class McmmoManager {
|
||||
* @return The bonus drop count.
|
||||
*/
|
||||
public int getBonusDropCount(@NotNull final Block block) {
|
||||
for (McmmoWrapper mcmmoWrapper : regsistered) {
|
||||
for (McmmoWrapper mcmmoWrapper : registered) {
|
||||
return mcmmoWrapper.getBonusDropCount(block);
|
||||
}
|
||||
return 0;
|
||||
@@ -47,7 +47,7 @@ public class McmmoManager {
|
||||
* @return If the event is fake.
|
||||
*/
|
||||
public boolean isFake(@NotNull final Event event) {
|
||||
for (McmmoWrapper mcmmoWrapper : regsistered) {
|
||||
for (McmmoWrapper mcmmoWrapper : registered) {
|
||||
return mcmmoWrapper.isFake(event);
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.willfp.eco.core.integrations.shop;
|
||||
|
||||
import lombok.experimental.UtilityClass;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* Class to handle shop integrations.
|
||||
*/
|
||||
@UtilityClass
|
||||
public class ShopManager {
|
||||
/**
|
||||
* A set of all registered integrations.
|
||||
*/
|
||||
private final Set<ShopWrapper> registered = new HashSet<>();
|
||||
|
||||
/**
|
||||
* Register a new integration.
|
||||
*
|
||||
* @param integration The integration to register.
|
||||
*/
|
||||
public void register(@NotNull final ShopWrapper integration) {
|
||||
registered.add(integration);
|
||||
}
|
||||
|
||||
/**
|
||||
* Register eco item provider for shop plugins.
|
||||
*/
|
||||
public void registerEcoProvider() {
|
||||
for (ShopWrapper shopWrapper : registered) {
|
||||
shopWrapper.registerEcoProvider();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.willfp.eco.core.integrations.shop;
|
||||
|
||||
/**
|
||||
* Wrapper class for shop integrations.
|
||||
*/
|
||||
public interface ShopWrapper {
|
||||
/**
|
||||
* Register eco item provider for shop plugins.
|
||||
*/
|
||||
void registerEcoProvider();
|
||||
}
|
||||
@@ -1,8 +1,5 @@
|
||||
package com.willfp.eco.core.items;
|
||||
|
||||
import com.willfp.eco.core.items.builder.EnchantedBookBuilder;
|
||||
import com.willfp.eco.core.items.builder.ItemBuilder;
|
||||
import com.willfp.eco.core.items.builder.ItemStackBuilder;
|
||||
import com.willfp.eco.core.recipe.parts.EmptyTestableItem;
|
||||
import com.willfp.eco.core.recipe.parts.MaterialTestableItem;
|
||||
import com.willfp.eco.core.recipe.parts.ModifiedTestableItem;
|
||||
@@ -16,6 +13,7 @@ import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.EnchantmentStorageMeta;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
@@ -195,6 +193,22 @@ public final class Items {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get custom item from item.
|
||||
*
|
||||
* @param itemStack The item.
|
||||
* @return The custom item, or null if not exists.
|
||||
*/
|
||||
@Nullable
|
||||
public CustomItem getCustomItem(@NotNull final ItemStack itemStack) {
|
||||
for (CustomItem item : REGISTRY.values()) {
|
||||
if (item.matches(itemStack)) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all registered custom items.
|
||||
*
|
||||
|
||||
@@ -20,6 +20,7 @@ dependencies {
|
||||
compileOnly 'com.gmail.nossr50.mcMMO:mcMMO:2.1.157'
|
||||
compileOnly 'me.clip:placeholderapi:2.10.9'
|
||||
compileOnly 'com.willfp:Oraxen:e1f4003d8d'
|
||||
compileOnly 'com.github.brcdev-minecraft:shopgui-api:2.2.0'
|
||||
|
||||
compileOnly 'com.github.LoneDev6:API-ItemsAdder:2.3.8'
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.willfp.eco.core.integrations.anticheat.AnticheatManager
|
||||
import com.willfp.eco.core.integrations.antigrief.AntigriefManager
|
||||
import com.willfp.eco.core.integrations.customitems.CustomItemsManager
|
||||
import com.willfp.eco.core.integrations.mcmmo.McmmoManager
|
||||
import com.willfp.eco.core.integrations.shop.ShopManager
|
||||
import com.willfp.eco.internal.drops.DropManager
|
||||
import com.willfp.eco.proxy.BlockBreakProxy
|
||||
import com.willfp.eco.proxy.FastItemStackFactoryProxy
|
||||
@@ -21,6 +22,7 @@ import com.willfp.eco.spigot.integrations.anticheat.*
|
||||
import com.willfp.eco.spigot.integrations.antigrief.*
|
||||
import com.willfp.eco.spigot.integrations.customitems.CustomItemsOraxen
|
||||
import com.willfp.eco.spigot.integrations.mcmmo.McmmoIntegrationImpl
|
||||
import com.willfp.eco.spigot.integrations.shop.ShopShopGuiPlus
|
||||
import com.willfp.eco.spigot.recipes.ShapedRecipeListener
|
||||
import com.willfp.eco.util.BlockUtils
|
||||
import com.willfp.eco.util.SkullUtils
|
||||
@@ -110,6 +112,9 @@ abstract class EcoSpigotPlugin : EcoPlugin(
|
||||
// Custom Items
|
||||
IntegrationLoader("Oraxen") { CustomItemsManager.register(CustomItemsOraxen()) },
|
||||
|
||||
// Shop
|
||||
IntegrationLoader("ShopGuiPlus") { ShopManager.register(ShopShopGuiPlus()) },
|
||||
|
||||
// Misc
|
||||
IntegrationLoader("mcMMO") { McmmoManager.register(McmmoIntegrationImpl()) }
|
||||
)
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.willfp.eco.spigot.integrations.shop
|
||||
|
||||
import com.willfp.eco.core.integrations.shop.ShopWrapper
|
||||
import com.willfp.eco.core.items.Items
|
||||
import net.brcdev.shopgui.ShopGuiPlusApi
|
||||
import net.brcdev.shopgui.provider.item.ItemProvider
|
||||
import org.bukkit.configuration.ConfigurationSection
|
||||
import org.bukkit.inventory.ItemStack
|
||||
|
||||
class ShopShopGuiPlus : ShopWrapper {
|
||||
override fun registerEcoProvider() {
|
||||
ShopGuiPlusApi.registerItemProvider(EcoShopGuiPlusProvider())
|
||||
}
|
||||
|
||||
class EcoShopGuiPlusProvider : ItemProvider("eco") {
|
||||
override fun isValidItem(itemStack: ItemStack?): Boolean {
|
||||
itemStack ?: return false
|
||||
|
||||
return Items.isCustomItem(itemStack)
|
||||
}
|
||||
|
||||
override fun loadItem(configurationSection: ConfigurationSection): ItemStack? {
|
||||
val id = configurationSection.getString("eco")
|
||||
return if (id == null) null else Items.lookup(id)?.item
|
||||
}
|
||||
|
||||
override fun compare(itemStack1: ItemStack, itemStack2: ItemStack): Boolean {
|
||||
return Items.getCustomItem(itemStack1)?.key == Items.getCustomItem(itemStack2)?.key
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user