Added support for derped snowmen.

This commit is contained in:
Brianna 2019-09-22 16:17:19 -04:00
parent a5d58e85e6
commit a5214fd7a1
5 changed files with 41 additions and 8 deletions

View File

@ -12,8 +12,9 @@ public enum Check {
ZOMBIE_BABY(true),
SLIME_SIZE(true),
PIG_SADDLE(true),
SHEEP_SHEERED(true),
SHEEP_SHEARED(true),
SHEEP_COLOR(true),
SNOWMAN_DERPED(true),
WOLF_COLLAR_COLOR(true),
OCELOT_TYPE(true),
HORSE_COLOR(true),

View File

@ -2,6 +2,6 @@ package com.songoda.ultimatestacker.entity;
public enum Split {
NAME_TAG, MUSHROOM_SHEAR, SHEEP_SHEAR, SHEEP_DYE, ENTITY_BREED
NAME_TAG, MUSHROOM_SHEAR, SHEEP_SHEAR, SNOWMAN_DERP, SHEEP_DYE, ENTITY_BREED
}

View File

@ -24,14 +24,18 @@ public class ShearListeners implements Listener {
public void onShear(PlayerShearEntityEvent event) {
Entity entity = event.getEntity();
if (entity.getType() != EntityType.SHEEP && entity.getType() != EntityType.MUSHROOM_COW) return;
if (entity.getType() != EntityType.SHEEP
&& entity.getType() != EntityType.MUSHROOM_COW
&& entity.getType() != EntityType.SNOWMAN) return;
EntityStackManager stackManager = plugin.getEntityStackManager();
if (!stackManager.isStacked(entity)) return;
if (event.getEntity().getType() == EntityType.SHEEP
&& Settings.SPLIT_CHECKS.getStringList().stream().noneMatch(line -> Split.valueOf(line) == Split.SHEEP_SHEAR)
|| event.getEntity().getType() == EntityType.MUSHROOM_COW
&& Settings.SPLIT_CHECKS.getStringList().stream().noneMatch(line -> Split.valueOf(line) == Split.MUSHROOM_SHEAR))
&& Settings.SPLIT_CHECKS.getStringList().stream().noneMatch(line -> Split.valueOf(line) == Split.MUSHROOM_SHEAR)
|| event.getEntity().getType() == EntityType.SNOWMAN
&& Settings.SPLIT_CHECKS.getStringList().stream().noneMatch(line -> Split.valueOf(line) == Split.SNOWMAN_DERP))
return;
plugin.getEntityUtils().splitFromStack((LivingEntity)entity);

View File

@ -7,6 +7,7 @@ import com.songoda.ultimatestacker.entity.Check;
import com.songoda.ultimatestacker.entity.Split;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
public class Settings {
@ -92,8 +93,8 @@ public class Settings {
"The acceptable check options are:",
"SPAWN_REASON, NERFED, AGE, TICK_AGE, PHANTOM_SIZE",
"IS_TAMED, ANIMAL_OWNER, SKELETON_TYPE",
"ZOMBIE_BABY, SLIME_SIZE, PIG_SADDLE, SHEEP_SHEERED",
"SHEEP_COLOR, WOLF_COLLAR_COLOR, OCELOT_TYPE, HORSE_COLOR",
"ZOMBIE_BABY, SLIME_SIZE, PIG_SADDLE, SHEEP_SHEARED",
"SNOWMAN_DERPED", "SHEEP_COLOR, WOLF_COLLAR_COLOR, OCELOT_TYPE, HORSE_COLOR",
"HORSE_STYLE, HORSE_CARRYING_CHEST, HORSE_HAS_ARMOR",
"HORSE_HAS_SADDLE, HORSE_JUMP, RABBIT_TYPE, VILLAGER_PROFESSION",
"LLAMA_COLOR, LLAMA_STRENGTH, PARROT_TYPE, PUFFERFISH_STATE",
@ -242,6 +243,17 @@ public class Settings {
config.load();
config.setAutoremove(true).setAutosave(true);
if (config.getStringList("Entities.Stack Checks").contains("SHEEP_SHEERED")) {
List<String> stackChecks = config.getStringList("Entities.Stack Checks");
stackChecks.remove("SHEEP_SHEERED");
stackChecks.addAll(Arrays.asList("SHEEP_SHEARED", "SNOWMAN_DERPED"));
config.set("Entities.Stack Checks", stackChecks);
List<String> splitChecks = config.getStringList("Entities.Split Checks");
splitChecks.add("SNOWMAN_DERP");
config.set("Entities.Split Checks", splitChecks);
}
config.saveChanges();
}
}

View File

@ -119,11 +119,16 @@ public class EntityUtils {
((Sheep) newEntity).setColor(((Sheep) toClone).getColor());
break;
}
case SHEEP_SHEERED: {
case SHEEP_SHEARED: {
if (!(toClone instanceof Sheep)) break;
((Sheep) newEntity).setSheared(((Sheep) toClone).isSheared());
break;
}
case SNOWMAN_DERPED: {
if (!(toClone instanceof Snowman)) break;
((Snowman) newEntity).setDerp(((Snowman) toClone).isDerp());
break;
}
case LLAMA_COLOR: {
if (!ServerVersion.isServerVersionAtLeast(ServerVersion.V1_11)
|| !(toClone instanceof Llama)) break;
@ -298,7 +303,7 @@ public class EntityUtils {
entityList.removeIf(entity -> ((Sheep) entity).getColor() != sheep.getColor());
break;
}
case SHEEP_SHEERED: {
case SHEEP_SHEARED: {
if (!(initalEntity instanceof Sheep)) break;
Sheep sheep = ((Sheep) initalEntity);
@ -309,6 +314,17 @@ public class EntityUtils {
}
break;
}
case SNOWMAN_DERPED: {
if (!(initalEntity instanceof Snowman)) break;
Snowman snowman = ((Snowman) initalEntity);
if (snowman.isDerp()) {
entityList.removeIf(entity -> !((Snowman) entity).isDerp());
} else {
entityList.removeIf(entity -> ((Snowman) entity).isDerp());
}
break;
}
case LLAMA_COLOR: {
if (!ServerVersion.isServerVersionAtLeast(ServerVersion.V1_11)
|| !(initalEntity instanceof Llama)) break;