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 extends CustomInventory> 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 extends Item> 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
--------------------------------------------------------------------------------