├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── addon-idea.yml │ ├── bug_report.yml │ ├── feature_request.yml │ └── question.yml ├── dependabot.yml ├── label-actions.yml └── workflows │ ├── codeql-analysis.yml │ ├── issue-marker.yml │ └── stale.yml ├── .gitignore ├── LICENSE ├── README.md ├── nms ├── master │ ├── pom.xml │ └── src │ │ └── simplepets │ │ └── brainsynder │ │ ├── internal │ │ └── glowingentities │ │ │ └── GlowingEntities.java │ │ └── nms │ │ ├── CitizensFixer.java │ │ ├── SpawnerUtil.java │ │ ├── VersionTranslator.java │ │ ├── entity │ │ ├── EntityAgeablePet.java │ │ ├── EntityBase.java │ │ ├── EntityFishPet.java │ │ ├── EntityFlyablePet.java │ │ ├── EntityPet.java │ │ ├── EntityPetOverride.java │ │ ├── EntityTameablePet.java │ │ ├── SeatEntity.java │ │ ├── branch │ │ │ ├── EntityDonkeyAbstractPet.java │ │ │ ├── EntityHorseAbstractPet.java │ │ │ ├── EntityIllagerAbstractPet.java │ │ │ ├── EntityIllagerWizardPet.java │ │ │ ├── EntityPiglinAbstractPet.java │ │ │ └── EntityRaiderPet.java │ │ ├── controller │ │ │ ├── ControllerJumpRabbit.java │ │ │ ├── ControllerMoveRabbit.java │ │ │ └── ControllerSlime.java │ │ ├── list │ │ │ ├── EntityAllayPet.java │ │ │ ├── EntityArmadilloPet.java │ │ │ ├── EntityArmorStandPet.java │ │ │ ├── EntityAxolotlPet.java │ │ │ ├── EntityBatPet.java │ │ │ ├── EntityBeePet.java │ │ │ ├── EntityBlazePet.java │ │ │ ├── EntityBoggedPet.java │ │ │ ├── EntityBreezePet.java │ │ │ ├── EntityCamelPet.java │ │ │ ├── EntityCatPet.java │ │ │ ├── EntityCaveSpiderPet.java │ │ │ ├── EntityChickenPet.java │ │ │ ├── EntityCodPet.java │ │ │ ├── EntityCowPet.java │ │ │ ├── EntityCreakingPet.java │ │ │ ├── EntityCreeperPet.java │ │ │ ├── EntityDolphinPet.java │ │ │ ├── EntityDonkeyPet.java │ │ │ ├── EntityDrownedPet.java │ │ │ ├── EntityElderGuardianPet.java │ │ │ ├── EntityEndermanPet.java │ │ │ ├── EntityEndermitePet.java │ │ │ ├── EntityEvokerPet.java │ │ │ ├── EntityFoxPet.java │ │ │ ├── EntityFrogPet.java │ │ │ ├── EntityGhastPet.java │ │ │ ├── EntityGiantPet.java │ │ │ ├── EntityGlowSquidPet.java │ │ │ ├── EntityGoatPet.java │ │ │ ├── EntityGuardianPet.java │ │ │ ├── EntityHoglinPet.java │ │ │ ├── EntityHorsePet.java │ │ │ ├── EntityHuskPet.java │ │ │ ├── EntityIllusionerPet.java │ │ │ ├── EntityIronGolemPet.java │ │ │ ├── EntityLlamaPet.java │ │ │ ├── EntityMagmaCubePet.java │ │ │ ├── EntityMooshroomPet.java │ │ │ ├── EntityMulePet.java │ │ │ ├── EntityOcelotPet.java │ │ │ ├── EntityPandaPet.java │ │ │ ├── EntityParrotPet.java │ │ │ ├── EntityPhantomPet.java │ │ │ ├── EntityPigPet.java │ │ │ ├── EntityPigZombiePet.java │ │ │ ├── EntityPiglinBrutePet.java │ │ │ ├── EntityPiglinPet.java │ │ │ ├── EntityPillagerPet.java │ │ │ ├── EntityPolarBearPet.java │ │ │ ├── EntityPufferFishPet.java │ │ │ ├── EntityRabbitPet.java │ │ │ ├── EntityRavagerPet.java │ │ │ ├── EntitySalmonPet.java │ │ │ ├── EntitySheepPet.java │ │ │ ├── EntityShulkerPet.java │ │ │ ├── EntitySilverfishPet.java │ │ │ ├── EntitySkeletonHorsePet.java │ │ │ ├── EntitySkeletonPet.java │ │ │ ├── EntitySlimePet.java │ │ │ ├── EntitySnifferPet.java │ │ │ ├── EntitySnowmanPet.java │ │ │ ├── EntitySpiderPet.java │ │ │ ├── EntitySquidPet.java │ │ │ ├── EntityStrayPet.java │ │ │ ├── EntityStriderPet.java │ │ │ ├── EntityTadpolePet.java │ │ │ ├── EntityTraderLlamaPet.java │ │ │ ├── EntityTropicalFishPet.java │ │ │ ├── EntityTurtlePet.java │ │ │ ├── EntityVexPet.java │ │ │ ├── EntityVillagerPet.java │ │ │ ├── EntityVindicatorPet.java │ │ │ ├── EntityWanderingTraderPet.java │ │ │ ├── EntityWardenPet.java │ │ │ ├── EntityWitchPet.java │ │ │ ├── EntityWitherPet.java │ │ │ ├── EntityWitherSkeletonPet.java │ │ │ ├── EntityWolfPet.java │ │ │ ├── EntityZoglinPet.java │ │ │ ├── EntityZombieHorsePet.java │ │ │ ├── EntityZombiePet.java │ │ │ └── EntityZombieVillagerPet.java │ │ └── special │ │ │ ├── EntityControllerPet.java │ │ │ └── EntityGhostStand.java │ │ ├── pathfinder │ │ ├── LegacyPathfinderFollowPlayer.java │ │ ├── PathfinderFollowPlayer.java │ │ └── PathfinderGoalLookAtOwner.java │ │ └── utils │ │ ├── DataWatcherValue.java │ │ ├── EntityUtils.java │ │ ├── FieldUtils.java │ │ ├── InvalidInputException.java │ │ ├── PetDataAccess.java │ │ └── VariantUtils.java ├── version-1.19.1 │ ├── pom.xml │ └── src │ │ └── simplepets │ │ └── brainsynder │ │ ├── listeners │ │ └── breaking │ │ │ └── DismountListener.java │ │ └── nms │ │ ├── CitizensFixer.java │ │ ├── VersionTranslator.java │ │ └── entity │ │ ├── EntityBase.java │ │ ├── SeatEntity.java │ │ └── list │ │ ├── EntityArmorStandPet.java │ │ ├── EntityCatPet.java │ │ ├── EntityFrogPet.java │ │ └── EntityWolfPet.java ├── version-1.19.2 │ ├── pom.xml │ └── src │ │ └── simplepets │ │ └── brainsynder │ │ ├── listeners │ │ └── breaking │ │ │ └── DismountListener.java │ │ └── nms │ │ ├── CitizensFixer.java │ │ ├── VersionTranslator.java │ │ └── entity │ │ ├── EntityBase.java │ │ ├── SeatEntity.java │ │ └── list │ │ ├── EntityArmorStandPet.java │ │ ├── EntityCatPet.java │ │ ├── EntityFrogPet.java │ │ └── EntityWolfPet.java ├── version-1.19.3 │ ├── pom.xml │ └── src │ │ └── simplepets │ │ └── brainsynder │ │ ├── listeners │ │ └── breaking │ │ │ └── DismountListener.java │ │ └── nms │ │ ├── VersionTranslator.java │ │ └── entity │ │ ├── EntityBase.java │ │ ├── SeatEntity.java │ │ └── list │ │ ├── EntityCatPet.java │ │ ├── EntityFrogPet.java │ │ └── EntityWolfPet.java ├── version-1.19.4 │ ├── pom.xml │ └── src │ │ └── simplepets │ │ └── brainsynder │ │ ├── listeners │ │ └── breaking │ │ │ └── DismountListener.java │ │ └── nms │ │ ├── VersionTranslator.java │ │ └── entity │ │ ├── EntityBase.java │ │ └── list │ │ ├── EntityCatPet.java │ │ ├── EntityFrogPet.java │ │ └── EntityWolfPet.java ├── version-1.19 │ ├── pom.xml │ └── src │ │ └── simplepets │ │ └── brainsynder │ │ ├── listeners │ │ └── breaking │ │ │ └── DismountListener.java │ │ └── nms │ │ ├── CitizensFixer.java │ │ ├── VersionTranslator.java │ │ └── entity │ │ ├── EntityBase.java │ │ ├── SeatEntity.java │ │ └── list │ │ ├── EntityArmorStandPet.java │ │ ├── EntityCatPet.java │ │ ├── EntityFrogPet.java │ │ └── EntityWolfPet.java ├── version-1.20.1 │ ├── pom.xml │ └── src │ │ └── simplepets │ │ └── brainsynder │ │ ├── listeners │ │ └── breaking │ │ │ └── DismountListener.java │ │ └── nms │ │ ├── VersionTranslator.java │ │ └── entity │ │ ├── EntityBase.java │ │ └── list │ │ ├── EntityCatPet.java │ │ ├── EntityFrogPet.java │ │ ├── EntityLlamaPet.java │ │ └── EntityWolfPet.java ├── version-1.20.2 │ ├── pom.xml │ └── src │ │ └── simplepets │ │ └── brainsynder │ │ ├── listeners │ │ └── breaking │ │ │ └── DismountListener.java │ │ └── nms │ │ ├── VersionTranslator.java │ │ └── entity │ │ ├── EntityBase.java │ │ └── list │ │ ├── EntityCatPet.java │ │ ├── EntityFrogPet.java │ │ ├── EntityLlamaPet.java │ │ └── EntityWolfPet.java ├── version-1.20.3 │ ├── pom.xml │ └── src │ │ └── simplepets │ │ └── brainsynder │ │ ├── listeners │ │ └── breaking │ │ │ └── DismountListener.java │ │ └── nms │ │ ├── VersionTranslator.java │ │ └── entity │ │ ├── EntityBase.java │ │ └── list │ │ ├── EntityCatPet.java │ │ ├── EntityFrogPet.java │ │ ├── EntityLlamaPet.java │ │ └── EntityWolfPet.java ├── version-1.20.4 │ ├── pom.xml │ └── src │ │ └── simplepets │ │ └── brainsynder │ │ ├── listeners │ │ └── breaking │ │ │ └── DismountListener.java │ │ └── nms │ │ ├── VersionTranslator.java │ │ └── entity │ │ ├── EntityBase.java │ │ └── list │ │ ├── EntityCatPet.java │ │ ├── EntityFrogPet.java │ │ ├── EntityLlamaPet.java │ │ └── EntityWolfPet.java ├── version-1.20.5 │ ├── pom.xml │ └── src │ │ └── simplepets │ │ └── brainsynder │ │ └── nms │ │ ├── VersionTranslator.java │ │ └── entity │ │ └── EntityBase.java ├── version-1.20.6 │ ├── pom.xml │ └── src │ │ └── simplepets │ │ └── brainsynder │ │ └── nms │ │ ├── VersionTranslator.java │ │ └── entity │ │ └── EntityBase.java ├── version-1.20 │ ├── pom.xml │ └── src │ │ └── simplepets │ │ └── brainsynder │ │ ├── listeners │ │ └── breaking │ │ │ └── DismountListener.java │ │ └── nms │ │ ├── VersionTranslator.java │ │ └── entity │ │ ├── EntityBase.java │ │ └── list │ │ ├── EntityCatPet.java │ │ ├── EntityFrogPet.java │ │ ├── EntityLlamaPet.java │ │ └── EntityWolfPet.java ├── version-1.21.1 │ ├── pom.xml │ └── src │ │ └── simplepets │ │ └── brainsynder │ │ └── nms │ │ ├── VersionTranslator.java │ │ └── entity │ │ ├── EntityBase.java │ │ ├── EntityPetOverride.java │ │ └── list │ │ ├── EntityCatPet.java │ │ ├── EntityDolphinPet.java │ │ ├── EntityRabbitPet.java │ │ └── EntitySquidPet.java ├── version-1.21.3 │ ├── pom.xml │ └── src │ │ └── simplepets │ │ └── brainsynder │ │ └── nms │ │ ├── VersionTranslator.java │ │ ├── entity │ │ ├── EntityBase.java │ │ ├── EntityPetOverride.java │ │ ├── EntityTameablePet.java │ │ ├── branch │ │ │ └── EntityHorseAbstractPet.java │ │ └── list │ │ │ ├── EntityChickenPet.java │ │ │ ├── EntityCowPet.java │ │ │ ├── EntityDolphinPet.java │ │ │ ├── EntityFoxPet.java │ │ │ ├── EntityFrogPet.java │ │ │ ├── EntityPigPet.java │ │ │ ├── EntityStriderPet.java │ │ │ ├── EntityTurtlePet.java │ │ │ ├── EntityVillagerPet.java │ │ │ ├── EntityWolfPet.java │ │ │ └── EntityZombieVillagerPet.java │ │ └── utils │ │ └── EntityUtils.java ├── version-1.21.4 │ ├── pom.xml │ └── src │ │ └── simplepets │ │ └── brainsynder │ │ └── nms │ │ ├── AnvilGUI.java │ │ ├── SpawnerUtil.java │ │ ├── VersionTranslator.java │ │ ├── entity │ │ ├── EntityBase.java │ │ ├── EntityPetOverride.java │ │ ├── EntityTameablePet.java │ │ ├── branch │ │ │ └── EntityHorseAbstractPet.java │ │ └── list │ │ │ ├── EntityChickenPet.java │ │ │ ├── EntityCowPet.java │ │ │ ├── EntityDolphinPet.java │ │ │ ├── EntityFoxPet.java │ │ │ ├── EntityFrogPet.java │ │ │ ├── EntityPigPet.java │ │ │ ├── EntityStriderPet.java │ │ │ ├── EntityTurtlePet.java │ │ │ ├── EntityVillagerPet.java │ │ │ ├── EntityWolfPet.java │ │ │ └── EntityZombieVillagerPet.java │ │ └── utils │ │ └── EntityUtils.java ├── version-1.21.5 │ ├── pom.xml │ └── src │ │ └── simplepets │ │ └── brainsynder │ │ └── nms │ │ ├── AnvilGUI.java │ │ ├── SpawnerUtil.java │ │ ├── VersionTranslator.java │ │ └── entity │ │ ├── EntityBase.java │ │ └── EntityPetOverride.java └── version-1.21 │ ├── pom.xml │ └── src │ └── simplepets │ └── brainsynder │ └── nms │ ├── VersionTranslator.java │ └── entity │ ├── EntityBase.java │ ├── EntityPetOverride.java │ └── list │ ├── EntityCatPet.java │ ├── EntityDolphinPet.java │ ├── EntityRabbitPet.java │ └── EntitySquidPet.java ├── plugin-api ├── pom.xml └── src │ └── simplepets │ └── brainsynder │ ├── addon │ ├── AddonCloudData.java │ ├── AddonConfig.java │ ├── AddonLocalData.java │ ├── AddonPermissions.java │ ├── PermissionData.java │ ├── PetModule.java │ └── presets │ │ ├── EconomyModule.java │ │ └── RegionModule.java │ ├── api │ ├── ISpawnUtil.java │ ├── Namespace.java │ ├── animation │ │ ├── AnimationFrame.java │ │ └── MovementFrames.java │ ├── entity │ │ ├── IEntityPet.java │ │ ├── ambient │ │ │ └── IEntityArmorStandPet.java │ │ ├── hostile │ │ │ ├── IEntityBlazePet.java │ │ │ ├── IEntityBoggedPet.java │ │ │ ├── IEntityBreezePet.java │ │ │ ├── IEntityCaveSpiderPet.java │ │ │ ├── IEntityCreakingPet.java │ │ │ ├── IEntityCreeperPet.java │ │ │ ├── IEntityDolphinPet.java │ │ │ ├── IEntityDrownedPet.java │ │ │ ├── IEntityElderGuardianPet.java │ │ │ ├── IEntityEndermanPet.java │ │ │ ├── IEntityEndermitePet.java │ │ │ ├── IEntityEvokerPet.java │ │ │ ├── IEntityGhastPet.java │ │ │ ├── IEntityGiantPet.java │ │ │ ├── IEntityGuardianPet.java │ │ │ ├── IEntityHoglinPet.java │ │ │ ├── IEntityHuskPet.java │ │ │ ├── IEntityIllusionerPet.java │ │ │ ├── IEntityMagmaCubePet.java │ │ │ ├── IEntityPhantomPet.java │ │ │ ├── IEntityPigZombiePet.java │ │ │ ├── IEntityPiglinBrutePet.java │ │ │ ├── IEntityPiglinPet.java │ │ │ ├── IEntityPillagerPet.java │ │ │ ├── IEntityPufferFishPet.java │ │ │ ├── IEntityRavagerPet.java │ │ │ ├── IEntityShulkerPet.java │ │ │ ├── IEntitySilverfishPet.java │ │ │ ├── IEntitySkeletonPet.java │ │ │ ├── IEntitySlimePet.java │ │ │ ├── IEntitySpiderPet.java │ │ │ ├── IEntityStrayPet.java │ │ │ ├── IEntityVexPet.java │ │ │ ├── IEntityVindicatorPet.java │ │ │ ├── IEntityWardenPet.java │ │ │ ├── IEntityWitchPet.java │ │ │ ├── IEntityWitherPet.java │ │ │ ├── IEntityWitherSkeletonPet.java │ │ │ ├── IEntityZoglinPet.java │ │ │ ├── IEntityZombiePet.java │ │ │ └── IEntityZombieVillagerPet.java │ │ ├── misc │ │ │ ├── EntityPetType.java │ │ │ ├── IAgeablePet.java │ │ │ ├── IBurnablePet.java │ │ │ ├── IChestedAbstractPet.java │ │ │ ├── IColorable.java │ │ │ ├── IDisplayEntity.java │ │ │ ├── IEntityBase.java │ │ │ ├── IEntityControllerPet.java │ │ │ ├── IEntityFishPet.java │ │ │ ├── IEntityNoClipPet.java │ │ │ ├── IEntityWizard.java │ │ │ ├── IFlyableEntity.java │ │ │ ├── IHorseAbstract.java │ │ │ ├── IJump.java │ │ │ ├── IPowered.java │ │ │ ├── IProfession.java │ │ │ ├── IRaider.java │ │ │ ├── IRainbow.java │ │ │ ├── IResetColor.java │ │ │ ├── ISaddle.java │ │ │ ├── IShaking.java │ │ │ ├── ISheared.java │ │ │ ├── ISitting.java │ │ │ ├── ISizable.java │ │ │ ├── ISkeletonAbstract.java │ │ │ ├── ISleeper.java │ │ │ ├── ISpecialFlag.java │ │ │ ├── ISpecialRiding.java │ │ │ ├── ITameable.java │ │ │ └── ITemperaturePet.java │ │ └── passive │ │ │ ├── IEntityAllayPet.java │ │ │ ├── IEntityArmadilloPet.java │ │ │ ├── IEntityAxolotlPet.java │ │ │ ├── IEntityBatPet.java │ │ │ ├── IEntityBeePet.java │ │ │ ├── IEntityCamelPet.java │ │ │ ├── IEntityCatPet.java │ │ │ ├── IEntityChickenPet.java │ │ │ ├── IEntityCodPet.java │ │ │ ├── IEntityCowPet.java │ │ │ ├── IEntityDonkeyPet.java │ │ │ ├── IEntityFoxPet.java │ │ │ ├── IEntityFrogPet.java │ │ │ ├── IEntityGlowSquidPet.java │ │ │ ├── IEntityGoatPet.java │ │ │ ├── IEntityHorsePet.java │ │ │ ├── IEntityIronGolemPet.java │ │ │ ├── IEntityLlamaPet.java │ │ │ ├── IEntityMooshroomPet.java │ │ │ ├── IEntityMulePet.java │ │ │ ├── IEntityOcelotPet.java │ │ │ ├── IEntityPandaPet.java │ │ │ ├── IEntityParrotPet.java │ │ │ ├── IEntityPigPet.java │ │ │ ├── IEntityPolarBearPet.java │ │ │ ├── IEntityRabbitPet.java │ │ │ ├── IEntitySalmonPet.java │ │ │ ├── IEntitySheepPet.java │ │ │ ├── IEntitySkeletonHorsePet.java │ │ │ ├── IEntitySnifferPet.java │ │ │ ├── IEntitySnowmanPet.java │ │ │ ├── IEntitySquidPet.java │ │ │ ├── IEntityStriderPet.java │ │ │ ├── IEntityTadpolePet.java │ │ │ ├── IEntityTraderLlamaPet.java │ │ │ ├── IEntityTropicalFishPet.java │ │ │ ├── IEntityTurtlePet.java │ │ │ ├── IEntityVillagerPet.java │ │ │ ├── IEntityWanderingTraderPet.java │ │ │ ├── IEntityWolfPet.java │ │ │ └── IEntityZombieHorsePet.java │ ├── event │ │ ├── CancellablePetEvent.java │ │ ├── SimplePetEvent.java │ │ ├── entity │ │ │ ├── EntityNameChangeEvent.java │ │ │ ├── PetDismountEvent.java │ │ │ ├── PetDuplicateSpawnEvent.java │ │ │ ├── PetEntitySpawnEvent.java │ │ │ ├── PetMountEvent.java │ │ │ ├── PetMoveEvent.java │ │ │ ├── PetRemoveEvent.java │ │ │ ├── PostPetHatEvent.java │ │ │ ├── PrePetHatEvent.java │ │ │ └── movment │ │ │ │ ├── PetJumpEvent.java │ │ │ │ ├── PetRideEvent.java │ │ │ │ └── PetTeleportEvent.java │ │ ├── inventory │ │ │ ├── PetInventoryAddPetItemEvent.java │ │ │ ├── PetInventoryOpenEvent.java │ │ │ ├── PetSelectTypeEvent.java │ │ │ └── PetTypeStorage.java │ │ └── user │ │ │ ├── PetNameChangeEvent.java │ │ │ └── PetRenameEvent.java │ ├── inventory │ │ ├── CustomInventory.java │ │ ├── Item.java │ │ └── handler │ │ │ ├── GUIHandler.java │ │ │ ├── InventoryType.java │ │ │ └── ItemHandler.java │ ├── other │ │ └── ParticleHandler.java │ ├── pet │ │ ├── CommandReason.java │ │ ├── IPetConfig.java │ │ ├── PetConfigManager.java │ │ ├── PetData.java │ │ ├── PetType.java │ │ ├── PetWeight.java │ │ ├── annotations │ │ │ ├── DisableDefault.java │ │ │ ├── InDevelopment.java │ │ │ ├── LargePet.java │ │ │ └── PetCustomization.java │ │ └── data │ │ │ ├── AgeData.java │ │ │ ├── AngryData.java │ │ │ ├── ArmadilloPhaseData.java │ │ │ ├── ArmsData.java │ │ │ ├── AxolotlPlayDeadData.java │ │ │ ├── AxolotlVariantData.java │ │ │ ├── BatHangData.java │ │ │ ├── BurningData.java │ │ │ ├── CatCollarData.java │ │ │ ├── CatTiltData.java │ │ │ ├── CatTypeData.java │ │ │ ├── ChargingData.java │ │ │ ├── DancingData.java │ │ │ ├── EatingData.java │ │ │ ├── EndermanScreamData.java │ │ │ ├── FrozenData.java │ │ │ ├── GhastScreamData.java │ │ │ ├── GlowingData.java │ │ │ ├── JohnnyData.java │ │ │ ├── LlamaSkinData.java │ │ │ ├── MooshroomColorData.java │ │ │ ├── ParrotColorData.java │ │ │ ├── PotionData.java │ │ │ ├── PoweredData.java │ │ │ ├── PufferSizeData.java │ │ │ ├── PumpkinData.java │ │ │ ├── RabbitColorData.java │ │ │ ├── RavagerChompData.java │ │ │ ├── SaddleData.java │ │ │ ├── ShakeData.java │ │ │ ├── ShearData.java │ │ │ ├── ShulkerCloseData.java │ │ │ ├── SilentData.java │ │ │ ├── SittingData.java │ │ │ ├── SizeData.java │ │ │ ├── SleepData.java │ │ │ ├── SnifferStateData.java │ │ │ ├── SpellData.java │ │ │ ├── StandingData.java │ │ │ ├── TamedData.java │ │ │ ├── TropicalBodyColorData.java │ │ │ ├── TropicalPatternColorData.java │ │ │ ├── TropicalPatternData.java │ │ │ ├── Visible.java │ │ │ ├── WitherShieldData.java │ │ │ ├── WitherSizeData.java │ │ │ ├── WolfTiltData.java │ │ │ ├── WolfTypeData.java │ │ │ ├── bee │ │ │ ├── BeeAngryData.java │ │ │ ├── FlippedData.java │ │ │ ├── NectarData.java │ │ │ └── StingerData.java │ │ │ ├── color │ │ │ ├── ColorData.java │ │ │ ├── RainbowData.java │ │ │ └── ResetColorData.java │ │ │ ├── fox │ │ │ ├── FoxCrouchingData.java │ │ │ ├── FoxInterestData.java │ │ │ ├── FoxSittingData.java │ │ │ └── FoxTypeData.java │ │ │ ├── frog │ │ │ ├── CroakingData.java │ │ │ └── TongueData.java │ │ │ ├── goat │ │ │ ├── LeftHornData.java │ │ │ └── RightHornData.java │ │ │ ├── horse │ │ │ ├── ChestData.java │ │ │ ├── HorseArmorData.java │ │ │ ├── HorseColorData.java │ │ │ └── HorseStyleData.java │ │ │ ├── panda │ │ │ ├── PandaSittingData.java │ │ │ ├── PandaSleepData.java │ │ │ ├── PandaSneezeData.java │ │ │ └── PandaTypeData.java │ │ │ ├── temperature │ │ │ └── TemperatureVariantData.java │ │ │ ├── villager │ │ │ ├── VillagerBiomeData.java │ │ │ ├── VillagerLevelData.java │ │ │ └── VillagerTypeData.java │ │ │ └── warden │ │ │ ├── WardenAngerData.java │ │ │ └── WardenVibrationData.java │ ├── plugin │ │ ├── IPetsPlugin.java │ │ ├── SimplePets.java │ │ ├── config │ │ │ ├── ConfigEntry.java │ │ │ └── ConfigOption.java │ │ └── utils │ │ │ └── IPetUtilities.java │ ├── user │ │ ├── PetUser.java │ │ └── UserManagement.java │ └── wrappers │ │ ├── AngerLevel.java │ │ ├── ArmadilloPhase.java │ │ ├── AxolotlVariant.java │ │ ├── CatType.java │ │ ├── ColorWrapper.java │ │ ├── FoxType.java │ │ ├── FrogType.java │ │ ├── LlamaColor.java │ │ ├── MooshroomType.java │ │ ├── PandaGene.java │ │ ├── ParrotVariant.java │ │ ├── PufferState.java │ │ ├── RabbitType.java │ │ ├── SnifferState.java │ │ ├── TemperatureVariant.java │ │ ├── TropicalPattern.java │ │ ├── WizardSpell.java │ │ ├── WolfType.java │ │ ├── horse │ │ ├── HorseArmorType.java │ │ ├── HorseColorType.java │ │ └── HorseStyleType.java │ │ └── villager │ │ ├── BiomeType.java │ │ ├── VillagerInfo.java │ │ ├── VillagerLevel.java │ │ └── VillagerType.java │ └── debug │ ├── DebugBuilder.java │ ├── DebugLevel.java │ └── DebugLogger.java ├── plugin-core ├── pom.xml └── src │ └── simplepets │ └── brainsynder │ ├── PetCore.java │ ├── commands │ ├── Permission.java │ ├── PetSubCommand.java │ ├── PetsCommand.java │ └── list │ │ ├── AddonCommand.java │ │ ├── DataCommand.java │ │ ├── DatabaseCommand.java │ │ ├── DebugCommand.java │ │ ├── GUICommand.java │ │ ├── HelpCommand.java │ │ ├── ListCommand.java │ │ ├── ModifyCommand.java │ │ ├── PermissionsCommand.java │ │ ├── PetConfigCommand.java │ │ ├── PremiumCommand.java │ │ ├── PurchasedCommand.java │ │ ├── RegenerateCommand.java │ │ ├── ReloadCommand.java │ │ ├── RemoveCommand.java │ │ ├── RenameCommand.java │ │ ├── ReportCommand.java │ │ └── SummonCommand.java │ ├── files │ ├── Config.java │ ├── MessageFile.java │ └── options │ │ └── MessageOption.java │ ├── hooks │ └── ProtocolHook.java │ ├── impl │ ├── PetConfiguration.java │ ├── PetOwner.java │ └── PetUtility.java │ ├── listeners │ ├── AddonGUIListener.java │ ├── BrokenVersionListener.java │ ├── ChunkUnloadListener.java │ ├── DamageListener.java │ ├── DataGUIListener.java │ ├── InteractListener.java │ ├── JoinLeaveListeners.java │ ├── LocationChangeListener.java │ ├── PetEventListener.java │ ├── PetSelectorGUIListener.java │ ├── PetSpawnListener.java │ ├── SavesGUIListener.java │ ├── SelectionGUIListener.java │ └── breaking │ │ └── DismountListener.java │ ├── managers │ ├── AddonManager.java │ ├── AnimationController.java │ ├── AnimationManager.java │ ├── InventoryManager.java │ ├── ItemManager.java │ ├── ParticleManager.java │ ├── RenameManager.java │ └── UserManager.java │ ├── menu │ ├── inventory │ │ ├── AddonMenu.java │ │ ├── DataMenu.java │ │ ├── PetSelectorMenu.java │ │ ├── SavesMenu.java │ │ ├── SelectionMenu.java │ │ └── holders │ │ │ ├── AddonHolder.java │ │ │ ├── PetDataHolder.java │ │ │ ├── SavesHolder.java │ │ │ ├── SelectionHolder.java │ │ │ └── SelectorHolder.java │ └── items │ │ ├── CustomItem.java │ │ └── list │ │ ├── Air.java │ │ ├── Hat.java │ │ ├── Installer.java │ │ ├── Name.java │ │ ├── NextPage.java │ │ ├── Placeholder.java │ │ ├── PreviousPage.java │ │ ├── Remove.java │ │ ├── Ride.java │ │ ├── SavePet.java │ │ └── Saves.java │ ├── sql │ ├── SQLData.java │ ├── SQLHandler.java │ └── handlers │ │ ├── MySQLHandler.java │ │ └── SQLiteHandler.java │ └── utils │ ├── BiTask.java │ ├── FieldValues.java │ ├── JavaVersion.java │ ├── Keys.java │ ├── Premium.java │ ├── RenameType.java │ ├── SignMenuFactory.java │ ├── UUIDDataType.java │ ├── Utilities.java │ ├── VersionFields.java │ └── debug │ └── Debug.java ├── plugin-distribution ├── all-jar.xml └── pom.xml ├── pom.xml └── resources ├── jenkins.properties ├── plugin.properties └── plugin.yml /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/addon-idea.yml: -------------------------------------------------------------------------------- 1 | name: Addon Idea Submission 2 | description: You have an idea for a new addon 3 | title: "[Addon Idea]: " 4 | labels: ["Type: Addon Suggestion"] 5 | assignees: 6 | - brainsynder-Dev 7 | - Thatsmusic99 8 | body: 9 | - type: markdown 10 | attributes: 11 | value: | 12 |
So you have a feature you would like to request? Perfect fill out the info below and we will look into adding it in if possible.
13 | 14 | - type: textarea 15 | id: request 16 | attributes: 17 | label: What is your addon idea? 18 | description: | 19 | In the area below please put your idea. [ REQUIRED ] 20 | 21 | Tip: You can attach images or files by clicking this area to highlight it and then dragging files in. 22 | placeholder: I have an addon idea! 23 | validations: 24 | required: true 25 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: maven 4 | directory: "/" 5 | schedule: 6 | interval: daily 7 | time: "15:00" 8 | timezone: "Europe/Zurich" 9 | open-pull-requests-limit: 10 10 | labels: 11 | - "Type: Dependabot" -------------------------------------------------------------------------------- /.github/workflows/issue-marker.yml: -------------------------------------------------------------------------------- 1 | name: 'Label Actions' 2 | 3 | on: 4 | issues: 5 | types: labeled 6 | 7 | permissions: 8 | issues: write 9 | 10 | jobs: 11 | action: 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: dessant/label-actions@v2 -------------------------------------------------------------------------------- /.github/workflows/stale.yml: -------------------------------------------------------------------------------- 1 | name: Mark stale issues and pull requests 2 | 3 | on: 4 | schedule: 5 | - cron: "30 1 * * *" 6 | 7 | jobs: 8 | stale: 9 | 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - uses: actions/stale@v3 14 | with: 15 | repo-token: ${{ secrets.GITHUB_TOKEN }} 16 | stale-issue-message: 'This issue has been marked as stale due to the lack of response on it. If this problem is still occurring, please comment saying so or the issue will be closed in 7 days.' 17 | stale-issue-label: 'Status: Stale' 18 | exempt-issue-labels: 'Type: Addon Suggestion,Type: Enhancement,Type: Feature Request,Status: Reproduced,Type: Dependabot,Type: Developer Report,Type: Todo' 19 | days-before-stale: 20 20 | days-before-close: 7 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | */target 3 | dependency-reduced-pom.xml 4 | */dependency-reduced-pom.xml 5 | .idea/ 6 | */.idea 7 | .fleet/ 8 | */.fleet 9 | */*.iml 10 | *.iml 11 | libs/craftbukkit-* 12 | /.idea/ 13 | .flattened-pom.xml 14 | */*-pom.xml -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/EntityPetOverride.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import net.minecraft.world.entity.Mob; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | 8 | public class EntityPetOverride extends EntityPet { 9 | public EntityPetOverride(EntityType entitytypes, PetType type, PetUser user) { 10 | super(entitytypes, type, user); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/branch/EntityIllagerAbstractPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.branch; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import net.minecraft.world.entity.Mob; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | 8 | public abstract class EntityIllagerAbstractPet extends EntityRaiderPet { 9 | public EntityIllagerAbstractPet(EntityType entitytypes, PetType type, PetUser user) { 10 | super(entitytypes, type, user); 11 | } 12 | } -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/controller/ControllerJumpRabbit.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.controller; 2 | 3 | import net.minecraft.world.entity.ai.control.JumpControl; 4 | import simplepets.brainsynder.nms.entity.list.EntityRabbitPet; 5 | 6 | public class ControllerJumpRabbit extends JumpControl { 7 | private final EntityRabbitPet rabbitPet; 8 | 9 | // Translation: UNKNOWN 10 | private boolean canJump = false; 11 | 12 | public ControllerJumpRabbit(EntityRabbitPet entity) { 13 | super(entity); 14 | this.rabbitPet = entity; 15 | } 16 | 17 | public boolean wantJump() { 18 | return this.jump; 19 | } 20 | 21 | // Translation: UNKNOWN 22 | public boolean canJump() { 23 | return this.canJump; 24 | } 25 | 26 | // Translation: UNKNOWN 27 | public void setCanJump(boolean flag) { 28 | this.canJump = flag; 29 | } 30 | 31 | // Translation: tick() 32 | public void tick() { 33 | // Translation: this.active 34 | if (this.jump) { 35 | this.rabbitPet.reseter(); 36 | // Translation: this.active 37 | this.jump = false; 38 | } 39 | 40 | } 41 | } -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/controller/ControllerMoveRabbit.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.controller; 2 | 3 | import net.minecraft.world.entity.ai.control.MoveControl; 4 | import simplepets.brainsynder.nms.entity.list.EntityRabbitPet; 5 | 6 | public class ControllerMoveRabbit extends MoveControl { 7 | private final EntityRabbitPet rabbit; 8 | private double rabbitSpeed; 9 | 10 | public ControllerMoveRabbit(EntityRabbitPet entityrabbit) { 11 | super(entityrabbit); 12 | this.rabbit = entityrabbit; 13 | } 14 | 15 | // Translation: tick() 16 | public void tick() { 17 | if (this.rabbit.isOnGround() && !this.rabbit.isJumping() && !((ControllerJumpRabbit)this.rabbit.getJumpControl()).wantJump()) { 18 | this.rabbit.setSpeedModifier(0.0); 19 | } else if (hasWanted()) { // Translation: this.isMoving() 20 | this.rabbit.setSpeedModifier(this.rabbitSpeed); 21 | } 22 | 23 | super.tick(); 24 | } 25 | 26 | // Translation: moveTo 27 | public void setWantedPosition(double x, double y, double z, double speed) { 28 | if (this.rabbit.isInWater()) speed = 1.5D; 29 | 30 | super.setWantedPosition(x, y, z, speed); 31 | 32 | if (speed > 0.0D) this.rabbitSpeed = speed; 33 | } 34 | } -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntityAllayPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import lib.brainsynder.ServerVersion; 4 | import lib.brainsynder.SupportedVersion; 5 | import net.minecraft.world.entity.EntityType; 6 | import simplepets.brainsynder.api.entity.passive.IEntityAllayPet; 7 | import simplepets.brainsynder.api.pet.PetType; 8 | import simplepets.brainsynder.api.user.PetUser; 9 | import simplepets.brainsynder.nms.entity.EntityFlyablePet; 10 | 11 | /** 12 | * NMS: {@link net.minecraft.world.entity.animal.allay.Allay } 13 | */ 14 | @SupportedVersion(version = ServerVersion.v1_19) 15 | public class EntityAllayPet extends EntityFlyablePet implements IEntityAllayPet { 16 | public EntityAllayPet(PetType type, PetUser user) { 17 | super(EntityType.ALLAY, type, user); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntityBreezePet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import lib.brainsynder.ServerVersion; 4 | import lib.brainsynder.SupportedVersion; 5 | import net.minecraft.world.entity.EntityType; 6 | import simplepets.brainsynder.api.entity.hostile.IEntityBreezePet; 7 | import simplepets.brainsynder.api.pet.PetType; 8 | import simplepets.brainsynder.api.user.PetUser; 9 | import simplepets.brainsynder.nms.entity.EntityPetOverride; 10 | 11 | /** 12 | * NMS: {@link net.minecraft.world.entity.monster.breeze.Breeze} 13 | */ 14 | @SupportedVersion(version = ServerVersion.v1_21) 15 | public class EntityBreezePet extends EntityPetOverride implements IEntityBreezePet { 16 | public EntityBreezePet(PetType type, PetUser user) { 17 | super(EntityType.BREEZE, type, user); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntityCaveSpiderPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.hostile.IEntityCaveSpiderPet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | import simplepets.brainsynder.nms.entity.EntityPetOverride; 8 | 9 | /** 10 | * NMS: {@link net.minecraft.world.entity.monster.CaveSpider} 11 | */ 12 | public class EntityCaveSpiderPet extends EntityPetOverride implements IEntityCaveSpiderPet { 13 | public EntityCaveSpiderPet(PetType type, PetUser user) { 14 | super(EntityType.CAVE_SPIDER, type, user); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntityCodPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.passive.IEntityCodPet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | import simplepets.brainsynder.nms.entity.EntityFishPet; 8 | 9 | /** 10 | * NMS: {@link net.minecraft.world.entity.animal.Cod} 11 | */ 12 | public class EntityCodPet extends EntityFishPet implements IEntityCodPet { 13 | public EntityCodPet(PetType type, PetUser user) { 14 | super(EntityType.COD, type, user); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntityDonkeyPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.passive.IEntityDonkeyPet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | import simplepets.brainsynder.nms.entity.branch.EntityDonkeyAbstractPet; 8 | 9 | /** 10 | * NMS: {@link net.minecraft.world.entity.animal.horse.Donkey} 11 | */ 12 | public class EntityDonkeyPet extends EntityDonkeyAbstractPet implements IEntityDonkeyPet { 13 | public EntityDonkeyPet(PetType type, PetUser user) { 14 | super(EntityType.DONKEY, type, user); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntityDrownedPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.hostile.IEntityDrownedPet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | 8 | /** 9 | * NMS: {@link net.minecraft.world.entity.monster.Drowned} 10 | */ 11 | public class EntityDrownedPet extends EntityZombiePet implements IEntityDrownedPet { 12 | public EntityDrownedPet(PetType type, PetUser user) { 13 | super(EntityType.DROWNED, type, user); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntityElderGuardianPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.hostile.IEntityElderGuardianPet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | 8 | /** 9 | * NMS: {@link net.minecraft.world.entity.monster.ElderGuardian} 10 | */ 11 | public class EntityElderGuardianPet extends EntityGuardianPet implements IEntityElderGuardianPet { 12 | public EntityElderGuardianPet(PetType type, PetUser user) { 13 | super(EntityType.ELDER_GUARDIAN, type, user); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntityEndermitePet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.hostile.IEntityEndermitePet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | import simplepets.brainsynder.nms.entity.EntityPetOverride; 8 | 9 | /** 10 | * NMS: {@link net.minecraft.world.entity.monster.Endermite} 11 | */ 12 | public class EntityEndermitePet extends EntityPetOverride implements IEntityEndermitePet { 13 | public EntityEndermitePet(PetType type, PetUser user) { 14 | super(EntityType.ENDERMITE, type, user); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntityEvokerPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.hostile.IEntityEvokerPet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | import simplepets.brainsynder.nms.entity.branch.EntityIllagerWizardPet; 8 | 9 | /** 10 | * NMS: {@link net.minecraft.world.entity.monster.Evoker} 11 | */ 12 | public class EntityEvokerPet extends EntityIllagerWizardPet implements IEntityEvokerPet { 13 | public EntityEvokerPet(PetType type, PetUser user) { 14 | super(EntityType.EVOKER, type, user); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntityGiantPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.hostile.IEntityGiantPet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | import simplepets.brainsynder.nms.entity.EntityPetOverride; 8 | 9 | /** 10 | * NMS: {@link net.minecraft.world.entity.monster.Giant} 11 | */ 12 | public class EntityGiantPet extends EntityPetOverride implements IEntityGiantPet { 13 | public EntityGiantPet(PetType type, PetUser user) { 14 | super(EntityType.GIANT, type, user); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntityHuskPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.hostile.IEntityHuskPet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | 8 | /** 9 | * NMS: {@link net.minecraft.world.entity.monster.Husk} 10 | */ 11 | public class EntityHuskPet extends EntityZombiePet implements IEntityHuskPet { 12 | public EntityHuskPet(PetType type, PetUser user) { 13 | super(EntityType.HUSK, type, user); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntityIllusionerPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.hostile.IEntityIllusionerPet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | import simplepets.brainsynder.nms.entity.branch.EntityIllagerWizardPet; 8 | 9 | /** 10 | * NMS: {@link net.minecraft.world.entity.monster.Illusioner} 11 | */ 12 | public class EntityIllusionerPet extends EntityIllagerWizardPet implements IEntityIllusionerPet { 13 | public EntityIllusionerPet(PetType type, PetUser user) { 14 | super(EntityType.ILLUSIONER, type, user); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntityIronGolemPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.passive.IEntityIronGolemPet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | import simplepets.brainsynder.nms.entity.EntityPetOverride; 8 | 9 | /** 10 | * NMS: {@link net.minecraft.world.entity.animal.IronGolem} 11 | */ 12 | public class EntityIronGolemPet extends EntityPetOverride implements IEntityIronGolemPet { 13 | public EntityIronGolemPet(PetType type, PetUser user) { 14 | super(EntityType.IRON_GOLEM, type, user); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntityMagmaCubePet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.hostile.IEntityMagmaCubePet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | 8 | /** 9 | * NMS: {@link net.minecraft.world.entity.monster.MagmaCube} 10 | */ 11 | public class EntityMagmaCubePet extends EntitySlimePet implements IEntityMagmaCubePet { 12 | public EntityMagmaCubePet(PetType type, PetUser user) { 13 | super(EntityType.MAGMA_CUBE, type, user); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntityMulePet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.passive.IEntityMulePet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | import simplepets.brainsynder.nms.entity.branch.EntityDonkeyAbstractPet; 8 | 9 | /** 10 | * NMS: {@link net.minecraft.world.entity.animal.horse.Mule} 11 | */ 12 | public class EntityMulePet extends EntityDonkeyAbstractPet implements IEntityMulePet { 13 | public EntityMulePet(PetType type, PetUser user) { 14 | super(EntityType.MULE, type, user); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntityOcelotPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.passive.IEntityOcelotPet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | import simplepets.brainsynder.nms.entity.EntityAgeablePet; 8 | 9 | /** 10 | * NMS: {@link net.minecraft.world.entity.animal.Ocelot} 11 | */ 12 | public class EntityOcelotPet extends EntityAgeablePet implements IEntityOcelotPet { 13 | public EntityOcelotPet(PetType type, PetUser user) { 14 | super(EntityType.OCELOT, type, user); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntityPigZombiePet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.hostile.IEntityPigZombiePet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | 8 | /** 9 | * NMS: {@link net.minecraft.world.entity.monster.ZombifiedPiglin} 10 | */ 11 | public class EntityPigZombiePet extends EntityZombiePet implements IEntityPigZombiePet { 12 | public EntityPigZombiePet(PetType type, PetUser user) { 13 | super(EntityType.ZOMBIFIED_PIGLIN, type, user); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntityPiglinBrutePet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.hostile.IEntityPiglinBrutePet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | import simplepets.brainsynder.nms.entity.branch.EntityPiglinAbstractPet; 8 | 9 | /** 10 | * NMS: {@link net.minecraft.world.entity.monster.piglin.PiglinBrute} 11 | */ 12 | public class EntityPiglinBrutePet extends EntityPiglinAbstractPet implements IEntityPiglinBrutePet { 13 | public EntityPiglinBrutePet(PetType type, PetUser user) { 14 | super(EntityType.PIGLIN_BRUTE, type, user); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntityPillagerPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.hostile.IEntityPillagerPet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | import simplepets.brainsynder.nms.entity.branch.EntityIllagerAbstractPet; 8 | 9 | /** 10 | * NMS: {@link net.minecraft.world.entity.monster.Pillager} 11 | */ 12 | public class EntityPillagerPet extends EntityIllagerAbstractPet implements IEntityPillagerPet { 13 | public EntityPillagerPet(PetType type, PetUser user) { 14 | super(EntityType.PILLAGER, type, user); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntitySalmonPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.passive.IEntitySalmonPet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | import simplepets.brainsynder.nms.entity.EntityFishPet; 8 | 9 | /** 10 | * NMS: {@link net.minecraft.world.entity.animal.Salmon} 11 | */ 12 | public class EntitySalmonPet extends EntityFishPet implements IEntitySalmonPet { 13 | public EntitySalmonPet(PetType type, PetUser user) { 14 | super(EntityType.SALMON, type, user); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntitySilverfishPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.hostile.IEntitySilverfishPet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | import simplepets.brainsynder.nms.entity.EntityPetOverride; 8 | 9 | /** 10 | * NMS: {@link net.minecraft.world.entity.monster.Silverfish} 11 | */ 12 | public class EntitySilverfishPet extends EntityPetOverride implements IEntitySilverfishPet { 13 | public EntitySilverfishPet(PetType type, PetUser user) { 14 | super(EntityType.SILVERFISH, type, user); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntitySkeletonHorsePet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.passive.IEntitySkeletonHorsePet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | import simplepets.brainsynder.nms.entity.branch.EntityHorseAbstractPet; 8 | 9 | /** 10 | * NMS: {@link net.minecraft.world.entity.animal.horse.SkeletonHorse} 11 | */ 12 | public class EntitySkeletonHorsePet extends EntityHorseAbstractPet implements IEntitySkeletonHorsePet { 13 | public EntitySkeletonHorsePet(PetType type, PetUser user) { 14 | super(EntityType.SKELETON_HORSE, type, user); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntitySkeletonPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.hostile.IEntitySkeletonPet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | import simplepets.brainsynder.nms.entity.EntityPetOverride; 8 | 9 | /** 10 | * NMS: {@link net.minecraft.world.entity.monster.Skeleton} 11 | */ 12 | public class EntitySkeletonPet extends EntityPetOverride implements IEntitySkeletonPet { 13 | public EntitySkeletonPet(PetType type, PetUser user) { 14 | super(EntityType.SKELETON, type, user); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntitySquidPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import net.minecraft.world.entity.Mob; 5 | import simplepets.brainsynder.api.entity.passive.IEntitySquidPet; 6 | import simplepets.brainsynder.api.pet.PetType; 7 | import simplepets.brainsynder.api.user.PetUser; 8 | import simplepets.brainsynder.nms.entity.EntityAgeablePet; 9 | 10 | /** 11 | * NMS: {@link net.minecraft.world.entity.animal.Squid} 12 | */ 13 | public class EntitySquidPet extends EntityAgeablePet implements IEntitySquidPet { 14 | public EntitySquidPet (EntityType entitytypes, PetType type, PetUser user) { 15 | super(entitytypes, type, user); 16 | } 17 | 18 | public EntitySquidPet(PetType type, PetUser user) { 19 | super(EntityType.SQUID, type, user); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntityStrayPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.hostile.IEntityStrayPet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | import simplepets.brainsynder.nms.entity.EntityPetOverride; 8 | 9 | /** 10 | * NMS: {@link net.minecraft.world.entity.monster.Stray} 11 | */ 12 | public class EntityStrayPet extends EntityPetOverride implements IEntityStrayPet { 13 | public EntityStrayPet(PetType type, PetUser user) { 14 | super(EntityType.STRAY, type, user); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntityTadpolePet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import lib.brainsynder.ServerVersion; 4 | import lib.brainsynder.SupportedVersion; 5 | import net.minecraft.world.entity.EntityType; 6 | import simplepets.brainsynder.api.entity.passive.IEntityTadpolePet; 7 | import simplepets.brainsynder.api.pet.PetType; 8 | import simplepets.brainsynder.api.user.PetUser; 9 | import simplepets.brainsynder.nms.entity.EntityFishPet; 10 | 11 | /** 12 | * NMS: {@link net.minecraft.world.entity.animal.frog.Tadpole} 13 | */ 14 | @SupportedVersion(version = ServerVersion.v1_19) 15 | public class EntityTadpolePet extends EntityFishPet implements IEntityTadpolePet { 16 | public EntityTadpolePet(PetType type, PetUser user) { 17 | super(EntityType.TADPOLE, type, user); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntityTraderLlamaPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.passive.IEntityTraderLlamaPet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | 8 | /** 9 | * NMS: {@link net.minecraft.world.entity.animal.horse.TraderLlama} 10 | */ 11 | public class EntityTraderLlamaPet extends EntityLlamaPet implements IEntityTraderLlamaPet { 12 | public EntityTraderLlamaPet(PetType type, PetUser user) { 13 | super(EntityType.TRADER_LLAMA, type, user); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntityWanderingTraderPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.passive.IEntityWanderingTraderPet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | import simplepets.brainsynder.nms.entity.EntityPetOverride; 8 | 9 | /** 10 | * NMS: {@link net.minecraft.world.entity.npc.WanderingTrader} 11 | */ 12 | public class EntityWanderingTraderPet extends EntityPetOverride implements IEntityWanderingTraderPet { 13 | public EntityWanderingTraderPet(PetType type, PetUser user) { 14 | super(EntityType.WANDERING_TRADER, type, user); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntityWitherSkeletonPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.hostile.IEntityWitherSkeletonPet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | import simplepets.brainsynder.nms.entity.EntityPetOverride; 8 | 9 | /** 10 | * NMS: {@link net.minecraft.world.entity.monster.WitherSkeleton} 11 | */ 12 | public class EntityWitherSkeletonPet extends EntityPetOverride implements IEntityWitherSkeletonPet { 13 | public EntityWitherSkeletonPet(PetType type, PetUser user) { 14 | super(EntityType.WITHER_SKELETON, type, user); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntityZoglinPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.hostile.IEntityZoglinPet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | import simplepets.brainsynder.nms.entity.EntityAgeablePet; 8 | 9 | /** 10 | * NMS: {@link net.minecraft.world.entity.monster.Zoglin} 11 | */ 12 | public class EntityZoglinPet extends EntityAgeablePet implements IEntityZoglinPet { 13 | public EntityZoglinPet(PetType type, PetUser user) { 14 | super(EntityType.ZOGLIN, type, user); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/entity/list/EntityZombieHorsePet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.passive.IEntityZombieHorsePet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | import simplepets.brainsynder.nms.entity.branch.EntityHorseAbstractPet; 8 | 9 | /** 10 | * NMS: {@link net.minecraft.world.entity.animal.horse.ZombieHorse} 11 | */ 12 | public class EntityZombieHorsePet extends EntityHorseAbstractPet implements IEntityZombieHorsePet { 13 | public EntityZombieHorsePet(PetType type, PetUser user) { 14 | super(EntityType.ZOMBIE_HORSE, type, user); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/utils/DataWatcherValue.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 3 | * BSDevelopment 4 | */ 5 | 6 | package simplepets.brainsynder.nms.utils; 7 | 8 | import net.minecraft.network.syncher.EntityDataAccessor; 9 | 10 | public record DataWatcherValue(EntityDataAccessor accessor, Object value) {} 11 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/utils/InvalidInputException.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.utils; 2 | 3 | public class InvalidInputException extends RuntimeException { 4 | 5 | public InvalidInputException (String message) { 6 | super("[SimplePets Error] "+message); 7 | } 8 | 9 | public InvalidInputException (Exception exception) { 10 | super("[SimplePets Error] "+exception.getMessage(), exception); 11 | } 12 | 13 | public InvalidInputException (String message, Exception exception) { 14 | super("[SimplePets Error] "+message+" ("+exception.getMessage()+")", exception); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/utils/PetDataAccess.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.utils; 2 | 3 | import net.minecraft.network.syncher.EntityDataAccessor; 4 | 5 | import java.util.LinkedHashMap; 6 | 7 | public class PetDataAccess { 8 | private final LinkedHashMap data = new LinkedHashMap(); 9 | 10 | public void define (EntityDataAccessor accessor, Object value) { 11 | data.put(accessor, value); 12 | } 13 | 14 | public LinkedHashMap getAccessorDefinitions() { 15 | return data; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /nms/master/src/simplepets/brainsynder/nms/utils/VariantUtils.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.utils; 2 | 3 | import net.minecraft.core.Holder; 4 | import net.minecraft.core.Registry; 5 | import net.minecraft.core.RegistryAccess; 6 | import net.minecraft.resources.ResourceKey; 7 | 8 | import java.util.Objects; 9 | import java.util.Optional; 10 | 11 | public class VariantUtils { 12 | public static final String TAG_VARIANT = "variant"; 13 | 14 | public static Holder getDefaultOrAny(RegistryAccess var0, ResourceKey var1) { 15 | Registry var2 = var0.lookupOrThrow(var1.registryKey()); 16 | Optional var10000 = var2.get(var1); 17 | Objects.requireNonNull(var2); 18 | return (Holder)var10000.or(var2::getAny).orElseThrow(); 19 | } 20 | 21 | public static Holder getAny(RegistryAccess var0, ResourceKey> var1) { 22 | return var0.lookupOrThrow(var1).getAny().orElseThrow(); 23 | } 24 | } -------------------------------------------------------------------------------- /nms/version-1.19.1/src/simplepets/brainsynder/listeners/breaking/DismountListener.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.listeners.breaking; 2 | 3 | import org.bukkit.entity.Player; 4 | import org.bukkit.event.EventHandler; 5 | import org.bukkit.event.Listener; 6 | import org.spigotmc.event.entity.EntityDismountEvent; 7 | import simplepets.brainsynder.api.entity.IEntityPet; 8 | import simplepets.brainsynder.api.pet.CommandReason; 9 | import simplepets.brainsynder.api.plugin.SimplePets; 10 | 11 | public class DismountListener implements Listener { 12 | @EventHandler 13 | public void onDismount (EntityDismountEvent event) { 14 | if ((event.getEntity() instanceof Player) && SimplePets.isPetEntity(event.getDismounted())) { 15 | SimplePets.getUserManager().getPetUser((Player) event.getEntity()).ifPresent(user -> { 16 | SimplePets.getSpawnUtil().getHandle(event.getDismounted()).ifPresent(o -> { 17 | IEntityPet pet = (IEntityPet) o; 18 | SimplePets.getPetUtilities().runPetCommands(CommandReason.RIDE_DISMOUNT, user, pet.getPetType()); 19 | }); 20 | }); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /nms/version-1.19.2/src/simplepets/brainsynder/listeners/breaking/DismountListener.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.listeners.breaking; 2 | 3 | import org.bukkit.entity.Player; 4 | import org.bukkit.event.EventHandler; 5 | import org.bukkit.event.Listener; 6 | import org.spigotmc.event.entity.EntityDismountEvent; 7 | import simplepets.brainsynder.api.entity.IEntityPet; 8 | import simplepets.brainsynder.api.pet.CommandReason; 9 | import simplepets.brainsynder.api.plugin.SimplePets; 10 | 11 | public class DismountListener implements Listener { 12 | @EventHandler 13 | public void onDismount (EntityDismountEvent event) { 14 | if ((event.getEntity() instanceof Player) && SimplePets.isPetEntity(event.getDismounted())) { 15 | SimplePets.getUserManager().getPetUser((Player) event.getEntity()).ifPresent(user -> { 16 | SimplePets.getSpawnUtil().getHandle(event.getDismounted()).ifPresent(o -> { 17 | IEntityPet pet = (IEntityPet) o; 18 | SimplePets.getPetUtilities().runPetCommands(CommandReason.RIDE_DISMOUNT, user, pet.getPetType()); 19 | }); 20 | }); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /nms/version-1.19.3/src/simplepets/brainsynder/listeners/breaking/DismountListener.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.listeners.breaking; 2 | 3 | import org.bukkit.entity.Player; 4 | import org.bukkit.event.EventHandler; 5 | import org.bukkit.event.Listener; 6 | import org.spigotmc.event.entity.EntityDismountEvent; 7 | import simplepets.brainsynder.api.entity.IEntityPet; 8 | import simplepets.brainsynder.api.pet.CommandReason; 9 | import simplepets.brainsynder.api.plugin.SimplePets; 10 | 11 | public class DismountListener implements Listener { 12 | @EventHandler 13 | public void onDismount (EntityDismountEvent event) { 14 | if ((event.getEntity() instanceof Player) && SimplePets.isPetEntity(event.getDismounted())) { 15 | SimplePets.getUserManager().getPetUser((Player) event.getEntity()).ifPresent(user -> { 16 | SimplePets.getSpawnUtil().getHandle(event.getDismounted()).ifPresent(o -> { 17 | IEntityPet pet = (IEntityPet) o; 18 | SimplePets.getPetUtilities().runPetCommands(CommandReason.RIDE_DISMOUNT, user, pet.getPetType()); 19 | }); 20 | }); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /nms/version-1.19.4/src/simplepets/brainsynder/listeners/breaking/DismountListener.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.listeners.breaking; 2 | 3 | import org.bukkit.entity.Player; 4 | import org.bukkit.event.EventHandler; 5 | import org.bukkit.event.Listener; 6 | import org.spigotmc.event.entity.EntityDismountEvent; 7 | import simplepets.brainsynder.api.entity.IEntityPet; 8 | import simplepets.brainsynder.api.pet.CommandReason; 9 | import simplepets.brainsynder.api.plugin.SimplePets; 10 | 11 | public class DismountListener implements Listener { 12 | @EventHandler 13 | public void onDismount (EntityDismountEvent event) { 14 | if ((event.getEntity() instanceof Player) && SimplePets.isPetEntity(event.getDismounted())) { 15 | SimplePets.getUserManager().getPetUser((Player) event.getEntity()).ifPresent(user -> { 16 | SimplePets.getSpawnUtil().getHandle(event.getDismounted()).ifPresent(o -> { 17 | IEntityPet pet = (IEntityPet) o; 18 | SimplePets.getPetUtilities().runPetCommands(CommandReason.RIDE_DISMOUNT, user, pet.getPetType()); 19 | }); 20 | }); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /nms/version-1.19/src/simplepets/brainsynder/listeners/breaking/DismountListener.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.listeners.breaking; 2 | 3 | import org.bukkit.entity.Player; 4 | import org.bukkit.event.EventHandler; 5 | import org.bukkit.event.Listener; 6 | import org.spigotmc.event.entity.EntityDismountEvent; 7 | import simplepets.brainsynder.api.entity.IEntityPet; 8 | import simplepets.brainsynder.api.pet.CommandReason; 9 | import simplepets.brainsynder.api.plugin.SimplePets; 10 | 11 | public class DismountListener implements Listener { 12 | @EventHandler 13 | public void onDismount (EntityDismountEvent event) { 14 | if ((event.getEntity() instanceof Player) && SimplePets.isPetEntity(event.getDismounted())) { 15 | SimplePets.getUserManager().getPetUser((Player) event.getEntity()).ifPresent(user -> { 16 | SimplePets.getSpawnUtil().getHandle(event.getDismounted()).ifPresent(o -> { 17 | IEntityPet pet = (IEntityPet) o; 18 | SimplePets.getPetUtilities().runPetCommands(CommandReason.RIDE_DISMOUNT, user, pet.getPetType()); 19 | }); 20 | }); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /nms/version-1.20.1/src/simplepets/brainsynder/listeners/breaking/DismountListener.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.listeners.breaking; 2 | 3 | import org.bukkit.entity.Player; 4 | import org.bukkit.event.EventHandler; 5 | import org.bukkit.event.Listener; 6 | import org.spigotmc.event.entity.EntityDismountEvent; 7 | import simplepets.brainsynder.api.entity.IEntityPet; 8 | import simplepets.brainsynder.api.pet.CommandReason; 9 | import simplepets.brainsynder.api.plugin.SimplePets; 10 | 11 | public class DismountListener implements Listener { 12 | @EventHandler 13 | public void onDismount (EntityDismountEvent event) { 14 | if ((event.getEntity() instanceof Player) && SimplePets.isPetEntity(event.getDismounted())) { 15 | SimplePets.getUserManager().getPetUser((Player) event.getEntity()).ifPresent(user -> { 16 | SimplePets.getSpawnUtil().getHandle(event.getDismounted()).ifPresent(o -> { 17 | IEntityPet pet = (IEntityPet) o; 18 | SimplePets.getPetUtilities().runPetCommands(CommandReason.RIDE_DISMOUNT, user, pet.getPetType()); 19 | }); 20 | }); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /nms/version-1.20.2/src/simplepets/brainsynder/listeners/breaking/DismountListener.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.listeners.breaking; 2 | 3 | import org.bukkit.entity.Player; 4 | import org.bukkit.event.EventHandler; 5 | import org.bukkit.event.Listener; 6 | import org.spigotmc.event.entity.EntityDismountEvent; 7 | import simplepets.brainsynder.api.entity.IEntityPet; 8 | import simplepets.brainsynder.api.pet.CommandReason; 9 | import simplepets.brainsynder.api.plugin.SimplePets; 10 | 11 | public class DismountListener implements Listener { 12 | @EventHandler 13 | public void onDismount (EntityDismountEvent event) { 14 | if ((event.getEntity() instanceof Player) && SimplePets.isPetEntity(event.getDismounted())) { 15 | SimplePets.getUserManager().getPetUser((Player) event.getEntity()).ifPresent(user -> { 16 | SimplePets.getSpawnUtil().getHandle(event.getDismounted()).ifPresent(o -> { 17 | IEntityPet pet = (IEntityPet) o; 18 | SimplePets.getPetUtilities().runPetCommands(CommandReason.RIDE_DISMOUNT, user, pet.getPetType()); 19 | }); 20 | }); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /nms/version-1.20.3/src/simplepets/brainsynder/listeners/breaking/DismountListener.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.listeners.breaking; 2 | 3 | import org.bukkit.entity.Player; 4 | import org.bukkit.event.EventHandler; 5 | import org.bukkit.event.Listener; 6 | import org.spigotmc.event.entity.EntityDismountEvent; 7 | import simplepets.brainsynder.api.entity.IEntityPet; 8 | import simplepets.brainsynder.api.pet.CommandReason; 9 | import simplepets.brainsynder.api.plugin.SimplePets; 10 | 11 | public class DismountListener implements Listener { 12 | @EventHandler 13 | public void onDismount (EntityDismountEvent event) { 14 | if ((event.getEntity() instanceof Player) && SimplePets.isPetEntity(event.getDismounted())) { 15 | SimplePets.getUserManager().getPetUser((Player) event.getEntity()).ifPresent(user -> { 16 | SimplePets.getSpawnUtil().getHandle(event.getDismounted()).ifPresent(o -> { 17 | IEntityPet pet = (IEntityPet) o; 18 | SimplePets.getPetUtilities().runPetCommands(CommandReason.RIDE_DISMOUNT, user, pet.getPetType()); 19 | }); 20 | }); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /nms/version-1.20.4/src/simplepets/brainsynder/listeners/breaking/DismountListener.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.listeners.breaking; 2 | 3 | import org.bukkit.entity.Player; 4 | import org.bukkit.event.EventHandler; 5 | import org.bukkit.event.Listener; 6 | import org.spigotmc.event.entity.EntityDismountEvent; 7 | import simplepets.brainsynder.api.entity.IEntityPet; 8 | import simplepets.brainsynder.api.pet.CommandReason; 9 | import simplepets.brainsynder.api.plugin.SimplePets; 10 | 11 | public class DismountListener implements Listener { 12 | @EventHandler 13 | public void onDismount (EntityDismountEvent event) { 14 | if ((event.getEntity() instanceof Player) && SimplePets.isPetEntity(event.getDismounted())) { 15 | SimplePets.getUserManager().getPetUser((Player) event.getEntity()).ifPresent(user -> { 16 | SimplePets.getSpawnUtil().getHandle(event.getDismounted()).ifPresent(o -> { 17 | IEntityPet pet = (IEntityPet) o; 18 | SimplePets.getPetUtilities().runPetCommands(CommandReason.RIDE_DISMOUNT, user, pet.getPetType()); 19 | }); 20 | }); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /nms/version-1.20/src/simplepets/brainsynder/listeners/breaking/DismountListener.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.listeners.breaking; 2 | 3 | import org.bukkit.entity.Player; 4 | import org.bukkit.event.EventHandler; 5 | import org.bukkit.event.Listener; 6 | import org.spigotmc.event.entity.EntityDismountEvent; 7 | import simplepets.brainsynder.api.entity.IEntityPet; 8 | import simplepets.brainsynder.api.pet.CommandReason; 9 | import simplepets.brainsynder.api.plugin.SimplePets; 10 | 11 | public class DismountListener implements Listener { 12 | @EventHandler 13 | public void onDismount (EntityDismountEvent event) { 14 | if ((event.getEntity() instanceof Player) && SimplePets.isPetEntity(event.getDismounted())) { 15 | SimplePets.getUserManager().getPetUser((Player) event.getEntity()).ifPresent(user -> { 16 | SimplePets.getSpawnUtil().getHandle(event.getDismounted()).ifPresent(o -> { 17 | IEntityPet pet = (IEntityPet) o; 18 | SimplePets.getPetUtilities().runPetCommands(CommandReason.RIDE_DISMOUNT, user, pet.getPetType()); 19 | }); 20 | }); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /nms/version-1.21.1/src/simplepets/brainsynder/nms/entity/list/EntitySquidPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import net.minecraft.world.entity.Mob; 5 | import simplepets.brainsynder.api.entity.passive.IEntitySquidPet; 6 | import simplepets.brainsynder.api.pet.PetType; 7 | import simplepets.brainsynder.api.user.PetUser; 8 | import simplepets.brainsynder.nms.entity.EntityPetOverride; 9 | 10 | /** 11 | * NMS: {@link net.minecraft.world.entity.animal.Squid} 12 | */ 13 | public class EntitySquidPet extends EntityPetOverride implements IEntitySquidPet { 14 | public EntitySquidPet (EntityType entitytypes, PetType type, PetUser user) { 15 | super(entitytypes, type, user); 16 | } 17 | 18 | public EntitySquidPet(PetType type, PetUser user) { 19 | super(EntityType.SQUID, type, user); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /nms/version-1.21.3/src/simplepets/brainsynder/nms/entity/list/EntityChickenPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.passive.IEntityChickenPet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | import simplepets.brainsynder.nms.entity.EntityAgeablePet; 8 | 9 | /** 10 | * NMS: {@link net.minecraft.world.entity.animal.Chicken} 11 | */ 12 | public class EntityChickenPet extends EntityAgeablePet implements IEntityChickenPet { 13 | public EntityChickenPet(PetType type, PetUser user) { 14 | super(EntityType.CHICKEN, type, user); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /nms/version-1.21.3/src/simplepets/brainsynder/nms/entity/list/EntityCowPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.passive.IEntityCowPet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | import simplepets.brainsynder.nms.entity.EntityAgeablePet; 8 | 9 | /** 10 | * NMS: {@link net.minecraft.world.entity.animal.Cow} 11 | */ 12 | public class EntityCowPet extends EntityAgeablePet implements IEntityCowPet { 13 | public EntityCowPet(PetType type, PetUser user) { 14 | super(EntityType.COW, type, user); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /nms/version-1.21.4/src/simplepets/brainsynder/nms/entity/list/EntityChickenPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.passive.IEntityChickenPet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | import simplepets.brainsynder.nms.entity.EntityAgeablePet; 8 | 9 | /** 10 | * NMS: {@link net.minecraft.world.entity.animal.Chicken} 11 | */ 12 | public class EntityChickenPet extends EntityAgeablePet implements IEntityChickenPet { 13 | public EntityChickenPet(PetType type, PetUser user) { 14 | super(EntityType.CHICKEN, type, user); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /nms/version-1.21.4/src/simplepets/brainsynder/nms/entity/list/EntityCowPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import simplepets.brainsynder.api.entity.passive.IEntityCowPet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.user.PetUser; 7 | import simplepets.brainsynder.nms.entity.EntityAgeablePet; 8 | 9 | /** 10 | * NMS: {@link net.minecraft.world.entity.animal.Cow} 11 | */ 12 | public class EntityCowPet extends EntityAgeablePet implements IEntityCowPet { 13 | public EntityCowPet(PetType type, PetUser user) { 14 | super(EntityType.COW, type, user); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /nms/version-1.21/src/simplepets/brainsynder/nms/entity/list/EntitySquidPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.nms.entity.list; 2 | 3 | import net.minecraft.world.entity.EntityType; 4 | import net.minecraft.world.entity.Mob; 5 | import simplepets.brainsynder.api.entity.passive.IEntitySquidPet; 6 | import simplepets.brainsynder.api.pet.PetType; 7 | import simplepets.brainsynder.api.user.PetUser; 8 | import simplepets.brainsynder.nms.entity.EntityPetOverride; 9 | 10 | /** 11 | * NMS: {@link net.minecraft.world.entity.animal.Squid} 12 | */ 13 | public class EntitySquidPet extends EntityPetOverride implements IEntitySquidPet { 14 | public EntitySquidPet (EntityType entitytypes, PetType type, PetUser user) { 15 | super(entitytypes, type, user); 16 | } 17 | 18 | public EntitySquidPet(PetType type, PetUser user) { 19 | super(EntityType.SQUID, type, user); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /plugin-api/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | 8 | simplepets.brainsynder 9 | SimplePets 10 | 1 11 | 12 | 13 | API 14 | ${revision} 15 | 16 | 17 | src/ 18 | 19 | 20 | 21 | -API (DEVELOPERS ONLY) 22 | 23 | 24 | 25 | 26 | org.spigotmc 27 | spigot-api 28 | ${spigot.version} 29 | provided 30 | 31 | 32 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/addon/AddonConfig.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.addon; 2 | 3 | import lib.brainsynder.files.YamlFile; 4 | 5 | import java.io.File; 6 | 7 | public abstract class AddonConfig extends YamlFile { 8 | public AddonConfig(File folder, String fileName) { 9 | super(folder, fileName); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/addon/PermissionData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.addon; 2 | 3 | public class PermissionData { 4 | private final String permission; 5 | private AddonPermissions.AllowType type = AddonPermissions.AllowType.NONE; 6 | private String description = ""; 7 | 8 | public PermissionData(String permission) {this.permission = permission;} 9 | 10 | public PermissionData setType(AddonPermissions.AllowType type) { 11 | this.type = type; 12 | return this; 13 | } 14 | 15 | public PermissionData setDescription(String description) { 16 | this.description = description; 17 | return this; 18 | } 19 | 20 | public String getDescription() { 21 | return description; 22 | } 23 | 24 | public AddonPermissions.AllowType getType() { 25 | return type; 26 | } 27 | 28 | public String getPermission() { 29 | return permission; 30 | } 31 | 32 | @Override 33 | public String toString() { 34 | return "PermissionData{" + 35 | "permission='" + permission + '\'' + 36 | ", type=" + type + 37 | ", description='" + description + '\'' + 38 | '}'; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/Namespace.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Retention(RetentionPolicy.RUNTIME) 9 | @Target({ElementType.TYPE}) 10 | public @interface Namespace { 11 | String namespace(); 12 | } -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/animation/MovementFrames.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.animation; 2 | 3 | import java.util.ArrayList; 4 | import java.util.Collections; 5 | import java.util.List; 6 | 7 | public class MovementFrames { 8 | private List frames = new ArrayList<>(); 9 | 10 | public MovementFrames(AnimationFrame... frames) { 11 | Collections.addAll(this.frames, frames); 12 | } 13 | 14 | public MovementFrames(List frames) { 15 | this.frames = frames; 16 | } 17 | 18 | public List getFrames() { 19 | return frames; 20 | } 21 | } -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityBlazePet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | 4 | import simplepets.brainsynder.api.entity.IEntityPet; 5 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 6 | import simplepets.brainsynder.api.entity.misc.IFlyableEntity; 7 | import simplepets.brainsynder.api.pet.PetType; 8 | 9 | @EntityPetType(petType = PetType.BLAZE) 10 | public interface IEntityBlazePet extends IEntityPet, IFlyableEntity { 11 | } 12 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityBoggedPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import lib.brainsynder.ServerVersion; 4 | import lib.brainsynder.SupportedVersion; 5 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 6 | import simplepets.brainsynder.api.entity.misc.ISheared; 7 | import simplepets.brainsynder.api.entity.misc.ISkeletonAbstract; 8 | import simplepets.brainsynder.api.pet.PetType; 9 | 10 | @EntityPetType(petType = PetType.BOGGED) 11 | @SupportedVersion(version = ServerVersion.v1_21) 12 | public interface IEntityBoggedPet extends ISkeletonAbstract, ISheared { 13 | } 14 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityBreezePet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | 4 | import lib.brainsynder.ServerVersion; 5 | import lib.brainsynder.SupportedVersion; 6 | import simplepets.brainsynder.api.entity.IEntityPet; 7 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 8 | import simplepets.brainsynder.api.pet.PetType; 9 | 10 | @EntityPetType(petType = PetType.BREEZE) 11 | @SupportedVersion(version = ServerVersion.v1_21) 12 | public interface IEntityBreezePet extends IEntityPet { 13 | } 14 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityCaveSpiderPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.pet.PetType; 5 | 6 | @EntityPetType(petType = PetType.CAVE_SPIDER) 7 | public interface IEntityCaveSpiderPet extends IEntitySpiderPet { 8 | } 9 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityCreakingPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | 4 | import lib.brainsynder.ServerVersion; 5 | import lib.brainsynder.SupportedVersion; 6 | import simplepets.brainsynder.api.entity.IEntityPet; 7 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 8 | import simplepets.brainsynder.api.pet.PetType; 9 | 10 | @EntityPetType(petType = PetType.CREAKING) 11 | @SupportedVersion(version = ServerVersion.v1_21_4) 12 | public interface IEntityCreakingPet extends IEntityPet { 13 | } 14 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityCreeperPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 5 | import simplepets.brainsynder.api.entity.misc.IPowered; 6 | import simplepets.brainsynder.api.pet.PetType; 7 | 8 | @EntityPetType(petType = PetType.CREEPER) 9 | public interface IEntityCreeperPet extends IEntityPet, IPowered { 10 | default boolean isIgnited() {return false;} 11 | 12 | default void setIgnited(boolean flag) {} 13 | } 14 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityDolphinPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | 7 | @EntityPetType(petType = PetType.DOLPHIN) 8 | public interface IEntityDolphinPet extends IEntityPet { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityDrownedPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.pet.PetType; 5 | 6 | @EntityPetType(petType = PetType.DROWNED) 7 | public interface IEntityDrownedPet extends IEntityZombiePet { 8 | } 9 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityElderGuardianPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.pet.PetType; 5 | 6 | @EntityPetType(petType = PetType.ELDER_GUARDIAN) 7 | public interface IEntityElderGuardianPet extends IEntityGuardianPet { 8 | } 9 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityEndermanPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import org.bukkit.block.data.BlockData; 4 | import simplepets.brainsynder.api.entity.IEntityPet; 5 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 6 | import simplepets.brainsynder.api.pet.PetType; 7 | 8 | @EntityPetType(petType = PetType.ENDERMAN) 9 | public interface IEntityEndermanPet extends IEntityPet { 10 | boolean isScreaming(); 11 | 12 | void setScreaming(boolean flag); 13 | 14 | BlockData getCarriedBlock(); 15 | 16 | void setCarriedBlock(BlockData blockData); 17 | } 18 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityEndermitePet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | 7 | @EntityPetType(petType = PetType.ENDERMITE) 8 | public interface IEntityEndermitePet extends IEntityPet { 9 | } 10 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityEvokerPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.entity.misc.IEntityWizard; 5 | import simplepets.brainsynder.api.entity.misc.IRaider; 6 | import simplepets.brainsynder.api.pet.PetType; 7 | 8 | @EntityPetType(petType = PetType.EVOKER) 9 | public interface IEntityEvokerPet extends IEntityWizard, IRaider { 10 | } 11 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityGhastPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 5 | import simplepets.brainsynder.api.entity.misc.IFlyableEntity; 6 | import simplepets.brainsynder.api.pet.PetType; 7 | 8 | @EntityPetType(petType = PetType.GHAST) 9 | public interface IEntityGhastPet extends IEntityPet, IFlyableEntity { 10 | @Override 11 | default boolean isBig() { 12 | return true; 13 | } 14 | 15 | boolean isScreaming(); 16 | 17 | void setScreaming(boolean var); 18 | } 19 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityGiantPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | 7 | @EntityPetType(petType = PetType.GIANT) 8 | public interface IEntityGiantPet extends IEntityPet { 9 | @Override 10 | default boolean isBig() { 11 | return true; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityGuardianPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | 7 | @EntityPetType(petType = PetType.GUARDIAN) 8 | public interface IEntityGuardianPet extends IEntityPet { 9 | } 10 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityHoglinPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | 4 | import lib.brainsynder.ServerVersion; 5 | import lib.brainsynder.SupportedVersion; 6 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 7 | import simplepets.brainsynder.api.entity.misc.IAgeablePet; 8 | import simplepets.brainsynder.api.entity.misc.IShaking; 9 | import simplepets.brainsynder.api.pet.PetType; 10 | 11 | @EntityPetType(petType = PetType.HOGLIN) 12 | @SupportedVersion(version = ServerVersion.v1_16_R1) 13 | public interface IEntityHoglinPet extends IAgeablePet, IShaking {} 14 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityHuskPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.pet.PetType; 5 | 6 | @EntityPetType(petType = PetType.HUSK) 7 | public interface IEntityHuskPet extends IEntityZombiePet { 8 | } 9 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityIllusionerPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.entity.misc.IEntityWizard; 5 | import simplepets.brainsynder.api.entity.misc.IRaider; 6 | import simplepets.brainsynder.api.pet.PetType; 7 | 8 | @EntityPetType(petType = PetType.ILLUSIONER) 9 | public interface IEntityIllusionerPet extends IEntityWizard, IRaider { 10 | } 11 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityMagmaCubePet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.pet.PetType; 5 | 6 | @EntityPetType(petType = PetType.MAGMA_CUBE) 7 | public interface IEntityMagmaCubePet extends IEntitySlimePet { 8 | } 9 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityPhantomPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.entity.misc.IFlyableEntity; 5 | import simplepets.brainsynder.api.entity.misc.ISizable; 6 | import simplepets.brainsynder.api.pet.PetType; 7 | 8 | @EntityPetType(petType = PetType.PHANTOM) 9 | public interface IEntityPhantomPet extends ISizable,IFlyableEntity { 10 | } 11 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityPigZombiePet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import lib.brainsynder.ServerVersion; 4 | import lib.brainsynder.SupportedVersion; 5 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 6 | import simplepets.brainsynder.api.pet.PetType; 7 | 8 | @EntityPetType(petType = PetType.ZOMBIFIED_PIGLIN) 9 | @SupportedVersion(version = ServerVersion.v1_16_R1) 10 | public interface IEntityPigZombiePet extends IEntityZombiePet {} 11 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityPiglinBrutePet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import lib.brainsynder.ServerVersion; 4 | import lib.brainsynder.SupportedVersion; 5 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 6 | import simplepets.brainsynder.api.entity.misc.IShaking; 7 | import simplepets.brainsynder.api.pet.PetType; 8 | 9 | @EntityPetType(petType = PetType.PIGLIN_BRUTE) 10 | @SupportedVersion(version = ServerVersion.v1_16_R1) 11 | public interface IEntityPiglinBrutePet extends IShaking { 12 | } 13 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityPiglinPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import lib.brainsynder.ServerVersion; 4 | import lib.brainsynder.SupportedVersion; 5 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 6 | import simplepets.brainsynder.api.entity.misc.IAgeablePet; 7 | import simplepets.brainsynder.api.entity.misc.IShaking; 8 | import simplepets.brainsynder.api.pet.PetType; 9 | 10 | @EntityPetType(petType = PetType.PIGLIN) 11 | @SupportedVersion(version = ServerVersion.v1_16_R1) 12 | public interface IEntityPiglinPet extends IAgeablePet, IShaking { 13 | boolean isCharging(); 14 | 15 | void setCharging(boolean charging); 16 | 17 | boolean isDancing(); 18 | 19 | void setDancing(boolean dancing); 20 | } 21 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityPillagerPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 5 | import simplepets.brainsynder.api.entity.misc.IRaider; 6 | import simplepets.brainsynder.api.pet.PetType; 7 | 8 | @EntityPetType(petType = PetType.PILLAGER) 9 | public interface IEntityPillagerPet extends IEntityPet, IRaider { 10 | } 11 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityPufferFishPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.entity.misc.IEntityFishPet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.wrappers.PufferState; 7 | 8 | @EntityPetType(petType = PetType.PUFFERFISH) 9 | public interface IEntityPufferFishPet extends IEntityFishPet { 10 | PufferState getPuffState(); 11 | 12 | void setPuffState(PufferState state); 13 | } 14 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityRavagerPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 5 | import simplepets.brainsynder.api.entity.misc.IRaider; 6 | import simplepets.brainsynder.api.entity.misc.ISpecialRiding; 7 | import simplepets.brainsynder.api.pet.PetType; 8 | 9 | @EntityPetType(petType = PetType.RAVAGER) 10 | public interface IEntityRavagerPet extends IEntityPet, ISpecialRiding, IRaider { 11 | boolean isChomping(); 12 | 13 | void setChomping(boolean chomping); 14 | } 15 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityShulkerPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.entity.misc.IDisplayEntity; 5 | import simplepets.brainsynder.api.entity.misc.IRainbow; 6 | import simplepets.brainsynder.api.entity.misc.IResetColor; 7 | import simplepets.brainsynder.api.pet.PetType; 8 | 9 | @EntityPetType(petType = PetType.SHULKER) 10 | public interface IEntityShulkerPet extends IResetColor, IRainbow, IDisplayEntity { 11 | boolean isShulkerClosed(); 12 | 13 | void setShulkerClosed(boolean var); 14 | } 15 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntitySilverfishPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | 7 | @EntityPetType(petType = PetType.SILVERFISH) 8 | public interface IEntitySilverfishPet extends IEntityPet { 9 | } 10 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntitySkeletonPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.entity.misc.ISkeletonAbstract; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | 7 | @EntityPetType(petType = PetType.SKELETON) 8 | public interface IEntitySkeletonPet extends ISkeletonAbstract { 9 | } 10 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntitySlimePet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 5 | import simplepets.brainsynder.api.entity.misc.ISizable; 6 | import simplepets.brainsynder.api.pet.PetType; 7 | 8 | @EntityPetType(petType = PetType.SLIME) 9 | public interface IEntitySlimePet extends ISizable, IEntityPet { 10 | } 11 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntitySpiderPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | 7 | @EntityPetType(petType = PetType.SPIDER) 8 | public interface IEntitySpiderPet extends IEntityPet { 9 | } 10 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityStrayPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.pet.PetType; 5 | 6 | @EntityPetType(petType = PetType.STRAY) 7 | public interface IEntityStrayPet extends IEntitySkeletonPet { 8 | } 9 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityVexPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | 4 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 5 | import simplepets.brainsynder.api.entity.misc.IEntityNoClipPet; 6 | import simplepets.brainsynder.api.entity.misc.IFlyableEntity; 7 | import simplepets.brainsynder.api.entity.misc.IPowered; 8 | import simplepets.brainsynder.api.pet.PetType; 9 | 10 | @EntityPetType(petType = PetType.VEX) 11 | public interface IEntityVexPet extends IFlyableEntity, IEntityNoClipPet, IPowered { 12 | } 13 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityVindicatorPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 5 | import simplepets.brainsynder.api.entity.misc.IRaider; 6 | import simplepets.brainsynder.api.pet.PetType; 7 | 8 | @EntityPetType(petType = PetType.VINDICATOR) 9 | public interface IEntityVindicatorPet extends IEntityPet, IRaider { 10 | boolean isJohnny(); 11 | 12 | void setJohnny(boolean var); 13 | } 14 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityWardenPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import lib.brainsynder.ServerVersion; 4 | import lib.brainsynder.SupportedVersion; 5 | import simplepets.brainsynder.api.entity.IEntityPet; 6 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 7 | import simplepets.brainsynder.api.pet.PetType; 8 | import simplepets.brainsynder.api.wrappers.AngerLevel; 9 | 10 | @SupportedVersion(version = ServerVersion.v1_19) 11 | @EntityPetType(petType = PetType.WARDEN) 12 | public interface IEntityWardenPet extends IEntityPet { 13 | 14 | void setAngerLevel (AngerLevel level); 15 | AngerLevel getAngerLevel (); 16 | 17 | void setVibrationEffect (boolean value); 18 | boolean getVibrationEffect (); 19 | } 20 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityWitchPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 5 | import simplepets.brainsynder.api.entity.misc.IRaider; 6 | import simplepets.brainsynder.api.pet.PetType; 7 | 8 | @EntityPetType(petType = PetType.WITCH) 9 | public interface IEntityWitchPet extends IEntityPet, IRaider { 10 | void setDrinkingPotion(boolean flag); 11 | 12 | boolean isDrinkingPotion(); 13 | } 14 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityWitherPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | 7 | @EntityPetType(petType = PetType.WITHER) 8 | public interface IEntityWitherPet extends IEntityPet { 9 | boolean isShielded(); 10 | 11 | void setShielded(boolean var); 12 | 13 | boolean isSmall(); 14 | 15 | void setSmall(boolean var); 16 | } 17 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityWitherSkeletonPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.pet.PetType; 5 | 6 | @EntityPetType(petType = PetType.WITHER_SKELETON) 7 | public interface IEntityWitherSkeletonPet extends IEntitySkeletonPet { 8 | } 9 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityZoglinPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | 4 | import lib.brainsynder.ServerVersion; 5 | import lib.brainsynder.SupportedVersion; 6 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 7 | import simplepets.brainsynder.api.entity.misc.IAgeablePet; 8 | import simplepets.brainsynder.api.pet.PetType; 9 | 10 | @EntityPetType(petType = PetType.ZOGLIN) 11 | @SupportedVersion(version = ServerVersion.v1_16_R1) 12 | public interface IEntityZoglinPet extends IAgeablePet {} 13 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityZombiePet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.entity.misc.IAgeablePet; 5 | import simplepets.brainsynder.api.entity.misc.IShaking; 6 | import simplepets.brainsynder.api.pet.PetType; 7 | 8 | @EntityPetType(petType = PetType.ZOMBIE) 9 | public interface IEntityZombiePet extends IAgeablePet, IShaking { 10 | void setArmsRaised(boolean flag); 11 | 12 | boolean isArmsRaised(); 13 | } 14 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/hostile/IEntityZombieVillagerPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.hostile; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.entity.misc.IProfession; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | 7 | @EntityPetType(petType = PetType.ZOMBIE_VILLAGER) 8 | public interface IEntityZombieVillagerPet extends IEntityZombiePet, IProfession { 9 | } 10 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/EntityPetType.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | import simplepets.brainsynder.api.pet.PetType; 4 | 5 | import java.lang.annotation.ElementType; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | @Retention(RetentionPolicy.RUNTIME) 11 | @Target(ElementType.TYPE) 12 | public @interface EntityPetType { 13 | PetType petType(); 14 | } -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/IAgeablePet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | 5 | public interface IAgeablePet extends IEntityPet { 6 | default boolean isBaby() { 7 | return isBabySafe(); 8 | } 9 | 10 | default void setBaby(boolean flag) { 11 | setBabySafe(flag); 12 | } 13 | 14 | boolean isBabySafe(); 15 | 16 | void setBabySafe(boolean flag); 17 | } 18 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/IBurnablePet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | public interface IBurnablePet { 4 | boolean isBurning(); 5 | 6 | void setBurning(boolean var); 7 | } 8 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/IChestedAbstractPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | public interface IChestedAbstractPet extends IHorseAbstract { 4 | boolean isChested(); 5 | 6 | void setChested(boolean var1); 7 | } -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/IColorable.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | import lib.brainsynder.utils.DyeColorWrapper; 4 | import simplepets.brainsynder.api.entity.IEntityPet; 5 | 6 | public interface IColorable extends IEntityPet { 7 | DyeColorWrapper getColor(); 8 | 9 | void setColor(DyeColorWrapper i); 10 | } 11 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/IDisplayEntity.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | 5 | public interface IDisplayEntity extends IEntityPet { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/IEntityBase.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | import org.bukkit.entity.EntityType; 4 | 5 | public interface IEntityBase { 6 | EntityType getPetEntityType(); 7 | } -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/IEntityControllerPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | import org.bukkit.entity.Entity; 4 | import simplepets.brainsynder.api.entity.IEntityPet; 5 | 6 | import java.util.Optional; 7 | 8 | public interface IEntityControllerPet extends IEntityPet { 9 | Optional getDisplayEntity(); 10 | 11 | Optional getDisplayRider(); 12 | 13 | void setDisplayEntity(Entity entity); 14 | 15 | void remove(); 16 | 17 | void reloadLocation(); 18 | 19 | void addPassenger(Entity passenger); 20 | 21 | boolean isMoving(); 22 | 23 | void updateName(); 24 | 25 | IEntityPet getVisibleEntity(); 26 | } -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/IEntityFishPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | 5 | public interface IEntityFishPet extends IEntityPet { 6 | } 7 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/IEntityNoClipPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | 5 | public interface IEntityNoClipPet extends IEntityPet { 6 | } 7 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/IEntityWizard.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.wrappers.WizardSpell; 5 | 6 | public interface IEntityWizard extends IEntityPet { 7 | WizardSpell getSpell(); 8 | 9 | void setSpell(WizardSpell spell); 10 | } 11 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/IFlyableEntity.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | 5 | public interface IFlyableEntity extends IEntityPet { 6 | } 7 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/IHorseAbstract.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | public interface IHorseAbstract extends IAgeablePet, ISpecialFlag, IJump, ISaddle { 4 | default boolean isSaddled() { 5 | return getSpecialFlag(4); 6 | } 7 | 8 | default void setSaddled(boolean var1) { 9 | setSpecialFlag(4, var1); 10 | } 11 | 12 | default boolean isEating() { 13 | return getSpecialFlag(16); 14 | } 15 | 16 | default boolean isAngry() { 17 | return getSpecialFlag(32); 18 | } 19 | 20 | default boolean isRearing() { 21 | return getSpecialFlag(64); 22 | } 23 | 24 | default void setEating(boolean value) { 25 | setSpecialFlag(16, value); 26 | } 27 | 28 | default void setAngry(boolean value) { 29 | if (value) setEating(false); 30 | setSpecialFlag(32, value); 31 | } 32 | 33 | default void setRearing(boolean value) { 34 | setSpecialFlag(64, value); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/IJump.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | 5 | public interface IJump extends IEntityPet {} -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/IPowered.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | 5 | public interface IPowered extends IEntityPet { 6 | boolean isPowered(); 7 | 8 | void setPowered(boolean powered); 9 | } 10 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/IRaider.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | public interface IRaider { 4 | boolean isCelebrating(); 5 | 6 | void setCelebrating(boolean celebrating); 7 | } 8 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/IRainbow.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | 5 | public interface IRainbow extends IEntityPet { 6 | boolean isRainbow(); 7 | 8 | void setRainbow(boolean rainbow); 9 | } 10 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/IResetColor.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.wrappers.ColorWrapper; 5 | 6 | public interface IResetColor extends IEntityPet { 7 | ColorWrapper getColorWrapper(); 8 | 9 | void setColorWrapper(ColorWrapper i); 10 | } 11 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/ISaddle.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | 5 | public interface ISaddle extends IEntityPet { 6 | default boolean isSaddled() { 7 | return false; 8 | } 9 | 10 | default void setSaddled(boolean shaking) {} 11 | } 12 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/IShaking.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | 5 | public interface IShaking extends IEntityPet { 6 | boolean isShaking(); 7 | 8 | void setShaking(boolean shaking); 9 | } 10 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/ISheared.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | 5 | public interface ISheared extends IEntityPet { 6 | boolean isSheared(); 7 | 8 | void setSheared(boolean sheared); 9 | } 10 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/ISitting.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | 5 | public interface ISitting extends IEntityPet { 6 | boolean isSitting(); 7 | 8 | void setSitting(boolean sitting); 9 | } 10 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/ISizable.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | 5 | public interface ISizable extends IEntityPet { 6 | int getSize(); 7 | 8 | void setSize(int i); 9 | 10 | default boolean isSmall() { 11 | return getSize() <= 1; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/ISkeletonAbstract.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | 5 | public interface ISkeletonAbstract extends IEntityPet { 6 | default boolean isArmsRaised() {return false;} 7 | 8 | default void setArmsRaised(boolean flag) {} 9 | } 10 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/ISleeper.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | 5 | public interface ISleeper extends IEntityPet { 6 | boolean isPetSleeping(); 7 | 8 | void setPetSleeping(boolean sleeping); 9 | } 10 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/ISpecialFlag.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | public interface ISpecialFlag { 4 | void setSpecialFlag(int flag, boolean value); 5 | 6 | boolean getSpecialFlag(int flag); 7 | } 8 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/ISpecialRiding.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | public interface ISpecialRiding { 4 | } 5 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/ITameable.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | public interface ITameable extends IAgeablePet, ISitting { 4 | boolean isTamed(); 5 | 6 | void setTamed(boolean flag); 7 | } 8 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/misc/ITemperaturePet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.misc; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.wrappers.TemperatureVariant; 5 | 6 | public interface ITemperaturePet extends IEntityPet { 7 | default TemperatureVariant getVariant() { 8 | return TemperatureVariant.TEMPERATE; 9 | } 10 | 11 | default void setVariant(TemperatureVariant variant) {} 12 | } 13 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityAllayPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import lib.brainsynder.ServerVersion; 4 | import lib.brainsynder.SupportedVersion; 5 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 6 | import simplepets.brainsynder.api.entity.misc.IFlyableEntity; 7 | import simplepets.brainsynder.api.pet.PetType; 8 | 9 | @SupportedVersion(version = ServerVersion.v1_19) 10 | @EntityPetType(petType = PetType.ALLAY) 11 | public interface IEntityAllayPet extends IFlyableEntity {} -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityArmadilloPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import lib.brainsynder.ServerVersion; 4 | import lib.brainsynder.SupportedVersion; 5 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 6 | import simplepets.brainsynder.api.entity.misc.IAgeablePet; 7 | import simplepets.brainsynder.api.pet.PetType; 8 | import simplepets.brainsynder.api.wrappers.ArmadilloPhase; 9 | 10 | @SupportedVersion(version = ServerVersion.v1_20_5) 11 | @EntityPetType(petType = PetType.ARMADILLO) 12 | public interface IEntityArmadilloPet extends IAgeablePet { 13 | ArmadilloPhase getPhase(); 14 | 15 | void setPhase(ArmadilloPhase phase); 16 | } 17 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityAxolotlPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import lib.brainsynder.ServerVersion; 4 | import lib.brainsynder.SupportedVersion; 5 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 6 | import simplepets.brainsynder.api.entity.misc.IAgeablePet; 7 | import simplepets.brainsynder.api.pet.PetType; 8 | import simplepets.brainsynder.api.wrappers.AxolotlVariant; 9 | 10 | @SupportedVersion(version = ServerVersion.v1_17) 11 | @EntityPetType(petType = PetType.AXOLOTL) 12 | public interface IEntityAxolotlPet extends IAgeablePet { 13 | 14 | boolean isPlayingDead(); 15 | 16 | void setPlayingDead(boolean playingDead); 17 | 18 | AxolotlVariant getVariant(); 19 | 20 | void setVariant(AxolotlVariant variant); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityBatPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 5 | import simplepets.brainsynder.api.entity.misc.IFlyableEntity; 6 | import simplepets.brainsynder.api.pet.PetType; 7 | 8 | @EntityPetType(petType = PetType.BAT) 9 | public interface IEntityBatPet extends IEntityPet, IFlyableEntity { 10 | boolean isHanging(); 11 | 12 | void setHanging(boolean var1); 13 | } -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityBeePet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.entity.misc.IAgeablePet; 5 | import simplepets.brainsynder.api.entity.misc.IFlyableEntity; 6 | import simplepets.brainsynder.api.entity.misc.ISpecialFlag; 7 | import simplepets.brainsynder.api.pet.PetType; 8 | 9 | @EntityPetType(petType = PetType.BEE) 10 | public interface IEntityBeePet extends IAgeablePet, ISpecialFlag, IFlyableEntity { 11 | boolean isAngry(); 12 | 13 | void setAngry(boolean angry); 14 | 15 | default boolean hasNectar() { 16 | return getSpecialFlag(8); 17 | } 18 | 19 | default void setHasNectar(boolean hasNectar) { 20 | setSpecialFlag(8, hasNectar); 21 | } 22 | 23 | default boolean hasStung() { 24 | return getSpecialFlag(4); 25 | } 26 | 27 | default void setHasStung(boolean hasStung) { 28 | setSpecialFlag(4, hasStung); 29 | } 30 | 31 | default boolean isFlipped() { 32 | return getSpecialFlag(2); 33 | } 34 | 35 | default void setFlipped(boolean flipped) { 36 | setSpecialFlag(2, flipped); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityCamelPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import lib.brainsynder.ServerVersion; 4 | import lib.brainsynder.SupportedVersion; 5 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 6 | import simplepets.brainsynder.api.entity.misc.IHorseAbstract; 7 | import simplepets.brainsynder.api.entity.misc.ISitting; 8 | import simplepets.brainsynder.api.entity.misc.ISpecialRiding; 9 | import simplepets.brainsynder.api.pet.PetType; 10 | 11 | @SupportedVersion(version = ServerVersion.v1_20) 12 | @EntityPetType(petType = PetType.CAMEL) 13 | public interface IEntityCamelPet extends IHorseAbstract, ISpecialRiding, ISitting { 14 | } -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityCatPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import lib.brainsynder.utils.DyeColorWrapper; 4 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 5 | import simplepets.brainsynder.api.entity.misc.ISleeper; 6 | import simplepets.brainsynder.api.entity.misc.ITameable; 7 | import simplepets.brainsynder.api.pet.PetType; 8 | import simplepets.brainsynder.api.wrappers.CatType; 9 | 10 | @EntityPetType(petType = PetType.CAT) 11 | public interface IEntityCatPet extends ITameable, ISleeper { 12 | CatType getCatType(); 13 | 14 | void setCatType(CatType type); 15 | 16 | DyeColorWrapper getCollarColor(); 17 | 18 | void setCollarColor(DyeColorWrapper color); 19 | 20 | boolean isHeadUp(); 21 | 22 | void setHeadUp(boolean value); 23 | } 24 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityChickenPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.entity.misc.IAgeablePet; 5 | import simplepets.brainsynder.api.entity.misc.ITemperaturePet; 6 | import simplepets.brainsynder.api.pet.PetType; 7 | 8 | @EntityPetType(petType = PetType.CHICKEN) 9 | public interface IEntityChickenPet extends IAgeablePet, ITemperaturePet { 10 | } 11 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityCodPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.entity.misc.IEntityFishPet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | 7 | @EntityPetType(petType = PetType.COD) 8 | public interface IEntityCodPet extends IEntityFishPet { 9 | } 10 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityCowPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.entity.misc.IAgeablePet; 5 | import simplepets.brainsynder.api.entity.misc.ITemperaturePet; 6 | import simplepets.brainsynder.api.pet.PetType; 7 | 8 | @EntityPetType(petType = PetType.COW) 9 | public interface IEntityCowPet extends IAgeablePet, ITemperaturePet { 10 | } 11 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityDonkeyPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.entity.misc.IChestedAbstractPet; 5 | import simplepets.brainsynder.api.entity.misc.ISpecialRiding; 6 | import simplepets.brainsynder.api.pet.PetType; 7 | 8 | @EntityPetType(petType = PetType.DONKEY) 9 | public interface IEntityDonkeyPet extends IChestedAbstractPet, ISpecialRiding { 10 | } 11 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityFrogPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import lib.brainsynder.ServerVersion; 4 | import lib.brainsynder.SupportedVersion; 5 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 6 | import simplepets.brainsynder.api.entity.misc.IAgeablePet; 7 | import simplepets.brainsynder.api.entity.misc.ITemperaturePet; 8 | import simplepets.brainsynder.api.pet.PetType; 9 | 10 | @SupportedVersion(version = ServerVersion.v1_19) 11 | @EntityPetType(petType = PetType.FROG) 12 | public interface IEntityFrogPet extends IAgeablePet, ITemperaturePet { 13 | boolean isCroaking(); 14 | 15 | void setCroaking(boolean value); 16 | 17 | boolean isUsingTongue(); 18 | 19 | void setUsingTongue(boolean value); 20 | } 21 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityGlowSquidPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import lib.brainsynder.ServerVersion; 4 | import lib.brainsynder.SupportedVersion; 5 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 6 | import simplepets.brainsynder.api.pet.PetType; 7 | 8 | @SupportedVersion(version = ServerVersion.v1_17) 9 | @EntityPetType(petType = PetType.GLOW_SQUID) 10 | public interface IEntityGlowSquidPet extends IEntitySquidPet { 11 | boolean isSquidGlowing(); 12 | 13 | void setSquidGlowing(boolean glowing); 14 | } 15 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityGoatPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import lib.brainsynder.ServerVersion; 4 | import lib.brainsynder.SupportedVersion; 5 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 6 | import simplepets.brainsynder.api.entity.misc.IAgeablePet; 7 | import simplepets.brainsynder.api.pet.PetType; 8 | 9 | @SupportedVersion(version = ServerVersion.v1_17) 10 | @EntityPetType(petType = PetType.GOAT) 11 | public interface IEntityGoatPet extends IAgeablePet { 12 | /** 13 | * According to {@link https://minecraft.gamepedia.com/Goat} 14 | * goats lose a horn each time they ram a block 15 | *

16 | * EDIT (6/9/2021): 1.17 does not have a way to change this data yet, hope it is not bedrock only... 17 | * EDIT (6/7/2022): 1.19 Added the Goat Horn data. 18 | */ 19 | default void setLeftHorn(boolean hasHorn) {} 20 | 21 | default boolean hasLeftHorn() { 22 | return true; 23 | } 24 | 25 | default void setRightHorn(boolean hasHorn) {} 26 | 27 | default boolean hasRightHorn() { 28 | return true; 29 | } 30 | 31 | 32 | boolean isScreaming(); 33 | 34 | void setScreaming(boolean screaming); 35 | } 36 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityHorsePet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.entity.misc.IHorseAbstract; 5 | import simplepets.brainsynder.api.entity.misc.ISpecialRiding; 6 | import simplepets.brainsynder.api.pet.PetType; 7 | import simplepets.brainsynder.api.wrappers.horse.HorseArmorType; 8 | import simplepets.brainsynder.api.wrappers.horse.HorseColorType; 9 | import simplepets.brainsynder.api.wrappers.horse.HorseStyleType; 10 | 11 | @EntityPetType(petType = PetType.HORSE) 12 | public interface IEntityHorsePet extends IHorseAbstract, ISpecialRiding { 13 | HorseArmorType getArmor(); 14 | 15 | void setArmor(HorseArmorType var1); 16 | 17 | HorseStyleType getStyle(); 18 | 19 | void setStyle(HorseStyleType var1); 20 | 21 | HorseColorType getColor(); 22 | 23 | void setColor(HorseColorType var1); 24 | } 25 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityIronGolemPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | 7 | @EntityPetType(petType = PetType.IRON_GOLEM) 8 | public interface IEntityIronGolemPet extends IEntityPet { 9 | } 10 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityLlamaPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.entity.misc.IChestedAbstractPet; 5 | import simplepets.brainsynder.api.entity.misc.IResetColor; 6 | import simplepets.brainsynder.api.pet.PetType; 7 | import simplepets.brainsynder.api.wrappers.LlamaColor; 8 | 9 | @EntityPetType(petType = PetType.LLAMA) 10 | public interface IEntityLlamaPet extends IChestedAbstractPet, IResetColor { 11 | void setSkinColor(LlamaColor skinColor); 12 | 13 | LlamaColor getSkinColor(); 14 | } -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityMooshroomPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.entity.misc.IAgeablePet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.wrappers.MooshroomType; 7 | 8 | @EntityPetType(petType = PetType.MOOSHROOM) 9 | public interface IEntityMooshroomPet extends IAgeablePet { 10 | void setMooshroomType(MooshroomType type); 11 | 12 | MooshroomType getMooshroomType(); 13 | } 14 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityMulePet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.entity.misc.IChestedAbstractPet; 5 | import simplepets.brainsynder.api.entity.misc.ISpecialRiding; 6 | import simplepets.brainsynder.api.pet.PetType; 7 | 8 | @EntityPetType(petType = PetType.MULE) 9 | public interface IEntityMulePet extends IChestedAbstractPet, ISpecialRiding { 10 | } 11 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityOcelotPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.entity.misc.IAgeablePet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | 7 | @EntityPetType(petType = PetType.OCELOT) 8 | public interface IEntityOcelotPet extends IAgeablePet { 9 | } 10 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityParrotPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.entity.misc.IFlyableEntity; 5 | import simplepets.brainsynder.api.entity.misc.IRainbow; 6 | import simplepets.brainsynder.api.entity.misc.ITameable; 7 | import simplepets.brainsynder.api.pet.PetType; 8 | import simplepets.brainsynder.api.wrappers.ParrotVariant; 9 | 10 | @EntityPetType(petType = PetType.PARROT) 11 | public interface IEntityParrotPet extends ITameable, IFlyableEntity, IRainbow { 12 | ParrotVariant getVariant(); 13 | 14 | void setVariant(ParrotVariant variant); 15 | } 16 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityPigPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.entity.misc.IAgeablePet; 5 | import simplepets.brainsynder.api.entity.misc.ISaddle; 6 | import simplepets.brainsynder.api.entity.misc.ITemperaturePet; 7 | import simplepets.brainsynder.api.pet.PetType; 8 | 9 | @EntityPetType(petType = PetType.PIG) 10 | public interface IEntityPigPet extends IAgeablePet, ISaddle, ITemperaturePet { 11 | } 12 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityPolarBearPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.entity.misc.IAgeablePet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | 7 | @EntityPetType(petType = PetType.POLARBEAR) 8 | public interface IEntityPolarBearPet extends IAgeablePet { 9 | void setStandingUp(boolean flag); 10 | 11 | boolean isStanding(); 12 | } 13 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityRabbitPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.entity.misc.IAgeablePet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | import simplepets.brainsynder.api.wrappers.RabbitType; 7 | 8 | @EntityPetType(petType = PetType.RABBIT) 9 | public interface IEntityRabbitPet extends IAgeablePet { 10 | RabbitType getRabbitType(); 11 | 12 | void setRabbitType(RabbitType type); 13 | } 14 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntitySalmonPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.entity.misc.IEntityFishPet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | 7 | @EntityPetType(petType = PetType.SALMON) 8 | public interface IEntitySalmonPet extends IEntityFishPet { 9 | } 10 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntitySheepPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | 4 | import simplepets.brainsynder.api.entity.misc.*; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | 7 | @EntityPetType(petType = PetType.SHEEP) 8 | public interface IEntitySheepPet extends IAgeablePet, IColorable, IRainbow, ISheared { 9 | } 10 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntitySkeletonHorsePet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.entity.misc.IHorseAbstract; 5 | import simplepets.brainsynder.api.entity.misc.ISpecialRiding; 6 | import simplepets.brainsynder.api.pet.PetType; 7 | 8 | @EntityPetType(petType = PetType.SKELETON_HORSE) 9 | public interface IEntitySkeletonHorsePet extends IHorseAbstract, ISpecialRiding { 10 | } 11 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntitySnifferPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import lib.brainsynder.ServerVersion; 4 | import lib.brainsynder.SupportedVersion; 5 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 6 | import simplepets.brainsynder.api.entity.misc.IAgeablePet; 7 | import simplepets.brainsynder.api.pet.PetType; 8 | import simplepets.brainsynder.api.wrappers.SnifferState; 9 | 10 | @SupportedVersion(version = ServerVersion.v1_20) 11 | @EntityPetType(petType = PetType.SNIFFER) 12 | public interface IEntitySnifferPet extends IAgeablePet { 13 | 14 | SnifferState getSnifferState(); 15 | 16 | void setSnifferState(SnifferState state); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntitySnowmanPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | 7 | @EntityPetType(petType = PetType.SNOWMAN) 8 | public interface IEntitySnowmanPet extends IEntityPet { 9 | boolean hasPumpkin(); 10 | 11 | void setHasPumpkin(boolean flag); 12 | } 13 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntitySquidPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | 7 | @EntityPetType(petType = PetType.SQUID) 8 | public interface IEntitySquidPet extends IEntityPet { 9 | } 10 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityStriderPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import lib.brainsynder.ServerVersion; 4 | import lib.brainsynder.SupportedVersion; 5 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 6 | import simplepets.brainsynder.api.entity.misc.IAgeablePet; 7 | import simplepets.brainsynder.api.entity.misc.ISaddle; 8 | import simplepets.brainsynder.api.pet.PetType; 9 | 10 | 11 | @EntityPetType(petType = PetType.SPIDER) 12 | @SupportedVersion(version = ServerVersion.v1_16_R1) 13 | public interface IEntityStriderPet extends IAgeablePet, ISaddle { 14 | boolean isCold(); 15 | 16 | void setCold(boolean cold); 17 | } 18 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityTadpolePet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import lib.brainsynder.ServerVersion; 4 | import lib.brainsynder.SupportedVersion; 5 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 6 | import simplepets.brainsynder.api.entity.misc.IEntityFishPet; 7 | import simplepets.brainsynder.api.pet.PetType; 8 | 9 | @SupportedVersion(version = ServerVersion.v1_19) 10 | @EntityPetType(petType = PetType.TADPOLE) 11 | public interface IEntityTadpolePet extends IEntityFishPet { 12 | } 13 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityTraderLlamaPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.pet.PetType; 5 | 6 | @EntityPetType(petType = PetType.TRADER_LLAMA) 7 | public interface IEntityTraderLlamaPet extends IEntityLlamaPet { 8 | } -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityTropicalFishPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import lib.brainsynder.utils.DyeColorWrapper; 4 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 5 | import simplepets.brainsynder.api.entity.misc.IEntityFishPet; 6 | import simplepets.brainsynder.api.pet.PetType; 7 | import simplepets.brainsynder.api.wrappers.TropicalPattern; 8 | 9 | @EntityPetType(petType = PetType.TROPICAL_FISH) 10 | public interface IEntityTropicalFishPet extends IEntityFishPet { 11 | DyeColorWrapper getPatternColor(); 12 | 13 | void setPatternColor(DyeColorWrapper var1); 14 | 15 | DyeColorWrapper getBodyColor(); 16 | 17 | void setBodyColor(DyeColorWrapper var1); 18 | 19 | TropicalPattern getPattern(); 20 | 21 | void setPattern(TropicalPattern var1); 22 | } 23 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityTurtlePet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.entity.misc.IAgeablePet; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | 7 | @EntityPetType(petType = PetType.TURTLE) 8 | public interface IEntityTurtlePet extends IAgeablePet { 9 | } 10 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityVillagerPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.entity.misc.IAgeablePet; 5 | import simplepets.brainsynder.api.entity.misc.IProfession; 6 | import simplepets.brainsynder.api.entity.misc.IShaking; 7 | import simplepets.brainsynder.api.pet.PetType; 8 | 9 | @EntityPetType(petType = PetType.VILLAGER) 10 | public interface IEntityVillagerPet extends IAgeablePet, IProfession, IShaking { 11 | } 12 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityWanderingTraderPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 5 | import simplepets.brainsynder.api.pet.PetType; 6 | 7 | @EntityPetType(petType = PetType.WANDERING_TRADER) 8 | public interface IEntityWanderingTraderPet extends IEntityPet { 9 | } 10 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityWolfPet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | 4 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 5 | import simplepets.brainsynder.api.entity.misc.IColorable; 6 | import simplepets.brainsynder.api.entity.misc.IShaking; 7 | import simplepets.brainsynder.api.entity.misc.ITameable; 8 | import simplepets.brainsynder.api.pet.PetType; 9 | import simplepets.brainsynder.api.wrappers.WolfType; 10 | 11 | @EntityPetType(petType = PetType.WOLF) 12 | public interface IEntityWolfPet extends ITameable, IColorable, IShaking { 13 | 14 | boolean isHeadTilted(); 15 | 16 | void setHeadTilted(boolean var); 17 | 18 | boolean isAngry(); 19 | 20 | void setAngry(boolean var); 21 | 22 | default WolfType getWolfType() { 23 | return WolfType.PALE; 24 | } 25 | 26 | default void setWolfType(WolfType type) {} 27 | } 28 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/entity/passive/IEntityZombieHorsePet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.entity.passive; 2 | 3 | import simplepets.brainsynder.api.entity.misc.EntityPetType; 4 | import simplepets.brainsynder.api.entity.misc.IHorseAbstract; 5 | import simplepets.brainsynder.api.entity.misc.ISpecialRiding; 6 | import simplepets.brainsynder.api.pet.PetType; 7 | 8 | @EntityPetType(petType = PetType.ZOMBIE_HORSE) 9 | public interface IEntityZombieHorsePet extends IHorseAbstract, ISpecialRiding { 10 | } 11 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/event/CancellablePetEvent.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.event; 2 | 3 | import org.bukkit.event.Cancellable; 4 | 5 | public abstract class CancellablePetEvent extends SimplePetEvent implements Cancellable { 6 | private boolean cancelled = false; 7 | private String reason = null; 8 | 9 | 10 | public boolean isCancelled() { 11 | return this.cancelled; 12 | } 13 | 14 | public void setCancelled(boolean cancelled) { 15 | this.cancelled = cancelled; 16 | } 17 | 18 | public void setCancelled(boolean cancelled, String reason) { 19 | this.cancelled = cancelled; 20 | this.reason = reason; 21 | } 22 | 23 | public String getReason() { 24 | return reason; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/event/SimplePetEvent.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.event; 2 | 3 | import org.bukkit.event.Event; 4 | import org.bukkit.event.HandlerList; 5 | 6 | public class SimplePetEvent extends Event { 7 | private static final HandlerList handlers = new HandlerList(); 8 | 9 | public static HandlerList getHandlerList() { 10 | return handlers; 11 | } 12 | 13 | @Override 14 | public HandlerList getHandlers() { 15 | return handlers; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/event/entity/EntityNameChangeEvent.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.event.entity; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.event.SimplePetEvent; 5 | 6 | /** 7 | * This event gets called when the name of the entity gets changed. 8 | * It can be from the saved data, user changing the name, or the modify command 9 | */ 10 | public class EntityNameChangeEvent extends SimplePetEvent { 11 | private final IEntityPet entity; 12 | private String name; 13 | private String prefix = ""; 14 | private String suffix = ""; 15 | 16 | public EntityNameChangeEvent(IEntityPet entity, String name) { 17 | this.entity = entity; 18 | this.name = name; 19 | } 20 | 21 | public IEntityPet getEntity() { 22 | return entity; 23 | } 24 | 25 | public String getName() { 26 | return name; 27 | } 28 | 29 | public void setName(String name) { 30 | this.name = name; 31 | } 32 | 33 | public String getPrefix() { 34 | return prefix; 35 | } 36 | 37 | public void setPrefix(String prefix) { 38 | this.prefix = prefix; 39 | } 40 | 41 | public String getSuffix() { 42 | return suffix; 43 | } 44 | 45 | public void setSuffix(String suffix) { 46 | this.suffix = suffix; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/event/entity/PetDismountEvent.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.event.entity; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.event.CancellablePetEvent; 5 | 6 | public class PetDismountEvent extends CancellablePetEvent { 7 | private final IEntityPet entity; 8 | 9 | public PetDismountEvent(IEntityPet entity) { 10 | this.entity = entity; 11 | } 12 | 13 | public IEntityPet getEntity() { 14 | return entity; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/event/entity/PetDuplicateSpawnEvent.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.event.entity; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.event.SimplePetEvent; 5 | import simplepets.brainsynder.api.user.PetUser; 6 | 7 | /** 8 | * This even is called when the players spawns a pet that they already have summoned 9 | */ 10 | public class PetDuplicateSpawnEvent extends SimplePetEvent { 11 | private final PetUser user; 12 | private final IEntityPet entityPet; 13 | 14 | public PetDuplicateSpawnEvent(PetUser user, IEntityPet pet) { 15 | this.user = user; 16 | this.entityPet = pet; 17 | } 18 | 19 | public IEntityPet getEntityPet() {return this.entityPet;} 20 | 21 | public PetUser getUser() { 22 | return user; 23 | } 24 | } -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/event/entity/PetEntitySpawnEvent.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.event.entity; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.event.CancellablePetEvent; 5 | import simplepets.brainsynder.api.user.PetUser; 6 | 7 | /** 8 | * This event gets called when the pet is spawned 9 | */ 10 | public class PetEntitySpawnEvent extends CancellablePetEvent { 11 | private final PetUser user; 12 | private final IEntityPet entity; 13 | 14 | public PetEntitySpawnEvent(PetUser user, IEntityPet entity) { 15 | this.user = user; 16 | this.entity = entity; 17 | } 18 | 19 | public PetUser getUser() { 20 | return user; 21 | } 22 | 23 | public IEntityPet getEntity() { 24 | return entity; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/event/entity/PetMountEvent.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.event.entity; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.event.CancellablePetEvent; 5 | 6 | public class PetMountEvent extends CancellablePetEvent { 7 | private final IEntityPet entity; 8 | 9 | public PetMountEvent(IEntityPet entity) { 10 | this.entity = entity; 11 | } 12 | 13 | public IEntityPet getEntity() { 14 | return entity; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/event/entity/PetMoveEvent.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.event.entity; 2 | 3 | import org.bukkit.Location; 4 | import simplepets.brainsynder.api.entity.IEntityPet; 5 | import simplepets.brainsynder.api.event.CancellablePetEvent; 6 | 7 | /** 8 | * This event is called when ever a pet moves (walks, controlled, and/or jumps) 9 | */ 10 | public class PetMoveEvent extends CancellablePetEvent { 11 | private final IEntityPet entity; 12 | private final Location targetLocation; 13 | 14 | public PetMoveEvent(IEntityPet entity) { 15 | this.entity = entity; 16 | targetLocation = entity.getEntity().getLocation(); 17 | } 18 | 19 | public PetMoveEvent(IEntityPet entity, Location targetLocation) { 20 | this.entity = entity; 21 | this.targetLocation = targetLocation; 22 | } 23 | 24 | public IEntityPet getEntity() { 25 | return entity; 26 | } 27 | 28 | public Location getTargetLocation() { 29 | return targetLocation; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/event/entity/PetRemoveEvent.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.event.entity; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.event.SimplePetEvent; 5 | import simplepets.brainsynder.api.user.PetUser; 6 | 7 | /** 8 | * This even is called when a pet is removed (Not respawned) 9 | */ 10 | public class PetRemoveEvent extends SimplePetEvent { 11 | private final PetUser user; 12 | private final IEntityPet entityPet; 13 | 14 | public PetRemoveEvent(PetUser user, IEntityPet pet) { 15 | this.user = user; 16 | this.entityPet = pet; 17 | } 18 | 19 | public IEntityPet getEntityPet() {return this.entityPet;} 20 | 21 | public PetUser getUser() { 22 | return user; 23 | } 24 | } -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/event/entity/PostPetHatEvent.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.event.entity; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.event.SimplePetEvent; 5 | import simplepets.brainsynder.api.user.PetUser; 6 | 7 | /** 8 | * This event gets called AFTER the pet is on the players head 9 | */ 10 | public class PostPetHatEvent extends SimplePetEvent { 11 | private final PetUser user; 12 | private final IEntityPet entityPet; 13 | private final Type eventType; 14 | 15 | public PostPetHatEvent(PetUser user, IEntityPet pet, Type type) { 16 | this.user = user; 17 | this.entityPet = pet; 18 | eventType = type; 19 | } 20 | 21 | public IEntityPet getEntityPet() {return this.entityPet;} 22 | 23 | public Type getEventType() {return this.eventType;} 24 | 25 | public PetUser getUser() { 26 | return user; 27 | } 28 | 29 | public enum Type { 30 | SET, 31 | REMOVE 32 | } 33 | } -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/event/entity/PrePetHatEvent.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.event.entity; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.event.CancellablePetEvent; 5 | import simplepets.brainsynder.api.user.PetUser; 6 | 7 | /** 8 | * This event gets called BEFORE the pet is on the players head 9 | */ 10 | public class PrePetHatEvent extends CancellablePetEvent { 11 | private final PetUser user; 12 | private final IEntityPet entityPet; 13 | private final Type eventType; 14 | 15 | public PrePetHatEvent(PetUser user, IEntityPet pet, Type type) { 16 | this.user = user; 17 | this.entityPet = pet; 18 | eventType = type; 19 | } 20 | 21 | public IEntityPet getEntityPet() {return this.entityPet;} 22 | 23 | public Type getEventType() {return this.eventType;} 24 | 25 | public PetUser getUser() { 26 | return user; 27 | } 28 | 29 | public enum Type { 30 | SET, 31 | REMOVE 32 | } 33 | } -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/event/entity/movment/PetJumpEvent.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.event.entity.movment; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.event.entity.PetMoveEvent; 5 | 6 | /** 7 | * This event gets called when ever a pet that is mounted jumps 8 | */ 9 | public class PetJumpEvent extends PetMoveEvent { 10 | private double jumpHeight; 11 | 12 | public PetJumpEvent(IEntityPet entity, double jumpHeight) { 13 | super(entity); 14 | this.jumpHeight = jumpHeight; 15 | } 16 | 17 | public double getJumpHeight() { 18 | return jumpHeight; 19 | } 20 | 21 | public void setJumpHeight(double jumpHeight) { 22 | this.jumpHeight = jumpHeight; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/event/entity/movment/PetRideEvent.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.event.entity.movment; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.event.entity.PetMoveEvent; 5 | 6 | /** 7 | * This event gets called when ever a pet gets moved due to being a mount 8 | */ 9 | public class PetRideEvent extends PetMoveEvent { 10 | public PetRideEvent(IEntityPet entity) { 11 | super(entity); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/event/entity/movment/PetTeleportEvent.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.event.entity.movment; 2 | 3 | import org.bukkit.Location; 4 | import simplepets.brainsynder.api.entity.IEntityPet; 5 | import simplepets.brainsynder.api.event.entity.PetMoveEvent; 6 | 7 | public class PetTeleportEvent extends PetMoveEvent { 8 | public PetTeleportEvent(IEntityPet entity, Location targetLocation) { 9 | super(entity, targetLocation); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/event/inventory/PetSelectTypeEvent.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.event.inventory; 2 | 3 | import simplepets.brainsynder.api.event.CancellablePetEvent; 4 | import simplepets.brainsynder.api.pet.PetType; 5 | import simplepets.brainsynder.api.user.PetUser; 6 | 7 | /** 8 | * This event gets called when a player selects a pet from the main Pet Selector GUI 9 | */ 10 | public class PetSelectTypeEvent extends CancellablePetEvent { 11 | 12 | private final PetType petType; 13 | private final PetUser user; 14 | 15 | public PetSelectTypeEvent(PetType type, PetUser user) { 16 | this.petType = type; 17 | this.user = user; 18 | } 19 | 20 | public PetType getPetType() {return this.petType;} 21 | 22 | public PetUser getUser() {return this.user;} 23 | } 24 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/event/inventory/PetTypeStorage.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.event.inventory; 2 | 3 | import org.bukkit.inventory.ItemStack; 4 | import simplepets.brainsynder.api.pet.PetType; 5 | import simplepets.brainsynder.api.plugin.SimplePets; 6 | 7 | public class PetTypeStorage { 8 | private final PetType type; 9 | private ItemStack item; 10 | 11 | public PetTypeStorage(PetType type) { 12 | this.type = type; 13 | SimplePets.getPetConfigManager().getPetConfig(type).ifPresent(config -> { 14 | PetTypeStorage.this.item = config.getBuilder().build(); 15 | }); 16 | } 17 | 18 | public PetTypeStorage(PetType type, ItemStack item) { 19 | this.type = type; 20 | this.item = item; 21 | } 22 | 23 | public boolean isSimilar(PetTypeStorage storage) { 24 | return (type == storage.type) && (item.isSimilar(storage.item)); 25 | } 26 | 27 | public PetType getType() {return this.type;} 28 | 29 | public ItemStack getItem() {return this.item;} 30 | 31 | public PetTypeStorage setItem(ItemStack item) { 32 | this.item = item; 33 | return this; 34 | } 35 | } -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/event/user/PetNameChangeEvent.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.event.user; 2 | 3 | import simplepets.brainsynder.api.entity.IEntityPet; 4 | import simplepets.brainsynder.api.event.CancellablePetEvent; 5 | import simplepets.brainsynder.api.user.PetUser; 6 | 7 | /** 8 | * This event gets called when the player changes their pets name 9 | */ 10 | public class PetNameChangeEvent extends CancellablePetEvent { 11 | private final PetUser user; 12 | private final IEntityPet entity; 13 | private final String name; 14 | 15 | public PetNameChangeEvent(PetUser user, IEntityPet entity, String name) { 16 | this.user = user; 17 | this.entity = entity; 18 | this.name = name; 19 | } 20 | 21 | 22 | public PetUser getUser() { 23 | return user; 24 | } 25 | 26 | public IEntityPet getEntity() { 27 | return entity; 28 | } 29 | 30 | public String getName() { 31 | return name; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/event/user/PetRenameEvent.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.event.user; 2 | 3 | import simplepets.brainsynder.api.event.CancellablePetEvent; 4 | import simplepets.brainsynder.api.pet.PetType; 5 | import simplepets.brainsynder.api.user.PetUser; 6 | 7 | /** 8 | * This event gets called when the player renames their pet 9 | *

10 | * Called before {@link PetNameChangeEvent} 11 | */ 12 | public class PetRenameEvent extends CancellablePetEvent { 13 | private final PetUser user; 14 | private final PetType type; 15 | private String name; 16 | 17 | public PetRenameEvent(PetUser user, PetType type, String name) { 18 | this.user = user; 19 | this.type = type; 20 | this.name = name; 21 | } 22 | 23 | public PetUser getUser() { 24 | return user; 25 | } 26 | 27 | public PetType getType() { 28 | return type; 29 | } 30 | 31 | /** 32 | * @return The new name of the PetType, Will return `null` if they are resetting the name 33 | */ 34 | public String getName() { 35 | return name; 36 | } 37 | 38 | public void setName(String name) { 39 | this.name = name; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/inventory/handler/GUIHandler.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.inventory.handler; 2 | 3 | import simplepets.brainsynder.api.inventory.CustomInventory; 4 | 5 | import java.util.Optional; 6 | 7 | public interface GUIHandler { 8 | /** 9 | * Registers the Inventory 10 | * 11 | * @param inventory - Inventory being registered 12 | */ 13 | void register(Class clazz); 14 | 15 | /** 16 | * Fetches the gui from the registered inventories 17 | * 18 | * @param clazz - The class you are looking for (EG: SelectionMenu.class) 19 | */ 20 | Optional getInventory(Class clazz); 21 | } 22 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/inventory/handler/InventoryType.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.inventory.handler; 2 | 3 | public interface InventoryType { 4 | InventoryType SUMMON_GUI = () -> "pet-summon"; 5 | InventoryType TYPE_SELECTION_GUI = () -> "pet-type-selection"; 6 | InventoryType SAVES_GUI = () -> "pet-saves"; 7 | InventoryType DATA_GUI = () -> "pet-data"; 8 | InventoryType ADDON_GUI = () -> "pet-addons"; 9 | 10 | String getRawType(); 11 | } 12 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/inventory/handler/ItemHandler.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.inventory.handler; 2 | 3 | import org.bukkit.inventory.ItemStack; 4 | import simplepets.brainsynder.api.inventory.Item; 5 | 6 | import java.util.Optional; 7 | 8 | public interface ItemHandler { 9 | /** 10 | * Registers the item so the names can be used in the GUIs 11 | * 12 | * @param item - Item being registered 13 | * @return true - Successfully registered 14 | * false - Failed to register (name already exists?) 15 | */ 16 | boolean register(Class clazz); 17 | 18 | /** 19 | * Fetches the item from the registered items 20 | * 21 | * @param clazz - The class you are looking for (EG: Placeholder.class) 22 | */ 23 | Optional getItem(Class clazz); 24 | 25 | /** 26 | * Fetches the item from the registered items 27 | * 28 | * @param namespace - Name of the item 29 | */ 30 | Optional getItem(String namespace); 31 | 32 | /** 33 | * Fetches the item from the registered items 34 | * 35 | * @param item - ItemStack being checked 36 | */ 37 | Optional getItem(ItemStack item); 38 | } 39 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/other/ParticleHandler.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.other; 2 | 3 | import org.bukkit.Location; 4 | import org.bukkit.entity.Player; 5 | 6 | public interface ParticleHandler { 7 | void sendParticle(Reason reason, Player player, Location location); 8 | 9 | enum Reason { 10 | SPAWN, FAILED, RENAME, REMOVE, TELEPORT, TASK_FAILED 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/CommandReason.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet; 2 | 3 | import java.util.Optional; 4 | 5 | public enum CommandReason { 6 | SPAWN, // When the pet is successfully spawned 7 | REVOKE, // When the pet is removed 8 | RIDE, // Command is run when the pet is toggled as a mount 9 | RIDE_DISMOUNT, // Command is run when the player dismounts the pet 10 | HAT, // Command is run when the pet is toggled as a hat 11 | TELEPORT, // When the pet teleports back to the player 12 | FAILED; // If a task fails to actually run 13 | 14 | 15 | public static Optional getReason(String name) { 16 | try { 17 | return Optional.of(valueOf(CommandReason.class, name.toUpperCase().trim())); 18 | } catch (Exception ignored) { 19 | } 20 | return Optional.empty(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/PetConfigManager.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet; 2 | 3 | import java.util.Optional; 4 | 5 | public interface PetConfigManager { 6 | Optional getPetConfig(PetType type); 7 | } 8 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/PetWeight.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet; 2 | 3 | // TODO: This might be removed from the main part of the code and moved to the addon 4 | public enum PetWeight { 5 | /** 6 | * Pet has no weight 7 | * (remove effect) 8 | */ 9 | NONE, 10 | /** 11 | * Is there even a pet here? 12 | * Hardly any weight at all 13 | * Slowness 1 14 | */ 15 | LIGHT, 16 | /** 17 | * It weights a little bit 18 | * Getting a little heavy 19 | * Slowness 2 20 | */ 21 | SLIGHTLY_HEAVY, 22 | /** 23 | * It is a bit heavy 24 | * Ohhh no... starting to get even heavier... 25 | * Slowness 3 26 | */ 27 | HEAVY, 28 | /** 29 | * Does it need explaining... 30 | * TOO HEAVY... Ohhhhhh my back... 31 | * Slowness 4 32 | */ 33 | YOUR_KILLING_ME 34 | } 35 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/annotations/DisableDefault.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * Any PetData that has this will be disabled by default 10 | */ 11 | @Retention(RetentionPolicy.RUNTIME) 12 | @Target({ElementType.TYPE}) 13 | public @interface DisableDefault {} -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/annotations/InDevelopment.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * Any PetType that has this will be marked as "In Development" and will be considered in beta 10 | */ 11 | @Retention(RetentionPolicy.RUNTIME) 12 | @Target({ElementType.FIELD}) 13 | public @interface InDevelopment {} -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/annotations/LargePet.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Retention(RetentionPolicy.RUNTIME) 9 | @Target({ElementType.FIELD}) 10 | public @interface LargePet {} -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/annotations/PetCustomization.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.annotations; 2 | 3 | import lib.brainsynder.sounds.SoundMaker; 4 | import simplepets.brainsynder.api.pet.PetWeight; 5 | 6 | import java.lang.annotation.ElementType; 7 | import java.lang.annotation.Retention; 8 | import java.lang.annotation.RetentionPolicy; 9 | import java.lang.annotation.Target; 10 | 11 | @Retention(RetentionPolicy.RUNTIME) 12 | @Target({ElementType.FIELD}) 13 | public @interface PetCustomization { 14 | SoundMaker ambient(); 15 | 16 | @Deprecated 17 | PetWeight weight() default PetWeight.NONE; 18 | } -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/AgeData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.misc.IAgeablePet; 7 | import simplepets.brainsynder.api.pet.PetData; 8 | 9 | @Namespace(namespace = "baby") 10 | public class AgeData extends PetData { 11 | public AgeData() { 12 | addDefaultItem("true", new ItemBuilder(Material.WHEAT) 13 | .withName("&#c8c8c8{name}: &atrue")); 14 | addDefaultItem("false", new ItemBuilder(Material.WHEAT) 15 | .withName("&#c8c8c8{name}: &cfalse")); 16 | } 17 | 18 | @Override 19 | public Object getDefaultValue() { 20 | return false; 21 | } 22 | 23 | @Override 24 | public void onLeftClick(IAgeablePet entity) { 25 | entity.setBabySafe(!entity.isBabySafe()); 26 | } 27 | 28 | @Override 29 | public Object value(IAgeablePet entity) { 30 | return entity.isBabySafe(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/AngryData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.passive.IEntityWolfPet; 7 | import simplepets.brainsynder.api.pet.PetData; 8 | 9 | @Namespace(namespace = "angry") 10 | public class AngryData extends PetData { 11 | public AngryData() { 12 | addDefaultItem("true", new ItemBuilder(Material.PLAYER_HEAD) 13 | .withName("&#c8c8c8{name}: &atrue") 14 | .setTexture("http://textures.minecraft.net/texture/8d1aa7e3b9564b3846f1dea14f1b1ccbf399bbb23b952dbd7eec41802a289c96")); 15 | addDefaultItem("false", new ItemBuilder(Material.PLAYER_HEAD) 16 | .withName("&#c8c8c8{name}: &cfalse") 17 | .setTexture("http://textures.minecraft.net/texture/69d1d3113ec43ac2961dd59f28175fb4718873c6c448dfca8722317d67")); 18 | } 19 | 20 | @Override 21 | public Object getDefaultValue() { 22 | return false; 23 | } 24 | 25 | @Override 26 | public void onLeftClick(IEntityWolfPet entity) { 27 | entity.setAngry(!entity.isAngry()); 28 | } 29 | 30 | @Override 31 | public Object value(IEntityWolfPet entity) { 32 | return entity.isAngry(); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/BatHangData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.passive.IEntityBatPet; 7 | import simplepets.brainsynder.api.pet.PetData; 8 | 9 | @Namespace(namespace = "hanging") 10 | public class BatHangData extends PetData { 11 | public BatHangData() { 12 | addDefaultItem("true", new ItemBuilder(Material.FEATHER) 13 | .withName("&#c8c8c8{name}: &atrue")); 14 | addDefaultItem("false", new ItemBuilder(Material.FEATHER) 15 | .withName("&#c8c8c8{name}: &cfalse")); 16 | } 17 | 18 | @Override 19 | public Object getDefaultValue() { 20 | return false; 21 | } 22 | 23 | @Override 24 | public void onLeftClick(IEntityBatPet entity) { 25 | entity.setHanging(!entity.isHanging()); 26 | } 27 | 28 | @Override 29 | public Object value(IEntityBatPet entity) { 30 | return entity.isHanging(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/CatTiltData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.passive.IEntityCatPet; 7 | import simplepets.brainsynder.api.pet.PetData; 8 | 9 | @Namespace(namespace = "head_up") 10 | public class CatTiltData extends PetData { 11 | public CatTiltData() { 12 | addDefaultItem("true", new ItemBuilder(Material.SKELETON_SKULL) 13 | .withName("&#c8c8c8{name}: &atrue")); 14 | addDefaultItem("false", new ItemBuilder(Material.SKELETON_SKULL) 15 | .withName("&#c8c8c8{name}: &cfalse")); 16 | } 17 | 18 | @Override 19 | public Object getDefaultValue() { 20 | return false; 21 | } 22 | 23 | @Override 24 | public void onLeftClick(IEntityCatPet entity) { 25 | entity.setHeadUp(!entity.isHeadUp()); 26 | } 27 | 28 | @Override 29 | public Object value(IEntityCatPet entity) { 30 | return entity.isHeadUp(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/CatTypeData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.passive.IEntityCatPet; 7 | import simplepets.brainsynder.api.pet.PetData; 8 | import simplepets.brainsynder.api.wrappers.CatType; 9 | 10 | @Namespace(namespace = "type") 11 | public class CatTypeData extends PetData { 12 | public CatTypeData() { 13 | for (CatType type : CatType.values()) { 14 | addDefaultItem(type.name(), new ItemBuilder(Material.PLAYER_HEAD) 15 | .withName("&#c8c8c8{name}: &a" + type.name()) 16 | .setTexture(type.getTexture())); 17 | } 18 | } 19 | 20 | @Override 21 | public Object getDefaultValue() { 22 | return CatType.TABBY; 23 | } 24 | 25 | @Override 26 | public void onLeftClick(IEntityCatPet entity) { 27 | entity.setCatType(CatType.getNext(entity.getCatType())); 28 | } 29 | 30 | @Override 31 | public Object value(IEntityCatPet entity) { 32 | return entity.getCatType(); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/ChargingData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.hostile.IEntityPiglinPet; 7 | import simplepets.brainsynder.api.pet.PetData; 8 | 9 | @Namespace(namespace = "charging") 10 | public class ChargingData extends PetData { 11 | public ChargingData() { 12 | addDefaultItem("true", new ItemBuilder(Material.IRON_SWORD) 13 | .withName("&#c8c8c8{name}: &atrue")); 14 | addDefaultItem("false", new ItemBuilder(Material.IRON_SWORD) 15 | .withName("&#c8c8c8{name}: &cfalse")); 16 | } 17 | 18 | @Override 19 | public Object getDefaultValue() { 20 | return false; 21 | } 22 | 23 | @Override 24 | public void onLeftClick(IEntityPiglinPet entity) { 25 | entity.setCharging(!entity.isCharging()); 26 | } 27 | 28 | @Override 29 | public Object value(IEntityPiglinPet entity) { 30 | return entity.isCharging(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/EatingData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.misc.IHorseAbstract; 7 | import simplepets.brainsynder.api.pet.PetData; 8 | 9 | @Namespace(namespace = "eating") 10 | public class EatingData extends PetData { 11 | public EatingData() { 12 | addDefaultItem("true", new ItemBuilder(Material.APPLE) 13 | .withName("&#c8c8c8{name}: &atrue")); 14 | addDefaultItem("false", new ItemBuilder(Material.APPLE) 15 | .withName("&#c8c8c8{name}: &cfalse")); 16 | } 17 | 18 | @Override 19 | public Object getDefaultValue() { 20 | return false; 21 | } 22 | 23 | @Override 24 | public void onLeftClick(IHorseAbstract entity) { 25 | entity.setEating(!entity.isEating()); 26 | } 27 | 28 | @Override 29 | public Object value(IHorseAbstract entity) { 30 | return entity.isEating(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/JohnnyData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.hostile.IEntityVindicatorPet; 7 | import simplepets.brainsynder.api.pet.PetData; 8 | 9 | @Namespace(namespace = "johnny") 10 | public class JohnnyData extends PetData { 11 | public JohnnyData() { 12 | addDefaultItem("true", new ItemBuilder(Material.IRON_AXE) 13 | .withName("&#c8c8c8{name}: &atrue")); 14 | addDefaultItem("false", new ItemBuilder(Material.IRON_AXE) 15 | .withName("&#c8c8c8{name}: &cfalse")); 16 | } 17 | 18 | @Override 19 | public Object getDefaultValue() { 20 | return false; 21 | } 22 | 23 | @Override 24 | public void onLeftClick(IEntityVindicatorPet entity) { 25 | entity.setJohnny(!entity.isJohnny()); 26 | } 27 | 28 | @Override 29 | public Object value(IEntityVindicatorPet entity) { 30 | return entity.isJohnny(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/MooshroomColorData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data; 2 | 3 | import simplepets.brainsynder.api.Namespace; 4 | import simplepets.brainsynder.api.entity.passive.IEntityMooshroomPet; 5 | import simplepets.brainsynder.api.pet.PetData; 6 | import simplepets.brainsynder.api.wrappers.MooshroomType; 7 | 8 | @Namespace(namespace = "type") 9 | public class MooshroomColorData extends PetData { 10 | public MooshroomColorData() { 11 | for (MooshroomType color : MooshroomType.values()) { 12 | addDefaultItem(color.name(), color.getIcon() 13 | .withName("&#c8c8c8{name}: &a" + color.name())); 14 | } 15 | } 16 | 17 | @Override 18 | public Object getDefaultValue() { 19 | return MooshroomType.RED; 20 | } 21 | 22 | @Override 23 | public void onLeftClick(IEntityMooshroomPet entity) { 24 | entity.setMooshroomType(MooshroomType.getNext(entity.getMooshroomType())); 25 | } 26 | 27 | @Override 28 | public Object value(IEntityMooshroomPet entity) { 29 | return entity.getMooshroomType().name(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/ParrotColorData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.passive.IEntityParrotPet; 7 | import simplepets.brainsynder.api.pet.PetData; 8 | import simplepets.brainsynder.api.wrappers.ParrotVariant; 9 | 10 | @Namespace(namespace = "variant") 11 | public class ParrotColorData extends PetData { 12 | public ParrotColorData() { 13 | for (ParrotVariant variant : ParrotVariant.values()) { 14 | addDefaultItem(variant.name(), new ItemBuilder(Material.PLAYER_HEAD) 15 | .withName("&#c8c8c8{name}: &a" + variant.name()) 16 | .setTexture(variant.getTexture())); 17 | } 18 | } 19 | 20 | @Override 21 | public Object getDefaultValue() { 22 | return ParrotVariant.RED; 23 | } 24 | 25 | @Override 26 | public void onLeftClick(IEntityParrotPet entity) { 27 | entity.setVariant(ParrotVariant.getNext(entity.getVariant())); 28 | } 29 | 30 | @Override 31 | public Object value(IEntityParrotPet entity) { 32 | return entity.getVariant().name(); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/PotionData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.hostile.IEntityWitchPet; 7 | import simplepets.brainsynder.api.pet.PetData; 8 | 9 | @Namespace(namespace = "potion") 10 | public class PotionData extends PetData { 11 | public PotionData() { 12 | addDefaultItem("true", new ItemBuilder(Material.POTION) 13 | .withName("&#c8c8c8{name}: &atrue")); 14 | addDefaultItem("false", new ItemBuilder(Material.POTION) 15 | .withName("&#c8c8c8{name}: &cfalse")); 16 | } 17 | 18 | @Override 19 | public Object getDefaultValue() { 20 | return false; 21 | } 22 | 23 | @Override 24 | public void onLeftClick(IEntityWitchPet entity) { 25 | entity.setDrinkingPotion(!entity.isDrinkingPotion()); 26 | } 27 | 28 | @Override 29 | public Object value(IEntityWitchPet entity) { 30 | return entity.isDrinkingPotion(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/PoweredData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.misc.IPowered; 7 | import simplepets.brainsynder.api.pet.PetData; 8 | 9 | @Namespace(namespace = "powered") 10 | public class PoweredData extends PetData { 11 | public PoweredData() { 12 | addDefaultItem("true", new ItemBuilder(Material.GUNPOWDER) 13 | .withName("&#c8c8c8{name}: &atrue")); 14 | addDefaultItem("false", new ItemBuilder(Material.GUNPOWDER) 15 | .withName("&#c8c8c8{name}: &cfalse")); 16 | } 17 | 18 | @Override 19 | public Object getDefaultValue() { 20 | return false; 21 | } 22 | 23 | @Override 24 | public void onLeftClick(IPowered entity) { 25 | entity.setPowered(!entity.isPowered()); 26 | } 27 | 28 | @Override 29 | public Object value(IPowered entity) { 30 | return entity.isPowered(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/PufferSizeData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.hostile.IEntityPufferFishPet; 7 | import simplepets.brainsynder.api.pet.PetData; 8 | import simplepets.brainsynder.api.wrappers.PufferState; 9 | 10 | @Namespace(namespace = "size") 11 | public class PufferSizeData extends PetData { 12 | public PufferSizeData() { 13 | for (PufferState state : PufferState.values()) { 14 | addDefaultItem(state.name(), new ItemBuilder(Material.PLAYER_HEAD) 15 | .withName("&#c8c8c8{name}: &a" + state.name()) 16 | .setTexture("http://textures.minecraft.net/texture/17152876bc3a96dd2a2299245edb3beef647c8a56ac8853a687c3e7b5d8bb")); 17 | } 18 | } 19 | 20 | @Override 21 | public Object getDefaultValue() { 22 | return PufferState.SMALL; 23 | } 24 | 25 | @Override 26 | public void onLeftClick(IEntityPufferFishPet entity) { 27 | entity.setPuffState(PufferState.getNext(entity.getPuffState())); 28 | } 29 | 30 | @Override 31 | public Object value(IEntityPufferFishPet entity) { 32 | return entity.getPuffState().name(); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/RabbitColorData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.passive.IEntityRabbitPet; 7 | import simplepets.brainsynder.api.pet.PetData; 8 | import simplepets.brainsynder.api.wrappers.RabbitType; 9 | 10 | @Namespace(namespace = "variant") 11 | public class RabbitColorData extends PetData { 12 | public RabbitColorData() { 13 | for (RabbitType variant : RabbitType.values()) { 14 | addDefaultItem(variant.name(), new ItemBuilder(Material.PLAYER_HEAD) 15 | .withName("&#c8c8c8{name}: &a" + variant.name()) 16 | .setTexture(variant.getTexture())); 17 | } 18 | } 19 | 20 | @Override 21 | public Object getDefaultValue() { 22 | return RabbitType.BROWN; 23 | } 24 | 25 | @Override 26 | public void onLeftClick(IEntityRabbitPet entity) { 27 | entity.setRabbitType(RabbitType.getNext(entity.getRabbitType())); 28 | } 29 | 30 | @Override 31 | public Object value(IEntityRabbitPet entity) { 32 | return entity.getRabbitType().name(); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/SaddleData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.misc.ISaddle; 7 | import simplepets.brainsynder.api.pet.PetData; 8 | 9 | @Namespace(namespace = "saddled") 10 | public class SaddleData extends PetData { 11 | public SaddleData() { 12 | addDefaultItem("true", new ItemBuilder(Material.SADDLE) 13 | .withName("&#c8c8c8{name}: &atrue")); 14 | addDefaultItem("false", new ItemBuilder(Material.SADDLE) 15 | .withName("&#c8c8c8{name}: &cfalse")); 16 | } 17 | 18 | @Override 19 | public Object getDefaultValue() { 20 | return false; 21 | } 22 | 23 | @Override 24 | public void onLeftClick(ISaddle entity) { 25 | entity.setSaddled(!entity.isSaddled()); 26 | } 27 | 28 | @Override 29 | public Object value(ISaddle entity) { 30 | return entity.isSaddled(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/ShakeData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.misc.IShaking; 7 | import simplepets.brainsynder.api.pet.PetData; 8 | 9 | @Namespace(namespace = "shaking") 10 | public class ShakeData extends PetData { 11 | public ShakeData() { 12 | addDefaultItem("true", new ItemBuilder(Material.ENCHANTED_GOLDEN_APPLE) 13 | .withName("&#c8c8c8{name}: &atrue")); 14 | addDefaultItem("false", new ItemBuilder(Material.ENCHANTED_GOLDEN_APPLE) 15 | .withName("&#c8c8c8{name}: &cfalse")); 16 | } 17 | 18 | @Override 19 | public Object getDefaultValue() { 20 | return false; 21 | } 22 | 23 | @Override 24 | public void onLeftClick(IShaking entity) { 25 | entity.setShaking(!entity.isShaking()); 26 | } 27 | 28 | @Override 29 | public Object value(IShaking entity) { 30 | return entity.isShaking(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/ShearData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.misc.ISheared; 7 | import simplepets.brainsynder.api.pet.PetData; 8 | 9 | @Namespace(namespace = "sheared") 10 | public class ShearData extends PetData { 11 | public ShearData() { 12 | addDefaultItem("true", new ItemBuilder(Material.SHEARS) 13 | .withName("&#c8c8c8{name}: &atrue")); 14 | addDefaultItem("false", new ItemBuilder(Material.SHEARS) 15 | .withName("&#c8c8c8{name}: &cfalse")); 16 | } 17 | 18 | @Override 19 | public Object getDefaultValue() { 20 | return false; 21 | } 22 | 23 | @Override 24 | public void onLeftClick(ISheared entity) { 25 | entity.setSheared(!entity.isSheared()); 26 | } 27 | 28 | @Override 29 | public Object value(ISheared entity) { 30 | return entity.isSheared(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/SittingData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.misc.ISitting; 7 | import simplepets.brainsynder.api.pet.PetData; 8 | 9 | @Namespace(namespace = "sitting") 10 | public class SittingData extends PetData { 11 | public SittingData() { 12 | addDefaultItem("true", new ItemBuilder(Material.OAK_STAIRS) 13 | .withName("&#c8c8c8{name}: &atrue")); 14 | addDefaultItem("false", new ItemBuilder(Material.OAK_STAIRS) 15 | .withName("&#c8c8c8{name}: &cfalse")); 16 | } 17 | 18 | @Override 19 | public Object getDefaultValue() { 20 | return false; 21 | } 22 | 23 | @Override 24 | public void onLeftClick(ISitting entity) { 25 | entity.setSitting(!entity.isSitting()); 26 | } 27 | 28 | @Override 29 | public Object value(ISitting entity) { 30 | return entity.isSitting(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/SleepData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.misc.ISleeper; 7 | import simplepets.brainsynder.api.pet.PetData; 8 | 9 | @Namespace(namespace = "sleep") 10 | public class SleepData extends PetData { 11 | public SleepData() { 12 | addDefaultItem("true", new ItemBuilder(Material.RED_BED) 13 | .withName("&#c8c8c8{name}: &atrue")); 14 | addDefaultItem("false", new ItemBuilder(Material.RED_BED) 15 | .withName("&#c8c8c8{name}: &cfalse")); 16 | } 17 | 18 | @Override 19 | public Object getDefaultValue() { 20 | return false; 21 | } 22 | 23 | @Override 24 | public void onLeftClick(ISleeper entity) { 25 | entity.setPetSleeping(!entity.isPetSleeping()); 26 | } 27 | 28 | @Override 29 | public Object value(ISleeper entity) { 30 | return entity.isPetSleeping(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/SpellData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data; 2 | 3 | import lib.brainsynder.apache.WordUtils; 4 | import simplepets.brainsynder.api.Namespace; 5 | import simplepets.brainsynder.api.entity.misc.IEntityWizard; 6 | import simplepets.brainsynder.api.pet.PetData; 7 | import simplepets.brainsynder.api.wrappers.WizardSpell; 8 | 9 | @Namespace(namespace = "spell") 10 | public class SpellData extends PetData { 11 | public SpellData() { 12 | for (WizardSpell spell : WizardSpell.values()) { 13 | addDefaultItem(spell.name(), spell.getIcon().withName("&#c8c8c8{name}: &a" + WordUtils.capitalize(spell.name().toLowerCase().replace('_', ' ')))); 14 | } 15 | } 16 | 17 | @Override 18 | public Object getDefaultValue() { 19 | return WizardSpell.NONE; 20 | } 21 | 22 | @Override 23 | public void onLeftClick(IEntityWizard entity) { 24 | entity.setSpell(WizardSpell.getNext(entity.getSpell())); 25 | } 26 | 27 | @Override 28 | public void onRightClick(IEntityWizard entity) { 29 | entity.setSpell(WizardSpell.getPrevious(entity.getSpell())); 30 | } 31 | 32 | @Override 33 | public Object value(IEntityWizard entity) { 34 | return entity.getSpell().name(); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/StandingData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.passive.IEntityPolarBearPet; 7 | import simplepets.brainsynder.api.pet.PetData; 8 | 9 | @Namespace(namespace = "standing") 10 | public class StandingData extends PetData { 11 | public StandingData() { 12 | addDefaultItem("true", new ItemBuilder(Material.IRON_LEGGINGS) 13 | .withName("&#c8c8c8{name}: &atrue")); 14 | addDefaultItem("false", new ItemBuilder(Material.IRON_LEGGINGS) 15 | .withName("&#c8c8c8{name}: &cfalse")); 16 | } 17 | 18 | @Override 19 | public Object getDefaultValue() { 20 | return false; 21 | } 22 | 23 | @Override 24 | public void onLeftClick(IEntityPolarBearPet entity) { 25 | entity.setStandingUp(!entity.isStanding()); 26 | } 27 | 28 | @Override 29 | public Object value(IEntityPolarBearPet entity) { 30 | return entity.isStanding(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/TamedData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.misc.ITameable; 7 | import simplepets.brainsynder.api.pet.PetData; 8 | 9 | @Namespace(namespace = "tamed") 10 | public class TamedData extends PetData { 11 | public TamedData() { 12 | addDefaultItem("true", new ItemBuilder(Material.BONE) 13 | .withName("&#c8c8c8{name}: &atrue")); 14 | addDefaultItem("false", new ItemBuilder(Material.BONE) 15 | .withName("&#c8c8c8{name}: &cfalse")); 16 | } 17 | 18 | @Override 19 | public Object getDefaultValue() { 20 | return false; 21 | } 22 | 23 | @Override 24 | public void onLeftClick(ITameable entity) { 25 | entity.setTamed(!entity.isTamed()); 26 | } 27 | 28 | @Override 29 | public Object value(ITameable entity) { 30 | return entity.isTamed(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/WitherSizeData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.hostile.IEntityWitherPet; 7 | import simplepets.brainsynder.api.pet.PetData; 8 | 9 | @Namespace(namespace = "small") 10 | public class WitherSizeData extends PetData { 11 | public WitherSizeData() { 12 | addDefaultItem("true", new ItemBuilder(Material.NETHER_STAR) 13 | .withName("&#c8c8c8{name}: &atrue")); 14 | addDefaultItem("false", new ItemBuilder(Material.NETHER_STAR) 15 | .withName("&#c8c8c8{name}: &cfalse")); 16 | } 17 | 18 | @Override 19 | public Object getDefaultValue() { 20 | return false; 21 | } 22 | 23 | @Override 24 | public void onLeftClick(IEntityWitherPet entity) { 25 | entity.setSmall(!entity.isSmall()); 26 | } 27 | 28 | @Override 29 | public Object value(IEntityWitherPet entity) { 30 | return entity.isSmall(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/WolfTiltData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.passive.IEntityWolfPet; 7 | import simplepets.brainsynder.api.pet.PetData; 8 | 9 | @Namespace(namespace = "tilted") 10 | public class WolfTiltData extends PetData { 11 | public WolfTiltData() { 12 | addDefaultItem("true", new ItemBuilder(Material.SKELETON_SKULL) 13 | .withName("&#c8c8c8{name}: &atrue")); 14 | addDefaultItem("false", new ItemBuilder(Material.SKELETON_SKULL) 15 | .withName("&#c8c8c8{name}: &cfalse")); 16 | } 17 | 18 | @Override 19 | public Object getDefaultValue() { 20 | return false; 21 | } 22 | 23 | @Override 24 | public void onLeftClick(IEntityWolfPet entity) { 25 | entity.setHeadTilted(!entity.isHeadTilted()); 26 | } 27 | 28 | @Override 29 | public Object value(IEntityWolfPet entity) { 30 | return entity.isHeadTilted(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/bee/BeeAngryData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data.bee; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.passive.IEntityBeePet; 7 | import simplepets.brainsynder.api.pet.PetData; 8 | 9 | @Namespace(namespace = "angry") 10 | public class BeeAngryData extends PetData { 11 | public BeeAngryData() { 12 | addDefaultItem("true", new ItemBuilder(Material.PLAYER_HEAD) 13 | .withName("&#c8c8c8{name}: &atrue") 14 | .setTexture("http://textures.minecraft.net/texture/e400223f1fa54741d421d7e8046409d5f3e15c7f4364b1b739940208f3b686d4")); 15 | addDefaultItem("false", new ItemBuilder(Material.PLAYER_HEAD) 16 | .withName("&#c8c8c8{name}: &cfalse") 17 | .setTexture("http://textures.minecraft.net/texture/fa2cb74c13245d3ce9bacc8b1600af02fd7c91f501feaf97364e1f8b6f04f47f")); 18 | } 19 | 20 | @Override 21 | public Object getDefaultValue() { 22 | return false; 23 | } 24 | 25 | @Override 26 | public void onLeftClick(IEntityBeePet entity) { 27 | entity.setAngry(!entity.isAngry()); 28 | } 29 | 30 | @Override 31 | public Object value(IEntityBeePet entity) { 32 | return entity.isAngry(); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/color/RainbowData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data.color; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.misc.IRainbow; 7 | import simplepets.brainsynder.api.pet.PetData; 8 | 9 | @Namespace(namespace = "rainbow") 10 | public class RainbowData extends PetData { 11 | public RainbowData() { 12 | addDefaultItem("true", new ItemBuilder(Material.PLAYER_HEAD) 13 | .withName("&#c8c8c8{name}: &atrue") 14 | .setTexture("http://textures.minecraft.net/texture/c69e3e6e5b2b92f0beb368b738b993d7ba225bf9bb2758bfc9fc2daba4a5a7d")); 15 | addDefaultItem("false", new ItemBuilder(Material.PLAYER_HEAD) 16 | .withName("&#c8c8c8{name}: &cfalse") 17 | .setTexture("http://textures.minecraft.net/texture/c69e3e6e5b2b92f0beb368b738b993d7ba225bf9bb2758bfc9fc2daba4a5a7d")); 18 | } 19 | 20 | @Override 21 | public Object getDefaultValue() { 22 | return false; 23 | } 24 | 25 | @Override 26 | public void onLeftClick(IRainbow entity) { 27 | entity.setRainbow(!entity.isRainbow()); 28 | } 29 | 30 | @Override 31 | public Object value(IRainbow entity) { 32 | return entity.isRainbow(); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/fox/FoxSittingData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data.fox; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.passive.IEntityFoxPet; 7 | import simplepets.brainsynder.api.pet.PetData; 8 | 9 | @Namespace(namespace = "sitting") 10 | public class FoxSittingData extends PetData { 11 | public FoxSittingData() { 12 | addDefaultItem("true", new ItemBuilder(Material.OAK_STAIRS) 13 | .withName("&#c8c8c8{name}: &atrue")); 14 | addDefaultItem("false", new ItemBuilder(Material.OAK_STAIRS) 15 | .withName("&#c8c8c8{name}: &cfalse")); 16 | } 17 | 18 | @Override 19 | public Object getDefaultValue() { 20 | return false; 21 | } 22 | 23 | @Override 24 | public void onLeftClick(IEntityFoxPet entity) { 25 | entity.setSitting(!entity.isSitting()); 26 | } 27 | 28 | @Override 29 | public Object value(IEntityFoxPet entity) { 30 | return entity.isSitting(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/horse/ChestData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data.horse; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.misc.IChestedAbstractPet; 7 | import simplepets.brainsynder.api.pet.PetData; 8 | 9 | @Namespace(namespace = "chest") 10 | public class ChestData extends PetData { 11 | public ChestData() { 12 | addDefaultItem("true", new ItemBuilder(Material.CHEST) 13 | .withName("&#c8c8c8{name}: &atrue")); 14 | addDefaultItem("false", new ItemBuilder(Material.CHEST) 15 | .withName("&#c8c8c8{name}: &cfalse")); 16 | } 17 | 18 | @Override 19 | public Object getDefaultValue() { 20 | return false; 21 | } 22 | 23 | @Override 24 | public void onLeftClick(IChestedAbstractPet entity) { 25 | entity.setChested(!entity.isChested()); 26 | } 27 | 28 | @Override 29 | public Object value(IChestedAbstractPet entity) { 30 | return entity.isChested(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/panda/PandaSittingData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data.panda; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.passive.IEntityPandaPet; 7 | import simplepets.brainsynder.api.pet.PetData; 8 | 9 | @Namespace(namespace = "sitting") 10 | public class PandaSittingData extends PetData { 11 | public PandaSittingData() { 12 | addDefaultItem("true", new ItemBuilder(Material.OAK_STAIRS) 13 | .withName("&#c8c8c8{name}: &atrue")); 14 | addDefaultItem("false", new ItemBuilder(Material.OAK_STAIRS) 15 | .withName("&#c8c8c8{name}: &cfalse")); 16 | } 17 | 18 | @Override 19 | public Object getDefaultValue() { 20 | return false; 21 | } 22 | 23 | @Override 24 | public void onLeftClick(IEntityPandaPet entity) { 25 | entity.setSitting(!entity.isSitting()); 26 | } 27 | 28 | @Override 29 | public Object value(IEntityPandaPet entity) { 30 | return entity.isSitting(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/panda/PandaSleepData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data.panda; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.passive.IEntityPandaPet; 7 | import simplepets.brainsynder.api.pet.PetData; 8 | 9 | @Namespace(namespace = "sleeping") 10 | public class PandaSleepData extends PetData { 11 | public PandaSleepData() { 12 | addDefaultItem("true", new ItemBuilder(Material.RED_BED) 13 | .withName("&#c8c8c8{name}: &atrue")); 14 | addDefaultItem("false", new ItemBuilder(Material.RED_BED) 15 | .withName("&#c8c8c8{name}: &cfalse")); 16 | } 17 | 18 | @Override 19 | public Object getDefaultValue() { 20 | return false; 21 | } 22 | 23 | @Override 24 | public void onLeftClick(IEntityPandaPet entity) { 25 | entity.setLyingOnBack(!entity.isLyingOnBack()); 26 | } 27 | 28 | @Override 29 | public Object value(IEntityPandaPet entity) { 30 | return entity.isLyingOnBack(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/panda/PandaTypeData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data.panda; 2 | 3 | import simplepets.brainsynder.api.Namespace; 4 | import simplepets.brainsynder.api.entity.passive.IEntityPandaPet; 5 | import simplepets.brainsynder.api.pet.PetData; 6 | import simplepets.brainsynder.api.wrappers.PandaGene; 7 | 8 | @Namespace(namespace = "type") 9 | public class PandaTypeData extends PetData { 10 | public PandaTypeData() { 11 | for (PandaGene gene : PandaGene.values()) { 12 | addDefaultItem(gene.name(), gene.getIcon() 13 | .withName("&#c8c8c8{name}: &a" + gene.name())); 14 | } 15 | } 16 | 17 | @Override 18 | public Object getDefaultValue() { 19 | return PandaGene.NORMAL; 20 | } 21 | 22 | @Override 23 | public void onLeftClick(IEntityPandaPet entity) { 24 | entity.setGene(PandaGene.getNext(entity.getGene())); 25 | } 26 | 27 | @Override 28 | public void onRightClick(IEntityPandaPet entity) { 29 | entity.setGene(PandaGene.getPrevious(entity.getGene())); 30 | } 31 | 32 | @Override 33 | public Object value(IEntityPandaPet entity) { 34 | return entity.getGene(); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/villager/VillagerBiomeData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data.villager; 2 | 3 | import simplepets.brainsynder.api.Namespace; 4 | import simplepets.brainsynder.api.entity.misc.IProfession; 5 | import simplepets.brainsynder.api.pet.PetData; 6 | import simplepets.brainsynder.api.wrappers.villager.BiomeType; 7 | 8 | @Namespace(namespace = "biome") 9 | public class VillagerBiomeData extends PetData { 10 | public VillagerBiomeData() { 11 | for (BiomeType type : BiomeType.values()) { 12 | addDefaultItem(type.name(), type.getIcon() 13 | .withName("&#c8c8c8{name}: &a" + type.name())); 14 | } 15 | } 16 | 17 | @Override 18 | public Object getDefaultValue() { 19 | return BiomeType.PLAINS; 20 | } 21 | 22 | @Override 23 | public void onLeftClick(IProfession entity) { 24 | entity.setBiome(BiomeType.getNext(entity.getBiome())); 25 | } 26 | 27 | @Override 28 | public void onRightClick(IProfession entity) { 29 | entity.setBiome(BiomeType.getPrevious(entity.getBiome())); 30 | } 31 | 32 | @Override 33 | public Object value(IProfession entity) { 34 | return entity.getBiome(); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/villager/VillagerLevelData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data.villager; 2 | 3 | import simplepets.brainsynder.api.Namespace; 4 | import simplepets.brainsynder.api.entity.misc.IProfession; 5 | import simplepets.brainsynder.api.pet.PetData; 6 | import simplepets.brainsynder.api.wrappers.villager.VillagerLevel; 7 | 8 | @Namespace(namespace = "level") 9 | public class VillagerLevelData extends PetData { 10 | public VillagerLevelData() { 11 | for (VillagerLevel type : VillagerLevel.values()) { 12 | addDefaultItem(type.name(), type.getIcon() 13 | .withName("&#c8c8c8{name}: &a" + type.name())); 14 | } 15 | } 16 | 17 | @Override 18 | public Object getDefaultValue() { 19 | return VillagerLevel.NOVICE; 20 | } 21 | 22 | @Override 23 | public void onLeftClick(IProfession entity) { 24 | entity.setMasteryLevel(VillagerLevel.getNext(entity.getMasteryLevel())); 25 | } 26 | 27 | @Override 28 | public void onRightClick(IProfession entity) { 29 | entity.setMasteryLevel(VillagerLevel.getPrevious(entity.getMasteryLevel())); 30 | } 31 | 32 | @Override 33 | public Object value(IProfession entity) { 34 | return entity.getMasteryLevel(); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/pet/data/villager/VillagerTypeData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.pet.data.villager; 2 | 3 | import simplepets.brainsynder.api.Namespace; 4 | import simplepets.brainsynder.api.entity.misc.IProfession; 5 | import simplepets.brainsynder.api.pet.PetData; 6 | import simplepets.brainsynder.api.wrappers.villager.VillagerType; 7 | 8 | @Namespace(namespace = "profession") 9 | public class VillagerTypeData extends PetData { 10 | public VillagerTypeData() { 11 | for (VillagerType type : VillagerType.values()) { 12 | addDefaultItem(type.name(), type.getIcon() 13 | .withName("&#c8c8c8{name}: &a" + type.name())); 14 | } 15 | } 16 | 17 | @Override 18 | public Object getDefaultValue() { 19 | return VillagerType.NONE; 20 | } 21 | 22 | @Override 23 | public void onLeftClick(IProfession entity) { 24 | entity.setVillagerType(VillagerType.getNext(entity.getVillagerType())); 25 | } 26 | 27 | @Override 28 | public void onRightClick(IProfession entity) { 29 | entity.setVillagerType(VillagerType.getPrevious(entity.getVillagerType())); 30 | } 31 | 32 | @Override 33 | public Object value(IProfession entity) { 34 | return entity.getVillagerType(); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/plugin/utils/IPetUtilities.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.plugin.utils; 2 | 3 | import org.bukkit.Location; 4 | import org.bukkit.entity.Player; 5 | import org.bukkit.metadata.MetadataValue; 6 | import simplepets.brainsynder.api.entity.IEntityPet; 7 | import simplepets.brainsynder.api.pet.CommandReason; 8 | import simplepets.brainsynder.api.pet.PetType; 9 | import simplepets.brainsynder.api.user.PetUser; 10 | 11 | public interface IPetUtilities { 12 | void runPetCommands(CommandReason reason, PetUser owner, PetType type); 13 | 14 | void runPetCommands(CommandReason reason, PetUser owner, PetType type, Location location); 15 | 16 | String handlePlaceholders(PetUser owner, IEntityPet entity, Location petLoc, String text); 17 | 18 | String translatePetName(String name); 19 | 20 | default boolean isVanished(Player player) { 21 | if (player == null) return false; 22 | for (MetadataValue meta : player.getMetadata("vanished")) { 23 | if (meta.asBoolean()) return true; 24 | } 25 | return false; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/user/UserManagement.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.user; 2 | 3 | import org.bukkit.entity.Player; 4 | 5 | import java.util.Collection; 6 | import java.util.Optional; 7 | import java.util.UUID; 8 | import java.util.function.Consumer; 9 | 10 | public interface UserManagement { 11 | /** 12 | * Fetches the {@link PetUser} from the players username 13 | * 14 | * @param username - username of the player 15 | * @param consumer - what happens after it fetches the {@link PetUser} 16 | */ 17 | void getPetUser(String username, Consumer> consumer); 18 | 19 | /** 20 | * Fetches the {@link PetUser} from the players {@link UUID} 21 | * 22 | * @param uuid - Players UUID 23 | */ 24 | Optional getPetUser(UUID uuid); 25 | 26 | /** 27 | * Fetches the {@link PetUser} of the {@link Player} 28 | * 29 | * @param player - player instance 30 | */ 31 | Optional getPetUser(Player player); 32 | 33 | Collection getAllUsers(); 34 | 35 | boolean isUserCached(Player player); 36 | } 37 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/wrappers/AngerLevel.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.wrappers; 2 | 3 | public enum AngerLevel { 4 | CALM, 5 | AGITATED, 6 | ANGRY; 7 | 8 | public static AngerLevel getByID(int id) { 9 | for (AngerLevel v : values()) { 10 | if (v.ordinal() == id) { 11 | return v; 12 | } 13 | } 14 | return CALM; 15 | } 16 | 17 | public static AngerLevel getByName(String name) { 18 | for (AngerLevel wrapper : values()) { 19 | if (wrapper.name().equalsIgnoreCase(name)) return wrapper; 20 | } 21 | return CALM; 22 | } 23 | 24 | public static AngerLevel getPrevious(AngerLevel current) { 25 | return switch (current) { 26 | case CALM -> ANGRY; 27 | case AGITATED -> CALM; 28 | case ANGRY -> AGITATED; 29 | }; 30 | } 31 | 32 | public static AngerLevel getNext(AngerLevel current) { 33 | return switch (current) { 34 | case CALM -> AGITATED; 35 | case AGITATED -> ANGRY; 36 | case ANGRY -> CALM; 37 | }; 38 | } 39 | } -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/wrappers/AxolotlVariant.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.wrappers; 2 | 3 | public enum AxolotlVariant { 4 | LUCY("3b83a38a458c3cca0761e2c8210c6f5d2f3380e860d50d2f4756516a2642617d"), 5 | WILD("4d7efe02012cf31ae2708e7d7df079726575c7ee8504328175fe544708187dce"), 6 | GOLD("7f80cc1492e44668cccdb40178c3a6689e8dfc0d234e98553fb7debc26fcaeac"), 7 | CYAN("e1c2d0c3b96ad45b466388e028b247aafe36b26b12c411ecb72e9b50ea21e52c"), 8 | BLUE("300e28cd4dde9af7a99aeb12c235ff1d3bf6d7e966263bd91a7118b3dfeabcb6"); 9 | 10 | private final String texture; 11 | 12 | AxolotlVariant(String texture) { 13 | this.texture = "http://textures.minecraft.net/texture/" + texture; 14 | } 15 | 16 | public String getTexture() { 17 | return texture; 18 | } 19 | 20 | public static AxolotlVariant getPrevious(AxolotlVariant current) { 21 | return (current == LUCY) ? BLUE : values()[current.ordinal() - 1]; 22 | } 23 | 24 | public static AxolotlVariant getNext(AxolotlVariant current) { 25 | return (current == BLUE) ? LUCY : values()[current.ordinal() + 1]; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/wrappers/FoxType.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.wrappers; 2 | 3 | public enum FoxType { 4 | RED, 5 | WHITE; 6 | 7 | public static FoxType getByID(int id) { 8 | for (FoxType v : values()) { 9 | if (v.ordinal() == id) { 10 | return v; 11 | } 12 | } 13 | return RED; 14 | } 15 | 16 | public static FoxType getByName(String name) { 17 | for (FoxType wrapper : values()) { 18 | if (wrapper.name().equalsIgnoreCase(name)) return wrapper; 19 | } 20 | return RED; 21 | } 22 | 23 | public static FoxType getPrevious(FoxType current) { 24 | if (current == RED) return WHITE; 25 | return values()[(current.ordinal() - 1)]; 26 | } 27 | 28 | public static FoxType getNext(FoxType current) { 29 | if (current == WHITE) return RED; 30 | return values()[(current.ordinal() + 1)]; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/api/wrappers/horse/HorseArmorType.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.api.wrappers.horse; 2 | 3 | public enum HorseArmorType { 4 | NONE(0), 5 | LEATHER(1), 6 | IRON(2), 7 | GOLD(3), 8 | DIAMOND(4); 9 | 10 | private final int id; 11 | 12 | HorseArmorType(int id) { 13 | this.id = id; 14 | } 15 | 16 | public static HorseArmorType getByName(String name) { 17 | for (HorseArmorType wrapper : values()) { 18 | if (wrapper.name().equalsIgnoreCase(name)) return wrapper; 19 | } 20 | return NONE; 21 | } 22 | 23 | public static HorseArmorType fromId(int id) { 24 | for (HorseArmorType armor : values()) { 25 | if (armor.getId() == id) 26 | return armor; 27 | } 28 | return null; 29 | } 30 | 31 | public static HorseArmorType getPrevious(HorseArmorType current) { 32 | return (current == NONE) ? DIAMOND : values()[current.ordinal() - 1]; 33 | } 34 | 35 | public static HorseArmorType getNext(HorseArmorType current) { 36 | return (current == DIAMOND) ? NONE : values()[current.ordinal() + 1]; 37 | } 38 | 39 | public int getId() { 40 | return this.id; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /plugin-api/src/simplepets/brainsynder/debug/DebugLogger.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.debug; 2 | 3 | import java.util.LinkedList; 4 | 5 | public interface DebugLogger { 6 | void debug(DebugBuilder builder); 7 | 8 | void debug(String message); 9 | 10 | void debug(String message, boolean sync); 11 | 12 | void debug(DebugLevel level, String message); 13 | 14 | void debug(DebugLevel level, String message, boolean sync); 15 | 16 | LinkedList getDebugLog(); 17 | } 18 | -------------------------------------------------------------------------------- /plugin-core/src/simplepets/brainsynder/commands/Permission.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.commands; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Retention(RetentionPolicy.RUNTIME) 9 | @Target({ElementType.TYPE}) 10 | public @interface Permission { 11 | String permission() default ""; 12 | 13 | String[] additionalPermissions() default {""}; 14 | 15 | boolean defaultAllow() default false; 16 | 17 | boolean adminCommand() default false; 18 | } -------------------------------------------------------------------------------- /plugin-core/src/simplepets/brainsynder/commands/list/PremiumCommand.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.commands.list; 2 | 3 | import lib.brainsynder.commands.annotations.ICommand; 4 | import org.bukkit.command.CommandSender; 5 | import simplepets.brainsynder.PetCore; 6 | import simplepets.brainsynder.commands.Permission; 7 | import simplepets.brainsynder.commands.PetSubCommand; 8 | import simplepets.brainsynder.files.MessageFile; 9 | import simplepets.brainsynder.files.options.MessageOption; 10 | import simplepets.brainsynder.utils.Premium; 11 | 12 | @ICommand( 13 | name = "premium", 14 | description = "Shows the information of the user who purchased the resource" 15 | ) 16 | @Permission(permission = "premium", adminCommand = true) 17 | public class PremiumCommand extends PetSubCommand { 18 | 19 | public PremiumCommand(PetCore plugin) { 20 | super(plugin); 21 | } 22 | 23 | @Override 24 | public void run(CommandSender sender, String[] args) { 25 | sender.sendMessage(MessageFile.getTranslation(MessageOption.PREFIX) + "§7Purchase Users ID: " + Premium.USER_ID); 26 | sender.sendMessage(MessageFile.getTranslation(MessageOption.PREFIX) + "§7Premium Resource ID: " + Premium.USER_ID); 27 | sender.sendMessage(MessageFile.getTranslation(MessageOption.PREFIX) + "§7Download ID: " + Premium.UNIQUE_DOWNLOAD_ID + "(Unique for all downloads)"); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /plugin-core/src/simplepets/brainsynder/listeners/ChunkUnloadListener.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.listeners; 2 | 3 | import org.bukkit.entity.Entity; 4 | import org.bukkit.event.EventHandler; 5 | import org.bukkit.event.Listener; 6 | import org.bukkit.event.world.ChunkUnloadEvent; 7 | import simplepets.brainsynder.api.entity.IEntityPet; 8 | import simplepets.brainsynder.api.plugin.SimplePets; 9 | 10 | public class ChunkUnloadListener implements Listener { 11 | 12 | @EventHandler 13 | public void onUnload(ChunkUnloadEvent event) { 14 | if (!event.getChunk().isLoaded()) return; 15 | for (Entity entity : event.getChunk().getEntities()) { 16 | if (!SimplePets.isPetEntity(entity)) continue; 17 | SimplePets.getSpawnUtil().getHandle(entity).ifPresent(o -> { 18 | IEntityPet pet = (IEntityPet) o; 19 | pet.getPetUser().removePet(pet.getPetType()); 20 | }); 21 | } 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /plugin-core/src/simplepets/brainsynder/listeners/PetSpawnListener.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.listeners; 2 | 3 | import org.bukkit.entity.Entity; 4 | import org.bukkit.event.EventHandler; 5 | import org.bukkit.event.EventPriority; 6 | import org.bukkit.event.Listener; 7 | import org.bukkit.event.entity.CreatureSpawnEvent; 8 | import org.bukkit.event.entity.EntitySpawnEvent; 9 | import simplepets.brainsynder.api.plugin.SimplePets; 10 | 11 | public class PetSpawnListener implements Listener { 12 | @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) 13 | public void onCreatureSpawn(CreatureSpawnEvent event) { 14 | Entity e = event.getEntity(); 15 | if (!SimplePets.isPetEntity(e)) return; 16 | event.setCancelled(false); 17 | } 18 | 19 | @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) 20 | public void onCreatureSpawn(EntitySpawnEvent event) { 21 | Entity e = event.getEntity(); 22 | if (!SimplePets.isPetEntity(e)) return; 23 | event.setCancelled(false); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /plugin-core/src/simplepets/brainsynder/listeners/breaking/DismountListener.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.listeners.breaking; 2 | 3 | import org.bukkit.entity.Player; 4 | import org.bukkit.event.EventHandler; 5 | import org.bukkit.event.Listener; 6 | import org.bukkit.event.entity.EntityDismountEvent; 7 | import simplepets.brainsynder.api.entity.IEntityPet; 8 | import simplepets.brainsynder.api.pet.CommandReason; 9 | import simplepets.brainsynder.api.plugin.SimplePets; 10 | 11 | public class DismountListener implements Listener { 12 | @EventHandler 13 | public void onDismount(EntityDismountEvent event) { 14 | if ((event.getEntity() instanceof Player) && SimplePets.isPetEntity(event.getDismounted())) { 15 | SimplePets.getUserManager().getPetUser((Player) event.getEntity()).ifPresent(user -> { 16 | SimplePets.getSpawnUtil().getHandle(event.getDismounted()).ifPresent(o -> { 17 | IEntityPet pet = (IEntityPet) o; 18 | SimplePets.getPetUtilities().runPetCommands(CommandReason.RIDE_DISMOUNT, user, pet.getPetType()); 19 | }); 20 | }); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /plugin-core/src/simplepets/brainsynder/menu/inventory/holders/AddonHolder.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.menu.inventory.holders; 2 | 3 | import org.bukkit.inventory.Inventory; 4 | import org.bukkit.inventory.InventoryHolder; 5 | 6 | public class AddonHolder implements InventoryHolder { 7 | @Override 8 | public Inventory getInventory() { 9 | return null; 10 | } 11 | } -------------------------------------------------------------------------------- /plugin-core/src/simplepets/brainsynder/menu/inventory/holders/PetDataHolder.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.menu.inventory.holders; 2 | 3 | import org.bukkit.inventory.Inventory; 4 | import org.bukkit.inventory.InventoryHolder; 5 | 6 | public class PetDataHolder implements InventoryHolder { 7 | @Override 8 | public Inventory getInventory() { 9 | return null; 10 | } 11 | } -------------------------------------------------------------------------------- /plugin-core/src/simplepets/brainsynder/menu/inventory/holders/SavesHolder.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.menu.inventory.holders; 2 | 3 | import org.bukkit.inventory.Inventory; 4 | import org.bukkit.inventory.InventoryHolder; 5 | 6 | public class SavesHolder implements InventoryHolder { 7 | @Override 8 | public Inventory getInventory() { 9 | return null; 10 | } 11 | } -------------------------------------------------------------------------------- /plugin-core/src/simplepets/brainsynder/menu/inventory/holders/SelectionHolder.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.menu.inventory.holders; 2 | 3 | import org.bukkit.inventory.Inventory; 4 | import org.bukkit.inventory.InventoryHolder; 5 | 6 | public class SelectionHolder implements InventoryHolder { 7 | @Override 8 | public Inventory getInventory() { 9 | return null; 10 | } 11 | } -------------------------------------------------------------------------------- /plugin-core/src/simplepets/brainsynder/menu/inventory/holders/SelectorHolder.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.menu.inventory.holders; 2 | 3 | import org.bukkit.inventory.Inventory; 4 | import org.bukkit.inventory.InventoryHolder; 5 | 6 | public class SelectorHolder implements InventoryHolder { 7 | @Override 8 | public Inventory getInventory() { 9 | return null; 10 | } 11 | } -------------------------------------------------------------------------------- /plugin-core/src/simplepets/brainsynder/menu/items/list/Air.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.menu.items.list; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.IEntityPet; 7 | import simplepets.brainsynder.api.inventory.CustomInventory; 8 | import simplepets.brainsynder.api.inventory.Item; 9 | import simplepets.brainsynder.api.user.PetUser; 10 | 11 | import java.io.File; 12 | 13 | @Namespace(namespace = "air") 14 | public class Air extends Item { 15 | public Air(File file) { 16 | super(file); 17 | } 18 | 19 | @Override 20 | public void onClick(PetUser user, CustomInventory inventory, IEntityPet pet) { 21 | 22 | } 23 | 24 | @Override 25 | public void loadDefaults() { 26 | defaults.add("_COMMENT_", "This not editable simply because you can not modify air :P"); 27 | } 28 | 29 | @Override 30 | public ItemBuilder getItemBuilder() { 31 | return new ItemBuilder(Material.AIR); 32 | } 33 | 34 | @Override 35 | public ItemBuilder getDefaultItem() { 36 | return new ItemBuilder(Material.AIR); 37 | } 38 | 39 | @Override 40 | public boolean isEnabled() { 41 | return true; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /plugin-core/src/simplepets/brainsynder/menu/items/list/Placeholder.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.menu.items.list; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.IEntityPet; 7 | import simplepets.brainsynder.api.inventory.CustomInventory; 8 | import simplepets.brainsynder.api.inventory.Item; 9 | import simplepets.brainsynder.api.user.PetUser; 10 | 11 | import java.io.File; 12 | 13 | @Namespace(namespace = "placeholder") 14 | public class Placeholder extends Item { 15 | public Placeholder(File file) { 16 | super(file); 17 | } 18 | 19 | @Override 20 | public void onClick(PetUser user, CustomInventory inventory, IEntityPet pet) { 21 | 22 | } 23 | 24 | @Override 25 | public ItemBuilder getDefaultItem() { 26 | return new ItemBuilder(Material.GRAY_STAINED_GLASS_PANE).withName(" "); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /plugin-core/src/simplepets/brainsynder/menu/items/list/Saves.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.menu.items.list; 2 | 3 | import lib.brainsynder.item.ItemBuilder; 4 | import org.bukkit.Material; 5 | import simplepets.brainsynder.api.Namespace; 6 | import simplepets.brainsynder.api.entity.IEntityPet; 7 | import simplepets.brainsynder.api.inventory.CustomInventory; 8 | import simplepets.brainsynder.api.inventory.Item; 9 | import simplepets.brainsynder.api.plugin.config.ConfigOption; 10 | import simplepets.brainsynder.api.user.PetUser; 11 | import simplepets.brainsynder.managers.InventoryManager; 12 | 13 | import java.io.File; 14 | 15 | @Namespace(namespace = "saves") 16 | public class Saves extends Item { 17 | public Saves(File file) { 18 | super(file); 19 | } 20 | 21 | @Override 22 | public ItemBuilder getDefaultItem() { 23 | return new ItemBuilder(Material.COMMAND_BLOCK) 24 | .withName("&#e3c79a&lPet Saves") 25 | .addLore("&7", "&7View the pets you have saved"); 26 | } 27 | 28 | @Override 29 | public boolean addItemToInv(PetUser user, CustomInventory inventory) { 30 | return ConfigOption.INSTANCE.PET_SAVES_ENABLED.getValue(); 31 | } 32 | 33 | @Override 34 | public void onClick(PetUser user, CustomInventory inventory, IEntityPet pet) { 35 | InventoryManager.PET_SAVES.open(user); 36 | } 37 | } -------------------------------------------------------------------------------- /plugin-core/src/simplepets/brainsynder/sql/SQLData.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.sql; 2 | 3 | import simplepets.brainsynder.api.plugin.SimplePets; 4 | import simplepets.brainsynder.api.plugin.config.ConfigOption; 5 | import simplepets.brainsynder.debug.DebugLevel; 6 | 7 | public class SQLData { 8 | public static final String TABLE_PREFIX; 9 | public static final String DATABASE_NAME; 10 | public static boolean USE_SQLITE = false; 11 | 12 | static { 13 | String tablePrefix0 = ConfigOption.INSTANCE.MYSQL_TABLE.getValue(); 14 | if (!tablePrefix0.matches("^[_A-Za-z0-9]+$")) { 15 | SimplePets.getDebugLogger().debug(DebugLevel.WARNING, "Table prefix " + tablePrefix0 + " is not alphanumeric. Using simplepets...", true); 16 | TABLE_PREFIX = "simplepets"; 17 | } else { 18 | TABLE_PREFIX = tablePrefix0; 19 | } 20 | 21 | boolean enabled = ConfigOption.INSTANCE.MYSQL_ENABLED.getValue(); 22 | DATABASE_NAME = ConfigOption.INSTANCE.MYSQL_DATABASE.getValue(); 23 | 24 | if (!enabled) { 25 | USE_SQLITE = true; 26 | } else { 27 | try { 28 | Class.forName("com.mysql.cj.jdbc.Driver"); 29 | } catch (ClassNotFoundException e) { 30 | USE_SQLITE = true; 31 | } 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /plugin-core/src/simplepets/brainsynder/utils/BiTask.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.utils; 2 | 3 | public interface BiTask { 4 | void run(P1 value1, P2 value2); 5 | } 6 | -------------------------------------------------------------------------------- /plugin-core/src/simplepets/brainsynder/utils/FieldValues.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 3 | * BSDevelopment 4 | */ 5 | 6 | package simplepets.brainsynder.utils; 7 | 8 | public interface FieldValues { 9 | String getEntityDataMapField(); 10 | 11 | String getEntityFactoryField(); 12 | 13 | String getEntityRegistryField(); 14 | 15 | String getEntityJumpField(); 16 | 17 | String getRegistryFrozenField(); 18 | 19 | String getRegistryIntrusiveField(); 20 | 21 | String getRideCooldownField(); 22 | 23 | String getServerRunningField(); 24 | } 25 | -------------------------------------------------------------------------------- /plugin-core/src/simplepets/brainsynder/utils/Keys.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.utils; 2 | 3 | import org.bukkit.NamespacedKey; 4 | import simplepets.brainsynder.PetCore; 5 | 6 | public class Keys { 7 | public final static NamespacedKey GUI_ITEM; // Will be added to any items that is in the GUI 8 | public final static NamespacedKey PET_TYPE_ITEM; // Will be added to items that are for a PetType 9 | 10 | public final static NamespacedKey BOOK_KEY; 11 | 12 | public final static NamespacedKey MODULE_NAME; 13 | public final static NamespacedKey ADDON_NAME; 14 | public final static NamespacedKey ADDON_UPDATE; 15 | public final static NamespacedKey ADDON_URL; 16 | 17 | static { 18 | GUI_ITEM = new NamespacedKey(PetCore.getInstance(), "gui_item"); 19 | PET_TYPE_ITEM = new NamespacedKey(PetCore.getInstance(), "pet_item"); 20 | 21 | BOOK_KEY = new NamespacedKey(PetCore.getInstance(), "book_key"); 22 | 23 | MODULE_NAME = new NamespacedKey(PetCore.getInstance(), "module_name"); 24 | ADDON_NAME = new NamespacedKey(PetCore.getInstance(), "addon_name"); 25 | ADDON_URL = new NamespacedKey(PetCore.getInstance(), "addon_url"); 26 | ADDON_UPDATE = new NamespacedKey(PetCore.getInstance(), "addon_update_url"); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /plugin-core/src/simplepets/brainsynder/utils/RenameType.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.utils; 2 | 3 | public enum RenameType { 4 | COMMAND, 5 | CHAT, 6 | ANVIL, 7 | SIGN; 8 | 9 | public static RenameType getType(String name, RenameType fallback) { 10 | try { 11 | return valueOf(name.toUpperCase()); 12 | } catch (Exception e) { 13 | return fallback; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /plugin-core/src/simplepets/brainsynder/utils/UUIDDataType.java: -------------------------------------------------------------------------------- 1 | package simplepets.brainsynder.utils; 2 | 3 | import org.bukkit.persistence.PersistentDataAdapterContext; 4 | import org.bukkit.persistence.PersistentDataType; 5 | 6 | import java.nio.ByteBuffer; 7 | import java.util.UUID; 8 | 9 | public class UUIDDataType implements PersistentDataType { 10 | 11 | @Override 12 | public Class getPrimitiveType() { 13 | return byte[].class; 14 | } 15 | 16 | @Override 17 | public Class getComplexType() { 18 | return UUID.class; 19 | } 20 | 21 | @Override 22 | public byte[] toPrimitive(UUID complex, PersistentDataAdapterContext context) { 23 | ByteBuffer bb = ByteBuffer.wrap(new byte[16]); 24 | bb.putLong(complex.getMostSignificantBits()); 25 | bb.putLong(complex.getLeastSignificantBits()); 26 | return bb.array(); 27 | } 28 | 29 | @Override 30 | public UUID fromPrimitive(byte[] primitive, PersistentDataAdapterContext context) { 31 | ByteBuffer bb = ByteBuffer.wrap(primitive); 32 | long firstLong = bb.getLong(); 33 | long secondLong = bb.getLong(); 34 | return new UUID(firstLong, secondLong); 35 | } 36 | } -------------------------------------------------------------------------------- /plugin-distribution/all-jar.xml: -------------------------------------------------------------------------------- 1 | 5 | all-jar 6 | 7 | jar 8 | 9 | false 10 | 11 | 12 | 13 | true 14 | false 15 | 16 | 17 | -------------------------------------------------------------------------------- /resources/jenkins.properties: -------------------------------------------------------------------------------- 1 | buildnumber=${jenkins.buildNumber} 2 | repo=${jenkins.name} -------------------------------------------------------------------------------- /resources/plugin.properties: -------------------------------------------------------------------------------- 1 | download_location=JENKINS --------------------------------------------------------------------------------