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