mirror of
https://github.com/songoda/UltimateStacker.git
synced 2025-02-28 09:11:34 +01:00
Added support for derped snowmen.
This commit is contained in:
parent
a5d58e85e6
commit
a5214fd7a1
@ -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),
|
||||
|
@ -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
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user