mirror of
https://gitlab.com/phoenix-dvpmt/mmoitems.git
synced 2025-02-01 11:11:21 +01:00
Added a Placeholder Condition for MMOItem Crafting Stations.
Here's an example of using it `- 'placeholder{placeholder=%ac_Stat_Weight%~>~1}'` This means "Placholder ac_Stat_Weight is greater than 1" then use you use it with `hide-when-locked: true` to prevent the item from showing, or however you want to use it. `placeholder{placeholder=<Placeholder>~<Comparator>~<Number>}` It's simple, but a bit odd. You first declare the placeholder "%ac_Stat_Weight%", then chose the comparator ">" and finally the number to compare it to "1" all split up using the "~". You can also compare the placeholder with Text/String when using the `equals` comparator More info on the Wiki https://git.lumine.io/mythiccraft/mmoitems/-/wikis/Recipe-Conditions
This commit is contained in:
parent
cdeb16825a
commit
dbb0c0de04
@ -0,0 +1,55 @@
|
||||
package net.Indyuce.mmoitems.api.crafting.condition;
|
||||
|
||||
import io.lumine.mythic.lib.api.MMOLineConfig;
|
||||
import me.clip.placeholderapi.PlaceholderAPI;
|
||||
import net.Indyuce.mmoitems.api.player.PlayerData;
|
||||
|
||||
public class PlaceholderCondition extends Condition {
|
||||
private final String value;
|
||||
private final String placeholder;
|
||||
private final String comparator;
|
||||
private final String compareTo;
|
||||
|
||||
public PlaceholderCondition(MMOLineConfig config) {
|
||||
super("placeholder");
|
||||
|
||||
config.validate("placeholder");
|
||||
value = config.getString("placeholder");
|
||||
String[] array = value.split("~");
|
||||
placeholder = array[0];
|
||||
comparator = array[1];
|
||||
compareTo = array[2];
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isMet(PlayerData data) {
|
||||
String placeholders = PlaceholderAPI.setPlaceholders(data.getPlayer(), placeholder);
|
||||
switch (comparator) {
|
||||
case "<":
|
||||
return Double.valueOf(placeholders) < Double.valueOf(compareTo);
|
||||
case "<=":
|
||||
return Double.valueOf(placeholders) <= Double.valueOf(compareTo);
|
||||
case ">":
|
||||
return Double.valueOf(placeholders) > Double.valueOf(compareTo);
|
||||
case ">=":
|
||||
return Double.valueOf(placeholders) >= Double.valueOf(compareTo);
|
||||
case "==":
|
||||
case "=":
|
||||
return Double.valueOf(placeholders) == Double.valueOf(compareTo);
|
||||
case "!=":
|
||||
return Double.valueOf(placeholders) != Double.valueOf(compareTo);
|
||||
case "equals":
|
||||
return placeholders.equals(compareTo);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String formatDisplay(String string) {
|
||||
return string.replace("#placeholder#", "" + placeholder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void whenCrafting(PlayerData data) {
|
||||
}
|
||||
}
|
@ -40,6 +40,7 @@ public class CraftingManager implements Reloadable {
|
||||
// conditions
|
||||
registerCondition("level", LevelCondition::new, new ConditionalDisplay("&a" + AltChar.check + " Requires Level #level#", "&c" + AltChar.cross + " Requires Level #level#"));
|
||||
registerCondition("permission", PermissionCondition::new, null);
|
||||
registerCondition("placeholder", PlaceholderCondition::new, null);
|
||||
registerCondition("mana", ManaCondition::new, new ConditionalDisplay("&a" + AltChar.check + " Requires #mana# Mana", "&c" + AltChar.cross + " Requires #mana# Mana"));
|
||||
registerCondition("stamina", StaminaCondition::new, new ConditionalDisplay("&a" + AltChar.check + " Requires #stamina# Stamina", "&c" + AltChar.cross + " Requires #stamina# Stamina"));
|
||||
registerCondition("food", FoodCondition::new, new ConditionalDisplay("&a" + AltChar.check + " Requires #food# Food", "&c" + AltChar.cross + " Requires #food# Food"));
|
||||
|
Loading…
Reference in New Issue
Block a user