diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..0ca170d --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,14 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: weekly + day: monday + time: "06:00" + - package-ecosystem: "maven" + directory: "/" + schedule: + interval: weekly + day: monday + time: "06:00" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 30ac21c..d985e0e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,60 +12,66 @@ jobs: build: name: Build runs-on: ubuntu-latest - outputs: - VERSION: ${{ steps.version.outputs.VERSION }} steps: - - name: Checkout Code + - name: Checkout repository uses: actions/checkout@v4 - with: - fetch-depth: 0 - fetch-tags: "true" - - - name: Set Up Java - uses: actions/setup-java@v4 - with: - distribution: "temurin" - java-version: "17" - # Use cache to speed up build - - name: Cache Maven Repo - uses: actions/cache@v4 - id: cache + - name: Set up JDK 17 + uses: actions/setup-java@v5 with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + java-version: 17 + distribution: temurin + cache: maven - - name: Get version - run: | - TAG=$(git describe --tags --always) - echo "VERSION=${TAG#v}" >> $GITHUB_OUTPUT - id: version + - name: Build With Maven + run: mvn -B package --file pom.xml - - name: Set version - run: mvn -B versions:set -DnewVersion=${{ steps.version.outputs.VERSION }} -DgenerateBackupPoms=false + publish: + name: Publish + runs-on: ubuntu-latest + if: github.event_name == 'release' - - name: Build With Maven - run: mvn -e clean package -am -P all + steps: + - name: Checkout repository + uses: actions/checkout@v4 - - name: Upload Distributable Jar - id: upload-final - uses: actions/upload-artifact@v4 + - name: Set up JDK 17 + uses: actions/setup-java@v5 with: - name: dist - path: ./target/AnvilUnlocker-${{ steps.version.outputs.VERSION }}.jar + java-version: 17 + distribution: temurin + cache: maven - release: - name: Create Github Release - needs: [ build ] - if: github.event_name == 'release' - runs-on: ubuntu-latest - steps: - - name: Download Artifacts - uses: actions/download-artifact@v4 + - name: Set version from release tag + run: mvn -B versions:set -DnewVersion=${{ github.event.release.tag_name }} -DgenerateBackupPoms=false + + - name: Build and package Maven project + run: mvn -B clean package --file pom.xml - name: Upload to release - uses: JasonEtco/upload-to-release@master + uses: cloudnode-pro/release-upload-asset@1.0.2 + with: + gh-token: ${{ github.token }} + files: target/AnvilUnlocker-${{ github.event.release.tag_name }}.jar; type=application/java-archive + + - name: Upload to Modrinth + uses: cloudnode-pro/modrinth-publish@v2 with: - args: ./dist/AnvilUnlocker-${{ needs.build.outputs.VERSION }}.jar application/java-archive - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + token: ${{ secrets.MODRINTH_TOKEN }} + project: ${{ github.event.repository.custom_properties.modrinth_id }} + name: ${{ github.event.release.name == github.event.release.tag_name && format('AnvilUnlocker {0}', github.event.release.name) || github.event.release.name }} + version: ${{ github.event.release.tag_name }} + changelog: ${{ github.event.release.body }} + loaders: |- + paper + bukkit + spigot + game-versions: |- + 1.15.x + 1.16.x + 1.17.x + 1.18.x + 1.19.x + 1.20.x + 1.21.x + files: target/AnvilUnlocker-${{ github.event.release.tag_name }}.jar diff --git a/pom.xml b/pom.xml index 7d0bd7b..0a7bcdd 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - com.github.jikoo + pro.cloudnode.smp anvilunlocker AnvilUnlocker 0.0.0-SNAPSHOT @@ -22,7 +22,7 @@ dmulloy2-repo - https://repo.dmulloy2.net/repository/public/ + https://repo.dmulloy2.net/content/groups/public/ @@ -34,9 +34,9 @@ provided - com.comphenix.protocol + net.dmulloy2 ProtocolLib - 4.8.0 + 5.3.0 provided diff --git a/src/main/java/com/github/jikoo/anvilunlocker/AnvilUnlocker.java b/src/main/java/pro/cloudnode/smp/anvilunlocker/AnvilUnlocker.java similarity index 77% rename from src/main/java/com/github/jikoo/anvilunlocker/AnvilUnlocker.java rename to src/main/java/pro/cloudnode/smp/anvilunlocker/AnvilUnlocker.java index 96f3d97..6362c1e 100644 --- a/src/main/java/com/github/jikoo/anvilunlocker/AnvilUnlocker.java +++ b/src/main/java/pro/cloudnode/smp/anvilunlocker/AnvilUnlocker.java @@ -1,9 +1,8 @@ -package com.github.jikoo.anvilunlocker; +package pro.cloudnode.smp.anvilunlocker; import com.comphenix.protocol.PacketType; import com.comphenix.protocol.ProtocolLibrary; import com.comphenix.protocol.events.PacketContainer; -import java.lang.reflect.InvocationTargetException; import org.bukkit.GameMode; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -11,7 +10,6 @@ import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryCloseEvent; -import org.bukkit.event.inventory.InventoryOpenEvent; import org.bukkit.event.inventory.PrepareAnvilEvent; import org.bukkit.inventory.AnvilInventory; import org.bukkit.inventory.ItemStack; @@ -37,20 +35,6 @@ public void reloadConfig() { maximumCost = constrainAnvilMax(getConfig().getInt("maximumCost")); } - @EventHandler(priority = EventPriority.MONITOR) - private void onInventoryOpen(@NotNull InventoryOpenEvent event) { - if (!(event.getInventory() instanceof AnvilInventory)) { - return; - } - - ((AnvilInventory) event.getInventory()).setMaximumRepairCost(maximumCost); - - if (event.getPlayer() instanceof Player - && event.getPlayer().getGameMode() != GameMode.CREATIVE) { - setInstantBuild((Player) event.getPlayer(), true); - } - } - @EventHandler(priority = EventPriority.MONITOR) private void onInventoryClose(@NotNull InventoryCloseEvent event) { if (event.getInventory() instanceof AnvilInventory @@ -67,8 +51,10 @@ private void onPrepareAnvil(@NotNull PrepareAnvilEvent event) { return; } + AnvilInventory anvil = event.getInventory(); + anvil.setMaximumRepairCost(maximumCost); + getServer().getScheduler().runTask(this, () -> { - AnvilInventory anvil = event.getInventory(); ItemStack input2 = anvil.getItem(1); setInstantBuild( (Player) event.getView().getPlayer(), @@ -88,11 +74,7 @@ public void setInstantBuild(@NotNull Player player, boolean instantBuild) { packet.getFloat().write(0, player.getFlySpeed() / 2); packet.getFloat().write(1, player.getWalkSpeed() / 2); - try { - ProtocolLibrary.getProtocolManager().sendServerPacket(player, packet); - } catch (InvocationTargetException e) { - e.printStackTrace(); - } + ProtocolLibrary.getProtocolManager().sendServerPacket(player, packet); } private static int constrainAnvilMax(int actual) {