diff --git a/README.md b/README.md new file mode 100644 index 0000000..4d7e633 --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +![](https://i.imgur.com/0lsV9oR.jpg) +![](https://static.tweetzy.ca/plugins/skulls/about.png) + +![](https://static.tweetzy.ca/plugins/skulls/featurebar1.png) +![](https://static.tweetzy.ca/plugins/skulls/featurebar2.png) diff --git a/pom.xml b/pom.xml index e1397a5..7d92ea7 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ skulls Skulls - 3.5.0 + 3.6.0 jar @@ -15,12 +15,17 @@ Skulls ${project.groupId}.${project.artifactId}.${project.name} 1.8 - 3.4.0 - ca.tweetzy + 3.6.0 + ca.tweetzy UTF-8 + + repsy + Tweetzy Maven Repo On Repsy + https://repo.repsy.io/mvn/kiran/tweetzy + jitpack.io https://jitpack.io @@ -40,9 +45,9 @@ - ${feather.path} - feather - ${feather.version} + ${flight.path} + flight + ${flight.version} com.sk89q.worldguard @@ -101,7 +106,7 @@ false - ${feather.path}:feather* + ${flight.path}:flight* @@ -117,8 +122,8 @@ - ca.tweetzy.feather - ${project.groupId}.${project.artifactId}.core + ca.tweetzy.flight + ${project.groupId}.${project.artifactId}.flight diff --git a/src/main/java/ca/tweetzy/skulls/Skulls.java b/src/main/java/ca/tweetzy/skulls/Skulls.java index 7bcf197..8a0cfb7 100644 --- a/src/main/java/ca/tweetzy/skulls/Skulls.java +++ b/src/main/java/ca/tweetzy/skulls/Skulls.java @@ -18,16 +18,14 @@ package ca.tweetzy.skulls; -import ca.tweetzy.feather.FeatherCore; -import ca.tweetzy.feather.FeatherPlugin; -import ca.tweetzy.feather.command.CommandManager; -import ca.tweetzy.feather.comp.enums.CompMaterial; -import ca.tweetzy.feather.database.DataMigrationManager; -import ca.tweetzy.feather.database.DatabaseConnector; -import ca.tweetzy.feather.database.SQLiteConnector; -import ca.tweetzy.feather.files.file.YamlFile; -import ca.tweetzy.feather.gui.GuiManager; -import ca.tweetzy.feather.utils.Common; +import ca.tweetzy.flight.FlightPlugin; +import ca.tweetzy.flight.command.CommandManager; +import ca.tweetzy.flight.config.tweetzy.TweetzyYamlConfig; +import ca.tweetzy.flight.database.DataMigrationManager; +import ca.tweetzy.flight.database.DatabaseConnector; +import ca.tweetzy.flight.database.SQLiteConnector; +import ca.tweetzy.flight.gui.GuiManager; +import ca.tweetzy.flight.utils.Common; import ca.tweetzy.skulls.api.SkullsAPI; import ca.tweetzy.skulls.commands.*; import ca.tweetzy.skulls.database.DataManager; @@ -50,9 +48,9 @@ * * @author Kiran Hart */ -public final class Skulls extends FeatherPlugin { +public final class Skulls extends FlightPlugin { - private final YamlFile coreConfig = new YamlFile(getDataFolder() + "/config.yml"); + private final TweetzyYamlConfig coreConfig = new TweetzyYamlConfig(this, "config.yml"); private final GuiManager guiManager = new GuiManager(this); private final CommandManager commandManager = new CommandManager(this); @@ -69,8 +67,6 @@ public final class Skulls extends FeatherPlugin { @Override protected void onFlight() { - FeatherCore.registerPlugin(this, 5, CompMaterial.ZOMBIE_HEAD.name()); - // settings and locale setup Settings.setup(); Locale.setup(); @@ -107,11 +103,11 @@ protected void onFlight() { } public static Skulls getInstance() { - return (Skulls) FeatherPlugin.getInstance(); + return (Skulls) FlightPlugin.getInstance(); } - public static YamlFile getCoreConfig() { + public static TweetzyYamlConfig getCoreConfig() { return getInstance().coreConfig; } diff --git a/src/main/java/ca/tweetzy/skulls/commands/GiveCommand.java b/src/main/java/ca/tweetzy/skulls/commands/GiveCommand.java index db3e34d..878dbb4 100644 --- a/src/main/java/ca/tweetzy/skulls/commands/GiveCommand.java +++ b/src/main/java/ca/tweetzy/skulls/commands/GiveCommand.java @@ -18,10 +18,10 @@ package ca.tweetzy.skulls.commands; -import ca.tweetzy.feather.command.AllowedExecutor; -import ca.tweetzy.feather.command.Command; -import ca.tweetzy.feather.command.ReturnType; -import ca.tweetzy.feather.utils.Common; +import ca.tweetzy.flight.command.AllowedExecutor; +import ca.tweetzy.flight.command.Command; +import ca.tweetzy.flight.command.ReturnType; +import ca.tweetzy.flight.utils.Common; import ca.tweetzy.skulls.model.NumberHelper; import ca.tweetzy.skulls.Skulls; import ca.tweetzy.skulls.api.interfaces.Skull; diff --git a/src/main/java/ca/tweetzy/skulls/commands/InspectCommand.java b/src/main/java/ca/tweetzy/skulls/commands/InspectCommand.java index e40657b..7032785 100644 --- a/src/main/java/ca/tweetzy/skulls/commands/InspectCommand.java +++ b/src/main/java/ca/tweetzy/skulls/commands/InspectCommand.java @@ -18,13 +18,13 @@ package ca.tweetzy.skulls.commands; -import ca.tweetzy.feather.command.AllowedExecutor; -import ca.tweetzy.feather.command.Command; -import ca.tweetzy.feather.command.ReturnType; -import ca.tweetzy.feather.comp.NBTEditor; -import ca.tweetzy.feather.comp.enums.CompMaterial; -import ca.tweetzy.feather.utils.Common; -import ca.tweetzy.feather.utils.PlayerUtil; +import ca.tweetzy.flight.command.AllowedExecutor; +import ca.tweetzy.flight.command.Command; +import ca.tweetzy.flight.command.ReturnType; +import ca.tweetzy.flight.comp.NBTEditor; +import ca.tweetzy.flight.comp.enums.CompMaterial; +import ca.tweetzy.flight.utils.Common; +import ca.tweetzy.flight.utils.PlayerUtil; import ca.tweetzy.skulls.Skulls; import ca.tweetzy.skulls.api.interfaces.PlacedSkull; import ca.tweetzy.skulls.api.interfaces.Skull; diff --git a/src/main/java/ca/tweetzy/skulls/commands/PlayerHeadCommand.java b/src/main/java/ca/tweetzy/skulls/commands/PlayerHeadCommand.java index 71a795e..4673678 100644 --- a/src/main/java/ca/tweetzy/skulls/commands/PlayerHeadCommand.java +++ b/src/main/java/ca/tweetzy/skulls/commands/PlayerHeadCommand.java @@ -18,11 +18,12 @@ package ca.tweetzy.skulls.commands; -import ca.tweetzy.feather.command.AllowedExecutor; -import ca.tweetzy.feather.command.Command; -import ca.tweetzy.feather.command.ReturnType; -import ca.tweetzy.feather.utils.Common; -import ca.tweetzy.feather.utils.QuickItem; +import ca.tweetzy.flight.command.AllowedExecutor; +import ca.tweetzy.flight.command.Command; +import ca.tweetzy.flight.command.ReturnType; +import ca.tweetzy.flight.utils.Common; +import ca.tweetzy.flight.utils.QuickItem; +import ca.tweetzy.skulls.Skulls; import ca.tweetzy.skulls.model.NumberHelper; import ca.tweetzy.skulls.settings.Settings; import ca.tweetzy.skulls.settings.Translation; @@ -52,7 +53,7 @@ protected ReturnType execute(CommandSender sender, String... args) { return ReturnType.INVALID_SYNTAX; } - Common.runAsync(() -> { + Bukkit.getServer().getScheduler().runTaskAsynchronously(Skulls.getInstance(), () -> { if (args.length == 0) { final Player executor = (Player) sender; executor.getInventory().addItem(QuickItem.of(executor).name(Settings.PLAYER_HEAD_NAME.getString().replace("%player_name%", executor.getName())).make()); diff --git a/src/main/java/ca/tweetzy/skulls/commands/SearchCommand.java b/src/main/java/ca/tweetzy/skulls/commands/SearchCommand.java index b326ca7..c86b04d 100644 --- a/src/main/java/ca/tweetzy/skulls/commands/SearchCommand.java +++ b/src/main/java/ca/tweetzy/skulls/commands/SearchCommand.java @@ -18,9 +18,9 @@ package ca.tweetzy.skulls.commands; -import ca.tweetzy.feather.command.AllowedExecutor; -import ca.tweetzy.feather.command.Command; -import ca.tweetzy.feather.command.ReturnType; +import ca.tweetzy.flight.command.AllowedExecutor; +import ca.tweetzy.flight.command.Command; +import ca.tweetzy.flight.command.ReturnType; import ca.tweetzy.skulls.Skulls; import ca.tweetzy.skulls.api.enums.ViewMode; import ca.tweetzy.skulls.api.interfaces.SkullUser; diff --git a/src/main/java/ca/tweetzy/skulls/commands/SkullsCommand.java b/src/main/java/ca/tweetzy/skulls/commands/SkullsCommand.java index 69a0f73..353acb3 100644 --- a/src/main/java/ca/tweetzy/skulls/commands/SkullsCommand.java +++ b/src/main/java/ca/tweetzy/skulls/commands/SkullsCommand.java @@ -18,9 +18,9 @@ package ca.tweetzy.skulls.commands; -import ca.tweetzy.feather.command.AllowedExecutor; -import ca.tweetzy.feather.command.Command; -import ca.tweetzy.feather.command.ReturnType; +import ca.tweetzy.flight.command.AllowedExecutor; +import ca.tweetzy.flight.command.Command; +import ca.tweetzy.flight.command.ReturnType; import ca.tweetzy.skulls.Skulls; import ca.tweetzy.skulls.guis.MainGUI; import ca.tweetzy.skulls.settings.Settings; diff --git a/src/main/java/ca/tweetzy/skulls/database/DataManager.java b/src/main/java/ca/tweetzy/skulls/database/DataManager.java index 2ac0213..dca76f5 100644 --- a/src/main/java/ca/tweetzy/skulls/database/DataManager.java +++ b/src/main/java/ca/tweetzy/skulls/database/DataManager.java @@ -18,12 +18,12 @@ package ca.tweetzy.skulls.database; -import ca.tweetzy.feather.database.Callback; -import ca.tweetzy.feather.database.DataManagerAbstract; -import ca.tweetzy.feather.database.DatabaseConnector; -import ca.tweetzy.feather.database.UpdateCallback; -import ca.tweetzy.feather.utils.Common; -import ca.tweetzy.skulls.model.Serialize; +import ca.tweetzy.flight.database.Callback; +import ca.tweetzy.flight.database.DataManagerAbstract; +import ca.tweetzy.flight.database.DatabaseConnector; +import ca.tweetzy.flight.database.UpdateCallback; +import ca.tweetzy.flight.utils.Common; +import ca.tweetzy.flight.utils.SerializeUtil; import ca.tweetzy.skulls.Skulls; import ca.tweetzy.skulls.api.enums.BaseCategory; import ca.tweetzy.skulls.api.interfaces.*; @@ -121,7 +121,7 @@ public void insertPlacedSkull(@NonNull final PlacedSkull placedSkull, Callback

new TitleInput(click.player, Translation.INPUT_CATEGORY_CREATE_TITLE.getString(), Translation.INPUT_CATEGORY_CREATE_SUBTITLE.getString()) { + .make(), click -> new TitleInput(Skulls.getInstance(),click.player, Translation.INPUT_CATEGORY_CREATE_TITLE.getString(), Translation.INPUT_CATEGORY_CREATE_SUBTITLE.getString()) { @Override public void onExit(Player player) { diff --git a/src/main/java/ca/tweetzy/skulls/guis/HistoryViewGUI.java b/src/main/java/ca/tweetzy/skulls/guis/HistoryViewGUI.java index e9c46da..7f66d8f 100644 --- a/src/main/java/ca/tweetzy/skulls/guis/HistoryViewGUI.java +++ b/src/main/java/ca/tweetzy/skulls/guis/HistoryViewGUI.java @@ -18,16 +18,17 @@ package ca.tweetzy.skulls.guis; -import ca.tweetzy.feather.comp.enums.CompMaterial; -import ca.tweetzy.feather.gui.Gui; -import ca.tweetzy.feather.gui.events.GuiClickEvent; -import ca.tweetzy.feather.gui.template.PagedGUI; -import ca.tweetzy.feather.utils.Common; -import ca.tweetzy.feather.utils.QuickItem; +import ca.tweetzy.flight.comp.enums.CompMaterial; +import ca.tweetzy.flight.gui.Gui; +import ca.tweetzy.flight.gui.events.GuiClickEvent; +import ca.tweetzy.flight.gui.template.PagedGUI; +import ca.tweetzy.flight.utils.Common; +import ca.tweetzy.flight.utils.QuickItem; import ca.tweetzy.skulls.Skulls; import ca.tweetzy.skulls.api.enums.BaseCategory; import ca.tweetzy.skulls.api.interfaces.History; import ca.tweetzy.skulls.settings.Translation; +import org.bukkit.Bukkit; import org.bukkit.inventory.ItemStack; import java.text.SimpleDateFormat; @@ -90,7 +91,7 @@ protected void onClick(History history, GuiClickEvent clickEvent) { final boolean downloaded = Skulls.getSkullManager().getIdList().contains(history.getSkulls().get(0)); if (downloaded) return; - Common.runAsync(() -> { + Bukkit.getServer().getScheduler().runTaskAsynchronously(Skulls.getInstance(), () -> { Skulls.getSkullManager().downloadHistorySkulls(history, finished -> clickEvent.manager.showGUI(clickEvent.player, new HistoryViewGUI(new MainGUI(clickEvent.player)))); }); } diff --git a/src/main/java/ca/tweetzy/skulls/guis/MainGUI.java b/src/main/java/ca/tweetzy/skulls/guis/MainGUI.java index efb5b2e..1b1e8a5 100644 --- a/src/main/java/ca/tweetzy/skulls/guis/MainGUI.java +++ b/src/main/java/ca/tweetzy/skulls/guis/MainGUI.java @@ -18,16 +18,16 @@ package ca.tweetzy.skulls.guis; -import ca.tweetzy.feather.comp.enums.CompMaterial; -import ca.tweetzy.feather.gui.template.BaseGUI; -import ca.tweetzy.feather.utils.ChatUtil; -import ca.tweetzy.feather.utils.Common; -import ca.tweetzy.feather.utils.QuickItem; -import ca.tweetzy.feather.utils.input.TitleInput; -import ca.tweetzy.skulls.model.SkullItem; +import ca.tweetzy.flight.comp.enums.CompMaterial; +import ca.tweetzy.flight.gui.template.BaseGUI; +import ca.tweetzy.flight.utils.ChatUtil; +import ca.tweetzy.flight.utils.Common; +import ca.tweetzy.flight.utils.QuickItem; +import ca.tweetzy.flight.utils.input.TitleInput; import ca.tweetzy.skulls.Skulls; import ca.tweetzy.skulls.api.enums.BaseCategory; import ca.tweetzy.skulls.api.enums.ViewMode; +import ca.tweetzy.skulls.model.SkullItem; import ca.tweetzy.skulls.settings.Translation; import lombok.NonNull; import org.bukkit.entity.Player; @@ -59,7 +59,7 @@ protected void draw() { .lore(Translation.GUI_MAIN_ITEMS_CATEGORY_LORE.getList("category_size", Skulls.getSkullManager().getSkullCount(baseCategory.getId()))) .make(), click -> { - if (!click.player.hasPermission("skulls.category." + baseCategory.getId().toLowerCase().replace(" ", "").replace("&",""))) { + if (!click.player.hasPermission("skulls.category." + baseCategory.getId().toLowerCase().replace(" ", "").replace("&", ""))) { Common.tell(click.player, Translation.CATEGORY_PERMISSION.getKey()); return; } @@ -78,7 +78,7 @@ protected void draw() { return; } - new TitleInput(click.player, Translation.INPUT_SKULL_SEARCH_TITLE.getString(), Translation.INPUT_SKULL_SEARCH_SUBTITLE.getString()) { + new TitleInput(Skulls.getInstance(), click.player, Translation.INPUT_SKULL_SEARCH_TITLE.getString(), Translation.INPUT_SKULL_SEARCH_SUBTITLE.getString()) { @Override public boolean onResult(String string) { diff --git a/src/main/java/ca/tweetzy/skulls/guis/SkullEditGUI.java b/src/main/java/ca/tweetzy/skulls/guis/SkullEditGUI.java index 45deb4c..4ea0551 100644 --- a/src/main/java/ca/tweetzy/skulls/guis/SkullEditGUI.java +++ b/src/main/java/ca/tweetzy/skulls/guis/SkullEditGUI.java @@ -18,11 +18,12 @@ package ca.tweetzy.skulls.guis; -import ca.tweetzy.feather.comp.enums.CompMaterial; -import ca.tweetzy.feather.gui.Gui; -import ca.tweetzy.feather.gui.template.BaseGUI; -import ca.tweetzy.feather.utils.QuickItem; -import ca.tweetzy.feather.utils.input.TitleInput; +import ca.tweetzy.flight.comp.enums.CompMaterial; +import ca.tweetzy.flight.gui.Gui; +import ca.tweetzy.flight.gui.template.BaseGUI; +import ca.tweetzy.flight.utils.QuickItem; +import ca.tweetzy.flight.utils.input.TitleInput; +import ca.tweetzy.skulls.Skulls; import ca.tweetzy.skulls.api.interfaces.Skull; import ca.tweetzy.skulls.settings.Locale; import ca.tweetzy.skulls.settings.Translation; @@ -55,7 +56,7 @@ protected void draw() { setButton(3, 1, QuickItem.of(CompMaterial.NAME_TAG) .name(Translation.GUI_EDIT_ITEMS_NAME_NAME.getString()) .lore(Translation.GUI_EDIT_ITEMS_NAME_LORE.getList()) - .make(), click -> new TitleInput(click.player, Translation.INPUT_SKULL_EDIT_TITLE.getString(), Translation.INPUT_SKULL_EDIT_NAME.getString()) { + .make(), click -> new TitleInput(Skulls.getInstance(),click.player, Translation.INPUT_SKULL_EDIT_TITLE.getString(), Translation.INPUT_SKULL_EDIT_NAME.getString()) { @Override public boolean onResult(String string) { @@ -70,7 +71,7 @@ public boolean onResult(String string) { setButton(3, 3, QuickItem.of(CompMaterial.GOLD_INGOT) .name(Translation.GUI_EDIT_ITEMS_PRICE_NAME.getString()) .lore(Translation.GUI_EDIT_ITEMS_PRICE_LORE.getList()) - .make(), click -> new TitleInput(click.player, Translation.INPUT_SKULL_EDIT_TITLE.getString(), Translation.INPUT_SKULL_EDIT_PRICE.getString()) { + .make(), click -> new TitleInput(Skulls.getInstance(),click.player, Translation.INPUT_SKULL_EDIT_TITLE.getString(), Translation.INPUT_SKULL_EDIT_PRICE.getString()) { @Override public boolean onResult(String string) { diff --git a/src/main/java/ca/tweetzy/skulls/guis/SkullsViewGUI.java b/src/main/java/ca/tweetzy/skulls/guis/SkullsViewGUI.java index 995d038..aa49fb2 100644 --- a/src/main/java/ca/tweetzy/skulls/guis/SkullsViewGUI.java +++ b/src/main/java/ca/tweetzy/skulls/guis/SkullsViewGUI.java @@ -18,10 +18,10 @@ package ca.tweetzy.skulls.guis; -import ca.tweetzy.feather.gui.Gui; -import ca.tweetzy.feather.gui.events.GuiClickEvent; -import ca.tweetzy.feather.gui.template.PagedGUI; -import ca.tweetzy.feather.utils.QuickItem; +import ca.tweetzy.flight.gui.Gui; +import ca.tweetzy.flight.gui.events.GuiClickEvent; +import ca.tweetzy.flight.gui.template.PagedGUI; +import ca.tweetzy.flight.utils.QuickItem; import ca.tweetzy.skulls.Skulls; import ca.tweetzy.skulls.api.enums.ViewMode; import ca.tweetzy.skulls.api.interfaces.Skull; diff --git a/src/main/java/ca/tweetzy/skulls/hooks/WorldGuardHook.java b/src/main/java/ca/tweetzy/skulls/hooks/WorldGuardHook.java index 1377aa6..caa4378 100644 --- a/src/main/java/ca/tweetzy/skulls/hooks/WorldGuardHook.java +++ b/src/main/java/ca/tweetzy/skulls/hooks/WorldGuardHook.java @@ -35,7 +35,7 @@ public final class WorldGuardHook { public boolean isAllowedPlace(@NonNull final Player player, @NonNull final Block block) { - if (!Bukkit.getPluginManager().isPluginEnabled("WorldGuard")) return false; + if (!Bukkit.getPluginManager().isPluginEnabled("WorldGuard")) return true; final RegionQuery query = WorldGuard.getInstance().getPlatform().getRegionContainer().createQuery(); final Location loc = BukkitAdapter.adapt(block.getLocation()); @@ -48,7 +48,7 @@ public boolean isAllowedPlace(@NonNull final Player player, @NonNull final Block } public boolean isAllowedBreak(@NonNull final Player player, @NonNull final Block block) { - if (!Bukkit.getPluginManager().isPluginEnabled("WorldGuard")) return false; + if (!Bukkit.getPluginManager().isPluginEnabled("WorldGuard")) return true; final RegionQuery query = WorldGuard.getInstance().getPlatform().getRegionContainer().createQuery(); final Location loc = BukkitAdapter.adapt(block.getLocation()); @@ -57,6 +57,8 @@ public boolean isAllowedBreak(@NonNull final Player player, @NonNull final Block if (WorldGuard.getInstance().getPlatform().getSessionManager().hasBypass(WorldGuardPlugin.inst().wrapPlayer(player), world)) return true; - return query.testState(loc, WorldGuardPlugin.inst().wrapPlayer(player), Flags.BLOCK_BREAK); + + return query.testState(loc, WorldGuardPlugin.inst().wrapPlayer(player), Flags.BUILD); + } } diff --git a/src/main/java/ca/tweetzy/skulls/impl/TexturedSkull.java b/src/main/java/ca/tweetzy/skulls/impl/TexturedSkull.java index 3b1ff8c..6b226e0 100644 --- a/src/main/java/ca/tweetzy/skulls/impl/TexturedSkull.java +++ b/src/main/java/ca/tweetzy/skulls/impl/TexturedSkull.java @@ -18,8 +18,8 @@ package ca.tweetzy.skulls.impl; -import ca.tweetzy.feather.comp.NBTEditor; -import ca.tweetzy.feather.utils.QuickItem; +import ca.tweetzy.flight.comp.NBTEditor; +import ca.tweetzy.flight.utils.QuickItem; import ca.tweetzy.skulls.Skulls; import ca.tweetzy.skulls.api.interfaces.Skull; import ca.tweetzy.skulls.settings.Translation; diff --git a/src/main/java/ca/tweetzy/skulls/impl/economy/VaultEconomy.java b/src/main/java/ca/tweetzy/skulls/impl/economy/VaultEconomy.java index 60c2de6..3595625 100644 --- a/src/main/java/ca/tweetzy/skulls/impl/economy/VaultEconomy.java +++ b/src/main/java/ca/tweetzy/skulls/impl/economy/VaultEconomy.java @@ -18,7 +18,7 @@ package ca.tweetzy.skulls.impl.economy; -import ca.tweetzy.feather.utils.Common; +import ca.tweetzy.flight.utils.Common; import ca.tweetzy.skulls.Skulls; import ca.tweetzy.skulls.api.interfaces.Economy; import lombok.NonNull; diff --git a/src/main/java/ca/tweetzy/skulls/listeners/PlayerDeathListener.java b/src/main/java/ca/tweetzy/skulls/listeners/PlayerDeathListener.java index ecf8d8a..ac784d6 100644 --- a/src/main/java/ca/tweetzy/skulls/listeners/PlayerDeathListener.java +++ b/src/main/java/ca/tweetzy/skulls/listeners/PlayerDeathListener.java @@ -18,7 +18,7 @@ package ca.tweetzy.skulls.listeners; -import ca.tweetzy.feather.utils.QuickItem; +import ca.tweetzy.flight.utils.QuickItem; import ca.tweetzy.skulls.settings.Settings; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; diff --git a/src/main/java/ca/tweetzy/skulls/listeners/SkullBlockListener.java b/src/main/java/ca/tweetzy/skulls/listeners/SkullBlockListener.java index 0313b8c..db02e62 100644 --- a/src/main/java/ca/tweetzy/skulls/listeners/SkullBlockListener.java +++ b/src/main/java/ca/tweetzy/skulls/listeners/SkullBlockListener.java @@ -18,9 +18,9 @@ package ca.tweetzy.skulls.listeners; -import ca.tweetzy.feather.comp.NBTEditor; -import ca.tweetzy.feather.comp.enums.CompMaterial; -import ca.tweetzy.feather.utils.PlayerUtil; +import ca.tweetzy.flight.comp.NBTEditor; +import ca.tweetzy.flight.comp.enums.CompMaterial; +import ca.tweetzy.flight.utils.PlayerUtil; import ca.tweetzy.skulls.Skulls; import ca.tweetzy.skulls.api.interfaces.PlacedSkull; import ca.tweetzy.skulls.api.interfaces.Skull; diff --git a/src/main/java/ca/tweetzy/skulls/manager/SkullManager.java b/src/main/java/ca/tweetzy/skulls/manager/SkullManager.java index ad9a544..c93d332 100644 --- a/src/main/java/ca/tweetzy/skulls/manager/SkullManager.java +++ b/src/main/java/ca/tweetzy/skulls/manager/SkullManager.java @@ -18,9 +18,9 @@ package ca.tweetzy.skulls.manager; -import ca.tweetzy.feather.comp.enums.CompMaterial; -import ca.tweetzy.feather.utils.Common; -import ca.tweetzy.feather.utils.QuickItem; +import ca.tweetzy.flight.comp.enums.CompMaterial; +import ca.tweetzy.flight.utils.Common; +import ca.tweetzy.flight.utils.QuickItem; import ca.tweetzy.skulls.Skulls; import ca.tweetzy.skulls.api.enums.BaseCategory; import ca.tweetzy.skulls.api.interfaces.History; @@ -35,6 +35,7 @@ import lombok.NonNull; import lombok.Setter; import org.apache.commons.lang.math.NumberUtils; +import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.inventory.ItemStack; @@ -162,7 +163,7 @@ public void removePlacedSkull(@NonNull final PlacedSkull placedSkull) { public void downloadHeads() { setDownloading(true); - Common.runAsync(() -> { + Bukkit.getServer().getScheduler().runTaskAsynchronously(Skulls.getInstance(), () -> { final List heads = new ArrayList<>(); Common.log("&r&aBeginning initial download, it may take some time to insert all the skulls into the data file!"); @@ -317,14 +318,14 @@ public void load() { if (this.histories.isEmpty()) { Common.log("&cCould not find any inserts, attempting to redownload them!"); - Common.runAsync(() -> { + Bukkit.getServer().getScheduler().runTaskAsynchronously(Skulls.getInstance(), () -> { final List dlHistory = downloadHistories(); Skulls.getDataManager().insertHistories(dlHistory); this.histories.addAll(dlHistory); }); } else { - Common.runAsync(() -> { + Bukkit.getServer().getScheduler().runTaskAsynchronously(Skulls.getInstance(), () -> { // check for new inserts final List dlHistory = downloadHistories(); diff --git a/src/main/java/ca/tweetzy/skulls/model/Serialize.java b/src/main/java/ca/tweetzy/skulls/model/Serialize.java deleted file mode 100644 index 3d1acd0..0000000 --- a/src/main/java/ca/tweetzy/skulls/model/Serialize.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Skulls - * Copyright 2022 Kiran Hart - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package ca.tweetzy.skulls.model; - -import lombok.experimental.UtilityClass; -import org.bukkit.Bukkit; -import org.bukkit.Location; - -@UtilityClass -public final class Serialize { - - public String serializeLocation(final Location location) { - if (location == null) - return ""; - - return String.format( - "%s %f %f %f %f %f", - location.getWorld().getName(), - location.getX(), - location.getY(), - location.getZ(), - location.getYaw(), - location.getPitch() - ); - } - - public Location deserializeLocation(final String raw) { - final String[] split = raw.split(" "); - - return new Location( - Bukkit.getWorld(split[0]), - Double.parseDouble(split[1].replace(",",".")), - Double.parseDouble(split[2].replace(",",".")), - Double.parseDouble(split[3].replace(",",".")), - Float.parseFloat(split[4].replace(",",".")), - Float.parseFloat(split[5].replace(",",".")) - ); - } -} diff --git a/src/main/java/ca/tweetzy/skulls/model/SkullItem.java b/src/main/java/ca/tweetzy/skulls/model/SkullItem.java index ae302b7..3203d36 100644 --- a/src/main/java/ca/tweetzy/skulls/model/SkullItem.java +++ b/src/main/java/ca/tweetzy/skulls/model/SkullItem.java @@ -18,7 +18,7 @@ package ca.tweetzy.skulls.model; -import ca.tweetzy.feather.comp.enums.CompMaterial; +import ca.tweetzy.flight.comp.enums.CompMaterial; import ca.tweetzy.skulls.Skulls; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/ca/tweetzy/skulls/settings/Locale.java b/src/main/java/ca/tweetzy/skulls/settings/Locale.java index dc1d0e7..d10793e 100644 --- a/src/main/java/ca/tweetzy/skulls/settings/Locale.java +++ b/src/main/java/ca/tweetzy/skulls/settings/Locale.java @@ -18,9 +18,8 @@ package ca.tweetzy.skulls.settings; -import ca.tweetzy.feather.files.comments.format.YamlCommentFormat; -import ca.tweetzy.feather.files.file.YamlFile; -import ca.tweetzy.feather.utils.Common; +import ca.tweetzy.flight.config.tweetzy.TweetzyYamlConfig; +import ca.tweetzy.flight.utils.Common; import ca.tweetzy.skulls.Skulls; import lombok.NonNull; import lombok.SneakyThrows; @@ -41,7 +40,7 @@ @SuppressWarnings("all") public final class Locale { - private static final Map LOCALES = new HashMap<>(); + private static final Map LOCALES = new HashMap<>(); private static final Map PHRASES = new HashMap<>(); private static String defaultLanguage = "english"; @@ -61,41 +60,36 @@ public static void setup() { if (file.getName().equalsIgnoreCase("english.yml")) continue; if (file.getName().equalsIgnoreCase(defaultLanguage + ".yml")) continue; - final YamlFile yamlFile = new YamlFile(Skulls.getInstance().getDataFolder() + "/locales/" + file.getName()); - yamlFile.createOrLoadWithComments(); - yamlFile.setCommentFormat(YamlCommentFormat.PRETTY); + final TweetzyYamlConfig yamlFile = new TweetzyYamlConfig(Skulls.getInstance(), "/locales/" + file.getName()); PHRASES.forEach((key, value) -> { - if (!yamlFile.isSet(key)) - yamlFile.set(key, value); + if (!yamlFile.has(key)) + yamlFile.createEntry(key, value); }); - yamlFile.path("file language").set(file.getName().replace(".yml", "")).comment("For internal use, this is auto generated based on file name"); + yamlFile.createEntry("file language", file.getName().replace(".yml", "")).withComment("For internal use, this is auto generated based on file name"); + yamlFile.init(); - yamlFile.save(); LOCALES.put(file.getName().replace(".yml", ""), yamlFile); } } @SneakyThrows private static void setupDefaults(String name) { - final YamlFile yamlFile = new YamlFile(Skulls.getInstance().getDataFolder() + "/locales/" + name + ".yml"); - yamlFile.createOrLoadWithComments(); - yamlFile.setCommentFormat(YamlCommentFormat.PRETTY); + final TweetzyYamlConfig yamlFile = new TweetzyYamlConfig(Skulls.getInstance(), "/locales/" + name + ".yml"); PHRASES.forEach((key, value) -> { - if (!yamlFile.isSet(key)) - yamlFile.set(key, value); + if (!yamlFile.has(key)) + yamlFile.createEntry(key, value); }); - yamlFile.path("file language") - .set(name) - .comment("This is the default language for Skulls to use another language" + - "\nchange the default language in the config.yml" + - "\nif the file does not exists, it will generate using the default english" + - "\ntranslations, you can then make edits from there."); + yamlFile.createEntry("file language", name) + .withComment("This is the default language for Skulls to use another language") + .withComment("change the default language in the config.yml") + .withComment("if the file does not exists, it will generate using the default english") + .withComment("translations, you can then make edits from there."); - yamlFile.save(); + yamlFile.init(); LOCALES.put(name, yamlFile); } @@ -117,16 +111,16 @@ public static List getList(String key, String language) { } private static Object getPhraseEnglish(String key) { - return LOCALES.get("english").get(key); + return LOCALES.get("english").getOr(key, null); } private static Object getPhrase(String key, String language) { - YamlFile file = LOCALES.get(language); + TweetzyYamlConfig file = LOCALES.get(language); if (file == null) return getPhraseEnglish(key); - return file.get(key, getPhraseEnglish(key)); + return file.getOr(key, getPhraseEnglish(key)); } public static void tell(CommandSender sender, String key) { diff --git a/src/main/java/ca/tweetzy/skulls/settings/Settings.java b/src/main/java/ca/tweetzy/skulls/settings/Settings.java index 6ccce54..d4c8212 100644 --- a/src/main/java/ca/tweetzy/skulls/settings/Settings.java +++ b/src/main/java/ca/tweetzy/skulls/settings/Settings.java @@ -18,9 +18,9 @@ package ca.tweetzy.skulls.settings; -import ca.tweetzy.feather.comp.enums.CompMaterial; -import ca.tweetzy.feather.files.ConfigSetting; -import ca.tweetzy.feather.files.file.YamlFile; +import ca.tweetzy.flight.comp.enums.CompMaterial; +import ca.tweetzy.flight.config.ConfigEntry; +import ca.tweetzy.flight.config.tweetzy.TweetzyYamlConfig; import ca.tweetzy.skulls.Skulls; import lombok.SneakyThrows; @@ -32,60 +32,58 @@ */ public final class Settings { - static final YamlFile config = Skulls.getCoreConfig(); + static final TweetzyYamlConfig config = Skulls.getCoreConfig(); - public static final ConfigSetting LANG = new ConfigSetting(config, "language", "english", "Default language file"); - public static final ConfigSetting PREFIX = new ConfigSetting(config, "prefix", "&lSkulls&r &8»", "Prefix to be used in chat"); - public static final ConfigSetting CHARGE_FOR_HEADS = new ConfigSetting(config, "charge for heads", true, "Should skulls charge users without permission for heads?"); - public static final ConfigSetting ECONOMY = new ConfigSetting(config, "economy", "Vault", "You can use Vault or Item"); - public static final ConfigSetting ITEM_ECONOMY_ITEM = new ConfigSetting(config, "item economy item", CompMaterial.GOLD_INGOT.name()); - public static final ConfigSetting MAIN_MENU_REQUIRES_NO_PERM = new ConfigSetting(config, "main menu requires no permission", true); + public static final ConfigEntry LANG = config.createEntry("language", "english").withComment("Default language file"); + public static final ConfigEntry PREFIX = config.createEntry("prefix", "&lSkulls&r &8»").withComment("Prefix to be used in chat"); + public static final ConfigEntry CHARGE_FOR_HEADS = config.createEntry("charge for heads", true).withComment("Should skulls charge users without permission for heads?"); + public static final ConfigEntry ECONOMY = config.createEntry("economy", "Vault").withComment("You can use Vault or Item"); + public static final ConfigEntry ITEM_ECONOMY_ITEM = config.createEntry("item economy item", CompMaterial.GOLD_INGOT.name()); + public static final ConfigEntry MAIN_MENU_REQUIRES_NO_PERM = config.createEntry("main menu requires no permission", true); - public static final ConfigSetting CATEGORIES_ALPHABET_ENABLED = new ConfigSetting(config, "enabled categories.alphabet", true); - public static final ConfigSetting CATEGORIES_ANIMALS_ENABLED = new ConfigSetting(config, "enabled categories.animals", true); - public static final ConfigSetting CATEGORIES_BLOCKS_ENABLED = new ConfigSetting(config, "enabled categories.blocks", true); - public static final ConfigSetting CATEGORIES_DECORATION_ENABLED = new ConfigSetting(config, "enabled categories.decoration", true); - public static final ConfigSetting CATEGORIES_FOOD_AND_DRINKS_ENABLED = new ConfigSetting(config, "enabled categories.food and drinks", true); - public static final ConfigSetting CATEGORIES_HUMANS_ENABLED = new ConfigSetting(config, "enabled categories.humans", true); - public static final ConfigSetting CATEGORIES_HUMANOID_ENABLED = new ConfigSetting(config, "enabled categories.humanoids", true); - public static final ConfigSetting CATEGORIES_MISC_ENABLED = new ConfigSetting(config, "enabled categories.misc", true); - public static final ConfigSetting CATEGORIES_MONSTERS_ENABLED = new ConfigSetting(config, "enabled categories.monsters", true); - public static final ConfigSetting CATEGORIES_PLANTS_ENABLED = new ConfigSetting(config, "enabled categories.plants", true); + public static final ConfigEntry CATEGORIES_ALPHABET_ENABLED = config.createEntry("enabled categories.alphabet", true); + public static final ConfigEntry CATEGORIES_ANIMALS_ENABLED = config.createEntry("enabled categories.animals", true); + public static final ConfigEntry CATEGORIES_BLOCKS_ENABLED = config.createEntry("enabled categories.blocks", true); + public static final ConfigEntry CATEGORIES_DECORATION_ENABLED = config.createEntry("enabled categories.decoration", true); + public static final ConfigEntry CATEGORIES_FOOD_AND_DRINKS_ENABLED = config.createEntry("enabled categories.food and drinks", true); + public static final ConfigEntry CATEGORIES_HUMANS_ENABLED = config.createEntry("enabled categories.humans", true); + public static final ConfigEntry CATEGORIES_HUMANOID_ENABLED = config.createEntry("enabled categories.humanoids", true); + public static final ConfigEntry CATEGORIES_MISC_ENABLED = config.createEntry("enabled categories.misc", true); + public static final ConfigEntry CATEGORIES_MONSTERS_ENABLED = config.createEntry("enabled categories.monsters", true); + public static final ConfigEntry CATEGORIES_PLANTS_ENABLED = config.createEntry("enabled categories.plants", true); - public static final ConfigSetting PLAYER_HEAD_NAME = new ConfigSetting(config, "player head.name", "&e%player_name%"); - public static final ConfigSetting PLAYER_HEAD_DROP = new ConfigSetting(config, "player head.drop enabled", true); - public static final ConfigSetting PLAYER_HEAD_DROP_CHANCE = new ConfigSetting(config, "player head.drop chance", 50); + public static final ConfigEntry PLAYER_HEAD_NAME = config.createEntry("player head.name", "&e%player_name%"); + public static final ConfigEntry PLAYER_HEAD_DROP = config.createEntry("player head.drop enabled", true); + public static final ConfigEntry PLAYER_HEAD_DROP_CHANCE = config.createEntry("player head.drop chance", 50); /* ==================== GUI END ==================== */ - public static final ConfigSetting GUI_MAIN_ITEMS_ALPHABET_SLOT = new ConfigSetting(config, "gui.main.items.alphabet.slot", 11); - public static final ConfigSetting GUI_MAIN_ITEMS_ANIMALS_SLOT = new ConfigSetting(config, "gui.main.items.animals.slot", 12); - public static final ConfigSetting GUI_MAIN_ITEMS_BLOCKS_SLOT = new ConfigSetting(config, "gui.main.items.blocks.slot", 13); - public static final ConfigSetting GUI_MAIN_ITEMS_DECORATION_SLOT = new ConfigSetting(config, "gui.main.items.decoration.slot", 14); - public static final ConfigSetting GUI_MAIN_ITEMS_FOOD_AND_DRINKS_SLOT = new ConfigSetting(config, "gui.main.items.food and drinks.slot", 15); - public static final ConfigSetting GUI_MAIN_ITEMS_HUMANS_SLOT = new ConfigSetting(config, "gui.main.items.humans.slot", 20); - public static final ConfigSetting GUI_MAIN_ITEMS_HUMANOID_SLOT = new ConfigSetting(config, "gui.main.items.humanoids.slot", 21); - public static final ConfigSetting GUI_MAIN_ITEMS_MISC_SLOT = new ConfigSetting(config, "gui.main.items.misc.slot", 22); - public static final ConfigSetting GUI_MAIN_ITEMS_MONSTERS_SLOT = new ConfigSetting(config, "gui.main.items.monsters.slot", 23); - public static final ConfigSetting GUI_MAIN_ITEMS_PLANTS_SLOT = new ConfigSetting(config, "gui.main.items.plants.slot", 24); + public static final ConfigEntry GUI_MAIN_ITEMS_ALPHABET_SLOT = config.createEntry("gui.main.items.alphabet.slot", 11); + public static final ConfigEntry GUI_MAIN_ITEMS_ANIMALS_SLOT = config.createEntry("gui.main.items.animals.slot", 12); + public static final ConfigEntry GUI_MAIN_ITEMS_BLOCKS_SLOT = config.createEntry("gui.main.items.blocks.slot", 13); + public static final ConfigEntry GUI_MAIN_ITEMS_DECORATION_SLOT = config.createEntry("gui.main.items.decoration.slot", 14); + public static final ConfigEntry GUI_MAIN_ITEMS_FOOD_AND_DRINKS_SLOT = config.createEntry("gui.main.items.food and drinks.slot", 15); + public static final ConfigEntry GUI_MAIN_ITEMS_HUMANS_SLOT = config.createEntry("gui.main.items.humans.slot", 20); + public static final ConfigEntry GUI_MAIN_ITEMS_HUMANOID_SLOT = config.createEntry("gui.main.items.humanoids.slot", 21); + public static final ConfigEntry GUI_MAIN_ITEMS_MISC_SLOT = config.createEntry("gui.main.items.misc.slot", 22); + public static final ConfigEntry GUI_MAIN_ITEMS_MONSTERS_SLOT = config.createEntry("gui.main.items.monsters.slot", 23); + public static final ConfigEntry GUI_MAIN_ITEMS_PLANTS_SLOT = config.createEntry("gui.main.items.plants.slot", 24); - public static final ConfigSetting DEFAULT_PRICES_ALPHABET = new ConfigSetting(config, "default prices.alphabet", 1.0); - public static final ConfigSetting DEFAULT_PRICES_ANIMALS = new ConfigSetting(config, "default prices.animals", 1.0); - public static final ConfigSetting DEFAULT_PRICES_BLOCKS = new ConfigSetting(config, "default prices.blocks", 1.0); - public static final ConfigSetting DEFAULT_PRICES_DECORATION = new ConfigSetting(config, "default prices.decoration", 1.0); - public static final ConfigSetting DEFAULT_PRICES_FOOD_AND_DRINKS = new ConfigSetting(config, "default prices.food and drinks", 1.0); - public static final ConfigSetting DEFAULT_PRICES_HUMANS = new ConfigSetting(config, "default prices.humans", 1.0); - public static final ConfigSetting DEFAULT_PRICES_HUMANOID = new ConfigSetting(config, "default prices.humanoids", 1.0); - public static final ConfigSetting DEFAULT_PRICES_MISC = new ConfigSetting(config, "default prices.misc", 1.0); - public static final ConfigSetting DEFAULT_PRICES_MONSTERS = new ConfigSetting(config, "default prices.monsters", 1.0); - public static final ConfigSetting DEFAULT_PRICES_PLANTS = new ConfigSetting(config, "default prices.plants", 1.0); + public static final ConfigEntry DEFAULT_PRICES_ALPHABET = config.createEntry("default prices.alphabet", 1.0); + public static final ConfigEntry DEFAULT_PRICES_ANIMALS = config.createEntry("default prices.animals", 1.0); + public static final ConfigEntry DEFAULT_PRICES_BLOCKS = config.createEntry("default prices.blocks", 1.0); + public static final ConfigEntry DEFAULT_PRICES_DECORATION = config.createEntry("default prices.decoration", 1.0); + public static final ConfigEntry DEFAULT_PRICES_FOOD_AND_DRINKS = config.createEntry("default prices.food and drinks", 1.0); + public static final ConfigEntry DEFAULT_PRICES_HUMANS = config.createEntry("default prices.humans", 1.0); + public static final ConfigEntry DEFAULT_PRICES_HUMANOID = config.createEntry("default prices.humanoids", 1.0); + public static final ConfigEntry DEFAULT_PRICES_MISC = config.createEntry("default prices.misc", 1.0); + public static final ConfigEntry DEFAULT_PRICES_MONSTERS = config.createEntry("default prices.monsters", 1.0); + public static final ConfigEntry DEFAULT_PRICES_PLANTS = config.createEntry("default prices.plants", 1.0); @SneakyThrows public static void setup() { - config.createOrLoadWithComments(); - config.applySettings(); - config.save(); + config.init(); } } diff --git a/src/main/java/ca/tweetzy/skulls/settings/Translation.java b/src/main/java/ca/tweetzy/skulls/settings/Translation.java index eed30de..a07127d 100644 --- a/src/main/java/ca/tweetzy/skulls/settings/Translation.java +++ b/src/main/java/ca/tweetzy/skulls/settings/Translation.java @@ -18,7 +18,7 @@ package ca.tweetzy.skulls.settings; -import ca.tweetzy.feather.utils.Replacer; +import ca.tweetzy.flight.utils.Replacer; import lombok.AllArgsConstructor; import lombok.Getter;