Skip to content
Snippets Groups Projects
Commit 13e40a7b authored by SamB440's avatar SamB440
Browse files

Placeholder compare type is now editable

parent 847322d1
No related branches found
No related tags found
No related merge requests found
package net.islandearth.rpgregions.gui.element;
import com.google.common.base.Enums;
import com.google.common.base.Optional;
import net.islandearth.rpgregions.chat.preset.ReturnValueConversationPreset;
import net.islandearth.rpgregions.gui.IGuiEditable;
import net.islandearth.rpgregions.requirements.PlaceholderRequirement;
import org.apache.commons.lang.reflect.FieldUtils;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.CompletableFuture;
public class CompareTypeGuiFieldElement implements IGuiFieldElement {
@Override
public CompletableFuture<Void> set(Player player, IGuiEditable guiEditable, Field field, Object value) {
CompletableFuture<Void> completableFuture = new CompletableFuture<>();
new ReturnValueConversationPreset(player, "Enter the compare type, valid compares are: "
+ Arrays.toString(PlaceholderRequirement.CompareType.values()) + ".", input -> {
Optional<PlaceholderRequirement.CompareType> compareType = Enums.getIfPresent(PlaceholderRequirement.CompareType.class,input.toUpperCase());
if (compareType.isPresent()) {
try {
FieldUtils.writeField(field, guiEditable, PlaceholderRequirement.CompareType.valueOf(input.toUpperCase()));
} catch (IllegalAccessException e) {
e.printStackTrace();
}
} else {
player.sendMessage(ChatColor.RED + "Could not find a compare type with that name. "
+ Arrays.toString(PlaceholderRequirement.CompareType.values()));
}
completableFuture.complete(null);
});
return completableFuture;
}
@Override
public List<Class<?>> getType() {
return Arrays.asList(PlaceholderRequirement.CompareType.class);
}
@Override
public boolean needsValue() {
return false;
}
}
...@@ -10,6 +10,7 @@ import net.islandearth.rpgregions.effects.RegionEffect; ...@@ -10,6 +10,7 @@ import net.islandearth.rpgregions.effects.RegionEffect;
import net.islandearth.rpgregions.effects.RegionEffectRegistry; import net.islandearth.rpgregions.effects.RegionEffectRegistry;
import net.islandearth.rpgregions.exception.CouldNotStartException; import net.islandearth.rpgregions.exception.CouldNotStartException;
import net.islandearth.rpgregions.gui.element.BooleanGuiFieldElement; import net.islandearth.rpgregions.gui.element.BooleanGuiFieldElement;
import net.islandearth.rpgregions.gui.element.CompareTypeGuiFieldElement;
import net.islandearth.rpgregions.gui.element.GuiFieldElementRegistry; import net.islandearth.rpgregions.gui.element.GuiFieldElementRegistry;
import net.islandearth.rpgregions.gui.element.IGuiFieldElementRegistry; import net.islandearth.rpgregions.gui.element.IGuiFieldElementRegistry;
import net.islandearth.rpgregions.gui.element.IntegerGuiFieldElement; import net.islandearth.rpgregions.gui.element.IntegerGuiFieldElement;
...@@ -159,6 +160,7 @@ public class RPGRegionsManagers implements IRPGRegionsManagers { ...@@ -159,6 +160,7 @@ public class RPGRegionsManagers implements IRPGRegionsManagers {
guiFieldElementRegistry.register(new ItemStackGuiFieldElement()); guiFieldElementRegistry.register(new ItemStackGuiFieldElement());
guiFieldElementRegistry.register(new LocationGuiFieldElement()); guiFieldElementRegistry.register(new LocationGuiFieldElement());
guiFieldElementRegistry.register(new PotionEffectGuiFieldElement()); guiFieldElementRegistry.register(new PotionEffectGuiFieldElement());
guiFieldElementRegistry.register(new CompareTypeGuiFieldElement());
} }
@Override @Override
......
...@@ -7,6 +7,7 @@ import org.bukkit.entity.Player; ...@@ -7,6 +7,7 @@ import org.bukkit.entity.Player;
public class PlaceholderRequirement extends RegionRequirement { public class PlaceholderRequirement extends RegionRequirement {
@GuiEditable("Compare type")
private final CompareType integerCompareType; private final CompareType integerCompareType;
@GuiEditable("The Placeholder") @GuiEditable("The Placeholder")
private final String placeholder; private final String placeholder;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment