Commit 90f98bf0 authored by Ashijin's avatar Ashijin
Browse files

actually call the equip method

No related merge requests found
......@@ -8,14 +8,16 @@ import lombok.Getter;
public abstract class Cosmetic implements PropertyHolder,MenuData<CosmeticProfile> {
@Getter private final CosmeticManager manager;
@Getter private final String type;
@Getter private final String key;
public Cosmetic(String type, String key) {
public Cosmetic(CosmeticManager manager, String type, String key) {
this.manager = manager;
this.type = type;
this.key = key;
}
public boolean has(CosmeticProfile profile) {
return has(profile.getCosmeticInventory());
}
......
package io.lumine.cosmetics.api.cosmetics;
import io.lumine.cosmetics.api.players.CosmeticProfile;
public interface CosmeticManager {
public void equip(CosmeticProfile profile);
}
......@@ -7,7 +7,7 @@ import io.lumine.cosmetics.api.cosmetics.Cosmetic;
public interface CosmeticInventory {
public void initialize();
public void initialize(CosmeticProfile profile);
public Collection<String> getUnlocked(String type);
......
......@@ -40,8 +40,8 @@ public abstract class AbstractCosmetic extends Cosmetic {
@Getter
protected final ItemStack menuItem;
public AbstractCosmetic(File file, String type, String key) {
super(type, key);
public AbstractCosmetic(MCCosmeticsManager manager, File file, String type, String key) {
super(manager, type, key);
this.file = file;
this.key = key.toUpperCase();
......
......@@ -4,6 +4,8 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import io.lumine.cosmetics.MCCosmeticsPlugin;
import io.lumine.cosmetics.api.cosmetics.Cosmetic;
import io.lumine.cosmetics.api.cosmetics.CosmeticManager;
import io.lumine.cosmetics.api.players.CosmeticProfile;
import io.lumine.cosmetics.config.Scope;
import io.lumine.cosmetics.constants.CosmeticType;
import io.lumine.cosmetics.players.Profile;
......@@ -20,7 +22,7 @@ import java.util.Collection;
import java.util.Map;
import java.util.Optional;
public abstract class MCCosmeticsManager<T extends Cosmetic> extends ReloadableModule<MCCosmeticsPlugin> {
public abstract class MCCosmeticsManager<T extends Cosmetic> extends ReloadableModule<MCCosmeticsPlugin> implements CosmeticManager {
protected final NodeListProp KEYS = Property.NodeList(Scope.NONE, "");
protected final Map<String, T> cosmetics = Maps.newConcurrentMap();
......@@ -73,7 +75,7 @@ public abstract class MCCosmeticsManager<T extends Cosmetic> extends ReloadableM
equip(getProfiles().getProfile(player));
}
public abstract void equip(Profile profile);
public abstract void equip(CosmeticProfile profile);
protected ProfileManager getProfiles() {
return plugin.getProfiles();
......
......@@ -11,8 +11,8 @@ import java.io.File;
public class BackAccessory extends AbstractCosmetic implements ItemCosmetic {
public BackAccessory(File file, String key) {
super(file, CosmeticType.type(BackAccessory.class), key);
public BackAccessory(BackManager manager, File file, String key) {
super(manager, file, CosmeticType.type(BackAccessory.class), key);
}
@Override
......
......@@ -4,6 +4,7 @@ import com.comphenix.protocol.PacketType;
import com.comphenix.protocol.events.PacketContainer;
import io.lumine.cosmetics.MCCosmeticsPlugin;
import io.lumine.cosmetics.api.events.CosmeticPlayerLoadedEvent;
import io.lumine.cosmetics.api.players.CosmeticProfile;
import io.lumine.cosmetics.managers.MCCosmeticsManager;
import io.lumine.cosmetics.players.Profile;
import io.lumine.utils.Events;
......@@ -84,11 +85,11 @@ public class BackManager extends MCCosmeticsManager<BackAccessory> {
@Override
public BackAccessory build(File file, String node) {
return new BackAccessory(file, node);
return new BackAccessory(this, file, node);
}
@Override
public void equip(Profile profile) {
public void equip(CosmeticProfile profile) {
// TODO: 15/3/2022 Equip backpack cosmetics
}
}
......@@ -11,8 +11,8 @@ import java.io.File;
public class Hat extends AbstractCosmetic implements ItemCosmetic {
public Hat(File file, String key) {
super(file, CosmeticType.type(Hat.class), key);
public Hat(HatManager manager, File file, String key) {
super(manager, file, CosmeticType.type(Hat.class), key);
}
@Override
......
......@@ -4,6 +4,7 @@ import com.comphenix.protocol.PacketType;
import com.comphenix.protocol.events.PacketContainer;
import io.lumine.cosmetics.MCCosmeticsPlugin;
import io.lumine.cosmetics.api.events.CosmeticPlayerLoadedEvent;
import io.lumine.cosmetics.api.players.CosmeticProfile;
import io.lumine.cosmetics.constants.CosmeticType;
import io.lumine.cosmetics.managers.MCCosmeticsManager;
import io.lumine.cosmetics.players.Profile;
......@@ -85,11 +86,11 @@ public class HatManager extends MCCosmeticsManager<Hat> {
@Override
public Hat build(File file, String node) {
return new Hat(file, node);
return new Hat(this, file, node);
}
@Override
public void equip(Profile profile) {
public void equip(CosmeticProfile profile) {
getPlugin().getVolatileCodeHandler().getHatHelper().applyHatPacket(profile);
}
}
......@@ -23,8 +23,8 @@ public class MEGAccessory extends AbstractCosmetic {
@Getter
private final Orient offset;
public MEGAccessory(File file, String key) {
super(file, CosmeticType.type(MEGAccessory.class), key);
public MEGAccessory(MEGManager manager, File file, String key) {
super(manager, file, CosmeticType.type(MEGAccessory.class), key);
modelId = MODEL.fget(file, this);
offset = OFFSET.fget(file, this);
......
package io.lumine.cosmetics.managers.modelengine;
import io.lumine.cosmetics.MCCosmeticsPlugin;
import io.lumine.cosmetics.api.players.CosmeticProfile;
import io.lumine.cosmetics.managers.MCCosmeticsManager;
import io.lumine.cosmetics.players.Profile;
......@@ -14,11 +15,11 @@ public class MEGManager extends MCCosmeticsManager<MEGAccessory> {
@Override
public MEGAccessory build(File file, String node) {
return new MEGAccessory(file, node);
return new MEGAccessory(this, file, node);
}
@Override
public void equip(Profile profile) {
public void equip(CosmeticProfile profile) {
// TODO: 15/3/2022 Impl meg equip
}
}
......@@ -9,8 +9,8 @@ import java.io.File;
public class ParticleAccessory extends AbstractCosmetic {
public ParticleAccessory(File file, String key) {
super(file, CosmeticType.type(ParticleAccessory.class), key);
public ParticleAccessory(ParticleManager manager, File file, String key) {
super(manager, file, CosmeticType.type(ParticleAccessory.class), key);
}
@Override
......
package io.lumine.cosmetics.managers.particle;
import io.lumine.cosmetics.MCCosmeticsPlugin;
import io.lumine.cosmetics.api.players.CosmeticProfile;
import io.lumine.cosmetics.managers.MCCosmeticsManager;
import io.lumine.cosmetics.players.Profile;
......@@ -14,11 +15,11 @@ public class ParticleManager extends MCCosmeticsManager<ParticleAccessory> {
@Override
public ParticleAccessory build(File file, String node) {
return new ParticleAccessory(file, node);
return new ParticleAccessory(this, file, node);
}
@Override
public void equip(Profile profile) {
public void equip(CosmeticProfile profile) {
// TODO: 15/3/2022 Impl particle accessory
}
}
......@@ -18,8 +18,8 @@ public class Pet extends AbstractCosmetic {
@Getter
private final String petId;
public Pet(File file, String key) {
super(file, CosmeticType.type(Pet.class), key);
public Pet(PetManager manager, File file, String key) {
super(manager, file, CosmeticType.type(Pet.class), key);
petId = PET.fget(file, this);
}
......
package io.lumine.cosmetics.managers.pets;
import io.lumine.cosmetics.MCCosmeticsPlugin;
import io.lumine.cosmetics.api.players.CosmeticProfile;
import io.lumine.cosmetics.managers.MCCosmeticsManager;
import io.lumine.cosmetics.players.Profile;
......@@ -14,11 +15,11 @@ public class PetManager extends MCCosmeticsManager<Pet> {
@Override
public Pet build(File file, String node) {
return new Pet(file, node);
return new Pet(this, file, node);
}
@Override
public void equip(Profile profile) {
public void equip(CosmeticProfile profile) {
// TODO: 15/3/2022 Impl pet
}
}
package io.lumine.cosmetics.nms;
import io.lumine.cosmetics.api.players.CosmeticProfile;
import io.lumine.cosmetics.players.Profile;
public interface VolatileHatHelper {
public void applyHatPacket(Profile profile);
public void applyHatPacket(CosmeticProfile profile);
}
package io.lumine.cosmetics.players;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import org.bukkit.entity.Player;
import com.google.common.collect.Maps;
import io.lumine.cosmetics.api.cosmetics.Cosmetic;
import io.lumine.cosmetics.api.players.CosmeticInventory;
import io.lumine.cosmetics.api.players.CosmeticProfile;
import io.lumine.cosmetics.players.inventory.DigitalInventory;
import lombok.Getter;
......@@ -34,6 +28,7 @@ public class Profile implements CosmeticProfile,io.lumine.utils.storage.players.
public void initialize(final Player player) {
this.player = player;
this.cosmeticInventory.initialize(this);
}
@Override
......
......@@ -9,6 +9,7 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import io.lumine.cosmetics.api.cosmetics.Cosmetic;
import io.lumine.cosmetics.api.players.CosmeticProfile;
import io.lumine.cosmetics.api.players.CosmeticInventory;
import io.lumine.cosmetics.managers.hats.Hat;
import io.lumine.utils.serialize.Optl;
......@@ -16,6 +17,8 @@ import lombok.Getter;
public class DigitalInventory implements CosmeticInventory {
@Getter private transient CosmeticProfile profile;
@Getter private Map<String,List<String>> unlockedCosmetics = Maps.newConcurrentMap();
@Getter private Map<String,String> equippedCosmetics = Maps.newConcurrentMap();
......@@ -24,7 +27,9 @@ public class DigitalInventory implements CosmeticInventory {
private final Map<String,Cosmetic> equippedCustom = Maps.newConcurrentMap();
@Override
public void initialize() {
public void initialize(CosmeticProfile profile) {
this.profile = profile;
for(var entry : equippedCosmetics.entrySet()) {
}
......@@ -40,6 +45,7 @@ public class DigitalInventory implements CosmeticInventory {
} else {
}
cosmetic.getManager().equip(profile);
}
public boolean isEquipped(Cosmetic cosmetic) {
......
......@@ -12,6 +12,7 @@ import com.google.common.collect.Lists;
import com.mojang.datafixers.util.Pair;
import io.lumine.cosmetics.MCCosmeticsPlugin;
import io.lumine.cosmetics.api.players.CosmeticProfile;
import io.lumine.cosmetics.nms.VolatileHatHelper;
import io.lumine.cosmetics.players.Profile;
import io.lumine.utils.protocol.Protocol;
......@@ -27,7 +28,7 @@ public class VolatileHatImpl implements VolatileHatHelper {
}
@Override
public void applyHatPacket(Profile profile) {
public void applyHatPacket(CosmeticProfile profile) {
if(profile == null) {
return;
}
......
......@@ -4,6 +4,7 @@ import com.mojang.datafixers.util.Pair;
import io.lumine.cosmetics.MCCosmeticsPlugin;
import io.lumine.cosmetics.api.cosmetics.Cosmetic;
import io.lumine.cosmetics.api.cosmetics.ItemCosmetic;
import io.lumine.cosmetics.api.players.CosmeticProfile;
import io.lumine.cosmetics.nms.VolatileCodeEnabled_v1_18_R1;
import io.lumine.cosmetics.nms.VolatileHatHelper;
import io.lumine.cosmetics.players.Profile;
......@@ -31,7 +32,7 @@ public class VolatileHatImpl implements VolatileHatHelper {
}
@Override
public void applyHatPacket(Profile profile) {
public void applyHatPacket(CosmeticProfile profile) {
if(profile == null)
return;
Player player = profile.getPlayer();
......
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