├── .gitattributes ├── .gitignore ├── .idea ├── compiler.xml ├── discord.xml ├── encodings.xml ├── jarRepositories.xml ├── libraries │ ├── Maven__com_google_code_findbugs_jsr305_1_3_9.xml │ ├── Maven__com_google_code_gson_gson_2_2_4.xml │ ├── Maven__com_google_guava_guava_17_0.xml │ ├── Maven__com_googlecode_json_simple_json_simple_1_1_1.xml │ ├── Maven__com_sk89q_dummypermscompat_1_8.xml │ ├── Maven__com_sk89q_jchronic_0_2_4a.xml │ ├── Maven__com_sk89q_lib_jlibnoise_1_0_0.xml │ ├── Maven__com_sk89q_worldedit_worldedit_bukkit_6_1_4_SNAPSHOT.xml │ ├── Maven__com_sk89q_worldedit_worldedit_core_6_1_4_SNAPSHOT.xml │ ├── Maven__com_thoughtworks_paranamer_paranamer_2_6.xml │ ├── Maven__commons_lang_commons_lang_2_6.xml │ ├── Maven__de_schlichtherle_truezip_6_8_3.xml │ ├── Maven__javax_persistence_persistence_api_1_0.xml │ ├── Maven__junit_junit_4_10.xml │ ├── Maven__net_citizensnpcs_citizens_2_0_27.xml │ ├── Maven__net_md_5_bungeecord_chat_1_8_SNAPSHOT.xml │ ├── Maven__org_avaje_ebean_2_8_1.xml │ ├── Maven__org_bukkit_bukkit_1_9_4_R0_1_SNAPSHOT.xml │ ├── Maven__org_bukkit_craftbukkit_1_8_8_R0_1_SNAPSHOT.xml │ ├── Maven__org_hamcrest_hamcrest_core_1_1.xml │ ├── Maven__org_projectlombok_lombok_1_18_16.xml │ ├── Maven__org_spigotmc_spigot_api_1_8_8_R0_1_SNAPSHOT.xml │ ├── Maven__org_xerial_sqlite_jdbc_3_32_3_2.xml │ ├── Maven__org_yaml_snakeyaml_1_15.xml │ └── Maven__rhino_js_1_7R2.xml ├── misc.xml ├── modules.xml ├── uiDesigner.xml ├── vcs.xml └── workspace.xml ├── LICENSE ├── README.md ├── Spectaculation.iml ├── pom.xml └── src └── main ├── java └── me │ └── superischroma │ └── spectaculation │ ├── Repeater.java │ ├── SkyBlockCalendar.java │ ├── Spectaculation.java │ ├── auction │ ├── AuctionBid.java │ ├── AuctionEscrow.java │ └── AuctionItem.java │ ├── collection │ ├── ItemCollection.java │ ├── ItemCollectionCategory.java │ ├── ItemCollectionRecipeReward.java │ ├── ItemCollectionReward.java │ ├── ItemCollectionRewards.java │ └── ItemCollectionUpgradeReward.java │ ├── command │ ├── AbsorptionCommand.java │ ├── AuctionHouseCommand.java │ ├── BatphoneCommand.java │ ├── CoinsCommand.java │ ├── CollectionsCommand.java │ ├── CommandArgumentException.java │ ├── CommandFailException.java │ ├── CommandLoader.java │ ├── CommandParameters.java │ ├── CommandPermissionException.java │ ├── CommandSource.java │ ├── DataCommand.java │ ├── EntitySpawnersCommand.java │ ├── GUICommand.java │ ├── IslandCommand.java │ ├── ItemBrowseCommand.java │ ├── ItemCommand.java │ ├── ManaCommand.java │ ├── MaterialDataCommand.java │ ├── NBTCommand.java │ ├── PlayEnumEffectCommand.java │ ├── PlayEnumSoundCommand.java │ ├── PlayerNotFoundException.java │ ├── RecombobulateCommand.java │ ├── RegionCommand.java │ ├── SCommand.java │ ├── SkillsCommand.java │ ├── SoundSequenceCommand.java │ ├── SpawnSpecCommand.java │ ├── SpecEffectsCommand.java │ ├── SpecEnchantmentCommand.java │ ├── SpecPotionCommand.java │ ├── SpecRarityCommand.java │ ├── SpecReforgeCommand.java │ ├── SpecTestCommand.java │ └── SpectaculationCommand.java │ ├── config │ └── Config.java │ ├── enchantment │ ├── Enchantment.java │ └── EnchantmentType.java │ ├── entity │ ├── Ageable.java │ ├── EntityDrop.java │ ├── EntityDropType.java │ ├── EntityFunction.java │ ├── EntityPopulator.java │ ├── EntitySpawner.java │ ├── EntityStatistics.java │ ├── JockeyStatistics.java │ ├── SEntity.java │ ├── SEntityEquipment.java │ ├── SEntityType.java │ ├── SkeletonStatistics.java │ ├── SlimeStatistics.java │ ├── StaticDragonManager.java │ ├── ZombieStatistics.java │ ├── caverns │ │ ├── CreeperFunction.java │ │ ├── DiamondSkeleton.java │ │ ├── DiamondZombie.java │ │ ├── EnchantedDiamondSkeleton.java │ │ ├── EnchantedDiamondZombie.java │ │ ├── LapisZombie.java │ │ ├── LargeSlime.java │ │ ├── MediumSlime.java │ │ ├── Pigman.java │ │ └── SmallSlime.java │ ├── den │ │ ├── BaseSpider.java │ │ ├── BroodMother.java │ │ ├── CaveSpider.java │ │ ├── DasherSpider.java │ │ ├── MutantTarantula.java │ │ ├── Silverfish.java │ │ ├── SpiderJockey.java │ │ ├── SpidersDenSkeleton.java │ │ ├── SpidersDenSlime.java │ │ ├── SplitterSpider.java │ │ ├── TarantulaBeast.java │ │ ├── TarantulaVermin.java │ │ ├── VoraciousSpider.java │ │ └── WeaverSpider.java │ ├── end │ │ ├── Enderman.java │ │ ├── EndermanStatistics.java │ │ ├── ObsidianDefender.java │ │ ├── StrongEnderman.java │ │ ├── Watcher.java │ │ ├── WeakEnderman.java │ │ └── Zealot.java │ ├── insentient │ │ ├── FloatingCrystal.java │ │ └── WheatCrystal.java │ ├── nether │ │ ├── LargeMagmaCube.java │ │ ├── MediumMagmaCube.java │ │ ├── SmallMagmaCube.java │ │ └── WitherSkeleton.java │ ├── nms │ │ ├── Dragon.java │ │ ├── OldDragon.java │ │ ├── ProtectorDragon.java │ │ ├── RevenantHorror.java │ │ ├── SNMSEntity.java │ │ ├── SlayerBoss.java │ │ ├── SneakyCreeper.java │ │ ├── StrongDragon.java │ │ ├── SuperiorDragon.java │ │ ├── SvenPackmaster.java │ │ ├── TarantulaBroodfather.java │ │ ├── TieredValue.java │ │ ├── UncollidableArmorStand.java │ │ ├── UnstableDragon.java │ │ ├── VelocityArmorStand.java │ │ ├── WiseDragon.java │ │ └── YoungDragon.java │ ├── skeleton │ │ └── HighLevelSkeleton.java │ ├── wolf │ │ ├── BaseWolf.java │ │ ├── HowlingSpirit.java │ │ ├── OldWolf.java │ │ ├── PackEnforcer.java │ │ ├── PackSpirit.java │ │ ├── SoulOfTheAlpha.java │ │ ├── SvenAlpha.java │ │ ├── SvenFollower.java │ │ ├── SvenPup.java │ │ ├── Wolf.java │ │ └── WolfStatistics.java │ └── zombie │ │ ├── BaseZombie.java │ │ ├── CryptGhoul.java │ │ ├── DeformedRevenant.java │ │ ├── GoldenGhoul.java │ │ ├── RevenantChampion.java │ │ ├── RevenantSycophant.java │ │ ├── Zombie.java │ │ └── ZombieVillager.java │ ├── event │ └── CreeperIgniteEvent.java │ ├── gui │ ├── ActiveEffectsGUI.java │ ├── AnvilGUI.java │ ├── AuctionConfirmGUI.java │ ├── AuctionDurationGUI.java │ ├── AuctionHouseGUI.java │ ├── AuctionViewGUI.java │ ├── AuctionsBrowserGUI.java │ ├── BankerGUI.java │ ├── BlockBasedGUI.java │ ├── CategoryCollectionGUI.java │ ├── CollectionMenuGUI.java │ ├── ConfirmBidGUI.java │ ├── CraftingTableGUI.java │ ├── CreateAuctionGUI.java │ ├── DepositGUI.java │ ├── FarmMerchantGUI.java │ ├── GUI.java │ ├── GUIClickableItem.java │ ├── GUICloseEvent.java │ ├── GUIItem.java │ ├── GUIListener.java │ ├── GUIOpenEvent.java │ ├── GUIQueryItem.java │ ├── GUIType.java │ ├── ItemBrowserGUI.java │ ├── ItemCollectionGUI.java │ ├── LiftGUI.java │ ├── ManageAuctionsGUI.java │ ├── PetsGUI.java │ ├── QuiverGUI.java │ ├── ReforgeAnvilGUI.java │ ├── RevenantHorrorGUI.java │ ├── ShopGUI.java │ ├── ShopTradingOptionsGUI.java │ ├── SkillMenuGUI.java │ ├── SkyBlockMenuGUI.java │ ├── SkyBlockProfileGUI.java │ ├── SlayerCancellationConfirmGUI.java │ ├── SlayerConfirmGUI.java │ ├── SlayerGUI.java │ ├── SvenPackmasterGUI.java │ ├── TarantulaBroodfatherGUI.java │ ├── WithdrawalGUI.java │ └── YourBidsGUI.java │ ├── item │ ├── Ability.java │ ├── AbilityActivation.java │ ├── Enchantable.java │ ├── EventType.java │ ├── ExperienceRewardStatistics.java │ ├── FishingRodFunction.java │ ├── FlightStatistics.java │ ├── GenericItemType.java │ ├── ItemCategory.java │ ├── ItemData.java │ ├── ItemListener.java │ ├── ItemLore.java │ ├── ItemOrigin.java │ ├── LoreableMaterialStatistics.java │ ├── MaterialFunction.java │ ├── MaterialQuantifiable.java │ ├── MaterialStatistics.java │ ├── Ownable.java │ ├── PlayerBoostStatistics.java │ ├── Rarity.java │ ├── RarityValue.java │ ├── Recipe.java │ ├── Reforgable.java │ ├── Rune.java │ ├── SBlock.java │ ├── SItem.java │ ├── SMaterial.java │ ├── ShapedRecipe.java │ ├── ShapelessRecipe.java │ ├── SkullStatistics.java │ ├── SpecificItemType.java │ ├── TickingMaterial.java │ ├── ToolStatistics.java │ ├── accessory │ │ ├── AccessoryFunction.java │ │ ├── AccessoryStatistics.java │ │ ├── AutoRecombobulator.java │ │ ├── BlankTalisman.java │ │ ├── BrokenPiggyBank.java │ │ ├── CrackedPiggyBank.java │ │ ├── FarmingTalisman.java │ │ ├── InfiniteCritTalisman.java │ │ ├── PerfectTalisman.java │ │ ├── PiggyBank.java │ │ ├── SuperspeedTalisman.java │ │ └── TarantulaTalisman.java │ ├── armor │ │ ├── ArmorSet.java │ │ ├── BigBounceBoots.java │ │ ├── LeatherArmorStatistics.java │ │ ├── ObsidianChestplate.java │ │ ├── SpidersBoots.java │ │ ├── TickingSet.java │ │ ├── hardened │ │ │ ├── HardenedDiamondBoots.java │ │ │ ├── HardenedDiamondChestplate.java │ │ │ ├── HardenedDiamondHelmet.java │ │ │ └── HardenedDiamondLeggings.java │ │ ├── lapis │ │ │ ├── LapisArmorBoots.java │ │ │ ├── LapisArmorChestplate.java │ │ │ ├── LapisArmorHelmet.java │ │ │ ├── LapisArmorLeggings.java │ │ │ └── LapisArmorSet.java │ │ ├── miner │ │ │ ├── MinerBoots.java │ │ │ ├── MinerChestplate.java │ │ │ ├── MinerHelmet.java │ │ │ ├── MinerLeggings.java │ │ │ └── MinerSet.java │ │ └── vanilla │ │ │ ├── chainmail │ │ │ ├── ChainmailBoots.java │ │ │ ├── ChainmailChestplate.java │ │ │ ├── ChainmailHelmet.java │ │ │ └── ChainmailLeggings.java │ │ │ ├── diamond │ │ │ ├── DiamondBoots.java │ │ │ ├── DiamondChestplate.java │ │ │ ├── DiamondHelmet.java │ │ │ └── DiamondLeggings.java │ │ │ ├── golden │ │ │ ├── GoldenBoots.java │ │ │ ├── GoldenChestplate.java │ │ │ ├── GoldenHelmet.java │ │ │ └── GoldenLeggings.java │ │ │ ├── iron │ │ │ ├── IronBoots.java │ │ │ ├── IronChestplate.java │ │ │ ├── IronHelmet.java │ │ │ └── IronLeggings.java │ │ │ └── leather │ │ │ ├── LeatherBoots.java │ │ │ ├── LeatherChestplate.java │ │ │ ├── LeatherHelmet.java │ │ │ └── LeatherLeggings.java │ ├── axe │ │ └── vanilla │ │ │ ├── DiamondAxe.java │ │ │ ├── GoldenAxe.java │ │ │ ├── IronAxe.java │ │ │ ├── StoneAxe.java │ │ │ └── WoodenAxe.java │ ├── bow │ │ ├── Bow.java │ │ ├── BowFunction.java │ │ ├── EndStoneBow.java │ │ ├── HurricaneBow.java │ │ └── MosquitoBow.java │ ├── dragon │ │ ├── old │ │ │ ├── OldDragonBoots.java │ │ │ ├── OldDragonChestplate.java │ │ │ ├── OldDragonFragment.java │ │ │ ├── OldDragonHelmet.java │ │ │ ├── OldDragonLeggings.java │ │ │ └── OldDragonSet.java │ │ ├── protector │ │ │ ├── ProtectorDragonBoots.java │ │ │ ├── ProtectorDragonChestplate.java │ │ │ ├── ProtectorDragonFragment.java │ │ │ ├── ProtectorDragonHelmet.java │ │ │ ├── ProtectorDragonLeggings.java │ │ │ └── ProtectorDragonSet.java │ │ ├── strong │ │ │ ├── StrongDragonBoots.java │ │ │ ├── StrongDragonChestplate.java │ │ │ ├── StrongDragonFragment.java │ │ │ ├── StrongDragonHelmet.java │ │ │ ├── StrongDragonLeggings.java │ │ │ └── StrongDragonSet.java │ │ ├── superior │ │ │ ├── SuperiorDragonBoots.java │ │ │ ├── SuperiorDragonChestplate.java │ │ │ ├── SuperiorDragonFragment.java │ │ │ ├── SuperiorDragonHelmet.java │ │ │ ├── SuperiorDragonLeggings.java │ │ │ └── SuperiorDragonSet.java │ │ ├── unstable │ │ │ ├── UnstableDragonBoots.java │ │ │ ├── UnstableDragonChestplate.java │ │ │ ├── UnstableDragonFragment.java │ │ │ ├── UnstableDragonHelmet.java │ │ │ ├── UnstableDragonLeggings.java │ │ │ └── UnstableDragonSet.java │ │ ├── wise │ │ │ ├── WiseDragonBoots.java │ │ │ ├── WiseDragonChestplate.java │ │ │ ├── WiseDragonFragment.java │ │ │ ├── WiseDragonHelmet.java │ │ │ ├── WiseDragonLeggings.java │ │ │ └── WiseDragonSet.java │ │ └── young │ │ │ ├── YoungDragonBoots.java │ │ │ ├── YoungDragonChestplate.java │ │ │ ├── YoungDragonFragment.java │ │ │ ├── YoungDragonHelmet.java │ │ │ ├── YoungDragonLeggings.java │ │ │ └── YoungDragonSet.java │ ├── enchanted │ │ ├── EnchantedAcaciaWood.java │ │ ├── EnchantedBakedPotato.java │ │ ├── EnchantedBirchWood.java │ │ ├── EnchantedBone.java │ │ ├── EnchantedCharcoal.java │ │ ├── EnchantedCoal.java │ │ ├── EnchantedDarkOakWood.java │ │ ├── EnchantedDiamond.java │ │ ├── EnchantedDiamondBlock.java │ │ ├── EnchantedEndStone.java │ │ ├── EnchantedEnderPearl.java │ │ ├── EnchantedEyeOfEnder.java │ │ ├── EnchantedJungleWood.java │ │ ├── EnchantedMaterialStatistics.java │ │ ├── EnchantedOakWood.java │ │ ├── EnchantedObsidian.java │ │ ├── EnchantedPotato.java │ │ └── EnchantedSpruceWood.java │ ├── enchanting │ │ └── EnchantedBook.java │ ├── entity │ │ └── RevenantHorrorHead.java │ ├── exclusive │ │ ├── FloatingCrystal.java │ │ ├── TestItem.java │ │ └── WheatCrystal.java │ ├── farming │ │ ├── BrownMushroom.java │ │ ├── Cactus.java │ │ ├── Carrot.java │ │ ├── CocoaBeans.java │ │ ├── Melon.java │ │ ├── Potato.java │ │ ├── Pumpkin.java │ │ ├── RedMushroom.java │ │ ├── SugarCane.java │ │ └── WheatSeeds.java │ ├── foraging │ │ ├── AcaciaWood.java │ │ ├── BirchWood.java │ │ ├── DarkOakWood.java │ │ ├── JungleWood.java │ │ ├── OakWood.java │ │ └── SpruceWood.java │ ├── hoe │ │ └── vanilla │ │ │ ├── DiamondHoe.java │ │ │ ├── GoldenHoe.java │ │ │ ├── IronHoe.java │ │ │ ├── StoneHoe.java │ │ │ └── WoodenHoe.java │ ├── mining │ │ ├── CoalOre.java │ │ ├── Cobblestone.java │ │ ├── DiamondBlock.java │ │ ├── DiamondOre.java │ │ ├── EmeraldOre.java │ │ ├── EndStone.java │ │ ├── Glowstone.java │ │ ├── GoldOre.java │ │ ├── Gravel.java │ │ ├── Ice.java │ │ ├── IronOre.java │ │ ├── LapisLazuliOre.java │ │ ├── NetherQuartzOre.java │ │ ├── Netherrack.java │ │ ├── Obsidian.java │ │ ├── RedstoneOre.java │ │ ├── Sand.java │ │ └── Stone.java │ ├── oddities │ │ ├── BagOfCoins.java │ │ ├── Bedrock.java │ │ ├── Bouncer.java │ │ ├── CrystalFragment.java │ │ ├── GoldenPowder.java │ │ ├── GrapplingHook.java │ │ ├── Launcher.java │ │ ├── MaddoxBatphone.java │ │ ├── QuiverArrow.java │ │ ├── Recombobulator3000.java │ │ ├── RemnantOfTheEye.java │ │ ├── SkyBlockMenu.java │ │ ├── SleepingEye.java │ │ ├── SummoningEye.java │ │ ├── SummoningFrame.java │ │ ├── TeleporterLauncher.java │ │ ├── WaterBottle.java │ │ └── WeakWolfCatalyst.java │ ├── orb │ │ ├── ManaFluxPowerOrb.java │ │ ├── OrbBuff.java │ │ ├── OverfluxPowerOrb.java │ │ ├── PlasmafluxPowerOrb.java │ │ ├── PowerOrb.java │ │ └── RadiantPowerOrb.java │ ├── pet │ │ ├── EndermanPet.java │ │ ├── GungaPet.java │ │ ├── Pet.java │ │ └── PetAbility.java │ ├── pickaxe │ │ └── vanilla │ │ │ ├── DiamondPickaxe.java │ │ │ ├── GoldenPickaxe.java │ │ │ ├── IronPickaxe.java │ │ │ ├── StonePickaxe.java │ │ │ └── WoodenPickaxe.java │ ├── revenant │ │ ├── BeheadedHorror.java │ │ ├── FoulFlesh.java │ │ ├── RevenantCatalyst.java │ │ ├── RevenantFlesh.java │ │ ├── ScytheBlade.java │ │ └── UndeadCatalyst.java │ ├── rune │ │ ├── BiteRune.java │ │ ├── CoutureRune.java │ │ ├── PestilenceRune.java │ │ ├── SnakeRune.java │ │ └── SpiritRune.java │ ├── shovel │ │ └── vanilla │ │ │ ├── DiamondShovel.java │ │ │ ├── GoldenShovel.java │ │ │ ├── IronShovel.java │ │ │ ├── StoneShovel.java │ │ │ └── WoodenShovel.java │ ├── storage │ │ ├── GreaterBackpack.java │ │ ├── JumboBackpack.java │ │ ├── LargeBackpack.java │ │ ├── MediumBackpack.java │ │ ├── SmallBackpack.java │ │ └── Storage.java │ ├── sven │ │ ├── GrizzlyBait.java │ │ ├── HamsterWheel.java │ │ ├── OverfluxCapacitor.java │ │ ├── RedClawEgg.java │ │ └── WolfTooth.java │ ├── tarantula │ │ ├── DigestedMosquito.java │ │ ├── FlySwatter.java │ │ ├── SpiderCatalyst.java │ │ ├── TarantulaWeb.java │ │ └── ToxicArrowPoison.java │ └── weapon │ │ ├── AspectOfTheDragons.java │ │ ├── AspectOfTheEnd.java │ │ ├── AspectOfTheJerry.java │ │ ├── Dagger.java │ │ ├── EmeraldBlade.java │ │ ├── Exterminator.java │ │ ├── LeapingSword.java │ │ ├── RogueSword.java │ │ └── vanilla │ │ ├── DiamondSword.java │ │ ├── GoldenSword.java │ │ ├── IronSword.java │ │ ├── StoneSword.java │ │ └── WoodenSword.java │ ├── listener │ ├── BlockListener.java │ ├── PListener.java │ ├── PlayerListener.java │ ├── ServerPingListener.java │ └── WorldListener.java │ ├── potion │ ├── ActivePotionEffect.java │ ├── PotionColor.java │ ├── PotionEffect.java │ └── PotionEffectType.java │ ├── reforge │ ├── FierceReforge.java │ ├── HeroicReforge.java │ ├── OddReforge.java │ ├── OverpoweredReforge.java │ ├── RapidReforge.java │ ├── Reforge.java │ ├── ReforgeType.java │ ├── SpicyReforge.java │ └── SupergeniusReforge.java │ ├── region │ ├── Region.java │ ├── RegionGenerator.java │ └── RegionType.java │ ├── sequence │ ├── AnimationSequence.java │ ├── AnimationSequenceType.java │ ├── Sequence.java │ ├── SoundSequence.java │ └── SoundSequenceType.java │ ├── sidebar │ └── Sidebar.java │ ├── skill │ ├── CombatSkill.java │ ├── FarmingSkill.java │ ├── ForagingSkill.java │ ├── MiningSkill.java │ └── Skill.java │ ├── slayer │ ├── SlayerBossType.java │ └── SlayerQuest.java │ ├── sql │ ├── SQLDatabase.java │ ├── SQLRegionData.java │ └── SQLWorldData.java │ ├── user │ ├── AuctionSettings.java │ ├── DoublePlayerStatistic.java │ ├── IntegerPlayerStatistic.java │ ├── PlayerStatistic.java │ ├── PlayerStatistics.java │ ├── PlayerUtils.java │ └── User.java │ └── util │ ├── BlankWorldCreator.java │ ├── DefenseReplacement.java │ ├── Groups.java │ ├── PaginationList.java │ ├── SLog.java │ ├── SUtil.java │ ├── SerialNBTTagCompound.java │ ├── StackArrayList.java │ └── TriConsumer.java └── resources ├── blocks.yml ├── config.yml ├── database.db ├── heads.yml ├── plugin.yml ├── spawners.yml └── test.yml /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | pom.xml.tag 3 | pom.xml.releaseBackup 4 | pom.xml.versionsBackup 5 | pom.xml.next 6 | release.properties 7 | dependency-reduced-pom.xml 8 | buildNumber.properties 9 | .mvn/timing.properties 10 | # https://github.com/takari/maven-wrapper#usage-without-binary-jar 11 | .mvn/wrapper/maven-wrapper.jar 12 | -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /.idea/discord.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_google_code_findbugs_jsr305_1_3_9.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_google_code_gson_gson_2_2_4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_google_guava_guava_17_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_googlecode_json_simple_json_simple_1_1_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_sk89q_dummypermscompat_1_8.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_sk89q_jchronic_0_2_4a.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_sk89q_lib_jlibnoise_1_0_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_sk89q_worldedit_worldedit_bukkit_6_1_4_SNAPSHOT.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_sk89q_worldedit_worldedit_core_6_1_4_SNAPSHOT.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_thoughtworks_paranamer_paranamer_2_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__commons_lang_commons_lang_2_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__de_schlichtherle_truezip_6_8_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__javax_persistence_persistence_api_1_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__junit_junit_4_10.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__net_citizensnpcs_citizens_2_0_27.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__net_md_5_bungeecord_chat_1_8_SNAPSHOT.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_avaje_ebean_2_8_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_bukkit_bukkit_1_9_4_R0_1_SNAPSHOT.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_bukkit_craftbukkit_1_8_8_R0_1_SNAPSHOT.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_projectlombok_lombok_1_18_16.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_spigotmc_spigot_api_1_8_8_R0_1_SNAPSHOT.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_xerial_sqlite_jdbc_3_32_3_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_yaml_snakeyaml_1_15.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__rhino_js_1_7R2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Spectaculation 2 | hypixel skyblock remake 3 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/collection/ItemCollectionCategory.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.collection; 2 | 3 | public enum ItemCollectionCategory 4 | { 5 | FARMING, 6 | MINING, 7 | COMBAT, 8 | FORAGING, 9 | FISHING, 10 | BOSS; 11 | 12 | public String getName() 13 | { 14 | return name().charAt(0) + name().substring(1).toLowerCase(); 15 | } 16 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/collection/ItemCollectionRecipeReward.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.collection; 2 | 3 | import me.superischroma.spectaculation.item.SMaterial; 4 | import org.bukkit.ChatColor; 5 | import org.bukkit.entity.Player; 6 | 7 | public class ItemCollectionRecipeReward extends ItemCollectionReward 8 | { 9 | private final SMaterial material; 10 | 11 | public ItemCollectionRecipeReward(SMaterial material) 12 | { 13 | super(Type.RECIPE); 14 | this.material = material; 15 | } 16 | 17 | @Override 18 | public void onAchieve(Player player) 19 | { 20 | // TODO 21 | } 22 | 23 | public String toRewardString() 24 | { 25 | return ChatColor.GRAY + material.getDisplayName(material.getData()) + ChatColor.GRAY + " Recipe"; 26 | } 27 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/collection/ItemCollectionReward.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.collection; 2 | 3 | import org.bukkit.entity.Player; 4 | 5 | public abstract class ItemCollectionReward 6 | { 7 | private final Type type; 8 | 9 | protected ItemCollectionReward(Type type) 10 | { 11 | this.type = type; 12 | } 13 | 14 | public abstract void onAchieve(Player player); 15 | public abstract String toRewardString(); 16 | 17 | protected enum Type 18 | { 19 | RECIPE, 20 | UPGRADE, 21 | EXPERIENCE 22 | } 23 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/collection/ItemCollectionRewards.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.collection; 2 | 3 | import lombok.Getter; 4 | 5 | import java.util.ArrayList; 6 | import java.util.Arrays; 7 | 8 | public class ItemCollectionRewards extends ArrayList 9 | { 10 | @Getter 11 | private final int requirement; 12 | 13 | public ItemCollectionRewards(int requirement, ItemCollectionReward... rewards) 14 | { 15 | super(Arrays.asList(rewards)); 16 | this.requirement = requirement; 17 | } 18 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/collection/ItemCollectionUpgradeReward.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.collection; 2 | 3 | import org.bukkit.ChatColor; 4 | import org.bukkit.entity.Player; 5 | 6 | public class ItemCollectionUpgradeReward extends ItemCollectionReward 7 | { 8 | private final String name; 9 | private final ChatColor color; 10 | 11 | public ItemCollectionUpgradeReward(String name, ChatColor color) 12 | { 13 | super(Type.UPGRADE); 14 | this.name = name; 15 | this.color = color; 16 | } 17 | 18 | public String toRewardString() 19 | { 20 | return color + name + " Upgrade"; 21 | } 22 | 23 | @Override 24 | public void onAchieve(Player player) {} // no immediate rewards 25 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/command/AbsorptionCommand.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.command; 2 | 3 | import net.minecraft.server.v1_8_R3.EntityHuman; 4 | import org.bukkit.command.ConsoleCommandSender; 5 | import org.bukkit.craftbukkit.v1_8_R3.entity.CraftHumanEntity; 6 | import org.bukkit.entity.Player; 7 | 8 | @CommandParameters(description = "Modify your absorption amount.", permission = "spt.player") 9 | public class AbsorptionCommand extends SCommand 10 | { 11 | @Override 12 | public void run(CommandSource sender, String[] args) 13 | { 14 | if (args.length != 1) throw new CommandArgumentException(); 15 | if (sender instanceof ConsoleCommandSender) throw new CommandFailException("Console senders cannot use this command!"); 16 | Player player = sender.getPlayer(); 17 | EntityHuman human = ((CraftHumanEntity) player).getHandle(); 18 | float f = Float.parseFloat(args[0]); 19 | human.setAbsorptionHearts(f); 20 | send("You now have " + f + " absorption hearts."); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/command/CommandArgumentException.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.command; 2 | 3 | public class CommandArgumentException extends RuntimeException 4 | { 5 | public CommandArgumentException() 6 | { 7 | super(""); 8 | } 9 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/command/CommandFailException.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.command; 2 | 3 | public class CommandFailException extends RuntimeException 4 | { 5 | public CommandFailException(String message) 6 | { 7 | super(message); 8 | } 9 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/command/CommandLoader.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.command; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | public class CommandLoader 7 | { 8 | private final List commands; 9 | 10 | public CommandLoader() 11 | { 12 | this.commands = new ArrayList<>(); 13 | } 14 | 15 | public void register(SCommand command) 16 | { 17 | commands.add(command); 18 | command.register(); 19 | } 20 | 21 | public int getCommandAmount() 22 | { 23 | return commands.size(); 24 | } 25 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/command/CommandParameters.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.command; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | @Retention(RetentionPolicy.RUNTIME) 7 | public @interface CommandParameters 8 | { 9 | String description() default ""; 10 | String usage() default "/"; 11 | String aliases() default ""; 12 | String permission() default ""; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/command/CommandPermissionException.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.command; 2 | 3 | import org.bukkit.ChatColor; 4 | 5 | public class CommandPermissionException extends RuntimeException 6 | { 7 | public CommandPermissionException(String permission) 8 | { 9 | super(ChatColor.RED + "No permission. You need \"" + permission + "\""); 10 | } 11 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/command/CommandSource.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.command; 2 | 3 | import lombok.Getter; 4 | import me.superischroma.spectaculation.user.User; 5 | import org.bukkit.command.CommandSender; 6 | import org.bukkit.entity.Player; 7 | 8 | @Getter 9 | public class CommandSource 10 | { 11 | private final CommandSender sender; 12 | private final Player player; 13 | private final User user; 14 | 15 | public CommandSource(CommandSender sender) 16 | { 17 | this.sender = sender; 18 | this.player = sender instanceof Player ? (Player) sender : null; 19 | this.user = player != null ? User.getUser(player.getUniqueId()) : null; 20 | } 21 | 22 | public void send(String message) 23 | { 24 | sender.sendMessage(message); 25 | } 26 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/command/GUICommand.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.command; 2 | 3 | import me.superischroma.spectaculation.gui.GUI; 4 | import me.superischroma.spectaculation.gui.GUIType; 5 | import org.bukkit.command.ConsoleCommandSender; 6 | import org.bukkit.entity.Player; 7 | 8 | @CommandParameters(description = "Opens a GUI.", permission = "spt.gui.edit") 9 | public class GUICommand extends SCommand 10 | { 11 | @Override 12 | public void run(CommandSource sender, String[] args) 13 | { 14 | if (args.length != 1) throw new CommandArgumentException(); 15 | if (sender instanceof ConsoleCommandSender) throw new CommandFailException("Console senders cannot use this command!"); 16 | Player player = sender.getPlayer(); 17 | GUI gui = GUIType.valueOf(args[0].toUpperCase()).getGUI(); 18 | gui.open(player); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/command/IslandCommand.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.command; 2 | 3 | import me.superischroma.spectaculation.user.PlayerUtils; 4 | import org.bukkit.command.ConsoleCommandSender; 5 | import org.bukkit.entity.Player; 6 | 7 | @CommandParameters(description = "go to or create your island", aliases = "is") 8 | public class IslandCommand extends SCommand 9 | { 10 | @Override 11 | public void run(CommandSource sender, String[] args) 12 | { 13 | if (sender instanceof ConsoleCommandSender) throw new CommandFailException("Console senders cannot use this command!"); 14 | Player player = sender.getPlayer(); 15 | PlayerUtils.sendToIsland(player); 16 | } 17 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/command/ItemBrowseCommand.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.command; 2 | 3 | import me.superischroma.spectaculation.gui.ItemBrowserGUI; 4 | import org.apache.commons.lang.StringUtils; 5 | import org.bukkit.command.ConsoleCommandSender; 6 | import org.bukkit.entity.Player; 7 | 8 | @CommandParameters(description = "Browse from a catalog of items.", aliases = "browseitem,browseitems,browsei,bi,ib", permission = "spt.item") 9 | public class ItemBrowseCommand extends SCommand 10 | { 11 | @Override 12 | public void run(CommandSource sender, String[] args) 13 | { 14 | if (sender instanceof ConsoleCommandSender) throw new CommandFailException("Console senders cannot use this command!"); 15 | Player player = sender.getPlayer(); 16 | String query = ""; 17 | if (args.length >= 1) 18 | query = StringUtils.join(args); 19 | new ItemBrowserGUI(query).open(player); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/command/ManaCommand.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.command; 2 | 3 | import me.superischroma.spectaculation.Repeater; 4 | import org.bukkit.command.ConsoleCommandSender; 5 | import org.bukkit.entity.Player; 6 | 7 | import java.util.UUID; 8 | 9 | @CommandParameters(description = "Modify your mana amount.", permission = "spt.item") 10 | public class ManaCommand extends SCommand 11 | { 12 | @Override 13 | public void run(CommandSource sender, String[] args) 14 | { 15 | if (args.length != 1) throw new CommandArgumentException(); 16 | if (sender instanceof ConsoleCommandSender) throw new CommandFailException("Console senders cannot use this command!"); 17 | Player player = sender.getPlayer(); 18 | UUID uuid = player.getUniqueId(); 19 | if (!Repeater.MANA_MAP.containsKey(uuid)) throw new CommandFailException("Something went wrong!"); 20 | int set = Integer.parseInt(args[0]); 21 | Repeater.MANA_MAP.remove(uuid); 22 | Repeater.MANA_MAP.put(uuid, set); 23 | send("Your mana is now " + set + "."); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/command/PlayerNotFoundException.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.command; 2 | 3 | import org.bukkit.ChatColor; 4 | 5 | public class PlayerNotFoundException extends RuntimeException 6 | { 7 | public PlayerNotFoundException() 8 | { 9 | super(ChatColor.GRAY + "Player not found!"); 10 | } 11 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/command/SkillsCommand.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.command; 2 | 3 | import me.superischroma.spectaculation.skill.Skill; 4 | import org.bukkit.command.ConsoleCommandSender; 5 | 6 | @CommandParameters(description = "Shows your skills.", aliases = "skill", permission = "spt.skills") 7 | public class SkillsCommand extends SCommand 8 | { 9 | @Override 10 | public void run(CommandSource sender, String[] args) 11 | { 12 | if (args.length != 0) throw new CommandArgumentException(); 13 | if (sender instanceof ConsoleCommandSender) throw new CommandFailException("Console senders cannot use this command!"); 14 | send("Skills:"); 15 | for (Skill skill : Skill.getSkills()) 16 | send(" - " + skill.getName() + ": LVL " + Skill.getLevel(sender.getUser().getSkillXP(skill), skill.hasSixtyLevels()) + ", " + sender.getUser().getSkillXP(skill) + " XP"); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/command/SpecTestCommand.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.command; 2 | 3 | import org.bukkit.command.ConsoleCommandSender; 4 | import org.bukkit.entity.Player; 5 | import org.bukkit.util.Vector; 6 | 7 | @CommandParameters(description = "Spec test command.", aliases = "test") 8 | public class SpecTestCommand extends SCommand 9 | { 10 | @Override 11 | public void run(CommandSource sender, String[] args) 12 | { 13 | if (args.length != 0) throw new CommandArgumentException(); 14 | if (sender instanceof ConsoleCommandSender) throw new CommandFailException("Console senders cannot use this command!"); 15 | Player player = sender.getPlayer(); 16 | player.setVelocity(new Vector(-670.5, 58.0, -275.5).multiply(-1.0).multiply(3.0).setY(100.0)); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/command/SpectaculationCommand.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.command; 2 | 3 | @CommandParameters(description = "The main command for Spectaculation.", aliases = "spt") 4 | public class SpectaculationCommand extends SCommand 5 | { 6 | @Override 7 | public void run(CommandSource sender, String[] args) 8 | { 9 | send("Spectaculation v" + plugin.getDescription().getVersion()); 10 | } 11 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/Ageable.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity; 2 | 3 | public interface Ageable 4 | { 5 | default boolean isBaby() 6 | { 7 | return false; 8 | } 9 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/EntityDropType.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity; 2 | 3 | import lombok.Getter; 4 | import org.bukkit.ChatColor; 5 | 6 | public enum EntityDropType 7 | { 8 | GUARANTEED(ChatColor.GREEN), 9 | COMMON(ChatColor.GREEN), 10 | OCCASIONAL(ChatColor.BLUE), 11 | RARE(ChatColor.GOLD), 12 | VERY_RARE(ChatColor.AQUA), 13 | EXTRAORDINARILY_RARE(ChatColor.DARK_PURPLE), 14 | CRAZY_RARE(ChatColor.LIGHT_PURPLE); 15 | 16 | @Getter 17 | private final ChatColor color; 18 | 19 | EntityDropType(ChatColor color) 20 | { 21 | this.color = color; 22 | } 23 | 24 | public String getDisplay() 25 | { 26 | return "" + color + ChatColor.BOLD + name().replaceAll("_", " "); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/EntityFunction.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity; 2 | 3 | import com.google.common.util.concurrent.AtomicDouble; 4 | import org.bukkit.entity.Entity; 5 | import org.bukkit.entity.LivingEntity; 6 | import org.bukkit.event.entity.EntityDamageByEntityEvent; 7 | import org.bukkit.event.entity.EntityTargetLivingEntityEvent; 8 | 9 | import java.util.ArrayList; 10 | import java.util.List; 11 | 12 | public interface EntityFunction 13 | { 14 | default void onDeath(SEntity sEntity, Entity killed, Entity damager) {} 15 | default void onDamage(SEntity sEntity, Entity damager, EntityDamageByEntityEvent e, AtomicDouble damage) {} 16 | default List drops() 17 | { 18 | return new ArrayList<>(); 19 | } 20 | default boolean tick(LivingEntity entity) 21 | { 22 | return false; 23 | } 24 | default void onSpawn(LivingEntity entity, SEntity sEntity) {} 25 | default void onAttack(EntityDamageByEntityEvent e) {} 26 | default void onTarget(SEntity sEntity, EntityTargetLivingEntityEvent e) {} 27 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/EntityStatistics.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity; 2 | 3 | public interface EntityStatistics 4 | { 5 | String getEntityName(); 6 | double getEntityMaxHealth(); 7 | double getDamageDealt(); 8 | double getXPDropped(); 9 | default SEntityEquipment getEntityEquipment() 10 | { 11 | return null; 12 | } 13 | default double getMovementSpeed() 14 | { 15 | return -1.0; 16 | } 17 | default boolean dealsTrueDamage() 18 | { 19 | return false; 20 | } 21 | default boolean hasNameTag() 22 | { 23 | return true; 24 | } 25 | default boolean removeWhenFarAway() 26 | { 27 | return false; 28 | } 29 | default boolean isVisible() 30 | { 31 | return true; 32 | } 33 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/JockeyStatistics.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity; 2 | 3 | public interface JockeyStatistics extends EntityStatistics 4 | { 5 | SEntityType getPassenger(); 6 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/SEntityEquipment.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | import org.bukkit.inventory.ItemStack; 6 | 7 | @Getter 8 | @Setter 9 | public class SEntityEquipment 10 | { 11 | private ItemStack itemInHand; 12 | private ItemStack helmet; 13 | private ItemStack chestplate; 14 | private ItemStack leggings; 15 | private ItemStack boots; 16 | 17 | public SEntityEquipment(ItemStack itemInHand, ItemStack helmet, ItemStack chestplate, 18 | ItemStack leggings, ItemStack boots) 19 | { 20 | this.itemInHand = itemInHand; 21 | this.helmet = helmet; 22 | this.chestplate = chestplate; 23 | this.leggings = leggings; 24 | this.boots = boots; 25 | } 26 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/SkeletonStatistics.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity; 2 | 3 | public interface SkeletonStatistics extends EntityStatistics 4 | { 5 | default boolean isWither() 6 | { 7 | return false; 8 | } 9 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/SlimeStatistics.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity; 2 | 3 | public interface SlimeStatistics extends EntityStatistics 4 | { 5 | default int getSize() 6 | { 7 | return 1; 8 | } 9 | 10 | default boolean split() 11 | { 12 | return false; 13 | } 14 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/ZombieStatistics.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity; 2 | 3 | public interface ZombieStatistics extends EntityStatistics, Ageable 4 | { 5 | default boolean isVillager() 6 | { 7 | return false; 8 | } 9 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/caverns/CreeperFunction.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity.caverns; 2 | 3 | import me.superischroma.spectaculation.entity.EntityFunction; 4 | import me.superischroma.spectaculation.entity.SEntity; 5 | import me.superischroma.spectaculation.event.CreeperIgniteEvent; 6 | 7 | public interface CreeperFunction extends EntityFunction 8 | { 9 | default void onCreeperIgnite(CreeperIgniteEvent e, SEntity sEntity) {} 10 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/den/BroodMother.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity.den; 2 | 3 | import me.superischroma.spectaculation.entity.SEntity; 4 | import me.superischroma.spectaculation.entity.SEntityType; 5 | import me.superischroma.spectaculation.util.SUtil; 6 | import org.bukkit.entity.Entity; 7 | 8 | public class BroodMother extends BaseSpider 9 | { 10 | @Override 11 | public String getEntityName() 12 | { 13 | return "Brood Mother"; 14 | } 15 | 16 | @Override 17 | public double getEntityMaxHealth() 18 | { 19 | return 6000.0; 20 | } 21 | 22 | @Override 23 | public double getDamageDealt() 24 | { 25 | return 100.0; 26 | } 27 | 28 | @Override 29 | public void onDeath(SEntity sEntity, Entity killed, Entity damager) 30 | { 31 | int am = SUtil.random(4, 5); 32 | for (int i = 0; i < am; i++) 33 | new SEntity(sEntity.getEntity(), SEntityType.CAVE_SPIDER); 34 | } 35 | 36 | @Override 37 | public double getXPDropped() 38 | { 39 | return 17.0; 40 | } 41 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/den/CaveSpider.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity.den; 2 | 3 | public class CaveSpider extends BaseSpider 4 | { 5 | @Override 6 | public String getEntityName() 7 | { 8 | return "Cave Spider"; 9 | } 10 | 11 | @Override 12 | public double getEntityMaxHealth() 13 | { 14 | return 12.0; 15 | } 16 | 17 | @Override 18 | public double getDamageDealt() 19 | { 20 | return 5.0; 21 | } 22 | 23 | @Override 24 | public double getXPDropped() 25 | { 26 | return 5.7; 27 | } 28 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/den/DasherSpider.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity.den; 2 | 3 | public class DasherSpider extends BaseSpider 4 | { 5 | @Override 6 | public String getEntityName() 7 | { 8 | return "Dasher Spider"; 9 | } 10 | 11 | @Override 12 | public double getEntityMaxHealth() 13 | { 14 | return 160.0; 15 | } 16 | 17 | @Override 18 | public double getDamageDealt() 19 | { 20 | return 55.0; 21 | } 22 | 23 | @Override 24 | public double getMovementSpeed() 25 | { 26 | return 0.4; 27 | } 28 | 29 | @Override 30 | public double getXPDropped() 31 | { 32 | return 10.8; 33 | } 34 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/den/Silverfish.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity.den; 2 | 3 | import me.superischroma.spectaculation.entity.EntityFunction; 4 | import me.superischroma.spectaculation.entity.EntityStatistics; 5 | 6 | public class Silverfish implements EntityStatistics, EntityFunction 7 | { 8 | @Override 9 | public String getEntityName() 10 | { 11 | return "Silverfish"; 12 | } 13 | 14 | @Override 15 | public double getEntityMaxHealth() 16 | { 17 | return 50.0; 18 | } 19 | 20 | @Override 21 | public double getDamageDealt() 22 | { 23 | return 20.0; 24 | } 25 | 26 | @Override 27 | public double getXPDropped() 28 | { 29 | return 5.4; 30 | } 31 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/den/SplitterSpider.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity.den; 2 | 3 | import me.superischroma.spectaculation.entity.SEntity; 4 | import me.superischroma.spectaculation.entity.SEntityType; 5 | import org.bukkit.entity.Entity; 6 | 7 | public class SplitterSpider extends BaseSpider 8 | { 9 | @Override 10 | public String getEntityName() 11 | { 12 | return "Splitter Spider"; 13 | } 14 | 15 | @Override 16 | public double getEntityMaxHealth() 17 | { 18 | return 180.0; 19 | } 20 | 21 | @Override 22 | public double getDamageDealt() 23 | { 24 | return 30.0; 25 | } 26 | 27 | @Override 28 | public double getXPDropped() 29 | { 30 | return 9.7; 31 | } 32 | 33 | @Override 34 | public void onDeath(SEntity sEntity, Entity killed, Entity damager) 35 | { 36 | super.onDeath(sEntity, killed, damager); 37 | for (int i = 0; i < 2; i++) 38 | new SEntity(sEntity.getEntity(), SEntityType.SILVERFISH); 39 | } 40 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/den/TarantulaVermin.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity.den; 2 | 3 | import me.superischroma.spectaculation.entity.EntityDrop; 4 | import me.superischroma.spectaculation.entity.EntityDropType; 5 | import me.superischroma.spectaculation.item.SMaterial; 6 | 7 | import java.util.Collections; 8 | import java.util.List; 9 | 10 | public class TarantulaVermin extends BaseSpider 11 | { 12 | @Override 13 | public String getEntityName() 14 | { 15 | return "Tarantula Vermin"; 16 | } 17 | 18 | @Override 19 | public double getEntityMaxHealth() 20 | { 21 | return 54000; 22 | } 23 | 24 | @Override 25 | public double getDamageDealt() 26 | { 27 | return 900.0; 28 | } 29 | 30 | @Override 31 | public double getXPDropped() 32 | { 33 | return 150.0; 34 | } 35 | 36 | @Override 37 | public List drops() 38 | { 39 | return Collections.singletonList(new EntityDrop(SMaterial.TARANTULA_WEB, EntityDropType.GUARANTEED, 1.0)); 40 | } 41 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/den/VoraciousSpider.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity.den; 2 | 3 | public class VoraciousSpider extends BaseSpider 4 | { 5 | @Override 6 | public String getEntityName() 7 | { 8 | return "Voracious Spider"; 9 | } 10 | 11 | @Override 12 | public double getEntityMaxHealth() 13 | { 14 | return 1000.0; 15 | } 16 | 17 | @Override 18 | public double getDamageDealt() 19 | { 20 | return 100.0; 21 | } 22 | 23 | @Override 24 | public double getXPDropped() 25 | { 26 | return 10.8; 27 | } 28 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/end/Enderman.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity.end; 2 | 3 | import me.superischroma.spectaculation.entity.EntityFunction; 4 | 5 | public class Enderman implements EndermanStatistics, EntityFunction 6 | { 7 | @Override 8 | public String getEntityName() 9 | { 10 | return "Enderman"; 11 | } 12 | 13 | @Override 14 | public double getEntityMaxHealth() 15 | { 16 | return 6000.0; 17 | } 18 | 19 | @Override 20 | public double getDamageDealt() 21 | { 22 | return 600.0; 23 | } 24 | 25 | @Override 26 | public double getXPDropped() 27 | { 28 | return 32.0; 29 | } 30 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/end/EndermanStatistics.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity.end; 2 | 3 | import me.superischroma.spectaculation.entity.EntityStatistics; 4 | import org.bukkit.material.MaterialData; 5 | 6 | public interface EndermanStatistics extends EntityStatistics 7 | { 8 | default MaterialData getCarriedMaterial() 9 | { 10 | return null; 11 | } 12 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/end/StrongEnderman.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity.end; 2 | 3 | import me.superischroma.spectaculation.entity.EntityFunction; 4 | 5 | public class StrongEnderman implements EndermanStatistics, EntityFunction 6 | { 7 | @Override 8 | public String getEntityName() 9 | { 10 | return "Enderman"; 11 | } 12 | 13 | @Override 14 | public double getEntityMaxHealth() 15 | { 16 | return 9000.0; 17 | } 18 | 19 | @Override 20 | public double getDamageDealt() 21 | { 22 | return 700.0; 23 | } 24 | 25 | @Override 26 | public double getXPDropped() 27 | { 28 | return 36.0; 29 | } 30 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/end/WeakEnderman.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity.end; 2 | 3 | import me.superischroma.spectaculation.entity.EntityFunction; 4 | 5 | public class WeakEnderman implements EndermanStatistics, EntityFunction 6 | { 7 | @Override 8 | public String getEntityName() 9 | { 10 | return "Enderman"; 11 | } 12 | 13 | @Override 14 | public double getEntityMaxHealth() 15 | { 16 | return 4500.0; 17 | } 18 | 19 | @Override 20 | public double getDamageDealt() 21 | { 22 | return 500.0; 23 | } 24 | 25 | @Override 26 | public double getXPDropped() 27 | { 28 | return 28.0; 29 | } 30 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/insentient/WheatCrystal.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity.insentient; 2 | 3 | public class WheatCrystal extends FloatingCrystal 4 | { 5 | @Override 6 | protected String getURL() 7 | { 8 | return "d7d30431c2945ced873c27575eeaac22adb28adac7fbd89b56eb9e93979ce0fd"; 9 | } 10 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/nether/MediumMagmaCube.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity.nether; 2 | 3 | import me.superischroma.spectaculation.entity.EntityFunction; 4 | import me.superischroma.spectaculation.entity.SlimeStatistics; 5 | 6 | public class MediumMagmaCube implements SlimeStatistics, EntityFunction 7 | { 8 | @Override 9 | public String getEntityName() 10 | { 11 | return "Magma Cube"; 12 | } 13 | 14 | @Override 15 | public double getEntityMaxHealth() 16 | { 17 | return 250.0; 18 | } 19 | 20 | @Override 21 | public double getDamageDealt() 22 | { 23 | return 120.0; 24 | } 25 | 26 | @Override 27 | public double getXPDropped() 28 | { 29 | return 4.0; 30 | } 31 | 32 | @Override 33 | public int getSize() 34 | { 35 | return 5; 36 | } 37 | 38 | @Override 39 | public boolean split() 40 | { 41 | return false; 42 | } 43 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/nether/SmallMagmaCube.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity.nether; 2 | 3 | import me.superischroma.spectaculation.entity.EntityFunction; 4 | import me.superischroma.spectaculation.entity.SlimeStatistics; 5 | 6 | public class SmallMagmaCube implements SlimeStatistics, EntityFunction 7 | { 8 | @Override 9 | public String getEntityName() 10 | { 11 | return "Magma Cube"; 12 | } 13 | 14 | @Override 15 | public double getEntityMaxHealth() 16 | { 17 | return 200.0; 18 | } 19 | 20 | @Override 21 | public double getDamageDealt() 22 | { 23 | return 70.0; 24 | } 25 | 26 | @Override 27 | public double getXPDropped() 28 | { 29 | return 4.0; 30 | } 31 | 32 | @Override 33 | public int getSize() 34 | { 35 | return 4; 36 | } 37 | 38 | @Override 39 | public boolean split() 40 | { 41 | return false; 42 | } 43 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/nms/OldDragon.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity.nms; 2 | 3 | import net.minecraft.server.v1_8_R3.World; 4 | import org.bukkit.Bukkit; 5 | import org.bukkit.craftbukkit.v1_8_R3.CraftWorld; 6 | 7 | public class OldDragon extends Dragon 8 | { 9 | public OldDragon(World world) 10 | { 11 | super(world, 1.2, Dragon.DEFAULT_DAMAGE_DEGREE_RANGE, Dragon.DEFAULT_ATTACK_COOLDOWN); 12 | } 13 | 14 | public OldDragon() 15 | { 16 | this(((CraftWorld) Bukkit.getWorlds().get(0)).getHandle()); 17 | } 18 | 19 | @Override 20 | public String getEntityName() 21 | { 22 | return "Old Dragon"; 23 | } 24 | 25 | @Override 26 | public double getEntityMaxHealth() 27 | { 28 | return 15000000.0; 29 | } 30 | 31 | @Override 32 | public double getDamageDealt() 33 | { 34 | return 1400.0; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/nms/ProtectorDragon.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity.nms; 2 | 3 | import net.minecraft.server.v1_8_R3.World; 4 | import org.bukkit.Bukkit; 5 | import org.bukkit.craftbukkit.v1_8_R3.CraftWorld; 6 | 7 | public class ProtectorDragon extends Dragon 8 | { 9 | public ProtectorDragon(World world) 10 | { 11 | super(world, Dragon.DEFAULT_SPEED_MODIFIER, Dragon.DEFAULT_DAMAGE_DEGREE_RANGE, Dragon.DEFAULT_ATTACK_COOLDOWN); 12 | } 13 | 14 | public ProtectorDragon() 15 | { 16 | this(((CraftWorld) Bukkit.getWorlds().get(0)).getHandle()); 17 | } 18 | 19 | @Override 20 | public String getEntityName() 21 | { 22 | return "Protector Dragon"; 23 | } 24 | 25 | @Override 26 | public double getEntityMaxHealth() 27 | { 28 | return 9000000.0; 29 | } 30 | 31 | @Override 32 | public double getDamageDealt() 33 | { 34 | return 1300.0; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/nms/SNMSEntity.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity.nms; 2 | 3 | import org.bukkit.Location; 4 | import org.bukkit.entity.LivingEntity; 5 | 6 | public interface SNMSEntity 7 | { 8 | LivingEntity spawn(Location location); 9 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/nms/SlayerBoss.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity.nms; 2 | 3 | import java.util.UUID; 4 | 5 | public interface SlayerBoss 6 | { 7 | UUID getSpawnerUUID(); 8 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/nms/StrongDragon.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity.nms; 2 | 3 | import net.minecraft.server.v1_8_R3.World; 4 | import org.apache.commons.lang3.Range; 5 | import org.bukkit.Bukkit; 6 | import org.bukkit.craftbukkit.v1_8_R3.CraftWorld; 7 | 8 | public class StrongDragon extends Dragon 9 | { 10 | public StrongDragon(World world) 11 | { 12 | super(world, Dragon.DEFAULT_SPEED_MODIFIER, Range.between(0.5, 0.8), Dragon.DEFAULT_ATTACK_COOLDOWN); 13 | } 14 | 15 | public StrongDragon() 16 | { 17 | this(((CraftWorld) Bukkit.getWorlds().get(0)).getHandle()); 18 | } 19 | 20 | @Override 21 | public String getEntityName() 22 | { 23 | return "Strong Dragon"; 24 | } 25 | 26 | @Override 27 | public double getEntityMaxHealth() 28 | { 29 | return 9000000.0; 30 | } 31 | 32 | @Override 33 | public double getDamageDealt() 34 | { 35 | return 1700.0; 36 | } 37 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/nms/SuperiorDragon.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity.nms; 2 | 3 | import net.minecraft.server.v1_8_R3.World; 4 | import org.bukkit.Bukkit; 5 | import org.bukkit.craftbukkit.v1_8_R3.CraftWorld; 6 | 7 | public class SuperiorDragon extends Dragon 8 | { 9 | public SuperiorDragon(World world) 10 | { 11 | super(world, 1.6, Dragon.DEFAULT_DAMAGE_DEGREE_RANGE, Dragon.DEFAULT_ATTACK_COOLDOWN); 12 | } 13 | 14 | public SuperiorDragon() 15 | { 16 | this(((CraftWorld) Bukkit.getWorlds().get(0)).getHandle()); 17 | } 18 | 19 | @Override 20 | public String getEntityName() 21 | { 22 | return "Superior Dragon"; 23 | } 24 | 25 | @Override 26 | public double getEntityMaxHealth() 27 | { 28 | return 12000000.0; 29 | } 30 | 31 | @Override 32 | public double getDamageDealt() 33 | { 34 | return 1600.0; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/nms/TieredValue.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity.nms; 2 | 3 | public class TieredValue 4 | { 5 | private final T i; 6 | private final T ii; 7 | private final T iii; 8 | private final T iv; 9 | 10 | public TieredValue(T i, T ii, T iii, T iv) 11 | { 12 | this.i = i; 13 | this.ii = ii; 14 | this.iii = iii; 15 | this.iv = iv; 16 | } 17 | 18 | public T getByNumber(int n) 19 | { 20 | switch (n) 21 | { 22 | case 2: return ii; 23 | case 3: return iii; 24 | case 4: return iv; 25 | default: return i; 26 | } 27 | } 28 | 29 | public T getTierI() 30 | { 31 | return i; 32 | } 33 | 34 | public T getTierII() 35 | { 36 | return ii; 37 | } 38 | 39 | public T getTierIII() 40 | { 41 | return iii; 42 | } 43 | 44 | public T getTierIV() 45 | { 46 | return iv; 47 | } 48 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/nms/UnstableDragon.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity.nms; 2 | 3 | import net.minecraft.server.v1_8_R3.World; 4 | import org.apache.commons.lang3.Range; 5 | import org.bukkit.Bukkit; 6 | import org.bukkit.craftbukkit.v1_8_R3.CraftWorld; 7 | 8 | public class UnstableDragon extends Dragon 9 | { 10 | public UnstableDragon(World world) 11 | { 12 | super(world, Dragon.DEFAULT_SPEED_MODIFIER, Range.between(0.6, 0.9), Dragon.DEFAULT_ATTACK_COOLDOWN); 13 | } 14 | 15 | public UnstableDragon() 16 | { 17 | this(((CraftWorld) Bukkit.getWorlds().get(0)).getHandle()); 18 | } 19 | 20 | @Override 21 | public String getEntityName() 22 | { 23 | return "Unstable Dragon"; 24 | } 25 | 26 | @Override 27 | public double getEntityMaxHealth() 28 | { 29 | return 9000000.0; 30 | } 31 | 32 | @Override 33 | public double getDamageDealt() 34 | { 35 | return 1400.0; 36 | } 37 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/nms/WiseDragon.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity.nms; 2 | 3 | import net.minecraft.server.v1_8_R3.World; 4 | import org.bukkit.Bukkit; 5 | import org.bukkit.craftbukkit.v1_8_R3.CraftWorld; 6 | 7 | public class WiseDragon extends Dragon 8 | { 9 | public WiseDragon(World world) 10 | { 11 | super(world, Dragon.DEFAULT_SPEED_MODIFIER, Dragon.DEFAULT_DAMAGE_DEGREE_RANGE, 200); 12 | } 13 | 14 | public WiseDragon() 15 | { 16 | this(((CraftWorld) Bukkit.getWorlds().get(0)).getHandle()); 17 | } 18 | 19 | @Override 20 | public String getEntityName() 21 | { 22 | return "Wise Dragon"; 23 | } 24 | 25 | @Override 26 | public double getEntityMaxHealth() 27 | { 28 | return 9000000.0; 29 | } 30 | 31 | @Override 32 | public double getDamageDealt() 33 | { 34 | return 1200.0; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/nms/YoungDragon.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity.nms; 2 | 3 | import net.minecraft.server.v1_8_R3.World; 4 | import org.apache.commons.lang3.Range; 5 | import org.bukkit.Bukkit; 6 | import org.bukkit.craftbukkit.v1_8_R3.CraftWorld; 7 | 8 | public class YoungDragon extends Dragon 9 | { 10 | public YoungDragon(World world) 11 | { 12 | super(world, 1.8, Dragon.DEFAULT_DAMAGE_DEGREE_RANGE, Dragon.DEFAULT_ATTACK_COOLDOWN); 13 | } 14 | 15 | public YoungDragon() 16 | { 17 | this(((CraftWorld) Bukkit.getWorlds().get(0)).getHandle()); 18 | } 19 | 20 | @Override 21 | public String getEntityName() 22 | { 23 | return "Young Dragon"; 24 | } 25 | 26 | @Override 27 | public double getEntityMaxHealth() 28 | { 29 | return 7500000.0; 30 | } 31 | 32 | @Override 33 | public double getDamageDealt() 34 | { 35 | return 1600.0; 36 | } 37 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/wolf/Wolf.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity.wolf; 2 | 3 | import me.superischroma.spectaculation.entity.*; 4 | import me.superischroma.spectaculation.item.SMaterial; 5 | 6 | import java.util.Collections; 7 | import java.util.List; 8 | 9 | public class Wolf extends BaseWolf 10 | { 11 | @Override 12 | public String getEntityName() 13 | { 14 | return "Wolf"; 15 | } 16 | 17 | @Override 18 | public double getEntityMaxHealth() 19 | { 20 | return 250.0; 21 | } 22 | 23 | @Override 24 | public double getDamageDealt() 25 | { 26 | return 80.0; 27 | } 28 | 29 | @Override 30 | public List drops() 31 | { 32 | return Collections.singletonList(new EntityDrop(SMaterial.BONE, EntityDropType.GUARANTEED, 1.0)); 33 | } 34 | 35 | public double getXPDropped() 36 | { 37 | return 10.0; 38 | } 39 | 40 | @Override 41 | public boolean isAngry() 42 | { 43 | return true; 44 | } 45 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/entity/wolf/WolfStatistics.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.entity.wolf; 2 | 3 | import me.superischroma.spectaculation.entity.Ageable; 4 | import me.superischroma.spectaculation.entity.EntityStatistics; 5 | 6 | public interface WolfStatistics extends EntityStatistics, Ageable 7 | { 8 | default boolean isAngry() 9 | { 10 | return false; 11 | } 12 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/gui/BlockBasedGUI.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.gui; 2 | 3 | import org.bukkit.Material; 4 | 5 | public interface BlockBasedGUI 6 | { 7 | Material getBlock(); 8 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/gui/GUICloseEvent.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.gui; 2 | 3 | import lombok.Getter; 4 | import org.bukkit.entity.Player; 5 | import org.bukkit.event.Cancellable; 6 | import org.bukkit.event.HandlerList; 7 | import org.bukkit.event.player.PlayerEvent; 8 | 9 | public class GUICloseEvent extends PlayerEvent 10 | { 11 | private static final HandlerList handlers = new HandlerList(); 12 | @Getter 13 | private final GUI closed; 14 | 15 | public GUICloseEvent(Player player, GUI opened) 16 | { 17 | super(player); 18 | this.closed = opened; 19 | } 20 | 21 | @Override 22 | public HandlerList getHandlers() 23 | { 24 | return handlers; 25 | } 26 | 27 | public static HandlerList getHandlerList() 28 | { 29 | return handlers; 30 | } 31 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/gui/GUIItem.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.gui; 2 | 3 | import me.superischroma.spectaculation.util.SUtil; 4 | import org.bukkit.ChatColor; 5 | import org.bukkit.Material; 6 | import org.bukkit.inventory.ItemStack; 7 | 8 | public interface GUIItem 9 | { 10 | int getSlot(); 11 | default ItemStack getItem() 12 | { 13 | return new ItemStack(Material.AIR); 14 | } 15 | default boolean canPickup() 16 | { 17 | return false; 18 | } 19 | 20 | static GUIItem createLoadingItem(Material type, String name, int slot) 21 | { 22 | return new GUIItem() 23 | { 24 | @Override 25 | public int getSlot() 26 | { 27 | return slot; 28 | } 29 | 30 | @Override 31 | public ItemStack getItem() 32 | { 33 | return SUtil.getSingleLoreStack(name, type, (short) 0, 1, ChatColor.DARK_GRAY + "Loading..."); 34 | } 35 | }; 36 | } 37 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/gui/GUIQueryItem.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.gui; 2 | 3 | public interface GUIQueryItem extends GUIClickableItem 4 | { 5 | GUI onQueryFinish(String query); 6 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/Ability.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item; 2 | 3 | import org.bukkit.entity.Player; 4 | 5 | public interface Ability 6 | { 7 | String getAbilityName(); 8 | String getAbilityDescription(); 9 | default void onAbilityUse(Player player, SItem sItem) {} 10 | int getAbilityCooldownTicks(); 11 | int getManaCost(); 12 | default AbilityActivation getAbilityActivation() 13 | { 14 | return AbilityActivation.RIGHT_CLICK; 15 | } 16 | default boolean displayUsage() 17 | { 18 | return true; 19 | } 20 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/AbilityActivation.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item; 2 | 3 | public enum AbilityActivation 4 | { 5 | RIGHT_CLICK, 6 | LEFT_CLICK, 7 | FLIGHT, 8 | SHOOT, 9 | NO_ACTIVATION 10 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/Enchantable.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item; 2 | 3 | import net.minecraft.server.v1_8_R3.NBTTagCompound; 4 | 5 | public interface Enchantable extends ItemData 6 | { 7 | @Override 8 | default NBTTagCompound getData() 9 | { 10 | return new NBTTagCompound(); 11 | } 12 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/EventType.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item; 2 | 3 | public enum EventType 4 | { 5 | KILL, 6 | DEATH 7 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/ExperienceRewardStatistics.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item; 2 | 3 | import me.superischroma.spectaculation.skill.Skill; 4 | 5 | public interface ExperienceRewardStatistics extends MaterialStatistics 6 | { 7 | double getRewardXP(); 8 | Skill getRewardedSkill(); 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/FishingRodFunction.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item; 2 | 3 | import org.bukkit.event.player.PlayerFishEvent; 4 | 5 | public interface FishingRodFunction extends MaterialFunction 6 | { 7 | void onFish(SItem instance, PlayerFishEvent e); 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/FlightStatistics.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item; 2 | 3 | public interface FlightStatistics extends MaterialStatistics 4 | { 5 | boolean enableFlight(); 6 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/GenericItemType.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item; 2 | 3 | public enum GenericItemType 4 | { 5 | WEAPON, 6 | TOOL, 7 | RANGED_WEAPON, 8 | ARMOR, 9 | ACCESSORY, 10 | BLOCK, 11 | ITEM, 12 | PET 13 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/ItemData.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item; 2 | 3 | import net.minecraft.server.v1_8_R3.NBTTagCompound; 4 | 5 | import java.util.List; 6 | 7 | public interface ItemData 8 | { 9 | NBTTagCompound getData(); 10 | 11 | default List getDataLore(String key, Object value) 12 | { 13 | return null; 14 | } 15 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/ItemOrigin.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item; 2 | 3 | public enum ItemOrigin 4 | { 5 | NATURAL_BLOCK, 6 | CRAFTING, 7 | MOB, 8 | UNKNOWN 9 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/LoreableMaterialStatistics.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item; 2 | 3 | import java.util.List; 4 | 5 | public interface LoreableMaterialStatistics extends MaterialStatistics 6 | { 7 | List getCustomLore(SItem instance); 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/MaterialFunction.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item; 2 | 3 | import com.google.common.util.concurrent.AtomicDouble; 4 | import org.bukkit.entity.Entity; 5 | import org.bukkit.entity.Player; 6 | import org.bukkit.event.entity.EntityDamageByEntityEvent; 7 | import org.bukkit.event.inventory.InventoryClickEvent; 8 | import org.bukkit.event.player.PlayerInteractEvent; 9 | 10 | public interface MaterialFunction 11 | { 12 | default void onInteraction(PlayerInteractEvent e) {} 13 | default void onInventoryClick(SItem instance, InventoryClickEvent e) {} 14 | default void onDamage(Entity damaged, Player damager, AtomicDouble damage, SItem item) {} 15 | default void onKill(Entity damaged, Player damager, SItem item) {} 16 | default void whileHolding(Player holding) {} 17 | default void onInstanceUpdate(SItem instance) {} 18 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/Ownable.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item; 2 | 3 | import net.minecraft.server.v1_8_R3.NBTTagCompound; 4 | 5 | public interface Ownable extends ItemData 6 | { 7 | @Override 8 | default NBTTagCompound getData() 9 | { 10 | return new NBTTagCompound(); 11 | } 12 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/PlayerBoostStatistics.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item; 2 | 3 | public interface PlayerBoostStatistics extends MaterialStatistics 4 | { 5 | default int getBaseDamage() 6 | { 7 | return 0; 8 | } 9 | default double getBaseStrength() 10 | { 11 | return 0; 12 | } 13 | default double getBaseCritChance() 14 | { 15 | return 0.0; 16 | } 17 | default double getBaseCritDamage() 18 | { 19 | return 0.0; 20 | } 21 | default double getBaseMagicFind() 22 | { 23 | return 0.0; 24 | } 25 | default double getBaseIntelligence() 26 | { 27 | return 0; 28 | } 29 | default double getBaseSpeed() 30 | { 31 | return 0.0; 32 | } 33 | default double getBaseHealth() 34 | { 35 | return 0; 36 | } 37 | default double getBaseDefense() 38 | { 39 | return 0; 40 | } 41 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/Reforgable.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item; 2 | 3 | import net.minecraft.server.v1_8_R3.NBTTagCompound; 4 | 5 | public interface Reforgable extends ItemData 6 | { 7 | @Override 8 | default NBTTagCompound getData() 9 | { 10 | return new NBTTagCompound(); 11 | } 12 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/Rune.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item; 2 | 3 | import me.superischroma.spectaculation.util.SUtil; 4 | import net.minecraft.server.v1_8_R3.NBTTagCompound; 5 | 6 | public interface Rune extends SkullStatistics, MaterialFunction, ItemData 7 | { 8 | @Override 9 | default NBTTagCompound getData() 10 | { 11 | NBTTagCompound compound = new NBTTagCompound(); 12 | compound.setByte("level", (byte) 1); 13 | return compound; 14 | } 15 | 16 | @Override 17 | default void onInstanceUpdate(SItem instance) 18 | { 19 | byte level = instance.getData().getByte("level"); 20 | instance.setDisplayName(getDisplayName() + " " + SUtil.toRomanNumeral(level)); 21 | } 22 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/SkullStatistics.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item; 2 | 3 | public interface SkullStatistics extends MaterialStatistics 4 | { 5 | String getURL(); 6 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/SpecificItemType.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item; 2 | 3 | import lombok.Getter; 4 | 5 | public enum SpecificItemType 6 | { 7 | SWORD(false), 8 | HELMET(false), 9 | CHESTPLATE(false), 10 | LEGGINGS(false), 11 | BOOTS(false), 12 | BOW(false), 13 | COSMETIC(false), 14 | ACCESSORY(false), 15 | AXE(false), 16 | PICKAXE(false), 17 | SHOVEL(false), 18 | HOE(false), 19 | SHEARS(false), 20 | DUNGEON_ITEM, 21 | NONE, 22 | ROD(false), 23 | ARROW_POISON; 24 | 25 | @Getter 26 | private final boolean stackable; 27 | 28 | SpecificItemType(boolean stackable) 29 | { 30 | this.stackable = stackable; 31 | } 32 | 33 | SpecificItemType() 34 | { 35 | this(true); 36 | } 37 | 38 | public String getName() 39 | { 40 | return name().replaceAll("_", " "); 41 | } 42 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/TickingMaterial.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item; 2 | 3 | import org.bukkit.entity.Player; 4 | 5 | public interface TickingMaterial extends MaterialFunction 6 | { 7 | default void tick(SItem item, Player owner) {} 8 | default long getInterval() 9 | { 10 | return 2; 11 | } 12 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/ToolStatistics.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item; 2 | 3 | import net.minecraft.server.v1_8_R3.NBTTagCompound; 4 | 5 | public interface ToolStatistics extends PlayerBoostStatistics, Enchantable, Reforgable 6 | { 7 | @Override 8 | String getDisplayName(); 9 | 10 | @Override 11 | Rarity getRarity(); 12 | 13 | @Override 14 | GenericItemType getType(); 15 | 16 | @Override 17 | default boolean isStackable() 18 | { 19 | return false; 20 | } 21 | 22 | @Override 23 | default NBTTagCompound getData() 24 | { 25 | return new NBTTagCompound(); 26 | } 27 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/accessory/AccessoryFunction.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.accessory; 2 | 3 | import com.google.common.util.concurrent.AtomicDouble; 4 | import me.superischroma.spectaculation.item.MaterialFunction; 5 | import me.superischroma.spectaculation.item.SItem; 6 | import org.bukkit.entity.Entity; 7 | import org.bukkit.entity.Player; 8 | 9 | public interface AccessoryFunction extends MaterialFunction 10 | { 11 | default void onDamageInInventory(SItem weapon, Player damager, Entity damaged, SItem accessory, AtomicDouble damage) {} 12 | default void update(SItem instance, Player player, int accessorySlot) {} 13 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/accessory/AccessoryStatistics.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.accessory; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public interface AccessoryStatistics extends PlayerBoostStatistics, SkullStatistics, Reforgable 6 | { 7 | @Override 8 | default GenericItemType getType() 9 | { 10 | return GenericItemType.ACCESSORY; 11 | } 12 | 13 | @Override 14 | default SpecificItemType getSpecificType() 15 | { 16 | return SpecificItemType.ACCESSORY; 17 | } 18 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/accessory/BlankTalisman.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.accessory; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class BlankTalisman implements AccessoryStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Blank Talisman"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.EXCLUSIVE; 17 | } 18 | 19 | @Override 20 | public String getLore() 21 | { 22 | return "Apply reforges to this talisman to get effects."; 23 | } 24 | 25 | @Override 26 | public GenericItemType getType() 27 | { 28 | return GenericItemType.ACCESSORY; 29 | } 30 | 31 | @Override 32 | public SpecificItemType getSpecificType() 33 | { 34 | return SpecificItemType.ACCESSORY; 35 | } 36 | 37 | @Override 38 | public String getURL() 39 | { 40 | return "1ad6c81f899a785ecf26be1dc48eae2bcfe777a862390f5785e95bd83bd14d"; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/ArmorSet.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor; 2 | 3 | import me.superischroma.spectaculation.item.MaterialStatistics; 4 | import me.superischroma.spectaculation.item.PlayerBoostStatistics; 5 | import org.bukkit.entity.Player; 6 | 7 | public interface ArmorSet 8 | { 9 | String getName(); 10 | String getDescription(); 11 | Class getHelmet(); 12 | Class getChestplate(); 13 | Class getLeggings(); 14 | Class getBoots(); 15 | default PlayerBoostStatistics whileHasFullSet(Player player) 16 | { 17 | return null; 18 | } 19 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/LeatherArmorStatistics.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor; 2 | 3 | import me.superischroma.spectaculation.item.ToolStatistics; 4 | 5 | public interface LeatherArmorStatistics extends ToolStatistics 6 | { 7 | int getColor(); 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/TickingSet.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor; 2 | 3 | import me.superischroma.spectaculation.item.SItem; 4 | import org.bukkit.entity.Player; 5 | 6 | import java.util.List; 7 | import java.util.concurrent.atomic.AtomicInteger; 8 | 9 | public interface TickingSet extends ArmorSet 10 | { 11 | void tick(Player owner, SItem helmet, SItem chestplate, SItem leggings, SItem boots, List counters); 12 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/hardened/HardenedDiamondBoots.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.hardened; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class HardenedDiamondBoots implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Hardened Diamond Boots"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.RARE; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ARMOR; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.BOOTS; 29 | } 30 | 31 | @Override 32 | public double getBaseDefense() 33 | { 34 | return 55; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/hardened/HardenedDiamondChestplate.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.hardened; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class HardenedDiamondChestplate implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Hardened Diamond Chestplate"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.RARE; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ARMOR; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.CHESTPLATE; 29 | } 30 | 31 | @Override 32 | public double getBaseDefense() 33 | { 34 | return 120; 35 | } 36 | 37 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/hardened/HardenedDiamondHelmet.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.hardened; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class HardenedDiamondHelmet implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Hardened Diamond Helmet"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.RARE; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ARMOR; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.HELMET; 29 | } 30 | 31 | @Override 32 | public double getBaseDefense() 33 | { 34 | return 60; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/hardened/HardenedDiamondLeggings.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.hardened; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class HardenedDiamondLeggings implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Hardened Diamond Leggings"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.RARE; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ARMOR; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.LEGGINGS; 29 | } 30 | 31 | @Override 32 | public double getBaseDefense() 33 | { 34 | return 95; 35 | } 36 | 37 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/lapis/LapisArmorBoots.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.lapis; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | import me.superischroma.spectaculation.item.armor.LeatherArmorStatistics; 5 | 6 | public class LapisArmorBoots implements LeatherArmorStatistics, MaterialFunction 7 | { 8 | @Override 9 | public String getDisplayName() 10 | { 11 | return "Lapis Armor Boots"; 12 | } 13 | 14 | @Override 15 | public Rarity getRarity() 16 | { 17 | return Rarity.UNCOMMON; 18 | } 19 | 20 | @Override 21 | public GenericItemType getType() 22 | { 23 | return GenericItemType.ARMOR; 24 | } 25 | 26 | @Override 27 | public SpecificItemType getSpecificType() 28 | { 29 | return SpecificItemType.BOOTS; 30 | } 31 | 32 | @Override 33 | public double getBaseDefense() 34 | { 35 | return 20; 36 | } 37 | 38 | @Override 39 | public int getColor() 40 | { 41 | return 0x0000FF; 42 | } 43 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/lapis/LapisArmorChestplate.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.lapis; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | import me.superischroma.spectaculation.item.armor.LeatherArmorStatistics; 5 | 6 | public class LapisArmorChestplate implements LeatherArmorStatistics, MaterialFunction 7 | { 8 | @Override 9 | public String getDisplayName() 10 | { 11 | return "Lapis Armor Chestplate"; 12 | } 13 | 14 | @Override 15 | public Rarity getRarity() 16 | { 17 | return Rarity.UNCOMMON; 18 | } 19 | 20 | @Override 21 | public GenericItemType getType() 22 | { 23 | return GenericItemType.ARMOR; 24 | } 25 | 26 | @Override 27 | public SpecificItemType getSpecificType() 28 | { 29 | return SpecificItemType.CHESTPLATE; 30 | } 31 | 32 | @Override 33 | public double getBaseDefense() 34 | { 35 | return 40; 36 | } 37 | 38 | @Override 39 | public int getColor() 40 | { 41 | return 0x0000FF; 42 | } 43 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/lapis/LapisArmorHelmet.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.lapis; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class LapisArmorHelmet implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Lapis Armor Helmet"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.UNCOMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ARMOR; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.HELMET; 29 | } 30 | 31 | @Override 32 | public double getBaseDefense() 33 | { 34 | return 25; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/lapis/LapisArmorLeggings.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.lapis; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | import me.superischroma.spectaculation.item.armor.LeatherArmorStatistics; 5 | 6 | public class LapisArmorLeggings implements LeatherArmorStatistics, MaterialFunction 7 | { 8 | @Override 9 | public String getDisplayName() 10 | { 11 | return "Lapis Armor Leggings"; 12 | } 13 | 14 | @Override 15 | public Rarity getRarity() 16 | { 17 | return Rarity.UNCOMMON; 18 | } 19 | 20 | @Override 21 | public GenericItemType getType() 22 | { 23 | return GenericItemType.ARMOR; 24 | } 25 | 26 | @Override 27 | public SpecificItemType getSpecificType() 28 | { 29 | return SpecificItemType.LEGGINGS; 30 | } 31 | 32 | @Override 33 | public double getBaseDefense() 34 | { 35 | return 35; 36 | } 37 | 38 | @Override 39 | public int getColor() 40 | { 41 | return 0x0000FF; 42 | } 43 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/miner/MinerBoots.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.miner; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | import me.superischroma.spectaculation.item.armor.LeatherArmorStatistics; 5 | 6 | public class MinerBoots implements LeatherArmorStatistics, MaterialFunction 7 | { 8 | @Override 9 | public String getDisplayName() 10 | { 11 | return "Miner Boots"; 12 | } 13 | 14 | @Override 15 | public Rarity getRarity() 16 | { 17 | return Rarity.RARE; 18 | } 19 | 20 | @Override 21 | public GenericItemType getType() 22 | { 23 | return GenericItemType.ARMOR; 24 | } 25 | 26 | @Override 27 | public SpecificItemType getSpecificType() 28 | { 29 | return SpecificItemType.BOOTS; 30 | } 31 | 32 | @Override 33 | public double getBaseDefense() 34 | { 35 | return 5; 36 | } 37 | 38 | @Override 39 | public int getColor() 40 | { 41 | return 0x0000FF; 42 | } 43 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/miner/MinerChestplate.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.miner; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | import me.superischroma.spectaculation.item.armor.LeatherArmorStatistics; 5 | 6 | public class MinerChestplate implements LeatherArmorStatistics, MaterialFunction 7 | { 8 | @Override 9 | public String getDisplayName() 10 | { 11 | return "Miner Chestplate"; 12 | } 13 | 14 | @Override 15 | public Rarity getRarity() 16 | { 17 | return Rarity.RARE; 18 | } 19 | 20 | @Override 21 | public GenericItemType getType() 22 | { 23 | return GenericItemType.ARMOR; 24 | } 25 | 26 | @Override 27 | public SpecificItemType getSpecificType() 28 | { 29 | return SpecificItemType.CHESTPLATE; 30 | } 31 | 32 | @Override 33 | public double getBaseDefense() 34 | { 35 | return 5; 36 | } 37 | 38 | @Override 39 | public int getColor() 40 | { 41 | return 0x0000FF; 42 | } 43 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/miner/MinerHelmet.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.miner; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class MinerHelmet implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Miner Helmet"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.RARE; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ARMOR; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.HELMET; 29 | } 30 | 31 | @Override 32 | public double getBaseDefense() 33 | { 34 | return 5; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/miner/MinerLeggings.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.miner; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | import me.superischroma.spectaculation.item.armor.LeatherArmorStatistics; 5 | 6 | public class MinerLeggings implements LeatherArmorStatistics, MaterialFunction 7 | { 8 | @Override 9 | public String getDisplayName() 10 | { 11 | return "Miner Leggings"; 12 | } 13 | 14 | @Override 15 | public Rarity getRarity() 16 | { 17 | return Rarity.RARE; 18 | } 19 | 20 | @Override 21 | public GenericItemType getType() 22 | { 23 | return GenericItemType.ARMOR; 24 | } 25 | 26 | @Override 27 | public SpecificItemType getSpecificType() 28 | { 29 | return SpecificItemType.LEGGINGS; 30 | } 31 | 32 | @Override 33 | public double getBaseDefense() 34 | { 35 | return 5; 36 | } 37 | 38 | @Override 39 | public int getColor() 40 | { 41 | return 0x0000FF; 42 | } 43 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/vanilla/chainmail/ChainmailBoots.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.vanilla.chainmail; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class ChainmailBoots implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Chainmail Boots"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ARMOR; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.BOOTS; 29 | } 30 | 31 | @Override 32 | public double getBaseDefense() 33 | { 34 | return 7; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/vanilla/chainmail/ChainmailChestplate.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.vanilla.chainmail; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class ChainmailChestplate implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Chainmail Chestplate"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ARMOR; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.CHESTPLATE; 29 | } 30 | 31 | @Override 32 | public double getBaseDefense() 33 | { 34 | return 30; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/vanilla/chainmail/ChainmailHelmet.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.vanilla.chainmail; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class ChainmailHelmet implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Chainmail Helmet"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ARMOR; 23 | } 24 | @Override 25 | public SpecificItemType getSpecificType() 26 | { 27 | return SpecificItemType.HELMET; 28 | } 29 | 30 | @Override 31 | public double getBaseDefense() 32 | { 33 | return 12; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/vanilla/chainmail/ChainmailLeggings.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.vanilla.chainmail; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class ChainmailLeggings implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Chainmail Chestplate"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ARMOR; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.LEGGINGS; 29 | } 30 | 31 | @Override 32 | public double getBaseDefense() 33 | { 34 | return 20; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/vanilla/diamond/DiamondBoots.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.vanilla.diamond; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class DiamondBoots implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Diamond Boots"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.UNCOMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ARMOR; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.BOOTS; 29 | } 30 | 31 | @Override 32 | public double getBaseDefense() 33 | { 34 | return 15; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/vanilla/diamond/DiamondChestplate.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.vanilla.diamond; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class DiamondChestplate implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Diamond Chestplate"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.UNCOMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ARMOR; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.CHESTPLATE; 29 | } 30 | 31 | @Override 32 | public double getBaseDefense() 33 | { 34 | return 40; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/vanilla/diamond/DiamondHelmet.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.vanilla.diamond; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class DiamondHelmet implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Diamond Helmet"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.UNCOMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ARMOR; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.HELMET; 29 | } 30 | 31 | @Override 32 | public double getBaseDefense() 33 | { 34 | return 15; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/vanilla/diamond/DiamondLeggings.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.vanilla.diamond; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class DiamondLeggings implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Diamond Chestplate"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.UNCOMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ARMOR; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.LEGGINGS; 29 | } 30 | 31 | @Override 32 | public double getBaseDefense() 33 | { 34 | return 30; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/vanilla/golden/GoldenBoots.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.vanilla.golden; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class GoldenBoots implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Golden Boots"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ARMOR; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.BOOTS; 29 | } 30 | 31 | @Override 32 | public double getBaseDefense() 33 | { 34 | return 5; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/vanilla/golden/GoldenChestplate.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.vanilla.golden; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class GoldenChestplate implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Golden Chestplate"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ARMOR; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.CHESTPLATE; 29 | } 30 | 31 | @Override 32 | public double getBaseDefense() 33 | { 34 | return 25; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/vanilla/golden/GoldenHelmet.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.vanilla.golden; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class GoldenHelmet implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Golden Helmet"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ARMOR; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.HELMET; 29 | } 30 | 31 | @Override 32 | public double getBaseDefense() 33 | { 34 | return 10; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/vanilla/golden/GoldenLeggings.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.vanilla.golden; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class GoldenLeggings implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Golden Chestplate"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ARMOR; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.LEGGINGS; 29 | } 30 | 31 | @Override 32 | public double getBaseDefense() 33 | { 34 | return 15; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/vanilla/iron/IronBoots.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.vanilla.iron; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class IronBoots implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Iron Boots"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ARMOR; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.BOOTS; 29 | } 30 | 31 | @Override 32 | public double getBaseDefense() 33 | { 34 | return 10; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/vanilla/iron/IronChestplate.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.vanilla.iron; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class IronChestplate implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Iron Chestplate"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ARMOR; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.CHESTPLATE; 29 | } 30 | 31 | @Override 32 | public double getBaseDefense() 33 | { 34 | return 30; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/vanilla/iron/IronHelmet.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.vanilla.iron; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class IronHelmet implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Iron Helmet"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ARMOR; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.HELMET; 29 | } 30 | 31 | @Override 32 | public double getBaseDefense() 33 | { 34 | return 10; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/vanilla/iron/IronLeggings.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.vanilla.iron; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class IronLeggings implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Iron Chestplate"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ARMOR; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.LEGGINGS; 29 | } 30 | 31 | @Override 32 | public double getBaseDefense() 33 | { 34 | return 25; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/vanilla/leather/LeatherBoots.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.vanilla.leather; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class LeatherBoots implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Leather Boots"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ARMOR; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.BOOTS; 29 | } 30 | 31 | @Override 32 | public double getBaseDefense() 33 | { 34 | return 5; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/vanilla/leather/LeatherChestplate.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.vanilla.leather; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class LeatherChestplate implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Leather Chestplate"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ARMOR; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.CHESTPLATE; 29 | } 30 | 31 | @Override 32 | public double getBaseDefense() 33 | { 34 | return 15; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/vanilla/leather/LeatherHelmet.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.vanilla.leather; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class LeatherHelmet implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Leather Helmet"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ARMOR; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.HELMET; 29 | } 30 | 31 | @Override 32 | public double getBaseDefense() 33 | { 34 | return 5; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/armor/vanilla/leather/LeatherLeggings.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.armor.vanilla.leather; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class LeatherLeggings implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Leather Chestplate"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ARMOR; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.LEGGINGS; 29 | } 30 | 31 | @Override 32 | public double getBaseDefense() 33 | { 34 | return 10; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/axe/vanilla/DiamondAxe.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.axe.vanilla; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class DiamondAxe implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Diamond Axe"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.UNCOMMON; 17 | } 18 | 19 | @Override 20 | public int getBaseDamage() 21 | { 22 | return 30; 23 | } 24 | 25 | @Override 26 | public GenericItemType getType() 27 | { 28 | return GenericItemType.TOOL; 29 | } 30 | 31 | @Override 32 | public SpecificItemType getSpecificType() 33 | { 34 | return SpecificItemType.AXE; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/axe/vanilla/GoldenAxe.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.axe.vanilla; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class GoldenAxe implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Golden Axe"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public int getBaseDamage() 21 | { 22 | return 20; 23 | } 24 | 25 | @Override 26 | public GenericItemType getType() 27 | { 28 | return GenericItemType.TOOL; 29 | } 30 | 31 | @Override 32 | public SpecificItemType getSpecificType() 33 | { 34 | return SpecificItemType.AXE; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/axe/vanilla/IronAxe.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.axe.vanilla; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class IronAxe implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Iron Axe"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public int getBaseDamage() 21 | { 22 | return 25; 23 | } 24 | 25 | @Override 26 | public GenericItemType getType() 27 | { 28 | return GenericItemType.TOOL; 29 | } 30 | 31 | @Override 32 | public SpecificItemType getSpecificType() 33 | { 34 | return SpecificItemType.AXE; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/axe/vanilla/StoneAxe.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.axe.vanilla; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class StoneAxe implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Stone Axe"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public int getBaseDamage() 21 | { 22 | return 15; 23 | } 24 | 25 | @Override 26 | public GenericItemType getType() 27 | { 28 | return GenericItemType.TOOL; 29 | } 30 | 31 | @Override 32 | public SpecificItemType getSpecificType() 33 | { 34 | return SpecificItemType.AXE; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/axe/vanilla/WoodenAxe.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.axe.vanilla; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class WoodenAxe implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Wooden Axe"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public int getBaseDamage() 21 | { 22 | return 10; 23 | } 24 | 25 | @Override 26 | public GenericItemType getType() 27 | { 28 | return GenericItemType.TOOL; 29 | } 30 | 31 | @Override 32 | public SpecificItemType getSpecificType() 33 | { 34 | return SpecificItemType.AXE; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/bow/Bow.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.bow; 2 | 3 | import me.superischroma.spectaculation.item.GenericItemType; 4 | import me.superischroma.spectaculation.item.Rarity; 5 | import me.superischroma.spectaculation.item.SpecificItemType; 6 | import me.superischroma.spectaculation.item.ToolStatistics; 7 | 8 | public class Bow implements ToolStatistics, BowFunction 9 | { 10 | @Override 11 | public String getDisplayName() 12 | { 13 | return "Bow"; 14 | } 15 | 16 | @Override 17 | public Rarity getRarity() 18 | { 19 | return Rarity.COMMON; 20 | } 21 | 22 | @Override 23 | public int getBaseDamage() 24 | { 25 | return 30; 26 | } 27 | 28 | @Override 29 | public GenericItemType getType() 30 | { 31 | return GenericItemType.RANGED_WEAPON; 32 | } 33 | 34 | @Override 35 | public SpecificItemType getSpecificType() 36 | { 37 | return SpecificItemType.BOW; 38 | } 39 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/bow/BowFunction.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.bow; 2 | 3 | import com.google.common.util.concurrent.AtomicDouble; 4 | import me.superischroma.spectaculation.item.MaterialFunction; 5 | import me.superischroma.spectaculation.item.SItem; 6 | import org.bukkit.entity.Arrow; 7 | import org.bukkit.entity.Entity; 8 | import org.bukkit.entity.Player; 9 | import org.bukkit.event.entity.EntityDamageByEntityEvent; 10 | import org.bukkit.event.entity.EntityShootBowEvent; 11 | 12 | public interface BowFunction extends MaterialFunction 13 | { 14 | default void onBowShoot(SItem bow, EntityShootBowEvent e) {} 15 | default void onBowHit(Entity hit, Player shooter, Arrow arrow, SItem weapon, AtomicDouble damage) {} 16 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/dragon/old/OldDragonFragment.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.dragon.old; 2 | 3 | import me.superischroma.spectaculation.item.MaterialFunction; 4 | import me.superischroma.spectaculation.item.Rarity; 5 | import me.superischroma.spectaculation.item.GenericItemType; 6 | import me.superischroma.spectaculation.item.SkullStatistics; 7 | 8 | public class OldDragonFragment implements SkullStatistics, MaterialFunction 9 | { 10 | @Override 11 | public String getURL() 12 | { 13 | return "7aa09ad177fbccc53fa316cc04bdd2c9366baed889df76c5a29defea8170def5"; 14 | } 15 | 16 | @Override 17 | public String getDisplayName() 18 | { 19 | return "Old Dragon Fragment"; 20 | } 21 | 22 | @Override 23 | public Rarity getRarity() 24 | { 25 | return Rarity.EPIC; 26 | } 27 | 28 | @Override 29 | public GenericItemType getType() 30 | { 31 | return GenericItemType.ITEM; 32 | } 33 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/dragon/protector/ProtectorDragonFragment.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.dragon.protector; 2 | 3 | import me.superischroma.spectaculation.item.MaterialFunction; 4 | import me.superischroma.spectaculation.item.Rarity; 5 | import me.superischroma.spectaculation.item.GenericItemType; 6 | import me.superischroma.spectaculation.item.SkullStatistics; 7 | 8 | public class ProtectorDragonFragment implements SkullStatistics, MaterialFunction 9 | { 10 | @Override 11 | public String getURL() 12 | { 13 | return "48de339af63a229c9238d027e47f53eeb56141a419f51b35c31ea1494b435dd3"; 14 | } 15 | 16 | @Override 17 | public String getDisplayName() 18 | { 19 | return "Protector Dragon Fragment"; 20 | } 21 | 22 | @Override 23 | public Rarity getRarity() 24 | { 25 | return Rarity.EPIC; 26 | } 27 | 28 | @Override 29 | public GenericItemType getType() 30 | { 31 | return GenericItemType.ITEM; 32 | } 33 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/dragon/strong/StrongDragonFragment.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.dragon.strong; 2 | 3 | import me.superischroma.spectaculation.item.MaterialFunction; 4 | import me.superischroma.spectaculation.item.Rarity; 5 | import me.superischroma.spectaculation.item.GenericItemType; 6 | import me.superischroma.spectaculation.item.SkullStatistics; 7 | 8 | public class StrongDragonFragment implements SkullStatistics, MaterialFunction 9 | { 10 | @Override 11 | public String getURL() 12 | { 13 | return "6ee32fbd4c7b03b869078aa1f493a390e6e13b461d613707eafb326dbcd2b4b5"; 14 | } 15 | 16 | @Override 17 | public String getDisplayName() 18 | { 19 | return "Strong Dragon Fragment"; 20 | } 21 | 22 | @Override 23 | public Rarity getRarity() 24 | { 25 | return Rarity.EPIC; 26 | } 27 | 28 | @Override 29 | public GenericItemType getType() 30 | { 31 | return GenericItemType.ITEM; 32 | } 33 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/dragon/superior/SuperiorDragonFragment.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.dragon.superior; 2 | 3 | import me.superischroma.spectaculation.item.MaterialFunction; 4 | import me.superischroma.spectaculation.item.Rarity; 5 | import me.superischroma.spectaculation.item.GenericItemType; 6 | import me.superischroma.spectaculation.item.SkullStatistics; 7 | 8 | public class SuperiorDragonFragment implements SkullStatistics, MaterialFunction 9 | { 10 | @Override 11 | public String getURL() 12 | { 13 | return "6f89b150be9c4c5249f355f68ea0c4391300a9be1f260d750fc35a1817ad796e"; 14 | } 15 | 16 | @Override 17 | public String getDisplayName() 18 | { 19 | return "Superior Dragon Fragment"; 20 | } 21 | 22 | @Override 23 | public Rarity getRarity() 24 | { 25 | return Rarity.EPIC; 26 | } 27 | 28 | @Override 29 | public GenericItemType getType() 30 | { 31 | return GenericItemType.ITEM; 32 | } 33 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/dragon/unstable/UnstableDragonFragment.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.dragon.unstable; 2 | 3 | import me.superischroma.spectaculation.item.MaterialFunction; 4 | import me.superischroma.spectaculation.item.Rarity; 5 | import me.superischroma.spectaculation.item.GenericItemType; 6 | import me.superischroma.spectaculation.item.SkullStatistics; 7 | 8 | public class UnstableDragonFragment implements SkullStatistics, MaterialFunction 9 | { 10 | @Override 11 | public String getURL() 12 | { 13 | return "98228c234c3903c512a5a0aa45260e7b567e0e20eefc7d561ccec97b295871af"; 14 | } 15 | 16 | @Override 17 | public String getDisplayName() 18 | { 19 | return "Unstable Dragon Fragment"; 20 | } 21 | 22 | @Override 23 | public Rarity getRarity() 24 | { 25 | return Rarity.EPIC; 26 | } 27 | 28 | @Override 29 | public GenericItemType getType() 30 | { 31 | return GenericItemType.ITEM; 32 | } 33 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/dragon/wise/WiseDragonFragment.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.dragon.wise; 2 | 3 | import me.superischroma.spectaculation.item.MaterialFunction; 4 | import me.superischroma.spectaculation.item.Rarity; 5 | import me.superischroma.spectaculation.item.GenericItemType; 6 | import me.superischroma.spectaculation.item.SkullStatistics; 7 | 8 | public class WiseDragonFragment implements SkullStatistics, MaterialFunction 9 | { 10 | @Override 11 | public String getURL() 12 | { 13 | return "1d7620b2e4934963bb12508310d05494c067dc33e008cecf2cd7b4549654fab3"; 14 | } 15 | 16 | @Override 17 | public String getDisplayName() 18 | { 19 | return "Wise Dragon Fragment"; 20 | } 21 | 22 | @Override 23 | public Rarity getRarity() 24 | { 25 | return Rarity.EPIC; 26 | } 27 | 28 | @Override 29 | public GenericItemType getType() 30 | { 31 | return GenericItemType.ITEM; 32 | } 33 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/dragon/young/YoungDragonFragment.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.dragon.young; 2 | 3 | import me.superischroma.spectaculation.item.MaterialFunction; 4 | import me.superischroma.spectaculation.item.Rarity; 5 | import me.superischroma.spectaculation.item.GenericItemType; 6 | import me.superischroma.spectaculation.item.SkullStatistics; 7 | 8 | public class YoungDragonFragment implements SkullStatistics, MaterialFunction 9 | { 10 | @Override 11 | public String getURL() 12 | { 13 | return "4b5bd6b64e8bd6c58f5cd1e79a5502d4448bafc006d2fe0568f6a0d6b86d449e"; 14 | } 15 | 16 | @Override 17 | public String getDisplayName() 18 | { 19 | return "Young Dragon Fragment"; 20 | } 21 | 22 | @Override 23 | public Rarity getRarity() 24 | { 25 | return Rarity.EPIC; 26 | } 27 | 28 | @Override 29 | public GenericItemType getType() 30 | { 31 | return GenericItemType.ITEM; 32 | } 33 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/enchanted/EnchantedAcaciaWood.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.enchanted; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class EnchantedAcaciaWood implements EnchantedMaterialStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Enchanted Acacia Wood"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.UNCOMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ITEM; 23 | } 24 | 25 | @Override 26 | public boolean isEnchanted() 27 | { 28 | return true; 29 | } 30 | 31 | @Override 32 | public SMaterial getCraftingMaterial() 33 | { 34 | return SMaterial.ACACIA_WOOD; 35 | } 36 | 37 | @Override 38 | public MaterialQuantifiable getResult() 39 | { 40 | return new MaterialQuantifiable(SMaterial.ENCHANTED_ACACIA_WOOD); 41 | } 42 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/enchanted/EnchantedBakedPotato.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.enchanted; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class EnchantedBakedPotato implements EnchantedMaterialStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Enchanted Baked Potato"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.UNCOMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ITEM; 23 | } 24 | 25 | @Override 26 | public boolean isEnchanted() 27 | { 28 | return true; 29 | } 30 | 31 | @Override 32 | public SMaterial getCraftingMaterial() 33 | { 34 | return SMaterial.ENCHANTED_POTATO; 35 | } 36 | 37 | @Override 38 | public MaterialQuantifiable getResult() 39 | { 40 | return new MaterialQuantifiable(SMaterial.ENCHANTED_BAKED_POTATO); 41 | } 42 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/enchanted/EnchantedBirchWood.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.enchanted; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class EnchantedBirchWood implements EnchantedMaterialStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Enchanted Birch Wood"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.UNCOMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ITEM; 23 | } 24 | 25 | @Override 26 | public boolean isEnchanted() 27 | { 28 | return true; 29 | } 30 | 31 | @Override 32 | public SMaterial getCraftingMaterial() 33 | { 34 | return SMaterial.BIRCH_WOOD; 35 | } 36 | 37 | @Override 38 | public MaterialQuantifiable getResult() 39 | { 40 | return new MaterialQuantifiable(SMaterial.ENCHANTED_BIRCH_WOOD); 41 | } 42 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/enchanted/EnchantedBone.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.enchanted; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class EnchantedBone implements EnchantedMaterialStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Enchanted Bone"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ITEM; 23 | } 24 | 25 | @Override 26 | public boolean isEnchanted() 27 | { 28 | return true; 29 | } 30 | 31 | @Override 32 | public SMaterial getCraftingMaterial() 33 | { 34 | return SMaterial.BONE; 35 | } 36 | 37 | @Override 38 | public MaterialQuantifiable getResult() 39 | { 40 | return new MaterialQuantifiable(SMaterial.ENCHANTED_BONE); 41 | } 42 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/enchanted/EnchantedCharcoal.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.enchanted; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | import java.util.ArrayList; 6 | import java.util.List; 7 | 8 | public class EnchantedCharcoal implements MaterialStatistics, MaterialFunction 9 | { 10 | @Override 11 | public String getDisplayName() 12 | { 13 | return "Enchanted Charcoal"; 14 | } 15 | 16 | @Override 17 | public Rarity getRarity() 18 | { 19 | return Rarity.UNCOMMON; 20 | } 21 | 22 | @Override 23 | public GenericItemType getType() 24 | { 25 | return GenericItemType.ITEM; 26 | } 27 | 28 | @Override 29 | public boolean isEnchanted() 30 | { 31 | return true; 32 | } 33 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/enchanted/EnchantedDarkOakWood.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.enchanted; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class EnchantedDarkOakWood implements EnchantedMaterialStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Enchanted Dark Oak Wood"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.UNCOMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ITEM; 23 | } 24 | 25 | @Override 26 | public boolean isEnchanted() 27 | { 28 | return true; 29 | } 30 | 31 | @Override 32 | public MaterialQuantifiable getResult() 33 | { 34 | return new MaterialQuantifiable(SMaterial.ENCHANTED_DARK_OAK_WOOD); 35 | } 36 | 37 | @Override 38 | public SMaterial getCraftingMaterial() 39 | { 40 | return SMaterial.DARK_OAK_WOOD; 41 | } 42 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/enchanted/EnchantedDiamondBlock.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.enchanted; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class EnchantedDiamondBlock implements EnchantedMaterialStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Enchanted Diamond Block"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.RARE; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ITEM; 23 | } 24 | 25 | @Override 26 | public boolean isEnchanted() 27 | { 28 | return true; 29 | } 30 | 31 | @Override 32 | public SMaterial getCraftingMaterial() 33 | { 34 | return SMaterial.ENCHANTED_DIAMOND; 35 | } 36 | 37 | @Override 38 | public MaterialQuantifiable getResult() 39 | { 40 | return new MaterialQuantifiable(SMaterial.ENCHANTED_DIAMOND_BLOCK); 41 | } 42 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/enchanted/EnchantedEndStone.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.enchanted; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class EnchantedEndStone implements EnchantedMaterialStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Enchanted End Stone"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.UNCOMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ITEM; 23 | } 24 | 25 | @Override 26 | public boolean isEnchanted() 27 | { 28 | return true; 29 | } 30 | 31 | @Override 32 | public SMaterial getCraftingMaterial() 33 | { 34 | return SMaterial.END_STONE; 35 | } 36 | 37 | @Override 38 | public MaterialQuantifiable getResult() 39 | { 40 | return new MaterialQuantifiable(SMaterial.ENCHANTED_END_STONE); 41 | } 42 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/enchanted/EnchantedEyeOfEnder.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.enchanted; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class EnchantedEyeOfEnder implements MaterialStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Enchanted Eye of Ender"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.UNCOMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ITEM; 23 | } 24 | 25 | @Override 26 | public boolean isEnchanted() 27 | { 28 | return true; 29 | } 30 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/enchanted/EnchantedJungleWood.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.enchanted; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class EnchantedJungleWood implements EnchantedMaterialStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Enchanted Jungle Wood"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.UNCOMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ITEM; 23 | } 24 | 25 | @Override 26 | public boolean isEnchanted() 27 | { 28 | return true; 29 | } 30 | 31 | @Override 32 | public SMaterial getCraftingMaterial() 33 | { 34 | return SMaterial.JUNGLE_WOOD; 35 | } 36 | 37 | @Override 38 | public MaterialQuantifiable getResult() 39 | { 40 | return new MaterialQuantifiable(SMaterial.ENCHANTED_JUNGLE_WOOD); 41 | } 42 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/enchanted/EnchantedOakWood.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.enchanted; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class EnchantedOakWood implements EnchantedMaterialStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Enchanted Oak Wood"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.UNCOMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ITEM; 23 | } 24 | 25 | @Override 26 | public boolean isEnchanted() 27 | { 28 | return true; 29 | } 30 | 31 | @Override 32 | public SMaterial getCraftingMaterial() 33 | { 34 | return SMaterial.OAK_WOOD; 35 | } 36 | 37 | @Override 38 | public MaterialQuantifiable getResult() 39 | { 40 | return new MaterialQuantifiable(SMaterial.ENCHANTED_OAK_WOOD); 41 | } 42 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/enchanted/EnchantedObsidian.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.enchanted; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class EnchantedObsidian implements EnchantedMaterialStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Enchanted Obsidian"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.UNCOMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ITEM; 23 | } 24 | 25 | @Override 26 | public boolean isEnchanted() 27 | { 28 | return true; 29 | } 30 | 31 | @Override 32 | public SMaterial getCraftingMaterial() 33 | { 34 | return SMaterial.OBSIDIAN; 35 | } 36 | 37 | @Override 38 | public MaterialQuantifiable getResult() 39 | { 40 | return new MaterialQuantifiable(SMaterial.ENCHANTED_OBSIDIAN); 41 | } 42 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/enchanted/EnchantedPotato.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.enchanted; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class EnchantedPotato implements EnchantedMaterialStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Enchanted Potato"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.UNCOMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ITEM; 23 | } 24 | 25 | @Override 26 | public boolean isEnchanted() 27 | { 28 | return true; 29 | } 30 | 31 | @Override 32 | public SMaterial getCraftingMaterial() 33 | { 34 | return SMaterial.POTATO_ITEM; 35 | } 36 | 37 | @Override 38 | public MaterialQuantifiable getResult() 39 | { 40 | return new MaterialQuantifiable(SMaterial.ENCHANTED_POTATO); 41 | } 42 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/enchanted/EnchantedSpruceWood.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.enchanted; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class EnchantedSpruceWood implements EnchantedMaterialStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Enchanted Spruce Wood"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.UNCOMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ITEM; 23 | } 24 | 25 | @Override 26 | public boolean isEnchanted() 27 | { 28 | return true; 29 | } 30 | 31 | @Override 32 | public SMaterial getCraftingMaterial() 33 | { 34 | return SMaterial.SPRUCE_WOOD; 35 | } 36 | 37 | @Override 38 | public MaterialQuantifiable getResult() 39 | { 40 | return new MaterialQuantifiable(SMaterial.ENCHANTED_SPRUCE_WOOD); 41 | } 42 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/entity/RevenantHorrorHead.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.entity; 2 | 3 | import me.superischroma.spectaculation.item.MaterialFunction; 4 | import me.superischroma.spectaculation.item.Rarity; 5 | import me.superischroma.spectaculation.item.GenericItemType; 6 | import me.superischroma.spectaculation.item.SkullStatistics; 7 | 8 | public class RevenantHorrorHead implements SkullStatistics, MaterialFunction 9 | { 10 | @Override 11 | public String getURL() 12 | { 13 | return "d8bee23b5c726ae8e3d021e8b4f7525619ab102a4e04be983b61414349aaac67"; 14 | } 15 | 16 | @Override 17 | public String getDisplayName() 18 | { 19 | return "Revenant Horror Head"; 20 | } 21 | 22 | @Override 23 | public Rarity getRarity() 24 | { 25 | return Rarity.EXCLUSIVE; 26 | } 27 | 28 | @Override 29 | public GenericItemType getType() 30 | { 31 | return GenericItemType.ARMOR; 32 | } 33 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/exclusive/TestItem.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.exclusive; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class TestItem implements SkullStatistics, MaterialFunction, Enchantable 6 | { 7 | @Override 8 | public String getURL() 9 | { 10 | return "c0340923a6de4825a176813d133503eff186db0896e32b6704928c2a2bf68422"; 11 | } 12 | 13 | @Override 14 | public String getDisplayName() 15 | { 16 | return "Test Item"; 17 | } 18 | 19 | @Override 20 | public Rarity getRarity() 21 | { 22 | return Rarity.EXCLUSIVE; 23 | } 24 | 25 | @Override 26 | public GenericItemType getType() 27 | { 28 | return GenericItemType.ITEM; 29 | } 30 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/exclusive/WheatCrystal.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.exclusive; 2 | 3 | import me.superischroma.spectaculation.entity.SEntityType; 4 | 5 | public class WheatCrystal extends FloatingCrystal 6 | { 7 | @Override 8 | protected SEntityType getCrystalType() 9 | { 10 | return SEntityType.WHEAT_CRYSTAL; 11 | } 12 | 13 | @Override 14 | public String getURL() 15 | { 16 | return "d7d30431c2945ced873c27575eeaac22adb28adac7fbd89b56eb9e93979ce0fd"; 17 | } 18 | 19 | @Override 20 | public String getDisplayName() 21 | { 22 | return "Wheat Crystal"; 23 | } 24 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/hoe/vanilla/DiamondHoe.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.hoe.vanilla; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class DiamondHoe implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Diamond Hoe"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.UNCOMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.TOOL; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.HOE; 29 | } 30 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/hoe/vanilla/GoldenHoe.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.hoe.vanilla; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class GoldenHoe implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Golden Hoe"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.TOOL; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.HOE; 29 | } 30 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/hoe/vanilla/IronHoe.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.hoe.vanilla; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class IronHoe implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Iron Hoe"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.TOOL; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.HOE; 29 | } 30 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/hoe/vanilla/StoneHoe.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.hoe.vanilla; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class StoneHoe implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Stone Hoe"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.TOOL; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.HOE; 29 | } 30 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/hoe/vanilla/WoodenHoe.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.hoe.vanilla; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class WoodenHoe implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Wooden Hoe"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.TOOL; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.HOE; 29 | } 30 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/mining/Stone.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.mining; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | import me.superischroma.spectaculation.skill.MiningSkill; 5 | import me.superischroma.spectaculation.skill.Skill; 6 | 7 | public class Stone implements ExperienceRewardStatistics, MaterialFunction 8 | { 9 | @Override 10 | public double getRewardXP() 11 | { 12 | return 1.0; 13 | } 14 | 15 | @Override 16 | public Skill getRewardedSkill() 17 | { 18 | return MiningSkill.INSTANCE; 19 | } 20 | 21 | @Override 22 | public String getDisplayName() 23 | { 24 | return "Stone"; 25 | } 26 | 27 | @Override 28 | public Rarity getRarity() 29 | { 30 | return Rarity.COMMON; 31 | } 32 | 33 | @Override 34 | public GenericItemType getType() 35 | { 36 | return GenericItemType.ITEM; 37 | } 38 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/oddities/Bedrock.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.oddities; 2 | 3 | import me.superischroma.spectaculation.item.GenericItemType; 4 | import me.superischroma.spectaculation.item.MaterialFunction; 5 | import me.superischroma.spectaculation.item.MaterialStatistics; 6 | import me.superischroma.spectaculation.item.Rarity; 7 | 8 | public class Bedrock implements MaterialStatistics, MaterialFunction 9 | { 10 | @Override 11 | public String getDisplayName() 12 | { 13 | return "Bedrock"; 14 | } 15 | 16 | @Override 17 | public Rarity getRarity() 18 | { 19 | return Rarity.LEGENDARY; 20 | } 21 | 22 | @Override 23 | public GenericItemType getType() 24 | { 25 | return GenericItemType.BLOCK; 26 | } 27 | 28 | @Override 29 | public String getLore() 30 | { 31 | return "How do you have this??"; 32 | } 33 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/oddities/Bouncer.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.oddities; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | import net.minecraft.server.v1_8_R3.NBTTagCompound; 5 | 6 | public class Bouncer implements MaterialStatistics, MaterialFunction, ItemData 7 | { 8 | @Override 9 | public String getDisplayName() 10 | { 11 | return "Bouncer"; 12 | } 13 | 14 | @Override 15 | public Rarity getRarity() 16 | { 17 | return Rarity.EXCLUSIVE; 18 | } 19 | 20 | @Override 21 | public GenericItemType getType() 22 | { 23 | return GenericItemType.BLOCK; 24 | } 25 | 26 | @Override 27 | public NBTTagCompound getData() 28 | { 29 | NBTTagCompound compound = new NBTTagCompound(); 30 | compound.setFloat("bounce", 1f); 31 | compound.setLong("delay", 20L); 32 | compound.setFloat("velX", 1f); 33 | compound.setFloat("velY", 1f); 34 | compound.setFloat("velZ", 1f); 35 | return compound; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/oddities/CrystalFragment.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.oddities; 2 | 3 | import me.superischroma.spectaculation.item.GenericItemType; 4 | import me.superischroma.spectaculation.item.MaterialFunction; 5 | import me.superischroma.spectaculation.item.MaterialStatistics; 6 | import me.superischroma.spectaculation.item.Rarity; 7 | 8 | public class CrystalFragment implements MaterialStatistics, MaterialFunction 9 | { 10 | @Override 11 | public String getDisplayName() 12 | { 13 | return "Crystal Fragment"; 14 | } 15 | 16 | @Override 17 | public Rarity getRarity() 18 | { 19 | return Rarity.EPIC; 20 | } 21 | 22 | @Override 23 | public GenericItemType getType() 24 | { 25 | return GenericItemType.ITEM; 26 | } 27 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/oddities/GoldenPowder.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.oddities; 2 | 3 | import me.superischroma.spectaculation.item.GenericItemType; 4 | import me.superischroma.spectaculation.item.MaterialFunction; 5 | import me.superischroma.spectaculation.item.MaterialStatistics; 6 | import me.superischroma.spectaculation.item.Rarity; 7 | 8 | public class GoldenPowder implements MaterialStatistics, MaterialFunction 9 | { 10 | @Override 11 | public String getDisplayName() 12 | { 13 | return "Golden Powder"; 14 | } 15 | 16 | @Override 17 | public Rarity getRarity() 18 | { 19 | return Rarity.EPIC; 20 | } 21 | 22 | @Override 23 | public GenericItemType getType() 24 | { 25 | return GenericItemType.ITEM; 26 | } 27 | 28 | @Override 29 | public boolean isEnchanted() 30 | { 31 | return true; 32 | } 33 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/oddities/Launcher.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.oddities; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | import net.minecraft.server.v1_8_R3.NBTTagCompound; 5 | 6 | public class Launcher implements MaterialStatistics, MaterialFunction, ItemData 7 | { 8 | @Override 9 | public String getDisplayName() 10 | { 11 | return "Launcher"; 12 | } 13 | 14 | @Override 15 | public Rarity getRarity() 16 | { 17 | return Rarity.LEGENDARY; 18 | } 19 | 20 | @Override 21 | public GenericItemType getType() 22 | { 23 | return GenericItemType.BLOCK; 24 | } 25 | 26 | @Override 27 | public NBTTagCompound getData() 28 | { 29 | NBTTagCompound compound = new NBTTagCompound(); 30 | compound.setFloat("velX", 1f); 31 | compound.setFloat("velY", 1f); 32 | compound.setFloat("velZ", 1f); 33 | return compound; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/oddities/Recombobulator3000.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.oddities; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class Recombobulator3000 implements SkullStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getURL() 9 | { 10 | return "57ccd36dc8f72adcb1f8c8e61ee82cd96ead140cf2a16a1366be9b5a8e3cc3fc"; 11 | } 12 | 13 | @Override 14 | public String getDisplayName() 15 | { 16 | return "Recombobulator 3000"; 17 | } 18 | 19 | @Override 20 | public Rarity getRarity() 21 | { 22 | return Rarity.LEGENDARY; 23 | } 24 | 25 | @Override 26 | public GenericItemType getType() 27 | { 28 | return GenericItemType.ITEM; 29 | } 30 | 31 | @Override 32 | public SpecificItemType getSpecificType() 33 | { 34 | return SpecificItemType.DUNGEON_ITEM; 35 | } 36 | 37 | @Override 38 | public boolean isStackable() 39 | { 40 | return false; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/oddities/SummoningFrame.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.oddities; 2 | 3 | import me.superischroma.spectaculation.item.MaterialFunction; 4 | import me.superischroma.spectaculation.item.MaterialStatistics; 5 | import me.superischroma.spectaculation.item.Rarity; 6 | import me.superischroma.spectaculation.item.GenericItemType; 7 | 8 | public class SummoningFrame implements MaterialFunction, MaterialStatistics 9 | { 10 | @Override 11 | public String getDisplayName() 12 | { 13 | return "Summoning Frame"; 14 | } 15 | 16 | @Override 17 | public Rarity getRarity() 18 | { 19 | return Rarity.EXCLUSIVE; 20 | } 21 | 22 | @Override 23 | public GenericItemType getType() 24 | { 25 | return GenericItemType.BLOCK; 26 | } 27 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/oddities/WeakWolfCatalyst.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.oddities; 2 | 3 | import me.superischroma.spectaculation.item.GenericItemType; 4 | import me.superischroma.spectaculation.item.MaterialFunction; 5 | import me.superischroma.spectaculation.item.MaterialStatistics; 6 | import me.superischroma.spectaculation.item.Rarity; 7 | 8 | public class WeakWolfCatalyst implements MaterialStatistics, MaterialFunction 9 | { 10 | @Override 11 | public String getDisplayName() 12 | { 13 | return "Weak Wolf Catalyst"; 14 | } 15 | 16 | @Override 17 | public Rarity getRarity() 18 | { 19 | return Rarity.RARE; 20 | } 21 | 22 | @Override 23 | public GenericItemType getType() 24 | { 25 | return GenericItemType.ITEM; 26 | } 27 | 28 | @Override 29 | public boolean isEnchanted() 30 | { 31 | return true; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/orb/OrbBuff.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.orb; 2 | 3 | public interface OrbBuff 4 | { 5 | String getBuffName(); 6 | String getBuffDescription(); 7 | default String getCustomOrbName() 8 | { 9 | return null; 10 | } 11 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/pet/PetAbility.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.pet; 2 | 3 | import com.google.common.util.concurrent.AtomicDouble; 4 | import me.superischroma.spectaculation.item.SItem; 5 | import org.bukkit.entity.Entity; 6 | import org.bukkit.event.entity.EntityDamageByEntityEvent; 7 | 8 | import java.util.List; 9 | 10 | public interface PetAbility 11 | { 12 | String getName(); 13 | List getDescription(SItem instance); 14 | default void onHurt(EntityDamageByEntityEvent e, Entity damager) {} 15 | default void onDamage(EntityDamageByEntityEvent e) {} 16 | default void onZealotAttempt(AtomicDouble chance) {} 17 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/pickaxe/vanilla/DiamondPickaxe.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.pickaxe.vanilla; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class DiamondPickaxe implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Diamond Pickaxe"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.UNCOMMON; 17 | } 18 | 19 | @Override 20 | public int getBaseDamage() 21 | { 22 | return 30; 23 | } 24 | 25 | @Override 26 | public GenericItemType getType() 27 | { 28 | return GenericItemType.TOOL; 29 | } 30 | 31 | @Override 32 | public SpecificItemType getSpecificType() 33 | { 34 | return SpecificItemType.PICKAXE; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/pickaxe/vanilla/GoldenPickaxe.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.pickaxe.vanilla; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class GoldenPickaxe implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Golden Pickaxe"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public int getBaseDamage() 21 | { 22 | return 15; 23 | } 24 | 25 | @Override 26 | public GenericItemType getType() 27 | { 28 | return GenericItemType.TOOL; 29 | } 30 | 31 | @Override 32 | public SpecificItemType getSpecificType() 33 | { 34 | return SpecificItemType.PICKAXE; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/pickaxe/vanilla/IronPickaxe.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.pickaxe.vanilla; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class IronPickaxe implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Iron Pickaxe"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public int getBaseDamage() 21 | { 22 | return 25; 23 | } 24 | 25 | @Override 26 | public GenericItemType getType() 27 | { 28 | return GenericItemType.TOOL; 29 | } 30 | 31 | @Override 32 | public SpecificItemType getSpecificType() 33 | { 34 | return SpecificItemType.PICKAXE; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/pickaxe/vanilla/StonePickaxe.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.pickaxe.vanilla; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class StonePickaxe implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Stone Pickaxe"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public int getBaseDamage() 21 | { 22 | return 20; 23 | } 24 | 25 | @Override 26 | public GenericItemType getType() 27 | { 28 | return GenericItemType.TOOL; 29 | } 30 | 31 | @Override 32 | public SpecificItemType getSpecificType() 33 | { 34 | return SpecificItemType.PICKAXE; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/pickaxe/vanilla/WoodenPickaxe.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.pickaxe.vanilla; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class WoodenPickaxe implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Wooden Pickaxe"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public int getBaseDamage() 21 | { 22 | return 20; 23 | } 24 | 25 | @Override 26 | public GenericItemType getType() 27 | { 28 | return GenericItemType.TOOL; 29 | } 30 | 31 | @Override 32 | public SpecificItemType getSpecificType() 33 | { 34 | return SpecificItemType.PICKAXE; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/revenant/BeheadedHorror.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.revenant; 2 | 3 | import me.superischroma.spectaculation.item.GenericItemType; 4 | import me.superischroma.spectaculation.item.MaterialFunction; 5 | import me.superischroma.spectaculation.item.Rarity; 6 | import me.superischroma.spectaculation.item.SkullStatistics; 7 | 8 | public class BeheadedHorror implements SkullStatistics, MaterialFunction 9 | { 10 | @Override 11 | public String getDisplayName() 12 | { 13 | return "Beheaded Horror"; 14 | } 15 | 16 | @Override 17 | public Rarity getRarity() 18 | { 19 | return Rarity.EPIC; 20 | } 21 | 22 | @Override 23 | public GenericItemType getType() 24 | { 25 | return GenericItemType.ITEM; 26 | } 27 | 28 | @Override 29 | public String getURL() 30 | { 31 | return "dbad99ed3c820b7978190ad08a934a68dfa90d9986825da1c97f6f21f49ad626"; 32 | } 33 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/revenant/FoulFlesh.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.revenant; 2 | 3 | import me.superischroma.spectaculation.item.GenericItemType; 4 | import me.superischroma.spectaculation.item.MaterialFunction; 5 | import me.superischroma.spectaculation.item.MaterialStatistics; 6 | import me.superischroma.spectaculation.item.Rarity; 7 | 8 | public class FoulFlesh implements MaterialStatistics, MaterialFunction 9 | { 10 | @Override 11 | public String getDisplayName() 12 | { 13 | return "Foul Flesh"; 14 | } 15 | 16 | @Override 17 | public Rarity getRarity() 18 | { 19 | return Rarity.RARE; 20 | } 21 | 22 | @Override 23 | public GenericItemType getType() 24 | { 25 | return GenericItemType.ITEM; 26 | } 27 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/revenant/RevenantCatalyst.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.revenant; 2 | 3 | import me.superischroma.spectaculation.item.GenericItemType; 4 | import me.superischroma.spectaculation.item.MaterialFunction; 5 | import me.superischroma.spectaculation.item.Rarity; 6 | import me.superischroma.spectaculation.item.SkullStatistics; 7 | 8 | public class RevenantCatalyst implements SkullStatistics, MaterialFunction 9 | { 10 | @Override 11 | public String getDisplayName() 12 | { 13 | return "Revenant Catalyst"; 14 | } 15 | 16 | @Override 17 | public Rarity getRarity() 18 | { 19 | return Rarity.EPIC; 20 | } 21 | 22 | @Override 23 | public GenericItemType getType() 24 | { 25 | return GenericItemType.ITEM; 26 | } 27 | 28 | @Override 29 | public String getURL() 30 | { 31 | return "b88cfafa5f03f8aef042a143799e964342df76b7c1eb461f618e398f84a99a63"; 32 | } 33 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/revenant/RevenantFlesh.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.revenant; 2 | 3 | import me.superischroma.spectaculation.item.GenericItemType; 4 | import me.superischroma.spectaculation.item.MaterialFunction; 5 | import me.superischroma.spectaculation.item.MaterialStatistics; 6 | import me.superischroma.spectaculation.item.Rarity; 7 | 8 | public class RevenantFlesh implements MaterialStatistics, MaterialFunction 9 | { 10 | @Override 11 | public String getDisplayName() 12 | { 13 | return "Revenant Flesh"; 14 | } 15 | 16 | @Override 17 | public Rarity getRarity() 18 | { 19 | return Rarity.UNCOMMON; 20 | } 21 | 22 | @Override 23 | public GenericItemType getType() 24 | { 25 | return GenericItemType.ITEM; 26 | } 27 | 28 | @Override 29 | public boolean isEnchanted() 30 | { 31 | return true; 32 | } 33 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/revenant/ScytheBlade.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.revenant; 2 | 3 | import me.superischroma.spectaculation.item.GenericItemType; 4 | import me.superischroma.spectaculation.item.MaterialFunction; 5 | import me.superischroma.spectaculation.item.MaterialStatistics; 6 | import me.superischroma.spectaculation.item.Rarity; 7 | 8 | public class ScytheBlade implements MaterialStatistics, MaterialFunction 9 | { 10 | @Override 11 | public String getDisplayName() 12 | { 13 | return "Scythe Blade"; 14 | } 15 | 16 | @Override 17 | public Rarity getRarity() 18 | { 19 | return Rarity.LEGENDARY; 20 | } 21 | 22 | @Override 23 | public GenericItemType getType() 24 | { 25 | return GenericItemType.ITEM; 26 | } 27 | 28 | @Override 29 | public boolean isEnchanted() 30 | { 31 | return true; 32 | } 33 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/revenant/UndeadCatalyst.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.revenant; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class UndeadCatalyst implements SkullStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Undead Catalyst"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.RARE; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ITEM; 23 | } 24 | 25 | @Override 26 | public String getURL() 27 | { 28 | return "80625369b0a7b052632db6b926a87670219539922836ac5940be26d34bf14e10"; 29 | } 30 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/rune/BiteRune.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.rune; 2 | 3 | import me.superischroma.spectaculation.item.GenericItemType; 4 | import me.superischroma.spectaculation.item.Rarity; 5 | import me.superischroma.spectaculation.item.Rune; 6 | import me.superischroma.spectaculation.item.SpecificItemType; 7 | import org.bukkit.ChatColor; 8 | 9 | public class BiteRune implements Rune 10 | { 11 | @Override 12 | public String getDisplayName() 13 | { 14 | return ChatColor.GREEN + "◆ Bite Rune"; 15 | } 16 | 17 | @Override 18 | public Rarity getRarity() 19 | { 20 | return Rarity.EPIC; 21 | } 22 | 23 | @Override 24 | public GenericItemType getType() 25 | { 26 | return GenericItemType.ITEM; 27 | } 28 | 29 | @Override 30 | public SpecificItemType getSpecificType() 31 | { 32 | return SpecificItemType.COSMETIC; 33 | } 34 | 35 | @Override 36 | public String getURL() 37 | { 38 | return "43a1ad4fcc42fb63c681328e42d63c83ca193b333af2a426728a25a8cc600692"; 39 | } 40 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/rune/CoutureRune.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.rune; 2 | 3 | import me.superischroma.spectaculation.item.GenericItemType; 4 | import me.superischroma.spectaculation.item.Rarity; 5 | import me.superischroma.spectaculation.item.Rune; 6 | import me.superischroma.spectaculation.item.SpecificItemType; 7 | import org.bukkit.ChatColor; 8 | 9 | public class CoutureRune implements Rune 10 | { 11 | @Override 12 | public String getDisplayName() 13 | { 14 | return ChatColor.AQUA + "◆ Couture Rune"; 15 | } 16 | 17 | @Override 18 | public Rarity getRarity() 19 | { 20 | return Rarity.LEGENDARY; 21 | } 22 | 23 | @Override 24 | public GenericItemType getType() 25 | { 26 | return GenericItemType.ITEM; 27 | } 28 | 29 | @Override 30 | public SpecificItemType getSpecificType() 31 | { 32 | return SpecificItemType.COSMETIC; 33 | } 34 | 35 | @Override 36 | public String getURL() 37 | { 38 | return "734fb3203233efbae82628bd4fca7348cd071e5b7b52407f1d1d2794e31799ff"; 39 | } 40 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/rune/SnakeRune.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.rune; 2 | 3 | import me.superischroma.spectaculation.item.GenericItemType; 4 | import me.superischroma.spectaculation.item.Rarity; 5 | import me.superischroma.spectaculation.item.Rune; 6 | import me.superischroma.spectaculation.item.SpecificItemType; 7 | import org.bukkit.ChatColor; 8 | 9 | public class SnakeRune implements Rune 10 | { 11 | @Override 12 | public String getDisplayName() 13 | { 14 | return ChatColor.GREEN + "◆ Snake Rune"; 15 | } 16 | 17 | @Override 18 | public Rarity getRarity() 19 | { 20 | return Rarity.LEGENDARY; 21 | } 22 | 23 | @Override 24 | public GenericItemType getType() 25 | { 26 | return GenericItemType.ITEM; 27 | } 28 | 29 | @Override 30 | public SpecificItemType getSpecificType() 31 | { 32 | return SpecificItemType.COSMETIC; 33 | } 34 | 35 | @Override 36 | public String getURL() 37 | { 38 | return "2c4a65c689b2d36409100a60c2ab8d3d0a67ce94eea3c1f7ac974fd893568b5d"; 39 | } 40 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/rune/SpiritRune.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.rune; 2 | 3 | import me.superischroma.spectaculation.item.GenericItemType; 4 | import me.superischroma.spectaculation.item.Rarity; 5 | import me.superischroma.spectaculation.item.Rune; 6 | import me.superischroma.spectaculation.item.SpecificItemType; 7 | import org.bukkit.ChatColor; 8 | 9 | public class SpiritRune implements Rune 10 | { 11 | @Override 12 | public String getDisplayName() 13 | { 14 | return ChatColor.AQUA + "◆ Spirit Rune"; 15 | } 16 | 17 | @Override 18 | public Rarity getRarity() 19 | { 20 | return Rarity.RARE; 21 | } 22 | 23 | @Override 24 | public GenericItemType getType() 25 | { 26 | return GenericItemType.ITEM; 27 | } 28 | 29 | @Override 30 | public SpecificItemType getSpecificType() 31 | { 32 | return SpecificItemType.COSMETIC; 33 | } 34 | 35 | @Override 36 | public String getURL() 37 | { 38 | return "c738b8af8d7ce1a26dc6d40180b3589403e11ef36a66d7c4590037732829542e"; 39 | } 40 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/shovel/vanilla/DiamondShovel.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.shovel.vanilla; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class DiamondShovel implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Diamond Shovel"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.UNCOMMON; 17 | } 18 | 19 | @Override 20 | public int getBaseDamage() 21 | { 22 | return 30; 23 | } 24 | 25 | @Override 26 | public GenericItemType getType() 27 | { 28 | return GenericItemType.TOOL; 29 | } 30 | 31 | @Override 32 | public SpecificItemType getSpecificType() 33 | { 34 | return SpecificItemType.SHOVEL; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/shovel/vanilla/GoldenShovel.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.shovel.vanilla; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class GoldenShovel implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Golden Shovel"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public int getBaseDamage() 21 | { 22 | return 15; 23 | } 24 | 25 | @Override 26 | public GenericItemType getType() 27 | { 28 | return GenericItemType.TOOL; 29 | } 30 | 31 | @Override 32 | public SpecificItemType getSpecificType() 33 | { 34 | return SpecificItemType.SHOVEL; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/shovel/vanilla/IronShovel.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.shovel.vanilla; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class IronShovel implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Iron Shovel"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public int getBaseDamage() 21 | { 22 | return 25; 23 | } 24 | 25 | @Override 26 | public GenericItemType getType() 27 | { 28 | return GenericItemType.TOOL; 29 | } 30 | 31 | @Override 32 | public SpecificItemType getSpecificType() 33 | { 34 | return SpecificItemType.SHOVEL; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/shovel/vanilla/StoneShovel.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.shovel.vanilla; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class StoneShovel implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Stone Shovel"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public int getBaseDamage() 21 | { 22 | return 20; 23 | } 24 | 25 | @Override 26 | public GenericItemType getType() 27 | { 28 | return GenericItemType.TOOL; 29 | } 30 | 31 | @Override 32 | public SpecificItemType getSpecificType() 33 | { 34 | return SpecificItemType.SHOVEL; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/shovel/vanilla/WoodenShovel.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.shovel.vanilla; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class WoodenShovel implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Wooden Shovel"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public int getBaseDamage() 21 | { 22 | return 15; 23 | } 24 | 25 | @Override 26 | public GenericItemType getType() 27 | { 28 | return GenericItemType.TOOL; 29 | } 30 | 31 | @Override 32 | public SpecificItemType getSpecificType() 33 | { 34 | return SpecificItemType.SHOVEL; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/storage/GreaterBackpack.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.storage; 2 | 3 | import me.superischroma.spectaculation.item.Rarity; 4 | import me.superischroma.spectaculation.item.SkullStatistics; 5 | 6 | public class GreaterBackpack extends Storage implements SkullStatistics 7 | { 8 | @Override 9 | public int getSlots() 10 | { 11 | return 36; 12 | } 13 | 14 | @Override 15 | public String getDisplayName() 16 | { 17 | return "Greater Backpack"; 18 | } 19 | 20 | @Override 21 | public Rarity getRarity() 22 | { 23 | return Rarity.EPIC; 24 | } 25 | 26 | @Override 27 | public String getURL() 28 | { 29 | return "62f3b3a05481cde77240005c0ddcee1c069e5504a62ce0977879f55a39396146"; 30 | } 31 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/storage/JumboBackpack.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.storage; 2 | 3 | import me.superischroma.spectaculation.item.Rarity; 4 | import me.superischroma.spectaculation.item.SkullStatistics; 5 | 6 | public class JumboBackpack extends Storage implements SkullStatistics 7 | { 8 | @Override 9 | public int getSlots() 10 | { 11 | return 54; 12 | } 13 | 14 | @Override 15 | public String getDisplayName() 16 | { 17 | return "Jumbo Backpack"; 18 | } 19 | 20 | @Override 21 | public Rarity getRarity() 22 | { 23 | return Rarity.LEGENDARY; 24 | } 25 | 26 | @Override 27 | public String getURL() 28 | { 29 | return "1f8405116c1daa7ce2f012591458d50246d0a467bcb95a5a2c033aefd6008b63"; 30 | } 31 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/storage/LargeBackpack.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.storage; 2 | 3 | import me.superischroma.spectaculation.item.Rarity; 4 | import me.superischroma.spectaculation.item.SkullStatistics; 5 | 6 | public class LargeBackpack extends Storage implements SkullStatistics 7 | { 8 | @Override 9 | public int getSlots() 10 | { 11 | return 27; 12 | } 13 | 14 | @Override 15 | public String getDisplayName() 16 | { 17 | return "Large Backpack"; 18 | } 19 | 20 | @Override 21 | public Rarity getRarity() 22 | { 23 | return Rarity.EPIC; 24 | } 25 | 26 | @Override 27 | public String getURL() 28 | { 29 | return "62f3b3a05481cde77240005c0ddcee1c069e5504a62ce0977879f55a39396146"; 30 | } 31 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/storage/MediumBackpack.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.storage; 2 | 3 | import me.superischroma.spectaculation.item.Rarity; 4 | import me.superischroma.spectaculation.item.SkullStatistics; 5 | 6 | public class MediumBackpack extends Storage implements SkullStatistics 7 | { 8 | @Override 9 | public int getSlots() 10 | { 11 | return 18; 12 | } 13 | 14 | @Override 15 | public String getDisplayName() 16 | { 17 | return "Medium Backpack"; 18 | } 19 | 20 | @Override 21 | public Rarity getRarity() 22 | { 23 | return Rarity.RARE; 24 | } 25 | 26 | @Override 27 | public String getURL() 28 | { 29 | return "62f3b3a05481cde77240005c0ddcee1c069e5504a62ce0977879f55a39396146"; 30 | } 31 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/storage/SmallBackpack.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.storage; 2 | 3 | import me.superischroma.spectaculation.item.Rarity; 4 | import me.superischroma.spectaculation.item.SkullStatistics; 5 | 6 | public class SmallBackpack extends Storage implements SkullStatistics 7 | { 8 | @Override 9 | public int getSlots() 10 | { 11 | return 9; 12 | } 13 | 14 | @Override 15 | public String getDisplayName() 16 | { 17 | return "Small Backpack"; 18 | } 19 | 20 | @Override 21 | public Rarity getRarity() 22 | { 23 | return Rarity.UNCOMMON; 24 | } 25 | 26 | @Override 27 | public String getURL() 28 | { 29 | return "21d837ca222cbc0bc12426f5da018c3a931b406008800960a9df112a596e7d62"; 30 | } 31 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/sven/GrizzlyBait.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.sven; 2 | 3 | import me.superischroma.spectaculation.item.GenericItemType; 4 | import me.superischroma.spectaculation.item.MaterialFunction; 5 | import me.superischroma.spectaculation.item.MaterialStatistics; 6 | import me.superischroma.spectaculation.item.Rarity; 7 | 8 | public class GrizzlyBait implements MaterialStatistics, MaterialFunction 9 | { 10 | @Override 11 | public String getDisplayName() 12 | { 13 | return "Grizzly Bait"; 14 | } 15 | 16 | @Override 17 | public Rarity getRarity() 18 | { 19 | return Rarity.RARE; 20 | } 21 | 22 | @Override 23 | public GenericItemType getType() 24 | { 25 | return GenericItemType.ITEM; 26 | } 27 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/sven/HamsterWheel.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.sven; 2 | 3 | import me.superischroma.spectaculation.item.GenericItemType; 4 | import me.superischroma.spectaculation.item.MaterialFunction; 5 | import me.superischroma.spectaculation.item.MaterialStatistics; 6 | import me.superischroma.spectaculation.item.Rarity; 7 | 8 | public class HamsterWheel implements MaterialStatistics, MaterialFunction 9 | { 10 | @Override 11 | public String getDisplayName() 12 | { 13 | return "Hamster Wheel"; 14 | } 15 | 16 | @Override 17 | public Rarity getRarity() 18 | { 19 | return Rarity.RARE; 20 | } 21 | 22 | @Override 23 | public GenericItemType getType() 24 | { 25 | return GenericItemType.ITEM; 26 | } 27 | 28 | @Override 29 | public boolean isEnchanted() 30 | { 31 | return true; 32 | } 33 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/sven/OverfluxCapacitor.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.sven; 2 | 3 | import me.superischroma.spectaculation.item.GenericItemType; 4 | import me.superischroma.spectaculation.item.MaterialFunction; 5 | import me.superischroma.spectaculation.item.MaterialStatistics; 6 | import me.superischroma.spectaculation.item.Rarity; 7 | 8 | public class OverfluxCapacitor implements MaterialStatistics, MaterialFunction 9 | { 10 | @Override 11 | public String getDisplayName() 12 | { 13 | return "Overflux Capacitor"; 14 | } 15 | 16 | @Override 17 | public Rarity getRarity() 18 | { 19 | return Rarity.EPIC; 20 | } 21 | 22 | @Override 23 | public GenericItemType getType() 24 | { 25 | return GenericItemType.ITEM; 26 | } 27 | 28 | @Override 29 | public boolean isEnchanted() 30 | { 31 | return true; 32 | } 33 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/sven/RedClawEgg.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.sven; 2 | 3 | import me.superischroma.spectaculation.item.GenericItemType; 4 | import me.superischroma.spectaculation.item.MaterialFunction; 5 | import me.superischroma.spectaculation.item.MaterialStatistics; 6 | import me.superischroma.spectaculation.item.Rarity; 7 | 8 | public class RedClawEgg implements MaterialStatistics, MaterialFunction 9 | { 10 | @Override 11 | public String getDisplayName() 12 | { 13 | return "Red Claw Egg"; 14 | } 15 | 16 | @Override 17 | public Rarity getRarity() 18 | { 19 | return Rarity.EPIC; 20 | } 21 | 22 | @Override 23 | public GenericItemType getType() 24 | { 25 | return GenericItemType.ITEM; 26 | } 27 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/sven/WolfTooth.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.sven; 2 | 3 | import me.superischroma.spectaculation.item.GenericItemType; 4 | import me.superischroma.spectaculation.item.MaterialFunction; 5 | import me.superischroma.spectaculation.item.MaterialStatistics; 6 | import me.superischroma.spectaculation.item.Rarity; 7 | 8 | public class WolfTooth implements MaterialStatistics, MaterialFunction 9 | { 10 | @Override 11 | public String getDisplayName() 12 | { 13 | return "Wolf Tooth"; 14 | } 15 | 16 | @Override 17 | public Rarity getRarity() 18 | { 19 | return Rarity.UNCOMMON; 20 | } 21 | 22 | @Override 23 | public GenericItemType getType() 24 | { 25 | return GenericItemType.ITEM; 26 | } 27 | 28 | @Override 29 | public boolean isEnchanted() 30 | { 31 | return true; 32 | } 33 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/tarantula/DigestedMosquito.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.tarantula; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class DigestedMosquito implements MaterialStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Digested Mosquito"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.LEGENDARY; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ITEM; 23 | } 24 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/tarantula/FlySwatter.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.tarantula; 2 | 3 | import me.superischroma.spectaculation.item.GenericItemType; 4 | import me.superischroma.spectaculation.item.MaterialFunction; 5 | import me.superischroma.spectaculation.item.MaterialStatistics; 6 | import me.superischroma.spectaculation.item.Rarity; 7 | 8 | public class FlySwatter implements MaterialStatistics, MaterialFunction 9 | { 10 | @Override 11 | public String getDisplayName() 12 | { 13 | return "Fly Swatter"; 14 | } 15 | 16 | @Override 17 | public Rarity getRarity() 18 | { 19 | return Rarity.EPIC; 20 | } 21 | 22 | @Override 23 | public GenericItemType getType() 24 | { 25 | return GenericItemType.ITEM; 26 | } 27 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/tarantula/SpiderCatalyst.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.tarantula; 2 | 3 | import me.superischroma.spectaculation.item.GenericItemType; 4 | import me.superischroma.spectaculation.item.MaterialFunction; 5 | import me.superischroma.spectaculation.item.Rarity; 6 | import me.superischroma.spectaculation.item.SkullStatistics; 7 | 8 | public class SpiderCatalyst implements SkullStatistics, MaterialFunction 9 | { 10 | @Override 11 | public String getDisplayName() 12 | { 13 | return "Spider Catalyst"; 14 | } 15 | 16 | @Override 17 | public Rarity getRarity() 18 | { 19 | return Rarity.RARE; 20 | } 21 | 22 | @Override 23 | public GenericItemType getType() 24 | { 25 | return GenericItemType.ITEM; 26 | } 27 | 28 | @Override 29 | public String getURL() 30 | { 31 | return "983b30e9d135b05190eea2c3ac61e2ab55a2d81e1a58dbb26983a14082664"; 32 | } 33 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/tarantula/TarantulaWeb.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.tarantula; 2 | 3 | import me.superischroma.spectaculation.item.GenericItemType; 4 | import me.superischroma.spectaculation.item.MaterialFunction; 5 | import me.superischroma.spectaculation.item.MaterialStatistics; 6 | import me.superischroma.spectaculation.item.Rarity; 7 | 8 | public class TarantulaWeb implements MaterialStatistics, MaterialFunction 9 | { 10 | @Override 11 | public String getDisplayName() 12 | { 13 | return "Tarantula Web"; 14 | } 15 | 16 | @Override 17 | public Rarity getRarity() 18 | { 19 | return Rarity.UNCOMMON; 20 | } 21 | 22 | @Override 23 | public GenericItemType getType() 24 | { 25 | return GenericItemType.ITEM; 26 | } 27 | 28 | @Override 29 | public boolean isEnchanted() 30 | { 31 | return true; 32 | } 33 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/tarantula/ToxicArrowPoison.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.tarantula; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class ToxicArrowPoison implements MaterialStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Toxic Arrow Poison"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.UNCOMMON; 17 | } 18 | 19 | @Override 20 | public GenericItemType getType() 21 | { 22 | return GenericItemType.ITEM; 23 | } 24 | 25 | @Override 26 | public SpecificItemType getSpecificType() 27 | { 28 | return SpecificItemType.ARROW_POISON; 29 | } 30 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/weapon/vanilla/DiamondSword.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.weapon.vanilla; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class DiamondSword implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Diamond Sword"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.UNCOMMON; 17 | } 18 | 19 | @Override 20 | public int getBaseDamage() 21 | { 22 | return 35; 23 | } 24 | 25 | @Override 26 | public GenericItemType getType() 27 | { 28 | return GenericItemType.WEAPON; 29 | } 30 | 31 | @Override 32 | public SpecificItemType getSpecificType() 33 | { 34 | return SpecificItemType.SWORD; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/weapon/vanilla/GoldenSword.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.weapon.vanilla; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class GoldenSword implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Golden Sword"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public int getBaseDamage() 21 | { 22 | return 20; 23 | } 24 | 25 | @Override 26 | public GenericItemType getType() 27 | { 28 | return GenericItemType.WEAPON; 29 | } 30 | 31 | @Override 32 | public SpecificItemType getSpecificType() 33 | { 34 | return SpecificItemType.SWORD; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/weapon/vanilla/IronSword.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.weapon.vanilla; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class IronSword implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Iron Sword"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public int getBaseDamage() 21 | { 22 | return 30; 23 | } 24 | 25 | @Override 26 | public GenericItemType getType() 27 | { 28 | return GenericItemType.WEAPON; 29 | } 30 | 31 | @Override 32 | public SpecificItemType getSpecificType() 33 | { 34 | return SpecificItemType.SWORD; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/weapon/vanilla/StoneSword.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.weapon.vanilla; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class StoneSword implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Stone Sword"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public int getBaseDamage() 21 | { 22 | return 25; 23 | } 24 | 25 | @Override 26 | public GenericItemType getType() 27 | { 28 | return GenericItemType.WEAPON; 29 | } 30 | 31 | @Override 32 | public SpecificItemType getSpecificType() 33 | { 34 | return SpecificItemType.SWORD; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/item/weapon/vanilla/WoodenSword.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.item.weapon.vanilla; 2 | 3 | import me.superischroma.spectaculation.item.*; 4 | 5 | public class WoodenSword implements ToolStatistics, MaterialFunction 6 | { 7 | @Override 8 | public String getDisplayName() 9 | { 10 | return "Wooden Sword"; 11 | } 12 | 13 | @Override 14 | public Rarity getRarity() 15 | { 16 | return Rarity.COMMON; 17 | } 18 | 19 | @Override 20 | public int getBaseDamage() 21 | { 22 | return 20; 23 | } 24 | 25 | @Override 26 | public GenericItemType getType() 27 | { 28 | return GenericItemType.WEAPON; 29 | } 30 | 31 | @Override 32 | public SpecificItemType getSpecificType() 33 | { 34 | return SpecificItemType.SWORD; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/listener/PListener.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.listener; 2 | 3 | import me.superischroma.spectaculation.Spectaculation; 4 | import org.bukkit.event.Listener; 5 | 6 | public class PListener implements Listener 7 | { 8 | private static int amount = 0; 9 | 10 | protected Spectaculation plugin; 11 | 12 | protected PListener() 13 | { 14 | this.plugin = Spectaculation.getPlugin(); 15 | this.plugin.getServer().getPluginManager().registerEvents(this, plugin); 16 | amount++; 17 | } 18 | 19 | public static int getAmount() 20 | { 21 | return amount; 22 | } 23 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/listener/ServerPingListener.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.listener; 2 | 3 | import me.superischroma.spectaculation.util.SUtil; 4 | import org.bukkit.ChatColor; 5 | import org.bukkit.event.EventHandler; 6 | import org.bukkit.event.server.ServerListPingEvent; 7 | 8 | public class ServerPingListener extends PListener 9 | { 10 | @EventHandler 11 | public void onServerPing(ServerListPingEvent e) 12 | { 13 | e.setMotd(ChatColor.GREEN + " Gunga Server " + ChatColor.RED + "[1.8-1.16]\n " + SUtil.getRandomVisibleColor() + ChatColor.BOLD + "SKYBLOCK STUFF"); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/potion/ActivePotionEffect.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.potion; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | import me.superischroma.spectaculation.util.SUtil; 6 | 7 | @Getter 8 | public class ActivePotionEffect 9 | { 10 | private final PotionEffect effect; 11 | @Setter 12 | private long remaining; 13 | 14 | public ActivePotionEffect(PotionEffect effect, long remaining) 15 | { 16 | this.effect = effect; 17 | this.remaining = remaining; 18 | } 19 | 20 | public String getRemainingDisplay() 21 | { 22 | return SUtil.getFormattedTime(remaining); 23 | } 24 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/potion/PotionColor.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.potion; 2 | 3 | import lombok.Getter; 4 | 5 | public enum PotionColor 6 | { 7 | BLUE((short) 0), 8 | PURPLE((short) 1), 9 | LIGHT_BLUE((short) 2), 10 | ORANGE((short) 3), 11 | DARK_GREEN((short) 4), 12 | RED((short) 5), 13 | DARK_BLUE((short) 6), 14 | GRAY((short) 8), 15 | DARK_RED((short) 9), 16 | DARK_GRAY((short) 10), 17 | GREEN((short) 11), 18 | BLOOD_RED((short) 12), 19 | TWILIGHT_BLUE((short) 13), 20 | LIGHT_GRAY((short) 14); 21 | 22 | public static final short SPLASH = 16384; 23 | 24 | @Getter 25 | private final short data; 26 | 27 | PotionColor(short data) 28 | { 29 | this.data = data; 30 | } 31 | 32 | public short getSplashData() 33 | { 34 | return (short) (data + SPLASH); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/reforge/HeroicReforge.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.reforge; 2 | 3 | import me.superischroma.spectaculation.item.GenericItemType; 4 | import me.superischroma.spectaculation.item.RarityValue; 5 | 6 | import java.util.Collections; 7 | import java.util.List; 8 | 9 | public class HeroicReforge implements Reforge 10 | { 11 | @Override 12 | public String getName() 13 | { 14 | return "Heroic"; 15 | } 16 | 17 | @Override 18 | public RarityValue getStrength() 19 | { 20 | return new RarityValue<>(15.0, 20.0, 25.0, 32.0, 40.0, 50.0); 21 | } 22 | 23 | @Override 24 | public RarityValue getIntelligence() 25 | { 26 | return new RarityValue<>(40.0, 50.0, 65.0, 80.0, 100.0, 125.0); 27 | } 28 | 29 | @Override 30 | public List getCompatibleTypes() 31 | { 32 | return Collections.singletonList(GenericItemType.WEAPON); 33 | } 34 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/reforge/OverpoweredReforge.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.reforge; 2 | 3 | import me.superischroma.spectaculation.item.RarityValue; 4 | 5 | // sort of a test reforge 6 | public class OverpoweredReforge implements Reforge 7 | { 8 | @Override 9 | public String getName() 10 | { 11 | return "Overpowered"; 12 | } 13 | 14 | @Override 15 | public RarityValue getStrength() 16 | { 17 | return RarityValue.singleDouble(1000.0); 18 | } 19 | 20 | @Override 21 | public RarityValue getCritChance() 22 | { 23 | return RarityValue.singleDouble(0.5); 24 | } 25 | 26 | @Override 27 | public RarityValue getCritDamage() 28 | { 29 | return RarityValue.singleDouble(2.0); 30 | } 31 | 32 | @Override 33 | public RarityValue getIntelligence() 34 | { 35 | return RarityValue.singleDouble(500.0); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/reforge/RapidReforge.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.reforge; 2 | 3 | import me.superischroma.spectaculation.item.GenericItemType; 4 | import me.superischroma.spectaculation.item.RarityValue; 5 | 6 | import java.util.Collections; 7 | import java.util.List; 8 | 9 | public class RapidReforge implements Reforge 10 | { 11 | @Override 12 | public String getName() 13 | { 14 | return "Rapid"; 15 | } 16 | 17 | @Override 18 | public RarityValue getStrength() 19 | { 20 | return new RarityValue<>(2.0, 3.0, 4.0, 7.0, 10.0, 15.0); 21 | } 22 | 23 | @Override 24 | public RarityValue getCritDamage() 25 | { 26 | return new RarityValue<>(0.35, 0.45, 0.55, 0.65, 0.75, 0.9); 27 | } 28 | 29 | @Override 30 | public List getCompatibleTypes() 31 | { 32 | return Collections.singletonList(GenericItemType.RANGED_WEAPON); 33 | } 34 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/reforge/Reforge.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.reforge; 2 | 3 | import me.superischroma.spectaculation.item.GenericItemType; 4 | import me.superischroma.spectaculation.item.RarityValue; 5 | 6 | import java.util.Arrays; 7 | import java.util.List; 8 | 9 | public interface Reforge 10 | { 11 | String getName(); 12 | 13 | default RarityValue getStrength() 14 | { 15 | return RarityValue.zeroDouble(); 16 | } 17 | 18 | default RarityValue getCritChance() 19 | { 20 | return RarityValue.zeroDouble(); 21 | } 22 | 23 | default RarityValue getCritDamage() 24 | { 25 | return RarityValue.zeroDouble(); 26 | } 27 | 28 | default RarityValue getIntelligence() 29 | { 30 | return RarityValue.zeroDouble(); 31 | } 32 | 33 | default List getCompatibleTypes() 34 | { 35 | return Arrays.asList(GenericItemType.values()); 36 | } 37 | 38 | static Reforge blank() 39 | { 40 | return () -> "Blank"; 41 | } 42 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/reforge/SpicyReforge.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.reforge; 2 | 3 | import me.superischroma.spectaculation.item.GenericItemType; 4 | import me.superischroma.spectaculation.item.RarityValue; 5 | 6 | import java.util.Collections; 7 | import java.util.List; 8 | 9 | public class SpicyReforge implements Reforge 10 | { 11 | @Override 12 | public String getName() 13 | { 14 | return "Spicy"; 15 | } 16 | 17 | @Override 18 | public RarityValue getStrength() 19 | { 20 | return new RarityValue<>(2.0, 3.0, 4.0, 7.0, 10.0, 12.0); 21 | } 22 | 23 | @Override 24 | public RarityValue getCritChance() 25 | { 26 | return RarityValue.singleDouble(0.01); 27 | } 28 | 29 | @Override 30 | public RarityValue getCritDamage() 31 | { 32 | return new RarityValue<>(0.25, 0.35, 0.45, 0.6, 0.8, 1.0); 33 | } 34 | 35 | @Override 36 | public List getCompatibleTypes() 37 | { 38 | return Collections.singletonList(GenericItemType.WEAPON); 39 | } 40 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/reforge/SupergeniusReforge.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.reforge; 2 | 3 | import me.superischroma.spectaculation.item.RarityValue; 4 | 5 | public class SupergeniusReforge implements Reforge 6 | { 7 | @Override 8 | public String getName() 9 | { 10 | return "Supergenius"; 11 | } 12 | 13 | @Override 14 | public RarityValue getIntelligence() 15 | { 16 | return RarityValue.singleDouble(1000000.0); 17 | } 18 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/region/RegionGenerator.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.region; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | import org.bukkit.Location; 6 | 7 | @Getter 8 | public class RegionGenerator 9 | { 10 | private final String modificationType; 11 | @Setter 12 | private String name; 13 | @Setter 14 | private Location firstLocation; 15 | @Setter 16 | private Location secondLocation; 17 | @Setter 18 | private RegionType type; 19 | @Setter 20 | private int phase; 21 | 22 | public RegionGenerator(String modificationType, String name, RegionType type) 23 | { 24 | this.modificationType = modificationType; 25 | this.name = name; 26 | this.type = type; 27 | this.phase = 1; 28 | } 29 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/sequence/Sequence.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.sequence; 2 | 3 | import org.bukkit.Location; 4 | import org.bukkit.entity.Entity; 5 | 6 | public interface Sequence 7 | { 8 | void play(Location location); 9 | void play(Entity entity); 10 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/user/PlayerStatistic.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.user; 2 | 3 | public interface PlayerStatistic 4 | { 5 | int HELMET = 0, CHESTPLATE = 1, LEGGINGS = 2, BOOTS = 3, HAND = 4, SET = 5, BOOST = 6, PET = 7, MINER_BUFF = 8, OBSIDIAN_CHESTPLATE = 9, 6 | FARMING = 10, MINING = 11, COMBAT = 12, FORAGING = 13, ADD_FOR_INVENTORY = 14, ADD_FOR_POTION_EFFECTS = 51; 7 | 8 | T addAll(); 9 | void add(int slot, T t); 10 | void sub(int slot, T t); 11 | void zero(int slot); 12 | boolean contains(int slot); 13 | T safeGet(int index); 14 | void set(int slot, T t); 15 | int next(); 16 | T getFor(int slot); 17 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/util/DefenseReplacement.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.util; 2 | 3 | public interface DefenseReplacement 4 | { 5 | String getReplacement(); 6 | long getEnd(); 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/util/SLog.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.util; 2 | 3 | import java.util.logging.Level; 4 | import java.util.logging.Logger; 5 | 6 | public class SLog 7 | { 8 | private static final Logger LOGGER = Logger.getLogger("Minecraft"); 9 | private static final String PREFIX = "[Spectaculation]"; 10 | 11 | private static void log(Object o, Level l) 12 | { 13 | LOGGER.log(l, PREFIX + " " + o); 14 | } 15 | 16 | public static void info(Object o) 17 | { 18 | log(o, Level.INFO); 19 | } 20 | 21 | public static void warn(Object o) 22 | { 23 | log(o, Level.WARNING); 24 | } 25 | 26 | public static void severe(Object o) 27 | { 28 | log(o, Level.SEVERE); 29 | } 30 | } -------------------------------------------------------------------------------- /src/main/java/me/superischroma/spectaculation/util/TriConsumer.java: -------------------------------------------------------------------------------- 1 | package me.superischroma.spectaculation.util; 2 | 3 | public interface TriConsumer 4 | { 5 | void accept(T t, U u, V v); 6 | default TriConsumer andThen(TriConsumer after) 7 | { 8 | return null; 9 | } 10 | } -------------------------------------------------------------------------------- /src/main/resources/blocks.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajaxvp/Spectaculation/05ad51d7141c9fe892209bc1ada77e3e8cc86290/src/main/resources/blocks.yml -------------------------------------------------------------------------------- /src/main/resources/config.yml: -------------------------------------------------------------------------------- 1 | hub_world: '' 2 | islands: 3 | x: 0 4 | z: 0 5 | schematic: '' -------------------------------------------------------------------------------- /src/main/resources/database.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajaxvp/Spectaculation/05ad51d7141c9fe892209bc1ada77e3e8cc86290/src/main/resources/database.db -------------------------------------------------------------------------------- /src/main/resources/heads.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajaxvp/Spectaculation/05ad51d7141c9fe892209bc1ada77e3e8cc86290/src/main/resources/heads.yml -------------------------------------------------------------------------------- /src/main/resources/plugin.yml: -------------------------------------------------------------------------------- 1 | name: Spectaculation 2 | version: ${project.version} 3 | main: me.superischroma.spectaculation.Spectaculation 4 | authors: [ super ] 5 | description: ridiculousness 6 | -------------------------------------------------------------------------------- /src/main/resources/spawners.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajaxvp/Spectaculation/05ad51d7141c9fe892209bc1ada77e3e8cc86290/src/main/resources/spawners.yml -------------------------------------------------------------------------------- /src/main/resources/test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajaxvp/Spectaculation/05ad51d7141c9fe892209bc1ada77e3e8cc86290/src/main/resources/test.yml --------------------------------------------------------------------------------