9
0
mirror of https://gitlab.com/SamB440/rpgregions-2.git synced 2025-12-31 04:36:29 +00:00

Add plugin requirement to registries

This commit is contained in:
SamB440
2021-03-26 17:59:52 +00:00
parent 287227938a
commit 9e46ca8d51
9 changed files with 39 additions and 19 deletions

View File

@@ -70,10 +70,4 @@ public abstract class RegionEffect implements IGuiEditable {
public boolean isIgnorePerm() {
return ignorePerm;
}
/**
* User friendly name of this effect.
* @return name of effect
*/
public abstract String getName();
}

View File

@@ -34,11 +34,9 @@ public abstract class RegionRequirement implements IGuiEditable {
return preventType;
}
/**
* User friendly name of this reward.
* @return name of reward
*/
public abstract String getName();
public abstract String getText(Player player);
public String getPluginRequirement() {
return null;
}
}

View File

@@ -2,6 +2,7 @@ package net.islandearth.rpgregions.requirements;
import net.islandearth.rpgregions.api.IRPGRegionsAPI;
import net.islandearth.rpgregions.managers.registry.RPGRegionsRegistry;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.jetbrains.annotations.Nullable;
@@ -13,7 +14,12 @@ public final class RegionRequirementRegistry extends RPGRegionsRegistry<RegionRe
public @Nullable RegionRequirement getNew(Class<? extends RegionRequirement> clazz, IRPGRegionsAPI plugin, Object... data) {
try {
Constructor<?> constructor = clazz.getConstructor(IRPGRegionsAPI.class);
return (RegionRequirement) constructor.newInstance(plugin);
RegionRequirement requirement = (RegionRequirement) constructor.newInstance(plugin);
if (requirement.getPluginRequirement() != null
&& Bukkit.getPluginManager().getPlugin(requirement.getPluginRequirement()) == null) {
return null;
}
return requirement;
} catch (ReflectiveOperationException e) {
e.printStackTrace();
}

View File

@@ -22,9 +22,7 @@ public abstract class DiscoveryReward implements IGuiEditable {
*/
public abstract void award(Player player);
/**
* User friendly name of this reward.
* @return name of reward
*/
public abstract String getName();
public String getPluginRequirement() {
return null;
}
}

View File

@@ -2,6 +2,7 @@ package net.islandearth.rpgregions.rewards;
import net.islandearth.rpgregions.api.IRPGRegionsAPI;
import net.islandearth.rpgregions.managers.registry.RPGRegionsRegistry;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.jetbrains.annotations.Nullable;
@@ -13,7 +14,12 @@ public final class RegionRewardRegistry extends RPGRegionsRegistry<DiscoveryRewa
public @Nullable DiscoveryReward getNew(Class<? extends DiscoveryReward> clazz, IRPGRegionsAPI plugin, Object... data) {
try {
Constructor<?> constructor = clazz.getConstructor(IRPGRegionsAPI.class);
return (DiscoveryReward) constructor.newInstance(plugin);
DiscoveryReward reward = (DiscoveryReward) constructor.newInstance(plugin);
if (reward.getPluginRequirement() != null
&& Bukkit.getPluginManager().getPlugin(reward.getPluginRequirement()) == null) {
return null;
}
return reward;
} catch (ReflectiveOperationException e) {
e.printStackTrace();
}