Commit ada68a1c authored by Ash's avatar Ash
Browse files

Renamed project to MythicCosmetics

`+` Plugin is now a Mythic add-on and depends on MythicMobs

`+` Updated to support 1.21.3 and 1.21.4 (emotes currently broken, though)

`+` Dropped support for all versions before 1.21.3

`+` Updated to use ModelEngine 4

`+` Added support to load cosmetics from Mythic packs using folder structure `PACK/cosmetics/hats` etc

`+` Added support for Crucible implicit generation for hats and other equippabless
parent 048c3a5f
No related merge requests found
......@@ -2,9 +2,9 @@ package io.lumine.cosmetics.menus;
import io.lumine.cosmetics.MCCosmeticsPlugin;
import io.lumine.cosmetics.players.Profile;
import io.lumine.utils.Schedulers;
import io.lumine.utils.config.properties.types.MenuProp;
import io.lumine.utils.menu.EditableMenuBuilder;
import io.lumine.mythic.bukkit.utils.Schedulers;
import io.lumine.mythic.bukkit.utils.config.properties.types.MenuProp;
import io.lumine.mythic.bukkit.utils.menu.EditableMenuBuilder;
public class GenericSelectionMenu extends CosmeticMenu<SelectionMenuContext> {
......
......@@ -2,8 +2,8 @@ package io.lumine.cosmetics.menus;
import io.lumine.cosmetics.MCCosmeticsPlugin;
import io.lumine.cosmetics.players.Profile;
import io.lumine.utils.config.properties.types.MenuProp;
import io.lumine.utils.menu.EditableMenuBuilder;
import io.lumine.mythic.bukkit.utils.config.properties.types.MenuProp;
import io.lumine.mythic.bukkit.utils.menu.EditableMenuBuilder;
public class GenericVariantSelectionMenu extends CosmeticMenu<Profile> {
......
......@@ -7,7 +7,7 @@ import com.google.common.collect.Lists;
import io.lumine.cosmetics.MCCosmeticsPlugin;
import io.lumine.cosmetics.managers.MCCosmeticsManager;
import io.lumine.cosmetics.players.Profile;
import io.lumine.utils.plugin.ReloadableModule;
import io.lumine.mythic.bukkit.utils.plugin.ReloadableModule;
import lombok.Getter;
public class MenuManager extends ReloadableModule<MCCosmeticsPlugin> {
......
......@@ -3,7 +3,7 @@ package io.lumine.cosmetics.menus;
import io.lumine.cosmetics.api.cosmetics.Cosmetic;
import io.lumine.cosmetics.managers.MCCosmeticsManager;
import io.lumine.cosmetics.players.Profile;
import io.lumine.utils.serialize.Chroma;
import io.lumine.mythic.bukkit.utils.serialize.Chroma;
import lombok.Data;
@Data
......
......@@ -2,10 +2,10 @@ package io.lumine.cosmetics.menus;
import io.lumine.cosmetics.MCCosmeticsPlugin;
import io.lumine.cosmetics.players.Profile;
import io.lumine.utils.config.properties.types.MenuProp;
import io.lumine.utils.menu.EditableMenuBuilder;
import io.lumine.utils.menu.Icon;
import io.lumine.utils.menu.MenuData;
import io.lumine.mythic.bukkit.utils.config.properties.types.MenuProp;
import io.lumine.mythic.bukkit.utils.menu.EditableMenuBuilder;
import io.lumine.mythic.bukkit.utils.menu.Icon;
import io.lumine.mythic.bukkit.utils.menu.MenuData;
public class SelectColorMenu extends CosmeticMenu<SelectColorContext> {
......
......@@ -4,10 +4,10 @@ import io.lumine.cosmetics.MCCosmeticsPlugin;
import io.lumine.cosmetics.config.Scope;
import io.lumine.cosmetics.managers.MCCosmeticsManager;
import io.lumine.cosmetics.players.Profile;
import io.lumine.utils.Schedulers;
import io.lumine.utils.config.properties.Property;
import io.lumine.utils.config.properties.types.MenuProp;
import io.lumine.utils.menu.EditableMenuBuilder;
import io.lumine.mythic.bukkit.utils.Schedulers;
import io.lumine.mythic.bukkit.utils.config.properties.Property;
import io.lumine.mythic.bukkit.utils.config.properties.types.MenuProp;
import io.lumine.mythic.bukkit.utils.menu.EditableMenuBuilder;
public class SelectionMenu extends CosmeticMenu<Profile> {
......@@ -21,8 +21,6 @@ public class SelectionMenu extends CosmeticMenu<Profile> {
@Override
public EditableMenuBuilder<Profile> build(EditableMenuBuilder<Profile> builder) {
builder = addPageButtons(builder);
builder.getIcon("BUTTON_BACK").ifPresent(icon -> {
icon.getBuilder().click((profile,player) -> {
playMenuClick(player);
......@@ -45,7 +43,7 @@ public class SelectionMenu extends CosmeticMenu<Profile> {
});
});
return builder;
return super.build(builder);
}
}
......@@ -2,8 +2,8 @@ package io.lumine.cosmetics.menus;
import io.lumine.cosmetics.MCCosmeticsPlugin;
import io.lumine.cosmetics.players.Profile;
import io.lumine.utils.config.properties.types.MenuProp;
import io.lumine.utils.menu.EditableMenuBuilder;
import io.lumine.mythic.bukkit.utils.config.properties.types.MenuProp;
import io.lumine.mythic.bukkit.utils.menu.EditableMenuBuilder;
public class VariantMenu extends CosmeticMenu<Profile> {
......
......@@ -9,8 +9,8 @@ import io.lumine.cosmetics.constants.CosmeticType;
import io.lumine.cosmetics.storage.sql.SqlStorage;
import io.lumine.cosmetics.storage.sql.mappings.Keys;
import io.lumine.cosmetics.storage.sql.mappings.tables.records.ProfileRecord;
import io.lumine.utils.Schedulers;
import io.lumine.utils.serialize.Chroma;
import io.lumine.mythic.bukkit.utils.Schedulers;
import io.lumine.mythic.bukkit.utils.serialize.Chroma;
import lombok.Getter;
import org.bukkit.entity.Player;
......@@ -23,7 +23,7 @@ import java.util.Optional;
import java.util.Set;
import java.util.UUID;
public class Profile implements CosmeticProfile,io.lumine.utils.storage.players.Profile {
public class Profile implements CosmeticProfile,io.lumine.mythic.bukkit.utils.storage.players.Profile {
@Getter private UUID uniqueId;
@Getter private String name;
......
......@@ -7,7 +7,7 @@ import io.lumine.cosmetics.api.cosmetics.Cosmetic;
import io.lumine.cosmetics.api.cosmetics.CosmeticVariant;
import io.lumine.cosmetics.api.cosmetics.EquippedCosmetic;
import io.lumine.cosmetics.storage.sql.mappings.tables.records.ProfileEquippedRecord;
import io.lumine.utils.serialize.Chroma;
import io.lumine.mythic.bukkit.utils.serialize.Chroma;
import lombok.Data;
@Data
......
......@@ -4,11 +4,11 @@ import io.lumine.cosmetics.MCCosmeticsPlugin;
import io.lumine.cosmetics.api.events.CosmeticPlayerLoadedEvent;
import io.lumine.cosmetics.api.players.CosmeticProfile;
import io.lumine.cosmetics.storage.sql.SqlStorage;
import io.lumine.utils.storage.sql.SqlConnector;
import io.lumine.utils.Events;
import io.lumine.utils.logging.Log;
import io.lumine.utils.storage.players.PlayerRepository;
import io.lumine.utils.storage.players.adapters.file.JsonPlayerStorageAdapter;
import io.lumine.mythic.bukkit.utils.storage.sql.SqlConnector;
import io.lumine.mythic.bukkit.utils.Events;
import io.lumine.mythic.bukkit.utils.logging.Log;
import io.lumine.mythic.bukkit.utils.storage.players.PlayerRepository;
import io.lumine.mythic.bukkit.utils.storage.players.adapters.file.JsonPlayerStorageAdapter;
import org.bukkit.GameMode;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerGameModeChangeEvent;
......
......@@ -11,8 +11,8 @@ import io.lumine.cosmetics.MCCosmeticsPlugin;
import io.lumine.cosmetics.api.players.wardrobe.Mannequin;
import io.lumine.cosmetics.api.players.wardrobe.WardrobeManager;
import io.lumine.cosmetics.commands.CommandHelper;
import io.lumine.utils.Events;
import io.lumine.utils.plugin.ReloadableModule;
import io.lumine.mythic.bukkit.utils.Events;
import io.lumine.mythic.bukkit.utils.plugin.ReloadableModule;
public class WardrobeExecutor extends ReloadableModule<MCCosmeticsPlugin> implements WardrobeManager {
......
package io.lumine.cosmetics.players.wardrobe;
import java.util.UUID;
import com.ticxo.playeranimator.api.utils.math.Offset;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.util.Vector;
import org.jetbrains.annotations.NotNull;
import com.ticxo.modelengine.api.entity.Dummy;
import com.ticxo.modelengine.api.nms.entity.wrapper.BodyRotationController;
import com.ticxo.modelengine.api.utils.math.Offset;
import io.lumine.cosmetics.api.players.wardrobe.Mannequin;
import io.lumine.cosmetics.managers.modelengine.ModelAnchor;
import io.lumine.utils.serialize.Orient;
import io.lumine.mythic.bukkit.utils.serialize.Orient;
public class WardrobeMegDummy extends Dummy {
......@@ -25,7 +21,7 @@ public class WardrobeMegDummy extends Dummy {
private BodyRotationController controller;
public WardrobeMegDummy(Mannequin mannequin, Orient orient, ModelAnchor anchor) {
super(mannequin.getEntityId(), mannequin.getUniqueId());
super(mannequin.getUniqueId(), mannequin.getUniqueId());
this.mannequin = mannequin;
offset = orient.getLocus().toVector();
......@@ -35,15 +31,10 @@ public class WardrobeMegDummy extends Dummy {
this.setYBodyRot(mannequin.getRotation());
this.setYHeadRot(mannequin.getRotation());
}
@Override
public BodyRotationController wrapBodyRotationControl() {
controller = super.wrapBodyRotationControl();
controller.setMaxHeadAngle(45);
controller.setMaxBodyAngle(45);
controller.setStableAngle(5);
return controller;
this.getBodyRotationController().setMaxHeadAngle(45);
this.getBodyRotationController().setMaxBodyAngle(45);
this.getBodyRotationController().setStableAngle(5);
}
@Override
......
......@@ -15,11 +15,11 @@ import io.lumine.cosmetics.api.players.wardrobe.Mannequin;
import io.lumine.cosmetics.api.players.wardrobe.WardrobeManager;
import io.lumine.cosmetics.api.players.wardrobe.WardrobeTracker;
import io.lumine.cosmetics.constants.CosmeticType;
import io.lumine.utils.Events;
import io.lumine.utils.Players;
import io.lumine.utils.Schedulers;
import io.lumine.utils.particles.Particle;
import io.lumine.utils.plugin.PluginComponent;
import io.lumine.mythic.bukkit.utils.Events;
import io.lumine.mythic.bukkit.utils.Players;
import io.lumine.mythic.bukkit.utils.Schedulers;
import io.lumine.mythic.bukkit.utils.particles.Particle;
import io.lumine.mythic.bukkit.utils.plugin.PluginComponent;
import lombok.Getter;
public class WardrobeTrackerImpl extends PluginComponent<MCCosmeticsPlugin> implements WardrobeTracker,Runnable {
......
package io.lumine.cosmetics.storage;
import io.lumine.utils.storage.sql.SqlProvider;
import io.lumine.mythic.bukkit.utils.storage.sql.SqlProvider;
import lombok.Getter;
public enum StorageDriver {
......
......@@ -7,13 +7,13 @@ import io.lumine.cosmetics.players.ProfileCosmeticData;
import io.lumine.cosmetics.players.ProfileManager;
import io.lumine.cosmetics.storage.sql.mappings.DefaultSchema;
import io.lumine.cosmetics.storage.sql.mappings.Tables;
import io.lumine.utils.lib.jooq.exception.DataAccessException;
import io.lumine.utils.logging.Log;
import io.lumine.utils.plugin.LuminePlugin;
import io.lumine.utils.promise.Promise;
import io.lumine.utils.storage.players.Profile;
import io.lumine.utils.storage.players.adapters.SqlPlayerStorageAdapter;
import io.lumine.utils.storage.sql.SqlConnector;
import io.lumine.mythic.bukkit.utils.lib.jooq.exception.DataAccessException;
import io.lumine.mythic.bukkit.utils.logging.Log;
import io.lumine.mythic.bukkit.utils.plugin.LuminePlugin;
import io.lumine.mythic.bukkit.utils.promise.Promise;
import io.lumine.mythic.bukkit.utils.storage.players.Profile;
import io.lumine.mythic.bukkit.utils.storage.players.adapters.SqlPlayerStorageAdapter;
import io.lumine.mythic.bukkit.utils.storage.sql.SqlConnector;
public class SqlStorage<MCCosmeticsPlugin,CosmeticsProfile> extends SqlPlayerStorageAdapter {
......
......@@ -7,9 +7,9 @@ package io.lumine.cosmetics.storage.sql.mappings;
import java.util.Arrays;
import java.util.List;
import io.lumine.utils.lib.jooq.Constants;
import io.lumine.utils.lib.jooq.Schema;
import io.lumine.utils.lib.jooq.impl.CatalogImpl;
import io.lumine.mythic.bukkit.utils.lib.jooq.Constants;
import io.lumine.mythic.bukkit.utils.lib.jooq.Schema;
import io.lumine.mythic.bukkit.utils.lib.jooq.impl.CatalogImpl;
/**
......
......@@ -10,9 +10,9 @@ import io.lumine.cosmetics.storage.sql.mappings.tables.MccosmeticsProfileEquippe
import java.util.Arrays;
import java.util.List;
import io.lumine.utils.lib.jooq.Catalog;
import io.lumine.utils.lib.jooq.Table;
import io.lumine.utils.lib.jooq.impl.SchemaImpl;
import io.lumine.mythic.bukkit.utils.lib.jooq.Catalog;
import io.lumine.mythic.bukkit.utils.lib.jooq.Table;
import io.lumine.mythic.bukkit.utils.lib.jooq.impl.SchemaImpl;
/**
......
......@@ -6,10 +6,10 @@ package io.lumine.cosmetics.storage.sql.mappings;
import io.lumine.cosmetics.storage.sql.mappings.tables.MccosmeticsProfileEquipped;
import io.lumine.utils.lib.jooq.Index;
import io.lumine.utils.lib.jooq.OrderField;
import io.lumine.utils.lib.jooq.impl.DSL;
import io.lumine.utils.lib.jooq.impl.Internal;
import io.lumine.mythic.bukkit.utils.lib.jooq.Index;
import io.lumine.mythic.bukkit.utils.lib.jooq.OrderField;
import io.lumine.mythic.bukkit.utils.lib.jooq.impl.DSL;
import io.lumine.mythic.bukkit.utils.lib.jooq.impl.Internal;
/**
......
......@@ -9,11 +9,11 @@ import io.lumine.cosmetics.storage.sql.mappings.tables.MccosmeticsProfileEquippe
import io.lumine.cosmetics.storage.sql.mappings.tables.records.ProfileEquippedRecord;
import io.lumine.cosmetics.storage.sql.mappings.tables.records.ProfileRecord;
import io.lumine.utils.lib.jooq.ForeignKey;
import io.lumine.utils.lib.jooq.TableField;
import io.lumine.utils.lib.jooq.UniqueKey;
import io.lumine.utils.lib.jooq.impl.DSL;
import io.lumine.utils.lib.jooq.impl.Internal;
import io.lumine.mythic.bukkit.utils.lib.jooq.ForeignKey;
import io.lumine.mythic.bukkit.utils.lib.jooq.TableField;
import io.lumine.mythic.bukkit.utils.lib.jooq.UniqueKey;
import io.lumine.mythic.bukkit.utils.lib.jooq.impl.DSL;
import io.lumine.mythic.bukkit.utils.lib.jooq.impl.Internal;
/**
......
......@@ -8,19 +8,19 @@ import io.lumine.cosmetics.storage.sql.mappings.DefaultSchema;
import io.lumine.cosmetics.storage.sql.mappings.Keys;
import io.lumine.cosmetics.storage.sql.mappings.tables.records.ProfileRecord;
import io.lumine.utils.lib.jooq.Field;
import io.lumine.utils.lib.jooq.ForeignKey;
import io.lumine.utils.lib.jooq.Name;
import io.lumine.utils.lib.jooq.Record;
import io.lumine.utils.lib.jooq.Row2;
import io.lumine.utils.lib.jooq.Schema;
import io.lumine.utils.lib.jooq.Table;
import io.lumine.utils.lib.jooq.TableField;
import io.lumine.utils.lib.jooq.TableOptions;
import io.lumine.utils.lib.jooq.UniqueKey;
import io.lumine.utils.lib.jooq.impl.DSL;
import io.lumine.utils.lib.jooq.impl.SQLDataType;
import io.lumine.utils.lib.jooq.impl.TableImpl;
import io.lumine.mythic.bukkit.utils.lib.jooq.Field;
import io.lumine.mythic.bukkit.utils.lib.jooq.ForeignKey;
import io.lumine.mythic.bukkit.utils.lib.jooq.Name;
import io.lumine.mythic.bukkit.utils.lib.jooq.Record;
import io.lumine.mythic.bukkit.utils.lib.jooq.Row2;
import io.lumine.mythic.bukkit.utils.lib.jooq.Schema;
import io.lumine.mythic.bukkit.utils.lib.jooq.Table;
import io.lumine.mythic.bukkit.utils.lib.jooq.TableField;
import io.lumine.mythic.bukkit.utils.lib.jooq.TableOptions;
import io.lumine.mythic.bukkit.utils.lib.jooq.UniqueKey;
import io.lumine.mythic.bukkit.utils.lib.jooq.impl.DSL;
import io.lumine.mythic.bukkit.utils.lib.jooq.impl.SQLDataType;
import io.lumine.mythic.bukkit.utils.lib.jooq.impl.TableImpl;
/**
......
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