Merge branch 'master' into version-compat

This commit is contained in:
Esophose 2020-06-13 13:07:47 -06:00
parent 9567b06e23
commit a82b4d125e
93 changed files with 1496 additions and 698 deletions

View file

@ -1,88 +1,100 @@
package dev.esophose.playerparticles.particles;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public enum ParticleEffect {
AMBIENT_ENTITY_EFFECT(ParticleProperty.REQUIRES_COLOR_DATA),
ANGRY_VILLAGER,
ASH,
BARRIER,
BLOCK(ParticleProperty.REQUIRES_BLOCK_DATA),
BUBBLE,
BUBBLE_COLUMN_UP,
BUBBLE_POP,
CAMPFIRE_COSY_SMOKE,
CAMPFIRE_SIGNAL_SMOKE,
CLOUD,
COMPOSTER,
CRIMSON_SPORE,
CRIT,
CURRENT_DOWN,
DAMAGE_INDICATOR,
DOLPHIN,
DRAGON_BREATH,
DRIPPING_HONEY,
DRIPPING_LAVA,
DRIPPING_OBSIDIAN_TEAR,
DRIPPING_WATER,
DUST(ParticleProperty.REQUIRES_COLOR_DATA),
ELDER_GUARDIAN,
ENCHANT,
ENCHANTED_HIT,
END_ROD,
ENTITY_EFFECT(ParticleProperty.REQUIRES_COLOR_DATA),
EXPLOSION,
EXPLOSION_EMITTER,
FALLING_DUST(ParticleProperty.REQUIRES_BLOCK_DATA),
FALLING_HONEY,
FALLING_LAVA,
FALLING_NECTAR,
FALLING_OBSIDIAN_TEAR,
FALLING_WATER,
FIREWORK,
FISHING,
FLAME,
FLASH,
FOOTSTEP,
HAPPY_VILLAGER,
HEART,
INSTANT_EFFECT,
ITEM(ParticleProperty.REQUIRES_ITEM_DATA),
ITEM_SLIME,
ITEM_SNOWBALL,
LANDING_HONEY,
LANDING_LAVA,
LANDING_OBSIDIAN_TEAR,
LARGE_SMOKE,
LAVA,
MYCELIUM,
NAUTILUS,
NOTE(ParticleProperty.REQUIRES_COLOR_DATA),
POOF,
PORTAL,
RAIN,
SMOKE,
SNEEZE,
SOUL,
SOUL_FIRE_FLAME,
SPELL, // The Minecraft internal name for this is actually "effect", but that's the command name, so it's SPELL for the plugin instead
SPIT,
SPLASH,
SQUID_INK,
SWEEP_ATTACK,
TOTEM_OF_UNDYING,
UNDERWATER,
WARPED_SPORE,
WITCH;
AMBIENT_ENTITY_EFFECT(Collections.singletonList("BEACON"), ParticleProperty.REQUIRES_COLOR_DATA),
ANGRY_VILLAGER(Collections.singletonList("IRON_DOOR")),
ASH(Collections.singletonList("BLACKSTONE")),
BARRIER(Collections.singletonList("BARRIER")),
BLOCK(Collections.singletonList("STONE"), ParticleProperty.REQUIRES_BLOCK_DATA),
BUBBLE(Arrays.asList("BUBBLE_CORAL", "GLASS")),
BUBBLE_COLUMN_UP(Collections.singletonList("MAGMA_BLOCK")),
BUBBLE_POP(Collections.singletonList("BUBBLE_CORAL_FAN")),
CAMPFIRE_COSY_SMOKE(Collections.singletonList("CAMPFIRE")),
CAMPFIRE_SIGNAL_SMOKE(Collections.singletonList("REDSTONE_TORCH")),
CLOUD(Arrays.asList("WHITE_WOOL", "WOOL")),
COMPOSTER(Collections.singletonList("COMPOSTER")),
CRIMSON_SPORE(Collections.singletonList("CRIMSON_SPORE")),
CRIT(Collections.singletonList("IRON_SWORD")),
CURRENT_DOWN(Collections.singletonList("SOUL_SAND")),
DAMAGE_INDICATOR(Collections.singletonList("BOW")),
DOLPHIN(Collections.singletonList("DOLPHIN_SPAWN_EGG")),
DRAGON_BREATH(Arrays.asList("DRAGON_BREATH", "DRAGONS_BREATH")),
DRIPPING_HONEY(Collections.singletonList("BEE_NEST")),
DRIPPING_LAVA(Collections.singletonList("LAVA_BUCKET")),
DRIPPING_OBSIDIAN_TEAR(Collections.singletonList("CRYING_OBSIDIAN")),
DRIPPING_WATER(Collections.singletonList("WATER_BUCKET")),
DUST(Collections.singletonList("REDSTONE"), ParticleProperty.REQUIRES_COLOR_DATA),
ELDER_GUARDIAN(Arrays.asList("ELDER_GUARDIAN_SPAWN_EGG", "PRISMARINE_CRYSTALS")),
ENCHANT(Arrays.asList("ENCHANTING_TABLE", "ENCHANTMENT_TABLE")),
ENCHANTED_HIT(Collections.singletonList("DIAMOND_SWORD")),
END_ROD(Collections.singletonList("END_ROD")),
ENTITY_EFFECT(Collections.singletonList("GLOWSTONE_DUST"), ParticleProperty.REQUIRES_COLOR_DATA),
EXPLOSION(Arrays.asList("FIRE_CHARGE", "FIREBALL")),
EXPLOSION_EMITTER(Collections.singletonList("TNT")),
FALLING_DUST(Collections.singletonList("SAND"), ParticleProperty.REQUIRES_BLOCK_DATA),
FALLING_HONEY(Collections.singletonList("HONEY_BOTTLE")),
FALLING_LAVA(Collections.singletonList("RED_DYE")),
FALLING_NECTAR(Collections.singletonList("HONEYCOMB")),
FALLING_OBSIDIAN_TEAR(Collections.singletonList("ANCIENT_DEBRIS")),
FALLING_WATER(Collections.singletonList("BLUE_DYE")),
FIREWORK(Arrays.asList("FIREWORK_ROCKET", "FIREWORK")),
FISHING(Collections.singletonList("FISHING_ROD")),
FLAME(Collections.singletonList("BLAZE_POWDER")),
FLASH(Collections.singletonList("GOLD_INGOT")),
FOOTSTEP(Collections.singletonList("GRASS")),
HAPPY_VILLAGER(Arrays.asList("DARK_OAK_DOOR_ITEM", "DARK_OAK_DOOR")),
HEART(Arrays.asList("POPPY", "RED_ROSE")),
INSTANT_EFFECT(Arrays.asList("SPLASH_POTION", "POTION")),
ITEM(Collections.singletonList("ITEM_FRAME"), ParticleProperty.REQUIRES_ITEM_DATA),
ITEM_SLIME(Collections.singletonList("SLIME_BALL")),
ITEM_SNOWBALL(Arrays.asList("SNOWBALL", "SNOW_BALL")),
LANDING_HONEY(Collections.singletonList("HONEY_BLOCK")),
LANDING_LAVA(Collections.singletonList("ORANGE_DYE")),
LANDING_OBSIDIAN_TEAR(Collections.singletonList("NETHERITE_BLOCK")),
LARGE_SMOKE(Arrays.asList("COBWEB", "WEB")),
LAVA(Collections.singletonList("MAGMA_CREAM")),
MYCELIUM(Arrays.asList("MYCELIUM", "MYCEL")),
NAUTILUS(Collections.singletonList("HEART_OF_THE_SEA")),
NOTE(Collections.singletonList("NOTE_BLOCK"), ParticleProperty.REQUIRES_COLOR_DATA),
POOF(Arrays.asList("FIREWORK_STAR", "FIREWORK_CHARGE")),
PORTAL(Collections.singletonList("OBSIDIAN")),
RAIN(Arrays.asList("PUFFERFISH_BUCKET", "LAPIS_BLOCK")),
REVERSE_PORTAL(Collections.singletonList("FLINT_AND_STEEL")),
SMOKE(Collections.singletonList("TORCH")),
SNEEZE(Collections.singletonList("BAMBOO")),
SOUL(Collections.singletonList("SOUL_LANTERN")),
SOUL_FIRE_FLAME(Collections.singletonList("SOUL_CAMPFIRE")),
SPELL(Arrays.asList("POTION", "GLASS_BOTTLE")), // The Minecraft internal name for this is actually "effect", but that's the command name, so it's SPELL for the plugin instead
SPIT(Arrays.asList("LLAMA_SPAWN_EGG", "PUMPKIN_SEEDS")),
SPLASH(Arrays.asList("SALMON", "FISH", "RAW_FISH")),
SQUID_INK(Collections.singletonList("INK_SAC")),
SWEEP_ATTACK(Arrays.asList("GOLDEN_SWORD", "GOLD_SWORD")),
TOTEM_OF_UNDYING(Arrays.asList("TOTEM_OF_UNDYING", "TOTEM")),
UNDERWATER(Arrays.asList("TURTLE_HELMET", "SPONGE")),
WARPED_SPORE(Collections.singletonList("WARPED_FUNGUS")),
WHITE_ASH(Collections.singletonList("BASALT")),
WITCH(Collections.singletonList("CAULDRON"));
private List<ParticleProperty> properties;
private List<String> defaultIconMaterialNames;
ParticleEffect(ParticleProperty... properties) {
ParticleEffect(List<String> defaultIconMaterialNames, ParticleProperty... properties) {
this.defaultIconMaterialNames = defaultIconMaterialNames;
this.properties = Arrays.asList(properties);
}
/**
* @return The Material icon that represents this style in the GUI
*/
public List<String> getGuiIconMaterialNames() {
return this.defaultIconMaterialNames;
}
/**
* Determine if this particle effect has a specific property
*