Added ability to stack by spawn reason.

This commit is contained in:
Brianna 2019-06-15 04:49:12 -04:00
parent 4dfe48bc16
commit 7fdf7bbe3d
4 changed files with 14 additions and 2 deletions

View File

@ -2,7 +2,7 @@ package com.songoda.ultimatestacker.entity;
public enum Check {
SPAWN_REASON(false), // ToDo: This
SPAWN_REASON(false),
NERFED(true),
AGE(true),
TICK_AGE(false),

View File

@ -15,9 +15,12 @@ import org.bukkit.entity.*;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.CreatureSpawnEvent;
import org.bukkit.event.entity.EntityExplodeEvent;
import org.bukkit.event.entity.EntitySpawnEvent;
import org.bukkit.event.entity.ItemSpawnEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.metadata.FixedMetadataValue;
import java.util.ArrayList;
import java.util.Iterator;
@ -31,6 +34,11 @@ public class EntityListeners implements Listener {
this.instance = instance;
}
@EventHandler
public void onSpawn(CreatureSpawnEvent event) {
event.getEntity().setMetadata("US_REASON", new FixedMetadataValue(instance, event.getSpawnReason().name()));
}
@EventHandler
public void onEgg(ItemSpawnEvent event) {
if (event.getEntity().getItemStack().getType() != Material.EGG) return;

View File

@ -188,6 +188,10 @@ public class Methods {
for (String checkStr : checks) {
Check check = Check.valueOf(checkStr);
switch (check) {
case SPAWN_REASON: {
if (initalEntity.hasMetadata("US_REASON"))
entityList.removeIf(entity -> entity.hasMetadata("US_REASON") && !entity.getMetadata("US_REASON").get(0).asString().equals("US_REASON"));
}
case AGE: {
if (!(initalEntity instanceof Ageable)) break;

View File

@ -61,7 +61,7 @@ public enum Setting {
"These are checks that are processed before an entity is stacked.",
"You can add and remove from the list at will.",
"The acceptable check options are:",
"NERFED, AGE, TICK_AGE, PHANTOM_SIZE",
"SPAWN_REASON, NERFED, AGE, TICK_AGE, PHANTOM_SIZE",
"CAN_BREED, IS_TAMED, ANIMAL_OWNER, SKELETON_TYPE",
"ZOMBIE_BABY, SLIME_SIZE, PIG_SADDLE, SHEEP_SHEERED",
"SHEEP_COLOR, WOLF_COLLAR_COLOR, OCELOT_TYPE, HORSE_COLOR",