From 9f3c2683ae21c366dcac201b4e7738ab75711c2b Mon Sep 17 00:00:00 2001 From: pop4959 Date: Thu, 28 May 2020 12:06:03 -0700 Subject: [PATCH] Clean up providers a bit (#3279) --- .../nms/flattened/FlatSpawnEggProvider.java | 2 +- .../nms/legacy/LegacyPotionMetaProvider.java | 2 +- .../nms/legacy/LegacySpawnEggProvider.java | 2 +- .../nms/legacy/LegacySpawnerProvider.java | 2 +- .../src/net/ess3/nms/SpawnEggProvider.java | 1 + .../src/net/ess3/nms/SpawnerProvider.java | 1 + .../src/net/ess3/providers/Provider.java | 2 +- .../net/ess3/providers/ProviderFactory.java | 21 +++++++++---------- .../ess3/nms/refl/ReflSpawnEggProvider.java | 2 +- .../src/net/ess3/nms/refl/ReflUtil.java | 20 +++++++++--------- .../src/net/ess3/nms/refl/SpawnEggRefl.java | 5 ++--- .../updatedmeta/BasePotionDataProvider.java | 2 +- .../updatedmeta/BlockMetaSpawnerProvider.java | 2 +- 13 files changed, 32 insertions(+), 32 deletions(-) diff --git a/nms/FlattenedProvider/src/net/ess3/nms/flattened/FlatSpawnEggProvider.java b/nms/FlattenedProvider/src/net/ess3/nms/flattened/FlatSpawnEggProvider.java index b3e5f3f46..bea240ba4 100644 --- a/nms/FlattenedProvider/src/net/ess3/nms/flattened/FlatSpawnEggProvider.java +++ b/nms/FlattenedProvider/src/net/ess3/nms/flattened/FlatSpawnEggProvider.java @@ -24,7 +24,7 @@ public class FlatSpawnEggProvider extends SpawnEggProvider { } @Override - public String getHumanName() { + public String getDescription() { return "1.13+ flat spawn egg provider"; } } diff --git a/nms/LegacyProvider/src/net/ess3/nms/legacy/LegacyPotionMetaProvider.java b/nms/LegacyProvider/src/net/ess3/nms/legacy/LegacyPotionMetaProvider.java index 8ffa477d7..5170d4e90 100644 --- a/nms/LegacyProvider/src/net/ess3/nms/legacy/LegacyPotionMetaProvider.java +++ b/nms/LegacyProvider/src/net/ess3/nms/legacy/LegacyPotionMetaProvider.java @@ -14,7 +14,7 @@ public class LegacyPotionMetaProvider extends PotionMetaProvider { } @Override - public String getHumanName() { + public String getDescription() { return "legacy potion meta provider"; } } diff --git a/nms/LegacyProvider/src/net/ess3/nms/legacy/LegacySpawnEggProvider.java b/nms/LegacyProvider/src/net/ess3/nms/legacy/LegacySpawnEggProvider.java index 63e8be7c6..27d6a25ff 100644 --- a/nms/LegacyProvider/src/net/ess3/nms/legacy/LegacySpawnEggProvider.java +++ b/nms/LegacyProvider/src/net/ess3/nms/legacy/LegacySpawnEggProvider.java @@ -24,7 +24,7 @@ public class LegacySpawnEggProvider extends SpawnEggProvider { } @Override - public String getHumanName() { + public String getDescription() { return "legacy item data provider"; } } diff --git a/nms/LegacyProvider/src/net/ess3/nms/legacy/LegacySpawnerProvider.java b/nms/LegacyProvider/src/net/ess3/nms/legacy/LegacySpawnerProvider.java index 2311df701..1a2716149 100644 --- a/nms/LegacyProvider/src/net/ess3/nms/legacy/LegacySpawnerProvider.java +++ b/nms/LegacyProvider/src/net/ess3/nms/legacy/LegacySpawnerProvider.java @@ -18,7 +18,7 @@ public class LegacySpawnerProvider extends SpawnerProvider { } @Override - public String getHumanName() { + public String getDescription() { return "legacy item data provider"; } } diff --git a/nms/NMSProvider/src/net/ess3/nms/SpawnEggProvider.java b/nms/NMSProvider/src/net/ess3/nms/SpawnEggProvider.java index b52f368f2..cd83b6c8e 100644 --- a/nms/NMSProvider/src/net/ess3/nms/SpawnEggProvider.java +++ b/nms/NMSProvider/src/net/ess3/nms/SpawnEggProvider.java @@ -6,6 +6,7 @@ import org.bukkit.inventory.ItemStack; public abstract class SpawnEggProvider implements Provider { public abstract ItemStack createEggItem(EntityType type) throws IllegalArgumentException; + public abstract EntityType getSpawnedType(ItemStack eggItem) throws IllegalArgumentException; @Override diff --git a/nms/NMSProvider/src/net/ess3/nms/SpawnerProvider.java b/nms/NMSProvider/src/net/ess3/nms/SpawnerProvider.java index 635e29449..4d142cdd2 100644 --- a/nms/NMSProvider/src/net/ess3/nms/SpawnerProvider.java +++ b/nms/NMSProvider/src/net/ess3/nms/SpawnerProvider.java @@ -25,6 +25,7 @@ public abstract class SpawnerProvider implements Provider { .build(); public abstract ItemStack setEntityType(ItemStack is, EntityType type) throws IllegalArgumentException; + public abstract EntityType getEntityType(ItemStack is) throws IllegalArgumentException; @Override diff --git a/nms/NMSProvider/src/net/ess3/providers/Provider.java b/nms/NMSProvider/src/net/ess3/providers/Provider.java index 2e7b96a56..0e23e9f6d 100644 --- a/nms/NMSProvider/src/net/ess3/providers/Provider.java +++ b/nms/NMSProvider/src/net/ess3/providers/Provider.java @@ -3,5 +3,5 @@ package net.ess3.providers; public interface Provider { boolean tryProvider(); - String getHumanName(); + String getDescription(); } diff --git a/nms/NMSProvider/src/net/ess3/providers/ProviderFactory.java b/nms/NMSProvider/src/net/ess3/providers/ProviderFactory.java index 0abda6400..53b44bf70 100644 --- a/nms/NMSProvider/src/net/ess3/providers/ProviderFactory.java +++ b/nms/NMSProvider/src/net/ess3/providers/ProviderFactory.java @@ -5,25 +5,24 @@ import java.util.logging.Logger; public class ProviderFactory { private Logger logger; private String providerType; - private Iterable> availableProviders; + private Iterable> providers; - public ProviderFactory(Logger logger, Iterable> availableProviders, String providerType) { + public ProviderFactory(Logger logger, Iterable> providers, String providerType) { this.logger = logger; this.providerType = providerType; - this.availableProviders = availableProviders; + this.providers = providers; } public T getProvider() { - T finalProvider = null; - for (Class providerClass : availableProviders) { - finalProvider = loadProvider(providerClass); - if (finalProvider != null && finalProvider.tryProvider()) { - break; + for (Class providerClass : providers) { + T provider = loadProvider(providerClass); + if (provider != null && provider.tryProvider()) { + logger.info("Using " + provider.getDescription() + " as " + providerType + " provider."); + return provider; } } - assert finalProvider != null; - logger.info("Using " + finalProvider.getHumanName() + " as " + providerType + " provider."); - return finalProvider; + logger.severe("The " + providerType + " provider failed to load! Some parts of Essentials may not function correctly."); + return null; } private T loadProvider(Class providerClass) { diff --git a/nms/ReflectionProvider/src/net/ess3/nms/refl/ReflSpawnEggProvider.java b/nms/ReflectionProvider/src/net/ess3/nms/refl/ReflSpawnEggProvider.java index 6edc64921..93301fd02 100644 --- a/nms/ReflectionProvider/src/net/ess3/nms/refl/ReflSpawnEggProvider.java +++ b/nms/ReflectionProvider/src/net/ess3/nms/refl/ReflSpawnEggProvider.java @@ -30,7 +30,7 @@ public class ReflSpawnEggProvider extends SpawnEggProvider { } @Override - public String getHumanName() { + public String getDescription() { return "Reflection based provider"; } } diff --git a/nms/ReflectionProvider/src/net/ess3/nms/refl/ReflUtil.java b/nms/ReflectionProvider/src/net/ess3/nms/refl/ReflUtil.java index fb0e5f619..f29bec133 100644 --- a/nms/ReflectionProvider/src/net/ess3/nms/refl/ReflUtil.java +++ b/nms/ReflectionProvider/src/net/ess3/nms/refl/ReflUtil.java @@ -36,7 +36,7 @@ public class ReflUtil { } return nmsVersion; } - + public static NMSVersion getNmsVersionObject() { if (nmsVersionObject == null) { nmsVersionObject = NMSVersion.fromString(getNMSVersion()); @@ -224,7 +224,7 @@ public class ReflUtil { /** * https://gist.github.com/SupaHam/dad1db6406596c5f8e4b221ff473831c - * + * * @author SupaHam (https://github.com/SupaHam) */ public static class NMSVersion implements Comparable { @@ -232,7 +232,7 @@ public class ReflUtil { private final int major; private final int minor; private final int release; - + public static NMSVersion fromString(String string) { Preconditions.checkNotNull(string, "string cannot be null."); Matcher matcher = VERSION_PATTERN.matcher(string); @@ -251,19 +251,19 @@ public class ReflUtil { this.minor = minor; this.release = release; } - + public boolean isHigherThan(NMSVersion o) { return compareTo(o) > 0; } - + public boolean isHigherThanOrEqualTo(NMSVersion o) { return compareTo(o) >= 0; } - + public boolean isLowerThan(NMSVersion o) { return compareTo(o) < 0; } - + public boolean isLowerThanOrEqualTo(NMSVersion o) { return compareTo(o) <= 0; } @@ -290,8 +290,8 @@ public class ReflUtil { } NMSVersion that = (NMSVersion) o; return major == that.major && - minor == that.minor && - release == that.release; + minor == that.minor && + release == that.release; } @Override @@ -301,7 +301,7 @@ public class ReflUtil { @Override public String toString() { - return "v" + major + "_" + minor + "_R" + release; + return "v" + major + "_" + minor + "_R" + release; } @Override diff --git a/nms/ReflectionProvider/src/net/ess3/nms/refl/SpawnEggRefl.java b/nms/ReflectionProvider/src/net/ess3/nms/refl/SpawnEggRefl.java index d17f7c91b..b5fc981db 100644 --- a/nms/ReflectionProvider/src/net/ess3/nms/refl/SpawnEggRefl.java +++ b/nms/ReflectionProvider/src/net/ess3/nms/refl/SpawnEggRefl.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with ASkyBlock. If not, see . ****************************************************************************** -*/ + */ package net.ess3.nms.refl; import org.bukkit.Material; @@ -95,7 +95,7 @@ public class SpawnEggRefl { } Object id = NBTTagCompoundConstructor.newInstance(); Method tagSetString = ReflUtil.getMethodCached(NBTTagCompoundClass, "setString", String.class, String.class); - + String idString = type.getName(); if (ReflUtil.getNmsVersionObject().isHigherThanOrEqualTo(ReflUtil.V1_11_R1)) { // 1.11 requires domain prefix of minecraft. @@ -152,4 +152,3 @@ public class SpawnEggRefl { } } } - diff --git a/nms/UpdatedMetaProvider/src/net/ess3/nms/updatedmeta/BasePotionDataProvider.java b/nms/UpdatedMetaProvider/src/net/ess3/nms/updatedmeta/BasePotionDataProvider.java index c9aa02eb0..ed3464c23 100644 --- a/nms/UpdatedMetaProvider/src/net/ess3/nms/updatedmeta/BasePotionDataProvider.java +++ b/nms/UpdatedMetaProvider/src/net/ess3/nms/updatedmeta/BasePotionDataProvider.java @@ -67,7 +67,7 @@ public class BasePotionDataProvider extends PotionMetaProvider { } @Override - public String getHumanName() { + public String getDescription() { return "1.9+ BasePotionData provider"; } } diff --git a/nms/UpdatedMetaProvider/src/net/ess3/nms/updatedmeta/BlockMetaSpawnerProvider.java b/nms/UpdatedMetaProvider/src/net/ess3/nms/updatedmeta/BlockMetaSpawnerProvider.java index 28a55220c..0a4b18861 100644 --- a/nms/UpdatedMetaProvider/src/net/ess3/nms/updatedmeta/BlockMetaSpawnerProvider.java +++ b/nms/UpdatedMetaProvider/src/net/ess3/nms/updatedmeta/BlockMetaSpawnerProvider.java @@ -26,7 +26,7 @@ public class BlockMetaSpawnerProvider extends SpawnerProvider { } @Override - public String getHumanName() { + public String getDescription() { return "1.8.3+ BlockStateMeta provider"; } }