diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 0000000..1ef9dcf
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1 @@
+custom: [ 'https://craftaro.to/+' ]
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..fec9b26
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,16 @@
+# Please see the documentation for all configuration options:
+# https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
+
+version: 2
+updates:
+ - package-ecosystem: maven
+ directory: /
+ target-branch: development
+ schedule:
+ interval: monthly
+
+ - package-ecosystem: github-actions
+ directory: /
+ target-branch: development
+ schedule:
+ interval: monthly
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000..0b9c4b0
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,78 @@
+name: Build
+
+on:
+ push:
+ branches: [ master, development ]
+ tags:
+ - 'v*'
+ pull_request:
+ types: [ opened, synchronize, reopened ]
+
+permissions: read-all
+
+env:
+ DEPLOYMENT_POM_PATH: ./dependency-reduced-pom.xml
+ DEPLOYMENT_ARTIFACT_DIR: ./target
+ DEPLOYMENT_ARTIFACT_SELECTOR: EpicFarming-*.jar
+
+jobs:
+ Build:
+ name: Build + Deploy
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v4
+ - name: Prepare Workspace
+ uses: craftaro/GH-Commons/.github/actions/setup_workspace@master
+ with:
+ maven_username: ${{ secrets.PLUGINS_MAVEN_REPO_USERNAME }}
+ maven_password: ${{ secrets.PLUGINS_MAVEN_REPO_PASSWORD }}
+
+ - name: Set project version
+ uses: craftaro/GH-Commons/.github/actions/maven_set_project_version@master
+ with:
+ append_snapshot: ${{ github.ref_type == 'tag' && 'false' || 'true' }}
+ version: ${{ github.ref_type == 'tag' && github.ref_name || '' }}
+ increment_version: ${{ github.ref_type != 'tag' && 'patch' || '' }}
+ increment_version_only_if_not_snapshot_version: ${{ github.ref == 'refs/heads/development' && 'true' || 'false' }}
+
+ - name: Build with Maven
+ run: mvn -B -Duser.name="GitHub Actions on $GITHUB_REPOSITORY (id=$GITHUB_RUN_ID)" -DskipTests clean package
+
+ - name: Upload Build Artifacts
+ uses: actions/upload-artifact@v4
+ with:
+ name: ${{ github.event.repository.name }}
+ path: ${{ env.DEPLOYMENT_ARTIFACT_DIR }}/${{ env.DEPLOYMENT_ARTIFACT_SELECTOR }}
+
+ - name: Sign jar archives
+ uses: craftaro/GH-Commons/.github/actions/sign_jars@master
+ with:
+ jar_file_selector: ${{ env.DEPLOYMENT_ARTIFACT_DIR }}/${{ env.DEPLOYMENT_ARTIFACT_SELECTOR }}
+ keystore_gpg_encrypted: ${{ secrets.PLUGINS_JARSIGNER_KEYSTORE_GPG }}
+ keystore_gpg_password: ${{ secrets.PLUGINS_JARSIGNER_KEYSTORE_GPG_PASSWORD }}
+ keystore_password: ${{ secrets.PLUGINS_JARSIGNER_KEYSTORE_PASSWORD }}
+
+ - name: Deploy to Maven repo
+ if: ${{ github.event_name == 'push' }}
+ uses: craftaro/GH-Commons/.github/actions/maven_deploy@master
+ with:
+ repository_url: ${{ vars.PLUGINS_MAVEN_REPO_URL_RELEASE }}
+ repository_url_snapshots: ${{ vars.PLUGINS_MAVEN_REPO_URL_SNAPSHOT }}
+ maven_pom_path: ${{ env.DEPLOYMENT_POM_PATH }}
+ maven_out_dir: ${{ env.DEPLOYMENT_ARTIFACT_DIR }}
+
+ discord_webhook:
+ name: Send Discord Webhook
+ runs-on: ubuntu-latest
+
+ needs: [ Build ]
+ if: ${{ always() && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/development' || github.ref_type == 'tag') }}
+
+ steps:
+ - uses: actions/checkout@v4
+ - name: Notify Webhook
+ uses: craftaro/GH-Commons/.github/actions/discord_send_job_results@master
+ with:
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ webhook_url: ${{ secrets.DISCORD_BUILD_STATUS_WEBHOOK }}
diff --git a/pom.xml b/pom.xml
index 86bc15e..5a0c53c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.craftaro
EpicFarming
- 4.1.0
+ 4.1.1
EpicFarming
Allow your players to grow crops faster, automatically replant, harvest and store crops and animal produce in the farm's inventory, as well as much more
diff --git a/src/main/java/com/craftaro/epicfarming/farming/levels/modules/ModuleAutoBreeding.java b/src/main/java/com/craftaro/epicfarming/farming/levels/modules/ModuleAutoBreeding.java
index 11bb7a0..dc9a848 100644
--- a/src/main/java/com/craftaro/epicfarming/farming/levels/modules/ModuleAutoBreeding.java
+++ b/src/main/java/com/craftaro/epicfarming/farming/levels/modules/ModuleAutoBreeding.java
@@ -54,7 +54,7 @@ public class ModuleAutoBreeding extends Module {
List entities = new ArrayList<>(entitiesAroundFarm);
Collections.shuffle(entities);
- if (entities.size() >= this.autoBreedCap) {
+ if (entities.size() < this.autoBreedCap) {
return;
}
diff --git a/src/main/java/com/craftaro/epicfarming/farming/levels/modules/ModuleAutoButcher.java b/src/main/java/com/craftaro/epicfarming/farming/levels/modules/ModuleAutoButcher.java
index 69908a8..1668067 100644
--- a/src/main/java/com/craftaro/epicfarming/farming/levels/modules/ModuleAutoButcher.java
+++ b/src/main/java/com/craftaro/epicfarming/farming/levels/modules/ModuleAutoButcher.java
@@ -63,15 +63,15 @@ public class ModuleAutoButcher extends Module {
return;
}
- for (LivingEntity entity : entities) {
- entity.setMetadata("EFA-TAGGED", new FixedMetadataValue(this.plugin, farm.getLocation()));
- XSound.ENTITY_PLAYER_ATTACK_SWEEP.play(entity);
- Bukkit.getScheduler().runTask(this.plugin, () -> {
+ Bukkit.getScheduler().runTask(this.plugin, () -> {
+ for (LivingEntity entity : entities) {
+ entity.setMetadata("EFA-TAGGED", new FixedMetadataValue(this.plugin, farm.getLocation()));
+ XSound.ENTITY_PLAYER_ATTACK_SWEEP.play(entity);
entity.damage(99999999, entity);
Methods.animate(farm.getLocation(), XMaterial.IRON_SWORD);
- });
- return;
- }
+
+ }
+ });
}
@Override
diff --git a/src/main/java/com/craftaro/epicfarming/farming/levels/modules/ModuleAutoCollect.java b/src/main/java/com/craftaro/epicfarming/farming/levels/modules/ModuleAutoCollect.java
index d7d5613..e47fe37 100644
--- a/src/main/java/com/craftaro/epicfarming/farming/levels/modules/ModuleAutoCollect.java
+++ b/src/main/java/com/craftaro/epicfarming/farming/levels/modules/ModuleAutoCollect.java
@@ -11,6 +11,7 @@ import com.craftaro.epicfarming.farming.Farm;
import com.craftaro.epicfarming.farming.FarmType;
import com.craftaro.epicfarming.utils.Methods;
import org.bukkit.Bukkit;
+import org.bukkit.DyeColor;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.block.Block;
@@ -119,8 +120,11 @@ public class ModuleAutoCollect extends Module {
}
((Sheep) entity).setSheared(true);
- Wool woolColor = new Wool(((Sheep) entity).getColor());
- ItemStack wool = woolColor.toItemStack((int) Math.round(1 + (Math.random() * 3)));
+
+ DyeColor dyeColor = ((Sheep) entity).getColor();
+ XMaterial woolColor = XMaterial.matchXMaterial(dyeColor.name() + "_WOOL").orElse(XMaterial.WHITE_WOOL);
+ ItemStack wool = woolColor.parseItem();
+ wool.setAmount((int) Math.round(1 + (Math.random() * 3)));
if (!isEnabled(farm)) {
Bukkit.getScheduler().runTask(this.plugin, () ->
entity.getLocation().getWorld().dropItemNaturally(entity.getLocation(), wool));