Skip to content
14 changes: 14 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -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"
94 changes: 50 additions & 44 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
8 changes: 4 additions & 4 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.github.jikoo</groupId>
<groupId>pro.cloudnode.smp</groupId>
<artifactId>anvilunlocker</artifactId>
<name>AnvilUnlocker</name>
<version>0.0.0-SNAPSHOT</version>
Expand All @@ -22,7 +22,7 @@
</repository>
<repository>
<id>dmulloy2-repo</id>
<url>https://repo.dmulloy2.net/repository/public/</url>
<url>https://repo.dmulloy2.net/content/groups/public/</url>
</repository>
</repositories>

Expand All @@ -34,9 +34,9 @@
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.comphenix.protocol</groupId>
<groupId>net.dmulloy2</groupId>
<artifactId>ProtocolLib</artifactId>
<version>4.8.0</version>
<version>5.3.0</version>
<scope>provided</scope>
</dependency>
<dependency>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
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;
import org.bukkit.event.EventHandler;
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;
Expand All @@ -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
Expand All @@ -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(),
Expand All @@ -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) {
Expand Down