下面列出了怎么用org.bukkit.entity.Horse.Variant的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
protected boolean init(final Literal<?>[] exprs, final int matchedPattern, final ParseResult parseResult) {
switch (matchedPattern) { // If Variant ordering is changed, will not break
case 0:
variant = Variant.HORSE;
break;
case 1:
variant = Variant.DONKEY;
break;
case 2:
variant = Variant.MULE;
break;
case 3:
variant = Variant.UNDEAD_HORSE;
break;
case 4:
variant = Variant.SKELETON_HORSE;
break;
}
return true;
}
@Override
protected boolean deserialize(final String s) {
final String[] split = s.split(",");
if (split.length != 3)
return false;
try {
variant = split[0].isEmpty() ? null : Variant.valueOf(split[0]);
color = split[1].isEmpty() ? null : Color.valueOf(split[1]);
style = split[2].isEmpty() ? null : Style.valueOf(split[2]);
} catch (final IllegalArgumentException e) {
return false;
}
return true;
}
@Test
public void test() {
final Object[] random = {
// Java
(byte) 127, (short) 2000, -1600000, 1L << 40, -1.5f, 13.37,
"String",
// Skript
SkriptColor.BLACK, StructureType.RED_MUSHROOM, WeatherType.THUNDER,
new Date(System.currentTimeMillis()), new Timespan(1337), new Time(12000), new Timeperiod(1000, 23000),
new Experience(15), new Direction(0, Math.PI, 10), new Direction(new double[] {0, 1, 0}),
new EntityType(new SimpleEntityData(HumanEntity.class), 300),
new CreeperData(),
new SimpleEntityData(Snowball.class),
new HorseData(Variant.SKELETON_HORSE),
new WolfData(),
new XpOrbData(50),
// Bukkit - simple classes only
GameMode.ADVENTURE, InventoryType.CHEST, DamageCause.FALL,
// there is also at least one variable for each class on my test server which are tested whenever the server shuts down.
};
for (final Object o : random) {
Classes.serialize(o); // includes a deserialisation test
}
}
@Override
public Variant getVariant() {
return Variant.DONKEY;
}
@Override
public Variant getVariant() {
return Variant.SKELETON_HORSE;
}
@Override
public Variant getVariant() {
return Variant.UNDEAD_HORSE;
}
@Override
public Variant getVariant() {
return Variant.MULE;
}
public HorseData(final @Nullable Variant variant) {
this.variant = variant;
}