Commit 554c938c authored by Ashijin's avatar Ashijin
Browse files

pet stuff

parent 835e2ef9
package io.lumine.cosmetics.api.cosmetics.pets;
import org.bukkit.entity.Player;
public interface PetHook {
boolean isValid();
void equip(Player player);
}
......@@ -231,6 +231,12 @@
<version>1.18-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>fr.nocsy</groupId>
<artifactId>mcpets</artifactId>
<version>1.0.2-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>LibsDisguises</groupId>
<artifactId>LibsDisguises</artifactId>
......
......@@ -10,6 +10,7 @@ import java.util.Optional;
public class CompatibilityManager extends ReloadableModule<MCCosmeticsPlugin> {
@Getter private Optional<LumineCoreCompat> lumineCore = Optional.empty();
@Getter private Optional<MCPetsCompat> mcpets = Optional.empty();
public CompatibilityManager(MCCosmeticsPlugin plugin) {
super(plugin);
......@@ -20,6 +21,9 @@ public class CompatibilityManager extends ReloadableModule<MCCosmeticsPlugin> {
if(Bukkit.getPluginManager().getPlugin("LumineCore") != null) {
lumineCore = Optional.of(new LumineCoreCompat(plugin));
}
if(Bukkit.getPluginManager().getPlugin("MCPets") != null) {
mcpets = Optional.of(new MCPetsCompat(plugin));
}
}
@Override
......
package io.lumine.cosmetics.compat;
import io.lumine.cosmetics.MCCosmeticsPlugin;
import io.lumine.cosmetics.api.cosmetics.pets.PetHook;
import org.bukkit.entity.Player;
import fr.nocsy.mcpets.MCPets;
import fr.nocsy.mcpets.api.MCPetsAPI;
import fr.nocsy.mcpets.data.Pet;
public class MCPetsCompat {
private final MCCosmeticsPlugin plugin;
private final MCPets mcpets;
public MCPetsCompat(MCCosmeticsPlugin plugin) {
this.plugin = plugin;
this.mcpets = MCPets.getInstance();
}
public MCPet get(String id) {
return new MCPet(id);
}
public class MCPet implements PetHook {
public Pet pet;
public MCPet(String id) {
pet = MCPetsAPI.getObjectPet(id);
}
@Override
public boolean isValid() {
return pet != null;
}
@Override
public void equip(Player player) {
MCPetsAPI.setActivePet(pet, player, false);
}
}
}
package io.lumine.cosmetics.managers.chat;
import io.lumine.cosmetics.api.players.CosmeticProfile;
import io.lumine.cosmetics.constants.CosmeticType;
import io.lumine.cosmetics.managers.AbstractCosmetic;
import io.lumine.utils.menu.Icon;
import java.io.File;
import org.bukkit.entity.Player;
import lombok.Getter;
public class ChatTag extends AbstractCosmetic {
public ChatTag(ChatTagManager manager, File file, String key) {
super(manager, file, CosmeticType.type(ChatTag.class), key);
}
@Override
public String getPropertyNode() {
return this.key;
}
@Override
public Icon<CosmeticProfile> getIcon() {
return buildIcon("chattag");
}
}
package io.lumine.cosmetics.managers.chat;
import io.lumine.cosmetics.MCCosmeticsPlugin;
import io.lumine.cosmetics.api.players.CosmeticProfile;
import io.lumine.cosmetics.managers.MCCosmeticsManager;
import io.lumine.cosmetics.managers.sprays.Spray;
import java.io.File;
public class ChatTagManager extends MCCosmeticsManager<ChatTag> {
public ChatTagManager(MCCosmeticsPlugin plugin) {
super(plugin, ChatTag.class);
load(plugin);
}
@Override
public void load(MCCosmeticsPlugin plugin) {
super.load(plugin);
}
@Override
public ChatTag build(File file, String node) {
return null;
}
@Override
public void equip(CosmeticProfile profile) {}
}
package io.lumine.cosmetics.managers.pets;
import io.lumine.cosmetics.api.cosmetics.pets.PetHook;
import io.lumine.cosmetics.api.players.CosmeticProfile;
import io.lumine.cosmetics.config.Scope;
import io.lumine.cosmetics.constants.CosmeticType;
......@@ -13,20 +14,30 @@ import java.io.File;
public class Pet extends AbstractCosmetic {
private static final StringProp PET = Property.String(Scope.NONE, "Pet");
private static final StringProp TYPE = Property.String(Scope.NONE, "Type", "MCPETS");
private static final StringProp PET = Property.String(Scope.NONE, "Id");
@Getter
private final String petId;
@Getter private final String petId;
@Getter private final PetType petType;
@Getter private PetHook spawner;
public Pet(PetManager manager, File file, String key) {
super(manager, file, CosmeticType.type(Pet.class), key);
petId = PET.fget(file, this);
petType = PetType.parse(TYPE.fget(file, this));
if(petType == PetType.MCPETS && manager.getPlugin().getCompatibility().getMcpets().isPresent()) {
spawner = manager.getPlugin().getCompatibility().getMcpets().get().get(petId);
} else {
}
}
@Override
public String getPropertyNode() {
return "Pet." + key;
return key;
}
@Override
......
......@@ -8,8 +8,8 @@ import java.io.File;
public class PetManager extends MCCosmeticsManager<Pet> {
public PetManager(MCCosmeticsPlugin plugin, Class<Pet> petClass) {
super(plugin, petClass);
public PetManager(MCCosmeticsPlugin plugin) {
super(plugin, Pet.class);
}
@Override
......@@ -19,6 +19,17 @@ public class PetManager extends MCCosmeticsManager<Pet> {
@Override
public void equip(CosmeticProfile profile) {
// TODO: 15/3/2022 Impl pet
var maybePet = profile.getCosmeticInventory().getEquipped(Pet.class);
if(maybePet.isEmpty()) {
return;
}
var pet = maybePet.get();
if(pet.getSpawner().isValid()) {
}
}
}
package io.lumine.cosmetics.managers.pets;
public enum PetType {
MEG,
MCPETS;
public static PetType parse(String value) {
for(var type : values()) {
if(type.toString().equalsIgnoreCase(value)) {
return type;
}
}
return MCPETS;
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment