diff --git a/.github/workflows/publish-snapshot.yml b/.github/workflows/publish-snapshot.yml index d80847b..9bb6575 100644 --- a/.github/workflows/publish-snapshot.yml +++ b/.github/workflows/publish-snapshot.yml @@ -3,6 +3,9 @@ name: Publish SNAPSHOT on: push: branches: [ main ] + pull_request: + types: [ closed ] + branches: [ main ] jobs: snapshot: @@ -57,6 +60,21 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: mvn -B -s $GITHUB_WORKSPACE/settings.xml -DskipTests deploy + - name: Create Git Tag + if: steps.version.outputs.deploy == 'true' + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + const version = process.env.VERSION || '${{ steps.version.outputs.version }}'; + const sha = process.env.GITHUB_SHA || '${{ github.sha }}'; + await github.rest.git.createRef({ + owner: context.repo.owner, + repo: context.repo.repo, + ref: `refs/tags/v${version}`, + sha: sha + }); + - name: Summary run: | echo "Version: ${{ steps.version.outputs.version }}" diff --git a/README.md b/README.md index c0014d4..5660c7d 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ If the library is published to GitHub Packages, add the GitHub repository and de - com.github.Pinont + com.github.pinont SingularityLib Tag diff --git a/pom.xml b/pom.xml index dc7886b..54892d2 100644 --- a/pom.xml +++ b/pom.xml @@ -4,9 +4,9 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - com.pinont + com.github.pinont singularitylib - 2.2.0 + 2.2.1-SNAPSHOT jar SingularityLib diff --git a/src/main/java/com/pinont/lib/api/annotation/AutoRegister.java b/src/main/java/com/github/pinont/singularitylib/api/annotation/AutoRegister.java similarity index 58% rename from src/main/java/com/pinont/lib/api/annotation/AutoRegister.java rename to src/main/java/com/github/pinont/singularitylib/api/annotation/AutoRegister.java index 8c66af5..36733fc 100644 --- a/src/main/java/com/pinont/lib/api/annotation/AutoRegister.java +++ b/src/main/java/com/github/pinont/singularitylib/api/annotation/AutoRegister.java @@ -1,4 +1,4 @@ -package com.pinont.lib.api.annotation; +package com.github.pinont.singularitylib.api.annotation; public @interface AutoRegister { /** @@ -6,6 +6,9 @@ * This annotation is used to mark classes that need to be registered during the plugin's startup process. *

* Classes annotated with this will be processed by the plugin's registration system. + *

+ * Hint: Use this annotation to register commands, events, or custom items. + * It should only be used when the class extends {@code CustomItem}, {@code SimpleCommand}, or {@code Listener}. */ String value() default ""; } diff --git a/src/main/java/com/pinont/lib/api/command/SimpleCommand.java b/src/main/java/com/github/pinont/singularitylib/api/command/SimpleCommand.java similarity index 81% rename from src/main/java/com/pinont/lib/api/command/SimpleCommand.java rename to src/main/java/com/github/pinont/singularitylib/api/command/SimpleCommand.java index 9005cce..18a42b8 100644 --- a/src/main/java/com/pinont/lib/api/command/SimpleCommand.java +++ b/src/main/java/com/github/pinont/singularitylib/api/command/SimpleCommand.java @@ -1,4 +1,4 @@ -package com.pinont.lib.api.command; +package com.github.pinont.singularitylib.api.command; import io.papermc.paper.command.brigadier.BasicCommand; diff --git a/src/main/java/com/pinont/lib/api/entity/EntityCreator.java b/src/main/java/com/github/pinont/singularitylib/api/entity/EntityCreator.java similarity index 98% rename from src/main/java/com/pinont/lib/api/entity/EntityCreator.java rename to src/main/java/com/github/pinont/singularitylib/api/entity/EntityCreator.java index 0cf5a8d..b0fd7b1 100644 --- a/src/main/java/com/pinont/lib/api/entity/EntityCreator.java +++ b/src/main/java/com/github/pinont/singularitylib/api/entity/EntityCreator.java @@ -1,4 +1,4 @@ -package com.pinont.lib.api.entity; +package com.github.pinont.singularitylib.api.entity; import org.bukkit.Location; import org.bukkit.World; @@ -10,7 +10,7 @@ import java.util.List; import java.util.Objects; -import static com.pinont.lib.plugin.CorePlugin.sendDebugMessage; +import static com.github.pinont.singularitylib.plugin.CorePlugin.sendDebugMessage; public class EntityCreator { diff --git a/src/main/java/com/pinont/lib/api/enums/AttributeType.java b/src/main/java/com/github/pinont/singularitylib/api/enums/AttributeType.java similarity index 97% rename from src/main/java/com/pinont/lib/api/enums/AttributeType.java rename to src/main/java/com/github/pinont/singularitylib/api/enums/AttributeType.java index af250e0..791cbf7 100644 --- a/src/main/java/com/pinont/lib/api/enums/AttributeType.java +++ b/src/main/java/com/github/pinont/singularitylib/api/enums/AttributeType.java @@ -1,4 +1,4 @@ -package com.pinont.lib.api.enums; +package com.github.pinont.singularitylib.api.enums; import org.bukkit.attribute.Attribute; diff --git a/src/main/java/com/pinont/lib/api/enums/PersisDataType.java b/src/main/java/com/github/pinont/singularitylib/api/enums/PersisDataType.java similarity index 74% rename from src/main/java/com/pinont/lib/api/enums/PersisDataType.java rename to src/main/java/com/github/pinont/singularitylib/api/enums/PersisDataType.java index 37f889b..3751324 100644 --- a/src/main/java/com/pinont/lib/api/enums/PersisDataType.java +++ b/src/main/java/com/github/pinont/singularitylib/api/enums/PersisDataType.java @@ -1,4 +1,4 @@ -package com.pinont.lib.api.enums; +package com.github.pinont.singularitylib.api.enums; public enum PersisDataType { STRING, diff --git a/src/main/java/com/pinont/lib/api/enums/PlayerInventorySlotType.java b/src/main/java/com/github/pinont/singularitylib/api/enums/PlayerInventorySlotType.java similarity index 71% rename from src/main/java/com/pinont/lib/api/enums/PlayerInventorySlotType.java rename to src/main/java/com/github/pinont/singularitylib/api/enums/PlayerInventorySlotType.java index b27eef5..9da46fc 100644 --- a/src/main/java/com/pinont/lib/api/enums/PlayerInventorySlotType.java +++ b/src/main/java/com/github/pinont/singularitylib/api/enums/PlayerInventorySlotType.java @@ -1,4 +1,4 @@ -package com.pinont.lib.api.enums; +package com.github.pinont.singularitylib.api.enums; public enum PlayerInventorySlotType { MAINHAND, diff --git a/src/main/java/com/pinont/lib/api/event/ItemExecuteEvent.java b/src/main/java/com/github/pinont/singularitylib/api/event/ItemExecuteEvent.java similarity index 91% rename from src/main/java/com/pinont/lib/api/event/ItemExecuteEvent.java rename to src/main/java/com/github/pinont/singularitylib/api/event/ItemExecuteEvent.java index ca7bbf4..79e7817 100644 --- a/src/main/java/com/pinont/lib/api/event/ItemExecuteEvent.java +++ b/src/main/java/com/github/pinont/singularitylib/api/event/ItemExecuteEvent.java @@ -1,6 +1,6 @@ -package com.pinont.lib.api.event; +package com.github.pinont.singularitylib.api.event; -import com.pinont.lib.api.items.ItemInteraction; +import com.github.pinont.singularitylib.api.items.ItemInteraction; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.entity.Player; @@ -12,7 +12,7 @@ import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import static com.pinont.lib.plugin.CorePlugin.sendDebugMessage; +import static com.github.pinont.singularitylib.plugin.CorePlugin.sendDebugMessage; public class ItemExecuteEvent extends Event implements Cancellable { diff --git a/src/main/java/com/pinont/lib/api/hook/discordJDA/DiscordApp.java b/src/main/java/com/github/pinont/singularitylib/api/hook/discordJDA/DiscordApp.java similarity index 92% rename from src/main/java/com/pinont/lib/api/hook/discordJDA/DiscordApp.java rename to src/main/java/com/github/pinont/singularitylib/api/hook/discordJDA/DiscordApp.java index 60609dd..f8d753a 100644 --- a/src/main/java/com/pinont/lib/api/hook/discordJDA/DiscordApp.java +++ b/src/main/java/com/github/pinont/singularitylib/api/hook/discordJDA/DiscordApp.java @@ -1,6 +1,6 @@ -package com.pinont.lib.api.hook.discordJDA; +package com.github.pinont.singularitylib.api.hook.discordJDA; -import com.pinont.lib.api.manager.ConfigManager; +import com.github.pinont.singularitylib.api.manager.ConfigManager; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.JDABuilder; import net.dv8tion.jda.api.events.session.ReadyEvent; @@ -9,7 +9,7 @@ import java.util.ArrayList; import java.util.Collections; -import static com.pinont.lib.plugin.CorePlugin.sendConsoleMessage; +import static com.github.pinont.singularitylib.plugin.CorePlugin.sendConsoleMessage; public abstract class DiscordApp { diff --git a/src/main/java/com/pinont/lib/api/hook/discordJDA/Ready.java b/src/main/java/com/github/pinont/singularitylib/api/hook/discordJDA/Ready.java similarity index 92% rename from src/main/java/com/pinont/lib/api/hook/discordJDA/Ready.java rename to src/main/java/com/github/pinont/singularitylib/api/hook/discordJDA/Ready.java index fbb57f7..35fa9e3 100644 --- a/src/main/java/com/pinont/lib/api/hook/discordJDA/Ready.java +++ b/src/main/java/com/github/pinont/singularitylib/api/hook/discordJDA/Ready.java @@ -1,4 +1,4 @@ -package com.pinont.lib.api.hook.discordJDA; +package com.github.pinont.singularitylib.api.hook.discordJDA; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.events.session.ReadyEvent; diff --git a/src/main/java/com/pinont/lib/api/hook/discordJDA/SimpleSlashCommands.java b/src/main/java/com/github/pinont/singularitylib/api/hook/discordJDA/SimpleSlashCommands.java similarity index 74% rename from src/main/java/com/pinont/lib/api/hook/discordJDA/SimpleSlashCommands.java rename to src/main/java/com/github/pinont/singularitylib/api/hook/discordJDA/SimpleSlashCommands.java index ebd19bb..a7e3d82 100644 --- a/src/main/java/com/pinont/lib/api/hook/discordJDA/SimpleSlashCommands.java +++ b/src/main/java/com/github/pinont/singularitylib/api/hook/discordJDA/SimpleSlashCommands.java @@ -1,4 +1,4 @@ -package com.pinont.lib.api.hook.discordJDA; +package com.github.pinont.singularitylib.api.hook.discordJDA; import net.dv8tion.jda.api.hooks.ListenerAdapter; diff --git a/src/main/java/com/pinont/lib/api/hook/discordJDA/SlashCommandComponent.java b/src/main/java/com/github/pinont/singularitylib/api/hook/discordJDA/SlashCommandComponent.java similarity index 88% rename from src/main/java/com/pinont/lib/api/hook/discordJDA/SlashCommandComponent.java rename to src/main/java/com/github/pinont/singularitylib/api/hook/discordJDA/SlashCommandComponent.java index a8a7353..cff28e1 100644 --- a/src/main/java/com/pinont/lib/api/hook/discordJDA/SlashCommandComponent.java +++ b/src/main/java/com/github/pinont/singularitylib/api/hook/discordJDA/SlashCommandComponent.java @@ -1,4 +1,4 @@ -package com.pinont.lib.api.hook.discordJDA; +package com.github.pinont.singularitylib.api.hook.discordJDA; import net.dv8tion.jda.api.interactions.commands.build.CommandData; import net.dv8tion.jda.api.interactions.commands.build.Commands; diff --git a/src/main/java/com/pinont/lib/api/items/CrossbowCreator.java b/src/main/java/com/github/pinont/singularitylib/api/items/CrossbowCreator.java similarity index 91% rename from src/main/java/com/pinont/lib/api/items/CrossbowCreator.java rename to src/main/java/com/github/pinont/singularitylib/api/items/CrossbowCreator.java index 9a630e8..78bf91f 100644 --- a/src/main/java/com/pinont/lib/api/items/CrossbowCreator.java +++ b/src/main/java/com/github/pinont/singularitylib/api/items/CrossbowCreator.java @@ -1,4 +1,4 @@ -package com.pinont.lib.api.items; +package com.github.pinont.singularitylib.api.items; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; diff --git a/src/main/java/com/pinont/lib/api/items/CustomItem.java b/src/main/java/com/github/pinont/singularitylib/api/items/CustomItem.java similarity index 79% rename from src/main/java/com/pinont/lib/api/items/CustomItem.java rename to src/main/java/com/github/pinont/singularitylib/api/items/CustomItem.java index 3745ab3..cc3512a 100644 --- a/src/main/java/com/pinont/lib/api/items/CustomItem.java +++ b/src/main/java/com/github/pinont/singularitylib/api/items/CustomItem.java @@ -1,6 +1,6 @@ -package com.pinont.lib.api.items; +package com.github.pinont.singularitylib.api.items; -import com.pinont.lib.api.utils.Common; +import com.github.pinont.singularitylib.api.utils.Common; import org.bukkit.inventory.ItemStack; public abstract class CustomItem { diff --git a/src/main/java/com/pinont/lib/api/items/ItemCreator.java b/src/main/java/com/github/pinont/singularitylib/api/items/ItemCreator.java similarity index 83% rename from src/main/java/com/pinont/lib/api/items/ItemCreator.java rename to src/main/java/com/github/pinont/singularitylib/api/items/ItemCreator.java index a32da4c..0e9ecb7 100644 --- a/src/main/java/com/pinont/lib/api/items/ItemCreator.java +++ b/src/main/java/com/github/pinont/singularitylib/api/items/ItemCreator.java @@ -1,9 +1,9 @@ -package com.pinont.lib.api.items; +package com.github.pinont.singularitylib.api.items; import com.google.common.collect.Sets; -import com.pinont.lib.api.enums.AttributeType; -import com.pinont.lib.api.enums.PersisDataType; -import com.pinont.lib.api.utils.Common; +import com.github.pinont.singularitylib.api.enums.AttributeType; +import com.github.pinont.singularitylib.api.enums.PersisDataType; +import com.github.pinont.singularitylib.api.utils.Common; import net.kyori.adventure.text.Component; import org.bukkit.ChatColor; import org.bukkit.Material; @@ -21,8 +21,8 @@ import java.util.*; -import static com.pinont.lib.plugin.CorePlugin.getInstance; -import static com.pinont.lib.plugin.CorePlugin.sendConsoleMessage; +import static com.github.pinont.singularitylib.plugin.CorePlugin.getInstance; +import static com.github.pinont.singularitylib.plugin.CorePlugin.sendConsoleMessage; public class ItemCreator { @@ -37,6 +37,7 @@ public class ItemCreator { private Material type; private final Plugin plugin = getInstance(); private static final Set ITEM_INTERACTIONS = Sets.newHashSet(); + private final String name; public static Set getInteractions() { return ITEM_INTERACTIONS; @@ -46,13 +47,42 @@ public ItemCreator(Material type) { this(new ItemStack(type)); } + public ItemCreator(Material type, int amount) { + this(new ItemStack(type, amount)); + } + + public ItemCreator(@NotNull Material type, int amount, short damage) { + this(new ItemStack(type, amount, damage, null)); + } + + public ItemCreator(@NotNull Material type, int amount, short damage, Byte data) { + this(new ItemStack(type, amount, damage, data)); + } + public ItemCreator(@NotNull ItemStack item) { this.item = item; this.meta = item.getItemMeta(); this.type = item.getType(); + this.name = item.getItemMeta().getDisplayName().isEmpty() ? Common.normalizeStringName(item.getType().name()) : item.getItemMeta().getDisplayName(); data = meta != null ? meta.getPersistentDataContainer() : null; } + public String getName() { + return name; + } + + public ItemMeta getItemMeta() { + return meta; + } + + public Material getType() { + return type; + } + + public int getAmount() { + return amount; + } + public ItemStack create() { item.setType(type); if (meta == null) {meta = item.getItemMeta();} @@ -69,6 +99,10 @@ public Boolean hasTag(String tag) { return Objects.requireNonNull(item.getItemMeta()).getPersistentDataContainer().has(new NamespacedKey(plugin, tag), PersistentDataType.STRING); } + public String getTag(String key) { + return getKey(key); + } + public String getKey(String key) { return data.get(new NamespacedKey(plugin, key), PersistentDataType.STRING); } @@ -128,6 +162,12 @@ public ItemCreator setName(String name) { return this; } + public ItemCreator setName(Component name) { + meta.displayName(name); + meta.itemName(name); + return this; + } + public ItemCreator setDurability(short durability) { this.durability = durability; return this; @@ -143,8 +183,13 @@ public ItemCreator addEnchant(Enchantment enchantment, int level, boolean ignore return this; } - public ItemCreator addLore(String... lore) { - this.lore.add(common.colorize(Arrays.toString(lore))); + public ItemCreator addLore(String... lores) { + this.lore.add(common.colorize(Arrays.toString(lores))); + return this; + } + + public ItemCreator addLore(Component... lores) { + this.lore.addAll(Arrays.asList(lores)); return this; } diff --git a/src/main/java/com/pinont/lib/api/items/ItemHeadCreator.java b/src/main/java/com/github/pinont/singularitylib/api/items/ItemHeadCreator.java similarity index 88% rename from src/main/java/com/pinont/lib/api/items/ItemHeadCreator.java rename to src/main/java/com/github/pinont/singularitylib/api/items/ItemHeadCreator.java index 5236efe..ae3c67b 100644 --- a/src/main/java/com/pinont/lib/api/items/ItemHeadCreator.java +++ b/src/main/java/com/github/pinont/singularitylib/api/items/ItemHeadCreator.java @@ -1,6 +1,6 @@ -package com.pinont.lib.api.items; +package com.github.pinont.singularitylib.api.items; -import com.pinont.lib.api.utils.Common; +import com.github.pinont.singularitylib.api.utils.Common; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.SkullMeta; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/com/pinont/lib/api/items/ItemInteraction.java b/src/main/java/com/github/pinont/singularitylib/api/items/ItemInteraction.java similarity index 87% rename from src/main/java/com/pinont/lib/api/items/ItemInteraction.java rename to src/main/java/com/github/pinont/singularitylib/api/items/ItemInteraction.java index 7c4638c..bbca4e7 100644 --- a/src/main/java/com/pinont/lib/api/items/ItemInteraction.java +++ b/src/main/java/com/github/pinont/singularitylib/api/items/ItemInteraction.java @@ -1,4 +1,4 @@ -package com.pinont.lib.api.items; +package com.github.pinont.singularitylib.api.items; import org.bukkit.entity.Player; import org.bukkit.event.block.Action; diff --git a/src/main/java/com/pinont/lib/api/manager/CommandManager.java b/src/main/java/com/github/pinont/singularitylib/api/manager/CommandManager.java similarity index 91% rename from src/main/java/com/pinont/lib/api/manager/CommandManager.java rename to src/main/java/com/github/pinont/singularitylib/api/manager/CommandManager.java index 05391d3..82edbfb 100644 --- a/src/main/java/com/pinont/lib/api/manager/CommandManager.java +++ b/src/main/java/com/github/pinont/singularitylib/api/manager/CommandManager.java @@ -1,6 +1,6 @@ -package com.pinont.lib.api.manager; +package com.github.pinont.singularitylib.api.manager; -import com.pinont.lib.api.command.SimpleCommand; +import com.github.pinont.singularitylib.api.command.SimpleCommand; import io.papermc.paper.plugin.lifecycle.event.LifecycleEventManager; import io.papermc.paper.plugin.lifecycle.event.types.LifecycleEvents; import org.bukkit.ChatColor; @@ -10,8 +10,8 @@ import java.util.Arrays; import java.util.List; -import static com.pinont.lib.plugin.CorePlugin.getStartTime; -import static com.pinont.lib.plugin.CorePlugin.sendConsoleMessage; +import static com.github.pinont.singularitylib.plugin.CorePlugin.getStartTime; +import static com.github.pinont.singularitylib.plugin.CorePlugin.sendConsoleMessage; public class CommandManager { diff --git a/src/main/java/com/pinont/lib/api/manager/ConfigManager.java b/src/main/java/com/github/pinont/singularitylib/api/manager/ConfigManager.java similarity index 95% rename from src/main/java/com/pinont/lib/api/manager/ConfigManager.java rename to src/main/java/com/github/pinont/singularitylib/api/manager/ConfigManager.java index 8397b97..fec1985 100644 --- a/src/main/java/com/pinont/lib/api/manager/ConfigManager.java +++ b/src/main/java/com/github/pinont/singularitylib/api/manager/ConfigManager.java @@ -1,4 +1,4 @@ -package com.pinont.lib.api.manager; +package com.github.pinont.singularitylib.api.manager; import org.bukkit.Bukkit; import org.bukkit.configuration.file.FileConfiguration; @@ -8,7 +8,7 @@ import java.io.File; import java.io.IOException; -import static com.pinont.lib.plugin.CorePlugin.getInstance; +import static com.github.pinont.singularitylib.plugin.CorePlugin.getInstance; public class ConfigManager { diff --git a/src/main/java/com/pinont/lib/api/manager/CustomItemManager.java b/src/main/java/com/github/pinont/singularitylib/api/manager/CustomItemManager.java similarity index 93% rename from src/main/java/com/pinont/lib/api/manager/CustomItemManager.java rename to src/main/java/com/github/pinont/singularitylib/api/manager/CustomItemManager.java index 40d1ff7..9be845d 100644 --- a/src/main/java/com/pinont/lib/api/manager/CustomItemManager.java +++ b/src/main/java/com/github/pinont/singularitylib/api/manager/CustomItemManager.java @@ -1,8 +1,8 @@ -package com.pinont.lib.api.manager; +package com.github.pinont.singularitylib.api.manager; -import com.pinont.lib.api.command.SimpleCommand; -import com.pinont.lib.api.items.CustomItem; -import com.pinont.lib.api.utils.Common; +import com.github.pinont.singularitylib.api.command.SimpleCommand; +import com.github.pinont.singularitylib.api.items.CustomItem; +import com.github.pinont.singularitylib.api.utils.Common; import io.papermc.paper.command.brigadier.CommandSourceStack; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -14,8 +14,8 @@ import java.util.*; -import static com.pinont.lib.plugin.CorePlugin.getInstance; -import static com.pinont.lib.plugin.CorePlugin.sendConsoleMessage; +import static com.github.pinont.singularitylib.plugin.CorePlugin.getInstance; +import static com.github.pinont.singularitylib.plugin.CorePlugin.sendConsoleMessage; public class CustomItemManager implements SimpleCommand { diff --git a/src/main/java/com/pinont/lib/api/manager/FileManager.java b/src/main/java/com/github/pinont/singularitylib/api/manager/FileManager.java similarity index 86% rename from src/main/java/com/pinont/lib/api/manager/FileManager.java rename to src/main/java/com/github/pinont/singularitylib/api/manager/FileManager.java index 76d6be7..510cec0 100644 --- a/src/main/java/com/pinont/lib/api/manager/FileManager.java +++ b/src/main/java/com/github/pinont/singularitylib/api/manager/FileManager.java @@ -1,14 +1,14 @@ -package com.pinont.lib.api.manager; +package com.github.pinont.singularitylib.api.manager; -import com.pinont.lib.plugin.CorePlugin; +import com.github.pinont.singularitylib.plugin.CorePlugin; import org.bukkit.plugin.java.JavaPlugin; import java.io.File; import java.util.List; import java.util.Objects; -import static com.pinont.lib.plugin.CorePlugin.sendConsoleMessage; -import static com.pinont.lib.plugin.CorePlugin.sendDebugMessage; +import static com.github.pinont.singularitylib.plugin.CorePlugin.sendConsoleMessage; +import static com.github.pinont.singularitylib.plugin.CorePlugin.sendDebugMessage; public class FileManager { diff --git a/src/main/java/com/pinont/lib/api/manager/WorldManager.java b/src/main/java/com/github/pinont/singularitylib/api/manager/WorldManager.java similarity index 97% rename from src/main/java/com/pinont/lib/api/manager/WorldManager.java rename to src/main/java/com/github/pinont/singularitylib/api/manager/WorldManager.java index e8fec65..efa55ae 100644 --- a/src/main/java/com/pinont/lib/api/manager/WorldManager.java +++ b/src/main/java/com/github/pinont/singularitylib/api/manager/WorldManager.java @@ -1,4 +1,4 @@ -package com.pinont.lib.api.manager; +package com.github.pinont.singularitylib.api.manager; import org.bukkit.*; import org.bukkit.configuration.ConfigurationSection; @@ -6,7 +6,7 @@ import java.util.Objects; -import static com.pinont.lib.plugin.CorePlugin.getInstance; +import static com.github.pinont.singularitylib.plugin.CorePlugin.getInstance; public final class WorldManager { diff --git a/src/main/java/com/pinont/lib/api/ui/Button.java b/src/main/java/com/github/pinont/singularitylib/api/ui/Button.java similarity index 81% rename from src/main/java/com/pinont/lib/api/ui/Button.java rename to src/main/java/com/github/pinont/singularitylib/api/ui/Button.java index 2e2a181..c91b44f 100644 --- a/src/main/java/com/pinont/lib/api/ui/Button.java +++ b/src/main/java/com/github/pinont/singularitylib/api/ui/Button.java @@ -1,4 +1,4 @@ -package com.pinont.lib.api.ui; +package com.github.pinont.singularitylib.api.ui; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; diff --git a/src/main/java/com/pinont/lib/api/ui/Layout.java b/src/main/java/com/github/pinont/singularitylib/api/ui/Layout.java similarity index 59% rename from src/main/java/com/pinont/lib/api/ui/Layout.java rename to src/main/java/com/github/pinont/singularitylib/api/ui/Layout.java index 3f69519..1982a1d 100644 --- a/src/main/java/com/pinont/lib/api/ui/Layout.java +++ b/src/main/java/com/github/pinont/singularitylib/api/ui/Layout.java @@ -1,4 +1,4 @@ -package com.pinont.lib.api.ui; +package com.github.pinont.singularitylib.api.ui; public interface Layout { char getKey(); diff --git a/src/main/java/com/pinont/lib/api/ui/Menu.java b/src/main/java/com/github/pinont/singularitylib/api/ui/Menu.java similarity index 94% rename from src/main/java/com/pinont/lib/api/ui/Menu.java rename to src/main/java/com/github/pinont/singularitylib/api/ui/Menu.java index 8aae955..5a9202c 100644 --- a/src/main/java/com/pinont/lib/api/ui/Menu.java +++ b/src/main/java/com/github/pinont/singularitylib/api/ui/Menu.java @@ -1,6 +1,6 @@ -package com.pinont.lib.api.ui; +package com.github.pinont.singularitylib.api.ui; -import com.pinont.lib.api.items.ItemCreator; +import com.github.pinont.singularitylib.api.items.ItemCreator; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; @@ -13,8 +13,8 @@ import java.util.Arrays; import java.util.Objects; -import static com.pinont.lib.plugin.CorePlugin.getInstance; -import static com.pinont.lib.plugin.CorePlugin.sendDebugMessage; +import static com.github.pinont.singularitylib.plugin.CorePlugin.getInstance; +import static com.github.pinont.singularitylib.plugin.CorePlugin.sendDebugMessage; public class Menu { diff --git a/src/main/java/com/pinont/lib/api/utils/Common.java b/src/main/java/com/github/pinont/singularitylib/api/utils/Common.java similarity index 70% rename from src/main/java/com/pinont/lib/api/utils/Common.java rename to src/main/java/com/github/pinont/singularitylib/api/utils/Common.java index 9cf2938..b4bdac7 100644 --- a/src/main/java/com/pinont/lib/api/utils/Common.java +++ b/src/main/java/com/github/pinont/singularitylib/api/utils/Common.java @@ -1,6 +1,6 @@ -package com.pinont.lib.api.utils; +package com.github.pinont.singularitylib.api.utils; -import com.pinont.lib.api.enums.PlayerInventorySlotType; +import com.github.pinont.singularitylib.api.enums.PlayerInventorySlotType; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.MiniMessage; import org.bukkit.Bukkit; @@ -13,31 +13,38 @@ import java.util.*; -import static com.pinont.lib.plugin.CorePlugin.getInstance; +import static com.github.pinont.singularitylib.plugin.CorePlugin.getInstance; public class Common { - public @NotNull Component colorize(String message) { + public @NotNull Component colorize(String message, boolean noItalic) { MiniMessage miniMessage = MiniMessage.miniMessage(); + if (noItalic) { + message = "" + message; + } return miniMessage.deserialize(message); } + public @NotNull Component colorize(String message) { + return colorize(message, false); + } + public static Material[] getAllItemsMaterials() { List filterList = Arrays.asList(Material.AIR, Material.WATER, Material.LAVA, Material.VOID_AIR, Material.MOVING_PISTON, Material.PISTON_HEAD, Material.END_GATEWAY, Material.TALL_SEAGRASS, Material.TALL_GRASS, Material.FIRE, Material.SOUL_FIRE, Material.REDSTONE_WIRE, Material.NETHER_PORTAL, Material.END_PORTAL, Material.PUMPKIN_STEM, Material.MELON_STEM, Material.COCOA, Material.TRIPWIRE, Material.CARROTS, Material.POTATOES, Material.BEETROOTS, Material.FROSTED_ICE, Material.BAMBOO_SAPLING, Material.BUBBLE_COLUMN, Material.POWDER_SNOW, Material.BIG_DRIPLEAF_STEM); return Arrays.stream(Material.values()).filter(material -> !filterList.contains(material) && !material.name().startsWith("LEGACY_") && !material.name().contains("WALL_") && !material.name().startsWith("ATTACHED_") && !material.name().endsWith("_CAULDRON") && !material.name().startsWith("POTTED_") && !material.name().endsWith("_CROP") && !material.name().endsWith("_BUSH") && !material.name().endsWith("_PLANT") && !material.name().endsWith("_CAKE") && !material.name().startsWith("CAVE_")).toArray(Material[]::new); } - public static Boolean isItemMaterial(Material material) { + public static Boolean isItemIsMaterial(Material material) { return Arrays.asList(getAllItemsMaterials()).contains(material); } - public static Plugin plugin = getInstance(); - - public static Set getCommands() { - return plugin.getDescription().getCommands().keySet(); + public static Boolean isAir(ItemStack item) { + return (item == null) || (item.getType() == Material.AIR); } + public static Plugin plugin = getInstance(); + public static void checkBoolean(final boolean expression, final String falseMessage, final Object... replacements) { if (!expression) { String message = falseMessage; @@ -46,7 +53,7 @@ public static void checkBoolean(final boolean expression, final String falseMess message = String.format(falseMessage, replacements); } catch (final Throwable t) { - Bukkit.getLogger().warning(t.getMessage()); + Console.logWarning(t.getMessage()); } } } @@ -56,7 +63,7 @@ public static ItemStack getItem(String itemName) { } public static void sneaky(Throwable t) { - throw new RuntimeException(t); + Console.logError(t.getMessage()); } public static Collection getOnlinePlayers() { @@ -75,7 +82,7 @@ public static String normalizeStringName(String string) { String[] words = string.replace("_", " ").split(" "); StringBuilder properName = new StringBuilder(); for (String word : words) { - if (word.length() > 0) { + if (!word.isEmpty()) { properName.append(word.substring(0, 1).toUpperCase()); properName.append(word.substring(1).toLowerCase()); properName.append(" "); @@ -85,65 +92,66 @@ public static String normalizeStringName(String string) { } public static Boolean isMainHandEmpty(Player player) { - return (player.getInventory().getItemInMainHand().getType() == Material.AIR) || (player.getInventory().getItemInMainHand() == null); + return isAir(player.getInventory().getItemInMainHand()); } public static String IntegerToRomanNumeral(int input) { if (input < 1 || input > 3999) return "Invalid Roman Number Value"; - String s = ""; + StringBuilder s = new StringBuilder(); while (input >= 1000) { - s += "M"; - input -= 1000; } + s.append("M"); + input -= 1000; + } while (input >= 900) { - s += "CM"; + s.append("CM"); input -= 900; } while (input >= 500) { - s += "D"; + s.append("D"); input -= 500; } while (input >= 400) { - s += "CD"; + s.append("CD"); input -= 400; } while (input >= 100) { - s += "C"; + s.append("C"); input -= 100; } while (input >= 90) { - s += "XC"; + s.append("XC"); input -= 90; } while (input >= 50) { - s += "L"; + s.append("L"); input -= 50; } while (input >= 40) { - s += "XL"; + s.append("XL"); input -= 40; } while (input >= 10) { - s += "X"; + s.append("X"); input -= 10; } - while (input >= 9) { - s += "IX"; + while (input == 9) { + s.append("IX"); input -= 9; } while (input >= 5) { - s += "V"; + s.append("V"); input -= 5; } - while (input >= 4) { - s += "IV"; + while (input == 4) { + s.append("IV"); input -= 4; } while (input >= 1) { - s += "I"; + s.append("I"); input -= 1; } - return s; + return s.toString(); } public static Player getNearestPlayer(Location location, int radius) { @@ -152,22 +160,12 @@ public static Player getNearestPlayer(Location location, int radius) { public static boolean checkAirInSlot(PlayerInventorySlotType type, Player player) { return switch (type) { - case MAINHAND -> { - player.getInventory().getItemInMainHand(); - yield player.getInventory().getItemInMainHand().getType() == Material.AIR; - } - case OFFHAND -> { - player.getInventory().getItemInOffHand(); - yield player.getInventory().getItemInOffHand().getType() == Material.AIR; - } - case ARMOR_HEAD -> - player.getInventory().getHelmet() == null || player.getInventory().getHelmet().getType() == Material.AIR; - case ARMOR_CHEST -> - player.getInventory().getChestplate() == null || player.getInventory().getChestplate().getType() == Material.AIR; - case ARMOR_LEGS -> - player.getInventory().getLeggings() == null || player.getInventory().getLeggings().getType() == Material.AIR; - case ARMOR_FEET -> - player.getInventory().getBoots() == null || player.getInventory().getBoots().getType() == Material.AIR; + case MAINHAND -> isAir(player.getInventory().getItemInMainHand()); + case OFFHAND -> isAir(player.getInventory().getItemInOffHand()); + case ARMOR_HEAD -> isAir(player.getInventory().getHelmet()); + case ARMOR_CHEST -> isAir(player.getInventory().getChestplate()); + case ARMOR_LEGS -> isAir(player.getInventory().getLeggings()); + case ARMOR_FEET -> isAir(player.getInventory().getBoots()); }; } @@ -183,9 +181,8 @@ public static ItemStack getItemInSlot(PlayerInventorySlotType type, Player playe }; } - @Deprecated - public static String resetStringColor(String name) { - return name.replaceAll("§[0-9a-fk-or]", ""); + public static String resetStringColor(String text) { + return text.replaceAll("§[0-9a-fk-or]", ""); } public static String resetStringColor(Component component) { diff --git a/src/main/java/com/github/pinont/singularitylib/api/utils/Console.java b/src/main/java/com/github/pinont/singularitylib/api/utils/Console.java new file mode 100644 index 0000000..903d366 --- /dev/null +++ b/src/main/java/com/github/pinont/singularitylib/api/utils/Console.java @@ -0,0 +1,24 @@ +package com.github.pinont.singularitylib.api.utils; + +import org.bukkit.ChatColor; + +import static com.github.pinont.singularitylib.plugin.CorePlugin.sendConsoleMessage; +import static com.github.pinont.singularitylib.plugin.CorePlugin.sendDebugMessage; + +public class Console { + public static void log(String message) { + sendConsoleMessage(message); + } + + public static void logError(String message) { + sendConsoleMessage(ChatColor.RED + "[ERROR] " + message); + } + + public static void logWarning(String message) { + sendConsoleMessage(ChatColor.YELLOW + "[WARNING] " + message); + } + + public static void debug(String message) { + sendDebugMessage(message); + } +} diff --git a/src/main/java/com/pinont/lib/api/utils/MySQL.java b/src/main/java/com/github/pinont/singularitylib/api/utils/MySQL.java similarity index 93% rename from src/main/java/com/pinont/lib/api/utils/MySQL.java rename to src/main/java/com/github/pinont/singularitylib/api/utils/MySQL.java index 45f24ca..1dc7602 100644 --- a/src/main/java/com/pinont/lib/api/utils/MySQL.java +++ b/src/main/java/com/github/pinont/singularitylib/api/utils/MySQL.java @@ -1,13 +1,13 @@ -package com.pinont.lib.api.utils; +package com.github.pinont.singularitylib.api.utils; -import com.pinont.lib.api.manager.ConfigManager; +import com.github.pinont.singularitylib.api.manager.ConfigManager; import org.bukkit.ChatColor; import org.bukkit.configuration.file.FileConfiguration; import java.sql.Connection; -import static com.pinont.lib.plugin.CorePlugin.sendConsoleMessage; -import static com.pinont.lib.plugin.CorePlugin.sendDebugMessage; +import static com.github.pinont.singularitylib.plugin.CorePlugin.sendConsoleMessage; +import static com.github.pinont.singularitylib.plugin.CorePlugin.sendDebugMessage; public class MySQL { diff --git a/src/main/java/com/pinont/lib/plugin/CorePlugin.java b/src/main/java/com/github/pinont/singularitylib/plugin/CorePlugin.java similarity index 93% rename from src/main/java/com/pinont/lib/plugin/CorePlugin.java rename to src/main/java/com/github/pinont/singularitylib/plugin/CorePlugin.java index 22888d4..afbba6e 100644 --- a/src/main/java/com/pinont/lib/plugin/CorePlugin.java +++ b/src/main/java/com/github/pinont/singularitylib/plugin/CorePlugin.java @@ -1,9 +1,9 @@ -package com.pinont.lib.plugin; +package com.github.pinont.singularitylib.plugin; -import com.pinont.lib.api.command.SimpleCommand; -import com.pinont.lib.api.manager.ConfigManager; -import com.pinont.lib.plugin.listener.PlayerListener; -import com.pinont.lib.plugin.register.Register; +import com.github.pinont.singularitylib.api.command.SimpleCommand; +import com.github.pinont.singularitylib.api.manager.ConfigManager; +import com.github.pinont.singularitylib.plugin.listener.PlayerListener; +import com.github.pinont.singularitylib.plugin.register.Register; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.configuration.file.FileConfiguration; diff --git a/src/main/java/com/pinont/lib/plugin/DevTool.java b/src/main/java/com/github/pinont/singularitylib/plugin/DevTool.java similarity index 98% rename from src/main/java/com/pinont/lib/plugin/DevTool.java rename to src/main/java/com/github/pinont/singularitylib/plugin/DevTool.java index 6da69e3..3454f1e 100644 --- a/src/main/java/com/pinont/lib/plugin/DevTool.java +++ b/src/main/java/com/github/pinont/singularitylib/plugin/DevTool.java @@ -1,14 +1,14 @@ -package com.pinont.lib.plugin; - -import com.pinont.lib.api.command.SimpleCommand; -import com.pinont.lib.api.items.CustomItem; -import com.pinont.lib.api.items.ItemCreator; -import com.pinont.lib.api.items.ItemHeadCreator; -import com.pinont.lib.api.items.ItemInteraction; -import com.pinont.lib.api.manager.WorldManager; -import com.pinont.lib.api.ui.Button; -import com.pinont.lib.api.ui.Layout; -import com.pinont.lib.api.ui.Menu; +package com.github.pinont.singularitylib.plugin; + +import com.github.pinont.singularitylib.api.command.SimpleCommand; +import com.github.pinont.singularitylib.api.items.CustomItem; +import com.github.pinont.singularitylib.api.items.ItemCreator; +import com.github.pinont.singularitylib.api.items.ItemHeadCreator; +import com.github.pinont.singularitylib.api.items.ItemInteraction; +import com.github.pinont.singularitylib.api.manager.WorldManager; +import com.github.pinont.singularitylib.api.ui.Button; +import com.github.pinont.singularitylib.api.ui.Layout; +import com.github.pinont.singularitylib.api.ui.Menu; import io.papermc.paper.command.brigadier.CommandSourceStack; import org.bukkit.*; import org.bukkit.command.CommandSender; @@ -23,8 +23,8 @@ import java.util.*; -import static com.pinont.lib.plugin.CorePlugin.getAPIVersion; -import static com.pinont.lib.plugin.CorePlugin.getInstance; +import static com.github.pinont.singularitylib.plugin.CorePlugin.getAPIVersion; +import static com.github.pinont.singularitylib.plugin.CorePlugin.getInstance; @Deprecated(since = "2.1.0", forRemoval = true) public class DevTool extends CustomItem implements SimpleCommand, Listener { diff --git a/src/main/java/com/pinont/lib/plugin/cmd/FlySpeed.java b/src/main/java/com/github/pinont/singularitylib/plugin/cmd/FlySpeed.java similarity index 93% rename from src/main/java/com/pinont/lib/plugin/cmd/FlySpeed.java rename to src/main/java/com/github/pinont/singularitylib/plugin/cmd/FlySpeed.java index 3e75da5..c8cfa3d 100644 --- a/src/main/java/com/pinont/lib/plugin/cmd/FlySpeed.java +++ b/src/main/java/com/github/pinont/singularitylib/plugin/cmd/FlySpeed.java @@ -1,6 +1,6 @@ -package com.pinont.lib.plugin.cmd; +package com.github.pinont.singularitylib.plugin.cmd; -import com.pinont.lib.api.command.SimpleCommand; +import com.github.pinont.singularitylib.api.command.SimpleCommand; import io.papermc.paper.command.brigadier.CommandSourceStack; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; diff --git a/src/main/java/com/pinont/lib/plugin/cmd/Vanish.java b/src/main/java/com/github/pinont/singularitylib/plugin/cmd/Vanish.java similarity index 87% rename from src/main/java/com/pinont/lib/plugin/cmd/Vanish.java rename to src/main/java/com/github/pinont/singularitylib/plugin/cmd/Vanish.java index 06cedf2..c0bd4c3 100644 --- a/src/main/java/com/pinont/lib/plugin/cmd/Vanish.java +++ b/src/main/java/com/github/pinont/singularitylib/plugin/cmd/Vanish.java @@ -1,6 +1,6 @@ -package com.pinont.lib.plugin.cmd; +package com.github.pinont.singularitylib.plugin.cmd; -import com.pinont.lib.api.command.SimpleCommand; +import com.github.pinont.singularitylib.api.command.SimpleCommand; import io.papermc.paper.command.brigadier.CommandSourceStack; import org.bukkit.command.CommandSender; diff --git a/src/main/java/com/pinont/lib/plugin/listener/PlayerListener.java b/src/main/java/com/github/pinont/singularitylib/plugin/listener/PlayerListener.java similarity index 90% rename from src/main/java/com/pinont/lib/plugin/listener/PlayerListener.java rename to src/main/java/com/github/pinont/singularitylib/plugin/listener/PlayerListener.java index 35ddda6..dd446f8 100644 --- a/src/main/java/com/pinont/lib/plugin/listener/PlayerListener.java +++ b/src/main/java/com/github/pinont/singularitylib/plugin/listener/PlayerListener.java @@ -1,12 +1,12 @@ -package com.pinont.lib.plugin.listener; +package com.github.pinont.singularitylib.plugin.listener; import com.destroystokyo.paper.event.player.PlayerRecipeBookClickEvent; -import com.pinont.lib.api.event.ItemExecuteEvent; -import com.pinont.lib.api.items.ItemCreator; -import com.pinont.lib.api.items.ItemInteraction; -import com.pinont.lib.api.ui.Button; -import com.pinont.lib.api.ui.Menu; -import com.pinont.lib.api.utils.Common; +import com.github.pinont.singularitylib.api.event.ItemExecuteEvent; +import com.github.pinont.singularitylib.api.items.ItemCreator; +import com.github.pinont.singularitylib.api.items.ItemInteraction; +import com.github.pinont.singularitylib.api.ui.Button; +import com.github.pinont.singularitylib.api.ui.Menu; +import com.github.pinont.singularitylib.api.utils.Common; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.entity.Player; @@ -24,7 +24,7 @@ import java.util.Objects; -import static com.pinont.lib.plugin.CorePlugin.*; +import static com.github.pinont.singularitylib.plugin.CorePlugin.*; public class PlayerListener implements Listener { diff --git a/src/main/java/com/pinont/lib/plugin/register/Register.java b/src/main/java/com/github/pinont/singularitylib/plugin/register/Register.java similarity index 71% rename from src/main/java/com/pinont/lib/plugin/register/Register.java rename to src/main/java/com/github/pinont/singularitylib/plugin/register/Register.java index 86c059f..295da23 100644 --- a/src/main/java/com/pinont/lib/plugin/register/Register.java +++ b/src/main/java/com/github/pinont/singularitylib/plugin/register/Register.java @@ -1,10 +1,11 @@ -package com.pinont.lib.plugin.register; +package com.github.pinont.singularitylib.plugin.register; -import com.pinont.lib.api.annotation.AutoRegister; -import com.pinont.lib.api.command.SimpleCommand; -import com.pinont.lib.api.items.CustomItem; -import com.pinont.lib.api.manager.CommandManager; -import com.pinont.lib.api.manager.CustomItemManager; +import com.github.pinont.singularitylib.api.annotation.AutoRegister; +import com.github.pinont.singularitylib.api.command.SimpleCommand; +import com.github.pinont.singularitylib.api.items.CustomItem; +import com.github.pinont.singularitylib.api.manager.CommandManager; +import com.github.pinont.singularitylib.api.manager.CustomItemManager; +import com.github.pinont.singularitylib.api.utils.Console; import org.bukkit.Bukkit; import org.bukkit.event.Listener; import org.bukkit.plugin.Plugin; @@ -38,14 +39,14 @@ public void scanAndCollect(String packageName) { customItems.add((CustomItem) instance); } } catch (NoSuchMethodException e) { - Bukkit.getLogger().severe("No default constructor found for class: " + clazz.getName()); + Console.logError("No default constructor found for class: " + clazz.getName()); } catch (InstantiationException e) { - Bukkit.getLogger().severe("Failed to instantiate class: " + clazz.getName()); + Console.logError("Failed to instantiate class: " + clazz.getName()); } catch (IllegalAccessException e) { - Bukkit.getLogger().severe("Illegal access while instantiating class: " + clazz.getName()); + Console.logError("Illegal access while instantiating class: " + clazz.getName()); } catch (Exception e) { - Bukkit.getLogger().severe("Unexpected error while processing class: " + clazz.getName()); - e.printStackTrace(); + Console.logError("Unexpected error while processing class: " + clazz.getName()); + Console.logError(e.getMessage()); } } }