diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..1f63bf5 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: "maven" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "weekly" \ No newline at end of file diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml new file mode 100644 index 0000000..2048577 --- /dev/null +++ b/.github/workflows/maven.yml @@ -0,0 +1,46 @@ +# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time +# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven + +name: Java CI with Maven + +on: + push: + branches: [ "release" ] + pull_request: + branches: [ "release" ] + +env: + VERSION: "1.0" + +jobs: + build: + name: Create Build + if: "startsWith(github.event.head_commit.message, '[Release]')" + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Set up JDK 8 + uses: actions/setup-java@v3 + with: + java-version: '8' + distribution: 'corretto' + cache: maven + + - name: Build + run: mvn clean package + + - name: Upload Artifact + uses: ncipollo/release-action@v1.10.0 + with: + artifacts: ${{ github.workspace }}/target/*.jar + draft: false + name: Release v${{ env.VERSION }} + tag: v${{ env.VERSION }} + token: ${{ secrets.GITHUB_TOKEN }} + body: "The artifacts are kept up to date with the branch release." + commit: ${{ github.sha }} + allowUpdates: true + removeArtifacts: true + replacesArtifacts: true \ No newline at end of file diff --git a/README.md b/README.md index e63f461..3e64f1b 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,6 @@ # Items ID -> Show the id of the items in your NukkitX server - - - -If you encounter any bugs, have suggestions or questions, [create an issue](https://github.com/Josscoder/ItemsID/issues/new). +Show the id of the items in your Nukkit server ## Setup @@ -18,6 +14,10 @@ If you encounter any bugs, have suggestions or questions, [create an issue](http - /ii help | To see all the commands (there are only 2 for now) -- /ii toggle | This will help you if you want to see the id of the item that you have in your hand all the time, to deactivate it, execute the command again (/ii toggle) -- /ii | the command without subcommand will show you information about the item you have in hand when executing the command +- /ii toggle | This will help you if you want to see the id of the item that you have in your hand all the time, to + deactivate it, execute the command again (/ii toggle) + + +- /ii | the command without subcommand will show you information about the item you have in hand when executing the + command diff --git a/lib/lombok.jar b/lib/lombok.jar deleted file mode 100644 index 866caab..0000000 Binary files a/lib/lombok.jar and /dev/null differ diff --git a/pom.xml b/pom.xml index ba25b5c..3361e9d 100644 --- a/pom.xml +++ b/pom.xml @@ -1,16 +1,16 @@ - 4.0.0 jossc.items ItemsID - 1.0-SNAPSHOT + 1.0.1 - 8 - 8 + 1.8 + 1.8 UTF-8 @@ -18,22 +18,10 @@ opencollab-repo-release https://repo.opencollab.dev/maven-releases/ - - true - - - false - opencollab-repo-snapshot https://repo.opencollab.dev/maven-snapshots/ - - false - - - true - @@ -41,9 +29,8 @@ org.projectlombok lombok - 1.18.18 - system - ${basedir}/lib/lombok.jar + 1.18.26 + provided cn.nukkit @@ -52,4 +39,45 @@ provided + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.10.1 + + + org.apache.maven.plugins + maven-shade-plugin + 3.4.1 + + + package + + shade + + + + + *:* + + module-info.class + META-INF/* + + + + false + + + + + + + + src/main/resources + true + + + \ No newline at end of file diff --git a/src/main/java/jossc/items/Main.java b/src/main/java/jossc/items/Main.java deleted file mode 100644 index 28e3397..0000000 --- a/src/main/java/jossc/items/Main.java +++ /dev/null @@ -1,43 +0,0 @@ -package jossc.items; - -import cn.nukkit.plugin.PluginBase; -import cn.nukkit.utils.TextFormat; -import jossc.items.command.ItemIdCommand; -import jossc.items.listener.EventListener; -import jossc.items.storage.SessionsStorage; -import lombok.Getter; - -public class Main extends PluginBase { - - @Getter - private static Main instance; - - @Getter - private SessionsStorage storage; - - @Override - public void onEnable() { - super.onEnable(); - - instance = this; - storage = new SessionsStorage(); - - getServer().getCommandMap().register( - "itemid", - new ItemIdCommand() - ); - getServer().getPluginManager().registerEvents( - new EventListener(), - this - ); - - getLogger().info(TextFormat.GREEN + "This plugin has been enabled!"); - } - - @Override - public void onDisable() { - super.onDisable(); - - getLogger().info(TextFormat.RED + "This plugin has been disabled!"); - } -} diff --git a/src/main/java/jossc/items/command/ItemIdCommand.java b/src/main/java/jossc/items/command/ItemIdCommand.java deleted file mode 100644 index 9e0ac89..0000000 --- a/src/main/java/jossc/items/command/ItemIdCommand.java +++ /dev/null @@ -1,74 +0,0 @@ -package jossc.items.command; - -import cn.nukkit.Player; -import cn.nukkit.command.Command; -import cn.nukkit.command.CommandSender; -import cn.nukkit.utils.TextFormat; -import jossc.items.Main; -import jossc.items.storage.SessionsStorage; -import jossc.items.utils.Utils; - -public class ItemIdCommand extends Command { - - private final SessionsStorage storage; - - public ItemIdCommand() { - super( - "itemid", - "Show the id of the item you have in your hand", - "/itemid", - new String[] {"ii"} - ); - - storage = Main.getInstance().getStorage(); - } - - @Override - public boolean execute(CommandSender sender, String label, String[] args) { - if (!(sender instanceof Player)) { - sender.sendMessage(TextFormat.RED + "Please, use this command in-game!"); - - return false; - } - - Player player = (Player) sender; - - if (args.length < 1) { - Utils.sendItemInformation(player, player.getInventory().getItemInHand()); - - return true; - } - - switch (args[0].toLowerCase()) { - case "toggle": - if (storage.contains(player)) { - storage.remove(player); - - player.sendMessage( - TextFormat.RED + "The information of the item you have in hand will no longer be shown to you!" - ); - - return true; - } - - storage.add(player); - - player.sendMessage( - TextFormat.GREEN + "Now the information of any item you have in hand will be displayed!" - ); - break; - case "help": - player.sendMessage(TextFormat.BOLD.toString() + TextFormat.YELLOW + "Item Id Commands List"); - - String prefix = TextFormat.DARK_GRAY + "-" + TextFormat.GRAY + "/" + label; - player.sendMessage(prefix + " toggle"); - player.sendMessage(prefix + " help"); - break; - default: - player.sendMessage(TextFormat.RED + "Unknown sub-command!"); - break; - } - - return false; - } -} diff --git a/src/main/java/jossc/items/listener/EventListener.java b/src/main/java/jossc/items/listener/EventListener.java deleted file mode 100644 index c6c58c6..0000000 --- a/src/main/java/jossc/items/listener/EventListener.java +++ /dev/null @@ -1,37 +0,0 @@ -package jossc.items.listener; - -import cn.nukkit.Player; -import cn.nukkit.event.EventHandler; -import cn.nukkit.event.Listener; -import cn.nukkit.event.player.PlayerItemHeldEvent; -import cn.nukkit.event.player.PlayerQuitEvent; -import jossc.items.Main; -import jossc.items.storage.SessionsStorage; -import jossc.items.utils.Utils; - -public class EventListener implements Listener { - - private final SessionsStorage storage; - - public EventListener() { - storage = Main.getInstance().getStorage(); - } - - @EventHandler - public void onItemHeld(PlayerItemHeldEvent event) { - Player player = event.getPlayer(); - - if (storage.contains(player)) { - Utils.sendItemInformation(player, event.getItem()); - } - } - - @EventHandler - public void onQuit(PlayerQuitEvent event) { - Player player = event.getPlayer(); - - if (storage.contains(player)) { - storage.remove(player); - } - } -} diff --git a/src/main/java/jossc/items/storage/SessionsStorage.java b/src/main/java/jossc/items/storage/SessionsStorage.java deleted file mode 100644 index cac0684..0000000 --- a/src/main/java/jossc/items/storage/SessionsStorage.java +++ /dev/null @@ -1,27 +0,0 @@ -package jossc.items.storage; - -import cn.nukkit.Player; - -import java.util.ArrayList; -import java.util.List; - -public class SessionsStorage { - - private final List storage; - - public SessionsStorage() { - storage = new ArrayList<>(); - } - - public boolean contains(Player player) { - return storage.contains(player); - } - - public void add(Player player) { - storage.add(player); - } - - public void remove(Player player) { - storage.remove(player); - } -} diff --git a/src/main/java/jossc/items/utils/Utils.java b/src/main/java/jossc/items/utils/Utils.java deleted file mode 100644 index aad1dbc..0000000 --- a/src/main/java/jossc/items/utils/Utils.java +++ /dev/null @@ -1,13 +0,0 @@ -package jossc.items.utils; - -import cn.nukkit.Player; -import cn.nukkit.item.Item; - -public class Utils { - - public static void sendItemInformation(Player player, Item item) { - player.sendPopup("§9" + item.getName() + - "\n" + "§r§7" + item.getId() + ":" + item.getDamage() - ); - } -} diff --git a/src/main/java/josscoder/itemsid/ItemsIDPlugin.java b/src/main/java/josscoder/itemsid/ItemsIDPlugin.java new file mode 100644 index 0000000..495908b --- /dev/null +++ b/src/main/java/josscoder/itemsid/ItemsIDPlugin.java @@ -0,0 +1,33 @@ +package josscoder.itemsid; + +import cn.nukkit.plugin.PluginBase; +import cn.nukkit.utils.TextFormat; +import josscoder.itemsid.command.ItemIdCommand; +import josscoder.itemsid.listener.GeneralListener; +import lombok.Getter; + +public class ItemsIDPlugin extends PluginBase { + + public static final String NBT_ITEMS_ID = "itemsIdToggle"; + + @Getter + private static ItemsIDPlugin instance; + + @Override + public void onLoad() { + instance = this; + } + + @Override + public void onEnable() { + getServer().getCommandMap().register("itemid", new ItemIdCommand()); + getServer().getPluginManager().registerEvents(new GeneralListener(), this); + + getLogger().info(TextFormat.GREEN + "ItemsID has been enabled!"); + } + + @Override + public void onDisable() { + getLogger().info(TextFormat.RED + "ItemsID has been disabled!"); + } +} diff --git a/src/main/java/josscoder/itemsid/command/ItemIdCommand.java b/src/main/java/josscoder/itemsid/command/ItemIdCommand.java new file mode 100644 index 0000000..e320d37 --- /dev/null +++ b/src/main/java/josscoder/itemsid/command/ItemIdCommand.java @@ -0,0 +1,63 @@ +package josscoder.itemsid.command; + +import cn.nukkit.Player; +import cn.nukkit.command.Command; +import cn.nukkit.command.CommandSender; +import cn.nukkit.item.Item; +import cn.nukkit.utils.TextFormat; +import josscoder.itemsid.ItemsIDPlugin; + +public class ItemIdCommand extends Command { + + public ItemIdCommand() { + super("itemid", + "Show the id of the item you have in your hand", + "/itemid", + new String[]{"ii", "itemsid"} + ); + } + + @Override + public boolean execute(CommandSender sender, String label, String[] args) { + if (!(sender instanceof Player)) { + sender.sendMessage(TextFormat.RED + "Please, use this command in-game!"); + return false; + } + + Player player = (Player) sender; + + if (args.length < 1) { + Item item = player.getInventory().getItemInHand(); + player.sendActionBar(TextFormat.colorize(String.format("&6%s\n&r&7%s:%s", item.getName(), item.getId(), item.getDamage()))); + + return true; + } + + switch (args[0].toLowerCase()) { + case "toggle": + if (player.namedTag.getBoolean(ItemsIDPlugin.NBT_ITEMS_ID)) { + + player.namedTag.putBoolean(ItemsIDPlugin.NBT_ITEMS_ID, false); + player.sendMessage(TextFormat.RED + "The information of the item you have in hand will no longer be shown to you!"); + + return false; + } + + player.namedTag.putBoolean(ItemsIDPlugin.NBT_ITEMS_ID, true); + player.sendMessage(TextFormat.GREEN + "Now the information of any item you have in hand will be displayed!"); + break; + case "help": + player.sendMessage(TextFormat.BOLD.toString() + TextFormat.YELLOW + "Item Id Commands List"); + + String prefix = TextFormat.DARK_GRAY + "-" + TextFormat.GRAY + "/" + label; + player.sendMessage(prefix + " toggle"); + player.sendMessage(prefix + " help"); + break; + default: + player.sendMessage(TextFormat.RED + "Unknown sub-command!"); + break; + } + + return false; + } +} diff --git a/src/main/java/josscoder/itemsid/listener/GeneralListener.java b/src/main/java/josscoder/itemsid/listener/GeneralListener.java new file mode 100644 index 0000000..8b59c96 --- /dev/null +++ b/src/main/java/josscoder/itemsid/listener/GeneralListener.java @@ -0,0 +1,29 @@ +package josscoder.itemsid.listener; + +import cn.nukkit.Player; +import cn.nukkit.block.BlockID; +import cn.nukkit.event.EventHandler; +import cn.nukkit.event.Listener; +import cn.nukkit.event.player.PlayerItemHeldEvent; +import cn.nukkit.item.Item; +import cn.nukkit.utils.TextFormat; +import josscoder.itemsid.ItemsIDPlugin; + +public class GeneralListener implements Listener { + + @EventHandler + public void onItemHeld(PlayerItemHeldEvent event) { + Item item = event.getItem(); + if (item.getId() == BlockID.AIR) { + return; + } + + Player player = event.getPlayer(); + + if (!player.namedTag.getBoolean(ItemsIDPlugin.NBT_ITEMS_ID)) { + return; + } + + player.sendActionBar(TextFormat.colorize(String.format("&9%s\n&r&7%s:%s", item.getName(), item.getId(), item.getDamage()))); + } +} diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index b1b3002..b4d5fcb 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ name: ItemsID -main: jossc.items.Main +main: josscoder.itemsid.ItemsIDPlugin api: 1.0.0 -version: 1.0.0 +version: ${project.version} author: Josscoder \ No newline at end of file