Skip to content
This repository has been archived by the owner on Jun 29, 2023. It is now read-only.

6 new Pets :) #595

Merged
merged 40 commits into from
Apr 14, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
081b6a3
Create PetHorse.java
Chris6ix Apr 6, 2022
0d3c06f
Adding the Pet Horse to PetType.java
Chris6ix Apr 6, 2022
5d97458
Add Horse Pet to plugin.yml
Chris6ix Apr 6, 2022
005c3c2
Add Horse Pet to MessageManager.java
Chris6ix Apr 6, 2022
486e3ff
Correct File Date
Chris6ix Apr 6, 2022
ddef0f8
Update PetSlime.java
Chris6ix Apr 6, 2022
24a6589
Correct File Date
Chris6ix Apr 6, 2022
a8e2961
Correct File Date
Chris6ix Apr 6, 2022
51cb810
Correct File Date
Chris6ix Apr 6, 2022
3e9b7aa
Correct File Date
Chris6ix Apr 6, 2022
1ec5fee
Correct File Date
Chris6ix Apr 6, 2022
6be8711
Correct File Date
Chris6ix Apr 6, 2022
844bc1e
Correct File Date
Chris6ix Apr 6, 2022
c6a6ec2
Create PetBlaze.java
Chris6ix Apr 6, 2022
87a4cac
Adding the Pet Blaze to PetType.java
Chris6ix Apr 6, 2022
711bd80
Add Blaze Pet to plugin.yml
Chris6ix Apr 6, 2022
8be25cf
Add Blaze Pet to MessageManager.java
Chris6ix Apr 6, 2022
edf1576
Create PetCreeper.java
Chris6ix Apr 12, 2022
1fc7ebd
Adding the Pet Creeper to PetType.java
Chris6ix Apr 12, 2022
9921a89
Add Blaze Creeper to plugin.yml
Chris6ix Apr 12, 2022
14aba28
Add Creeper Pet to MessageManager.java
Chris6ix Apr 12, 2022
479ba8b
Create PetEnderman.java
Chris6ix Apr 12, 2022
8f082a4
Update PetType.java
Chris6ix Apr 12, 2022
fe4a33d
Add Enderman Pet to plugin.yml
Chris6ix Apr 12, 2022
56ac00a
Add Enderman Pet to MessageManager.java
Chris6ix Apr 12, 2022
7b99088
Create PetSkeleton.java
Chris6ix Apr 12, 2022
ec6099a
Update PetType.java
Chris6ix Apr 12, 2022
69228fa
Add Skeleton Pet to plugin.yml
Chris6ix Apr 12, 2022
c569e1a
Add Enderman Pet to MessageManager.java
Chris6ix Apr 12, 2022
b65ba77
Move the ServerVersion.earliest Pets to one spot
Chris6ix Apr 12, 2022
fe14ae5
Update TODO.txt
Chris6ix Apr 13, 2022
48bbfe1
Fix Skeleton pet being on fire
Chris6ix Apr 13, 2022
1e8a5c6
Create PetZombie.java
Chris6ix Apr 13, 2022
534d42f
Adding the Pet Zombie to PetType.java
Chris6ix Apr 13, 2022
83e1fac
Add Pet Zombie to plugin.yml
Chris6ix Apr 13, 2022
0ed6d14
Add Zombie Pet to MessageManager.java
Chris6ix Apr 13, 2022
d27613e
Update TODO.txt
Chris6ix Apr 13, 2022
5108eda
Merge branch 'master' into patch-1
datatags Apr 13, 2022
47f9edb
Fix imports
datatags Apr 13, 2022
b6c7706
Trigger rebuild
datatags Apr 14, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 0 additions & 12 deletions TODO.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,25 +28,13 @@
- Vehicles
- Skins (?)
- Pets:
- Iron Golem
- Snow Golem
- Slime
- Squid
- Villager
- Bat
- Horse
- Enderman
- Zombie Pigman
- Spider
- Blaze
- Cave Spider
- Creeper
- Ghast
- Magma Cube
- Silverfish
- Skeleton
- Spider Jockey
- Zombie
- Zombie Villager
- Wither Skeleton
- Witch
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,19 @@ private static void loadMessages() {
addMessage("Pets.Goat.entity-displayname", "&l%playername%'s Goat");
addMessage("Pets.Silverfish.menu-name", "&7&lSilverfish");
addMessage("Pets.Silverfish.entity-displayname", "&l%playername%'s Silverfish");

addMessage("Pets.Horse.menu-name", "&a&lHorse");
addMessage("Pets.Horse.entity-displayname", "&l%playername%'s Horse");
addMessage("Pets.Blaze.menu-name", "&c&lBlaze");
addMessage("Pets.Blaze.entity-displayname", "&l%playername%'s Blaze");
addMessage("Pets.Creeper.menu-name", "&a&lCreeper");
addMessage("Pets.Creeper.entity-displayname", "&l%playername%'s Creeper");
addMessage("Pets.Enderman.menu-name", "&5&lEnderman");
addMessage("Pets.Enderman.entity-displayname", "&l%playername%'s Enderman");
addMessage("Pets.Skeleton.menu-name", "&f&lSkeleton");
addMessage("Pets.Skeleton.entity-displayname", "&l%playername%'s Skeleton");
addMessage("Pets.Zombie.menu-name", "&2&lZombie");
addMessage("Pets.Zombie.entity-displayname", "&l%playername%'s Zombie");
addMessage("Pets.Equip", "%prefix% &9You spawned %petname%");
addMessage("Pets.Unequip", "%prefix% &9You despawned %petname%");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* Represents an instance of a axolotl pet summoned by a player.
*
* @author Chris6ix
* @since 14-01-2021
* @since 14-01-2022
*/
public class PetAxolotl extends Pet {
public PetAxolotl(UltraPlayer owner, UltraCosmetics ultraCosmetics) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* Represents an instance of a bee pet summoned by a player.
*
* @author Chris6ix
* @since 18-01-2021
* @since 18-01-2022
*/
public class PetBee extends Pet {
public PetBee(UltraPlayer owner, UltraCosmetics ultraCosmetics) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package be.isach.ultracosmetics.cosmetics.pets;

import com.cryptomorin.xseries.XMaterial;

import be.isach.ultracosmetics.UltraCosmetics;
import be.isach.ultracosmetics.UltraCosmeticsData;
import be.isach.ultracosmetics.cosmetics.type.PetType;
import be.isach.ultracosmetics.player.UltraPlayer;
import be.isach.ultracosmetics.util.ItemFactory;

/**
* Represents an instance of a blaze pet summoned by a player.
*
* @author Chris6ix
* @since 06-04-2022
*/
public class PetBlaze extends Pet {
public PetBlaze(UltraPlayer owner, UltraCosmetics ultraCosmetics) {
super(owner, ultraCosmetics, PetType.getByName("blaze"), ItemFactory.create(XMaterial.BLAZE_ROD, UltraCosmeticsData.get().getItemNoPickupString()));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package be.isach.ultracosmetics.cosmetics.pets;

import com.cryptomorin.xseries.XMaterial;

import be.isach.ultracosmetics.UltraCosmetics;
import be.isach.ultracosmetics.UltraCosmeticsData;
import be.isach.ultracosmetics.cosmetics.type.PetType;
import be.isach.ultracosmetics.player.UltraPlayer;
import be.isach.ultracosmetics.util.ItemFactory;

/**
* Represents an instance of a creeper pet summoned by a player.
*
* @author Chris6ix
* @since 12-04-2022
*/
public class PetCreeper extends Pet {
public PetCreeper(UltraPlayer owner, UltraCosmetics ultraCosmetics) {
super(owner, ultraCosmetics, PetType.getByName("creeper"), ItemFactory.create(XMaterial.GUNPOWDER, UltraCosmeticsData.get().getItemNoPickupString()));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package be.isach.ultracosmetics.cosmetics.pets;

import com.cryptomorin.xseries.XMaterial;

import be.isach.ultracosmetics.UltraCosmetics;
import be.isach.ultracosmetics.UltraCosmeticsData;
import be.isach.ultracosmetics.cosmetics.type.PetType;
import be.isach.ultracosmetics.player.UltraPlayer;
import be.isach.ultracosmetics.util.ItemFactory;

/**
* Represents an instance of a enderman pet summoned by a player.
*
* @author Chris6ix
* @since 12-04-2022
*/
public class PetEnderman extends Pet {
public PetEnderman(UltraPlayer owner, UltraCosmetics ultraCosmetics) {
super(owner, ultraCosmetics, PetType.getByName("enderman"), ItemFactory.create(XMaterial.ENDER_PEARL, UltraCosmeticsData.get().getItemNoPickupString()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* Represents an instance of a fox pet summoned by a player.
*
* @author Chris6ix
* @since 14-01-2021
* @since 14-01-2022
*/
public class PetFox extends Pet {
public PetFox(UltraPlayer owner, UltraCosmetics ultraCosmetics) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* Represents an instance of a goat pet summoned by a player.
*
* @author Chris6ix
* @since 18-01-2021
* @since 18-01-2022
*/

/*Temporarily using WHEAT as material until https://minecraft.fandom.com/wiki/Goat_Horn comes to Java edition*/
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package be.isach.ultracosmetics.cosmetics.pets;

import com.cryptomorin.xseries.XMaterial;

import be.isach.ultracosmetics.UltraCosmetics;
import be.isach.ultracosmetics.UltraCosmeticsData;
import be.isach.ultracosmetics.cosmetics.type.PetType;
import be.isach.ultracosmetics.player.UltraPlayer;
import be.isach.ultracosmetics.util.ItemFactory;

/**
* Represents an instance of a horse pet summoned by a player.
*
* @author Chris6ix
* @since 06-04-2022
*/
public class PetHorse extends Pet {
public PetHorse(UltraPlayer owner, UltraCosmetics ultraCosmetics) {
super(owner, ultraCosmetics, PetType.getByName("horse"), ItemFactory.create(XMaterial.LEATHER_HORSE_ARMOR, UltraCosmeticsData.get().getItemNoPickupString()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* Represents an instance of a panda pet summoned by a player.
*
* @author Chris6ix
* @since 13-01-2021
* @since 13-01-2022
*/
public class PetPanda extends Pet {
public PetPanda(UltraPlayer owner, UltraCosmetics ultraCosmetics) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* Represents an instance of a piglin pet summoned by a player.
*
* @author Chris6ix
* @since 16-01-2021
* @since 16-01-2022
*/
public class PetPiglin extends Pet {
public PetPiglin(UltraPlayer owner, UltraCosmetics ultraCosmetics) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* Represents an instance of a silverfish pet summoned by a player.
*
* @author Chris6ix
* @since 19-01-2021
* @since 19-01-2022
*/
public class PetSilverfish extends Pet {
public PetSilverfish(UltraPlayer owner, UltraCosmetics ultraCosmetics) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package be.isach.ultracosmetics.cosmetics.pets;

import com.cryptomorin.xseries.XMaterial;

import be.isach.ultracosmetics.UltraCosmetics;
import be.isach.ultracosmetics.UltraCosmeticsData;
import be.isach.ultracosmetics.cosmetics.type.PetType;
import be.isach.ultracosmetics.player.UltraPlayer;
import be.isach.ultracosmetics.util.ItemFactory;

/**
* Represents an instance of a skeleton pet summoned by a player.
*
* @author Chris6ix
* @since 12-04-2022
*/
public class PetSkeleton extends Pet {
public PetSkeleton(UltraPlayer owner, UltraCosmetics ultraCosmetics) {
super(owner, ultraCosmetics, PetType.getByName("skeleton"), ItemFactory.create(XMaterial.BOW, UltraCosmeticsData.get().getItemNoPickupString()));
}

@Override
public void onUpdate() {
super.onUpdate();
entity.setFireTicks(0);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
* Represents an instance of a slime pet summoned by a player.
*
* @author datatags
* @since 18-01-2021
* @since 18-01-2022
*/

public class PetSlime extends Pet {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* Represents an instance of a vex pet summoned by a player.
*
* @author Chris6ix
* @since 13-01-2021
* @since 13-01-2022
*/
public class PetVex extends Pet {
public PetVex(UltraPlayer owner, UltraCosmetics ultraCosmetics) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package be.isach.ultracosmetics.cosmetics.pets;

import com.cryptomorin.xseries.XMaterial;

import be.isach.ultracosmetics.UltraCosmetics;
import be.isach.ultracosmetics.UltraCosmeticsData;
import be.isach.ultracosmetics.cosmetics.type.PetType;
import be.isach.ultracosmetics.player.UltraPlayer;
import be.isach.ultracosmetics.util.ItemFactory;

/**
* Represents an instance of a zombie pet summoned by a player.
*
* @author Chris6ix
* @since 13-04-2022
*/
public class PetZombie extends Pet {
public PetZombie(UltraPlayer owner, UltraCosmetics ultraCosmetics) {
super(owner, ultraCosmetics, PetType.getByName("zombie"), ItemFactory.create(XMaterial.ROTTEN_FLESH, UltraCosmeticsData.get().getItemNoPickupString()));
}

@Override
public void onUpdate() {
super.onUpdate();
entity.setFireTicks(0);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,24 @@ public static void register() {
new PetType("ultracosmetics.pets.easterbunny", "EasterBunny", XMaterial.CARROT, "&7&oIs it Easter yet?", EntityType.RABBIT, PetEasterBunny.class, ServerVersion.earliest());
new PetType("ultracosmetics.pets.cow", "Cow", XMaterial.MILK_BUCKET, "&7&oMoooo!", EntityType.COW, PetCow.class, ServerVersion.earliest());
new PetType("ultracosmetics.pets.mooshroom", "Mooshroom", XMaterial.RED_MUSHROOM, "&7&oMoooo!", EntityType.MUSHROOM_COW, PetMooshroom.class, ServerVersion.earliest());
new PetType("ultracosmetics.pets.dog", "Dog", XMaterial.BONE, "&7&oWoof!", EntityType.WOLF, PetDog.class, ServerVersion.earliest());
new PetType("ultracosmetics.pets.chick", "Chick", XMaterial.EGG, "&7&oBwaaaaaaak!!", EntityType.CHICKEN, PetChick.class, ServerVersion.earliest());
new PetType("ultracosmetics.pets.pumpling", "Pumpling", XMaterial.PUMPKIN, "&7&oJust a little floating pumpkin", EntityType.ZOMBIE, UltraCosmeticsData.get().getVersionManager().getPets().getPumplingClass(), ServerVersion.earliest());
new PetType("ultracosmetics.pets.christmaself", "ChristmasElf", XMaterial.BEACON, "&7&oI can make presents for you!", EntityType.VILLAGER, PetChristmasElf.class, ServerVersion.earliest());
new PetType("ultracosmetics.pets.irongolem", "IronGolem", XMaterial.IRON_INGOT, "&7&oI like flowers", EntityType.IRON_GOLEM, PetIronGolem.class, ServerVersion.earliest());
new PetType("ultracosmetics.pets.snowman", "Snowman", XMaterial.SNOWBALL, "&7&oPew pew pew", EntityType.SNOWMAN, PetSnowman.class, ServerVersion.earliest());
new PetType("ultracosmetics.pets.villager", "Villager", XMaterial.EMERALD, "&7&oHmmmmmmmmm", EntityType.VILLAGER, PetVillager.class, ServerVersion.earliest());
new PetType("ultracosmetics.pets.bat", "Bat", XMaterial.COAL, "&7&oI prefer dark areas", EntityType.BAT, PetBat.class, ServerVersion.earliest());
new PetType("ultracosmetics.pets.sheep", "Sheep", XMaterial.WHITE_WOOL, "&7&oBaaaa, baa", EntityType.SHEEP, PetSheep.class, ServerVersion.earliest());
new PetType("ultracosmetics.pets.wither", "Wither", XMaterial.WITHER_SKELETON_SKULL, "&7&oWatch out for me..", EntityType.WITHER, PetWither.class, ServerVersion.earliest());
/*new PetType("ultracosmetics.pets.slime", "Slime", XMaterial.SLIME_BALL, "&7&oSquish...", EntityType.SLIME, PetSlime.class, ServerVersion.earliest());*/
new PetType("ultracosmetics.pets.silverfish", "Silverfish", XMaterial.GRAY_DYE, "&7&oLurking in the walls...", EntityType.SILVERFISH, PetSilverfish.class, ServerVersion.earliest());
new PetType("ultracosmetics.pets.horse", "Horse", XMaterial.LEATHER_HORSE_ARMOR, "&7&o*fhrrrrhh*", EntityType.HORSE, PetHorse.class, ServerVersion.earliest());
new PetType("ultracosmetics.pets.blaze", "Blaze", XMaterial.BLAZE_ROD, "&7&oFlying and hot!", EntityType.BLAZE, PetBlaze.class, ServerVersion.earliest());
new PetType("ultracosmetics.pets.creeper", "Creeper", XMaterial.GUNPOWDER, "&7&oLikes blowing up your favorite Stuff...", EntityType.CREEPER, PetCreeper.class, ServerVersion.earliest());
new PetType("ultracosmetics.pets.enderman", "Enderman", XMaterial.ENDER_PEARL, "&7&oDont look at it or it will hunt you!", EntityType.ENDERMAN, PetEnderman.class, ServerVersion.earliest());
new PetType("ultracosmetics.pets.skeleton", "Skeleton", XMaterial.BOW, "&7&oWatch out, it will try to shoot you!", EntityType.SKELETON, PetSkeleton.class, ServerVersion.earliest());
new PetType("ultracosmetics.pets.zombie", "Zombie", XMaterial.ROTTEN_FLESH, "&7&oQuick! Hide your Villagers!", EntityType.ZOMBIE, PetZombie.class, ServerVersion.earliest());

if (serverVersion.isAtLeast(ServerVersion.v1_17_R1)) {
/*new PetType("ultracosmetics.pets.axolotl", "Axolotl", XMaterial.AXOLOTL_BUCKET, "&7&oSooo Cute!", EntityType.AXOLOTL, PetAxolotl.class, ServerVersion.v1_17_R1);*/
Expand All @@ -97,25 +115,12 @@ public static void register() {
} else {
new PetType("ultracosmetics.pets.kitty", "Kitty", XMaterial.TROPICAL_FISH, "&7&oMeoooow", EntityType.OCELOT, PetKitty.class, ServerVersion.earliest());
}
new PetType("ultracosmetics.pets.dog", "Dog", XMaterial.BONE, "&7&oWoof!", EntityType.WOLF, PetDog.class, ServerVersion.earliest());
new PetType("ultracosmetics.pets.chick", "Chick", XMaterial.EGG, "&7&oBwaaaaaaak!!", EntityType.CHICKEN, PetChick.class, ServerVersion.earliest());
new PetType("ultracosmetics.pets.pumpling", "Pumpling", XMaterial.PUMPKIN, "&7&oJust a little floating pumpkin", EntityType.ZOMBIE, UltraCosmeticsData.get().getVersionManager().getPets().getPumplingClass(), ServerVersion.earliest());
new PetType("ultracosmetics.pets.christmaself", "ChristmasElf", XMaterial.BEACON, "&7&oI can make presents for you!", EntityType.VILLAGER, PetChristmasElf.class, ServerVersion.earliest());
new PetType("ultracosmetics.pets.irongolem", "IronGolem", XMaterial.IRON_INGOT, "&7&oI like flowers", EntityType.IRON_GOLEM, PetIronGolem.class, ServerVersion.earliest());
new PetType("ultracosmetics.pets.snowman", "Snowman", XMaterial.SNOWBALL, "&7&oPew pew pew", EntityType.SNOWMAN, PetSnowman.class, ServerVersion.earliest());
new PetType("ultracosmetics.pets.villager", "Villager", XMaterial.EMERALD, "&7&oHmmmmmmmmm", EntityType.VILLAGER, PetVillager.class, ServerVersion.earliest());
new PetType("ultracosmetics.pets.bat", "Bat", XMaterial.COAL, "&7&oI prefer dark areas", EntityType.BAT, PetBat.class, ServerVersion.earliest());

if (serverVersion.isAtLeast(ServerVersion.v1_12_R1)) {
new PetType("ultracosmetics.pets.polarbear", "PolarBear", XMaterial.SNOW_BLOCK, "&7&oI prefer cold areas", GetForVersion.entityType("POLAR_BEAR"), PetPolarBear.class, ServerVersion.v1_12_R1);
new PetType("ultracosmetics.pets.llama", "Llama", XMaterial.RED_WOOL, "&7&oNeed me to carry anything?", GetForVersion.entityType("LLAMA"), PetLlama.class, ServerVersion.v1_12_R1);
new PetType("ultracosmetics.pets.parrot", "Parrot", XMaterial.COOKIE, "&7&oPolly want a cracker?", GetForVersion.entityType("PARROT"), PetParrot.class, ServerVersion.v1_12_R1);
/*new PetType("ultracosmetics.pets.vex", "Vex", XMaterial.IRON_SWORD, "&7&oYAAHH Ehehhehe!", GetForVersion.entityType("VEX"), PetVex.class, ServerVersion.v1_12_R1);*/
}

new PetType("ultracosmetics.pets.sheep", "Sheep", XMaterial.WHITE_WOOL, "&7&oBaaaa, baa", EntityType.SHEEP, PetSheep.class, ServerVersion.earliest());
new PetType("ultracosmetics.pets.wither", "Wither", XMaterial.WITHER_SKELETON_SKULL, "&7&oWatch out for me..", EntityType.WITHER, PetWither.class, ServerVersion.earliest());
/*new PetType("ultracosmetics.pets.slime", "Slime", XMaterial.SLIME_BALL, "&7&oSquish...", EntityType.SLIME, PetSlime.class, ServerVersion.earliest());*/
new PetType("ultracosmetics.pets.silverfish", "Silverfish", XMaterial.GRAY_DYE, "&7&oLurking in the walls...", EntityType.SILVERFISH, PetSilverfish.class, ServerVersion.earliest());
}
}
18 changes: 18 additions & 0 deletions core/src/main/resources/plugin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -288,6 +288,12 @@ permissions:
- ultracosmetics.pets.bee
- ultracosmetics.pets.goat
- ultracosmetics.pets.silverfish
- ultracosmetics.pets.horse
- ultracosmetics.pets.blaze
- ultracosmetics.pets.creeper
- ultracosmetics.pets.enderman
- ultracosmetics.pets.skeleton
- ultracosmetics.pets.zombie
- ultracosmetics.pets.rename
ultracosmetics.pets.piggy:
default: op
Expand Down Expand Up @@ -333,6 +339,18 @@ permissions:
default: op
ultracosmetics.pets.silverfish:
default: op
ultracosmetics.pets.horse:
default: op
ultracosmetics.pets.blaze:
default: op
ultracosmetics.pets.creeper:
default: op
ultracosmetics.pets.enderman:
default: op
ultracosmetics.pets.skeleton:
default: op
ultracosmetics.pets.zombie:
default: op
ultracosmetics.morphs.*:
children:
- ultracosmetics.morphs.bat
Expand Down