Add blockdata as a valid falling block thing, requires setblockdata

This commit is contained in:
libraryaddict
2020-08-12 09:36:13 +12:00
parent f322a80b69
commit 4f0290218b
36 changed files with 268 additions and 139 deletions

View File

@@ -13,6 +13,7 @@ import me.libraryaddict.disguise.utilities.reflection.NmsVersion;
import org.apache.commons.lang.StringUtils;
import org.bukkit.*;
import org.bukkit.block.BlockFace;
import org.bukkit.block.data.BlockData;
import org.bukkit.boss.BarColor;
import org.bukkit.boss.BarStyle;
import org.bukkit.entity.*;
@@ -77,6 +78,8 @@ public class ParamInfoTypes {
paramInfos.add(new ParamInfoParticle(WrappedParticle.class, "Particle",
"The different particles of Minecraft", Particle.values(), getMaterials()));
paramInfos.add(new ParamInfoEnum(TropicalFish.Pattern.class, "Pattern", "Patterns of a tropical fish"));
paramInfos.add(new ParamInfoBlockData(BlockData.class, "BlockData",
"The block data states, barrel[facing=north,open=false] as example"));
} else {
paramInfos.add(new ParamInfoEnum(Particle.class, "Particle", "The different particles of Minecraft"));
}

View File

@@ -0,0 +1,38 @@
package me.libraryaddict.disguise.utilities.params.types.custom;
import me.libraryaddict.disguise.utilities.params.ParamInfo;
import me.libraryaddict.disguise.utilities.parser.DisguiseParseException;
import org.bukkit.Bukkit;
import org.bukkit.block.data.BlockData;
/**
* Created by libraryaddict on 12/08/2020.
*/
public class ParamInfoBlockData extends ParamInfo {
public ParamInfoBlockData(Class paramClass, String name, String description) {
super(paramClass, name, description);
}
@Override
protected Object fromString(String string) throws DisguiseParseException {
if (string == null || string.equals("null")) {
return null;
}
return Bukkit.createBlockData(string);
}
@Override
public String toString(Object object) {
if (object == null) {
return "null";
}
return ((BlockData) object).getAsString();
}
@Override
public boolean isParam(Class paramClass) {
return getParamClass().isAssignableFrom(paramClass);
}
}