diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
new file mode 100644
index 0000000..40ccd38
--- /dev/null
+++ b/.github/workflows/maven.yml
@@ -0,0 +1,36 @@
+# 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://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-maven
+
+# This workflow uses actions that are not certified by GitHub.
+# They are provided by a third-party and are governed by
+# separate terms of service, privacy policy, and support
+# documentation.
+
+name: Java CI with Maven
+
+on:
+ push:
+ branches: [ "main" ]
+ pull_request:
+ branches: [ "main" ]
+
+jobs:
+ build:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v4
+ - name: Set up JDK 21
+ uses: actions/setup-java@v4
+ with:
+ java-version: '21'
+ distribution: 'temurin'
+ cache: maven
+ - name: Build with Maven
+ run: mvn -B package --file pom.xml
+ - name: Upload Artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: MoneyFromMobs.jar
+ path: target/MoneyFromMobs-*.jar
diff --git a/MoneyFromMobs/src/me/chocolf/moneyfrommobs/MoneyFromMobs.java b/MoneyFromMobs/src/me/chocolf/moneyfrommobs/MoneyFromMobs.java
index 8b9b280..0bc5987 100644
--- a/MoneyFromMobs/src/me/chocolf/moneyfrommobs/MoneyFromMobs.java
+++ b/MoneyFromMobs/src/me/chocolf/moneyfrommobs/MoneyFromMobs.java
@@ -41,6 +41,7 @@ public class MoneyFromMobs extends JavaPlugin{
private BukkitTask inventoryIsFullRunnable;
private BukkitTask repeatingMultiplierEvent;
private PlaceholderAPIListener placeholderListener;
+ private Boolean paper;
private static MoneyFromMobs instance;
@Override
@@ -198,10 +199,17 @@ public void loadRepeatingMultiplierEvent(){
repeatingMultiplierEvent = new RepeatingMultiplierEvent(this).runTaskTimer(this, multipliersManager.getRepeatingInitialDelay(), multipliersManager.getRepeatingDelay());
}
- // checks if server is running Paper 1.13+
+ // checks if server is running Paper
public boolean isUsingPaper() {
- String version = getServer().getVersion();
- return version.contains("Paper") || version.contains("Purpur");
+ if (paper == null) {
+ try {
+ Class.forName("com.destroystokyo.paper.PaperConfig");
+ paper = true;
+ } catch (ClassNotFoundException e) {
+ paper = false;
+ }
+ }
+ return paper;
}
public MythicMobsFileManager getMMConfig() {
diff --git a/MoneyFromMobs/src/me/chocolf/moneyfrommobs/managers/DropsManager.java b/MoneyFromMobs/src/me/chocolf/moneyfrommobs/managers/DropsManager.java
index 0dbdf86..80ff13c 100644
--- a/MoneyFromMobs/src/me/chocolf/moneyfrommobs/managers/DropsManager.java
+++ b/MoneyFromMobs/src/me/chocolf/moneyfrommobs/managers/DropsManager.java
@@ -258,12 +258,16 @@ else if (entity.hasMetadata("MfMSpawnReason")){
}
if (roseStackerSupport) {
try{
- return PersistentDataUtils.getEntitySpawnReason(entity).toString();
+ if (PersistentDataUtils.isSpawnedFromSpawner(entity))
+ return "SPAWNER";
}
catch (Exception e){
return null;
}
}
+ if (plugin.isUsingPaper()) {
+ return entity.getEntitySpawnReason().toString();
+ }
return null;
}
diff --git a/MoneyFromMobs/src/me/chocolf/moneyfrommobs/managers/MultipliersManager.java b/MoneyFromMobs/src/me/chocolf/moneyfrommobs/managers/MultipliersManager.java
index 5468239..563e018 100644
--- a/MoneyFromMobs/src/me/chocolf/moneyfrommobs/managers/MultipliersManager.java
+++ b/MoneyFromMobs/src/me/chocolf/moneyfrommobs/managers/MultipliersManager.java
@@ -3,6 +3,7 @@
import java.util.HashMap;
import io.lumine.mythic.bukkit.BukkitAPIHelper;
+import me.chocolf.moneyfrommobs.utils.EnchantmentHelper;
import me.glaremasters.guilds.Guilds;
import me.glaremasters.guilds.api.GuildsAPI;
import me.glaremasters.guilds.guild.Guild;
@@ -111,7 +112,7 @@ public double applyPlayerDeathMultipliers(double baseAmount, Player p) {
}
private double applyLootingMultiplier(double baseAmount, ItemStack killersWeapon) {
- int lootingLevel = killersWeapon.getEnchantmentLevel(Enchantment.LOOT_BONUS_MOBS );
+ int lootingLevel = killersWeapon.getEnchantmentLevel(EnchantmentHelper.LOOTING);
return baseAmount * lootingMultiplier * lootingLevel;
}
diff --git a/MoneyFromMobs/src/me/chocolf/moneyfrommobs/managers/PickUpManager.java b/MoneyFromMobs/src/me/chocolf/moneyfrommobs/managers/PickUpManager.java
index 6adb155..462cf6a 100644
--- a/MoneyFromMobs/src/me/chocolf/moneyfrommobs/managers/PickUpManager.java
+++ b/MoneyFromMobs/src/me/chocolf/moneyfrommobs/managers/PickUpManager.java
@@ -5,6 +5,7 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import me.chocolf.moneyfrommobs.utils.EnchantmentHelper;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
@@ -76,7 +77,7 @@ private void loadItem(FileConfiguration config) {
}
// Makes item glow if it is enabled
if (config.getBoolean("MoneyDropsOnGround.Enchanted")){
- itemToDrop.addUnsafeEnchantment(Enchantment.DURABILITY, 1);
+ itemToDrop.addUnsafeEnchantment(EnchantmentHelper.UNBREAKING, 1);
meta = itemToDrop.getItemMeta();
meta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
itemToDrop.setItemMeta(meta);
diff --git a/MoneyFromMobs/src/me/chocolf/moneyfrommobs/runnables/NearEntitiesRunnable.java b/MoneyFromMobs/src/me/chocolf/moneyfrommobs/runnables/NearEntitiesRunnable.java
index 29b6af4..56bf9ac 100644
--- a/MoneyFromMobs/src/me/chocolf/moneyfrommobs/runnables/NearEntitiesRunnable.java
+++ b/MoneyFromMobs/src/me/chocolf/moneyfrommobs/runnables/NearEntitiesRunnable.java
@@ -24,15 +24,15 @@ public NearEntitiesRunnable(MoneyFromMobs plugin) {
public void run() {
for ( Player p : Bukkit.getOnlinePlayers()) {
if (p.getInventory().firstEmpty() == -1) {
+ // if player doesn't have permission continue
+ if (!(p.hasPermission("MoneyFromMobs.use"))) continue;
+
for ( Entity entity : p.getNearbyEntities(radius, radius, radius)) {
if (entity instanceof Item) {
- // if player doesn't have permission return
- if (!(p.hasPermission("MoneyFromMobs.use"))) return;
-
Item item = (Item) entity;
ItemStack itemStack = item.getItemStack();
- // if item found is not money return
+ // if item found is not money continue
if (!plugin.getPickUpManager().isMoneyPickedUp(itemStack)) continue;
diff --git a/MoneyFromMobs/src/me/chocolf/moneyfrommobs/utils/EnchantmentHelper.java b/MoneyFromMobs/src/me/chocolf/moneyfrommobs/utils/EnchantmentHelper.java
new file mode 100644
index 0000000..058ea42
--- /dev/null
+++ b/MoneyFromMobs/src/me/chocolf/moneyfrommobs/utils/EnchantmentHelper.java
@@ -0,0 +1,42 @@
+package me.chocolf.moneyfrommobs.utils;
+
+import org.bukkit.NamespacedKey;
+import org.bukkit.Registry;
+import org.bukkit.enchantments.Enchantment;
+
+public final class EnchantmentHelper {
+
+ public static final Enchantment UNBREAKING;
+ public static final Enchantment LOOTING;
+ static {
+ boolean registries;
+ try {
+ Class.forName("org.bukkit.Registry");
+ registries = true;
+ } catch (ClassNotFoundException e) {
+ registries = false;
+ }
+
+ if (registries) {
+ UNBREAKING = Registry.ENCHANTMENT.get(NamespacedKey.minecraft("unbreaking"));
+ LOOTING = Registry.ENCHANTMENT.get(NamespacedKey.minecraft("looting"));
+ } else {
+ UNBREAKING = findEnchantmentLegacy("unbreaking");
+ LOOTING = findEnchantmentLegacy("looting");
+ }
+ }
+
+ private EnchantmentHelper() {
+
+ }
+
+ private static Enchantment findEnchantmentLegacy(String... names) {
+ for (String name : names) {
+ Enchantment enchantment = Enchantment.getByKey(NamespacedKey.fromString(name));
+ if (enchantment != null)
+ return enchantment;
+ }
+ return null;
+ }
+
+}
diff --git a/pom.xml b/pom.xml
index 57c9044..505c755 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2,7 +2,7 @@
4.0.0
MoneyFromMobs
MoneyFromMobs
- 4.8.1
+ 4.8.2
MoneyFromMobs
Makes mobs drop money with looting multiplier
@@ -51,6 +51,10 @@
rosewood-repo
https://repo.rosewooddev.io/repository/public/
+
+ aikar-repo
+ https://repo.aikar.co/content/groups/aikar/
+
lumine-repo
https://mvn.lumine.io/repository/maven-public/
@@ -65,22 +69,18 @@
papermc
- https://papermc.io/repo/repository/maven-public/
+ https://repo.papermc.io/repository/maven-public/
minecraft-repo
https://libraries.minecraft.net/
-
- InfernalMobs-repo
- https://maven.addstar.com.au/artifactory/ext-release-local/
-
- org.spigotmc.
- spigot-api
- 1.20.4-R0.1-SNAPSHOT
+ io.papermc.paper
+ paper-api
+ 1.21.5-R0.1-SNAPSHOT
provided
@@ -90,9 +90,9 @@
provided
- com.github.MilkBowl
- VaultAPI
- 1.7
+ com.github.milkbowl
+ vault
+ 1.7.3
provided
@@ -110,7 +110,7 @@
dev.rosewood
rosestacker
- 1.5.7
+ 1.5.33
io.lumine
@@ -121,13 +121,7 @@
me.clip
placeholderapi
- 2.11.5
- provided
-
-
- com.destroystokyo.paper
- paper-api
- 1.16.5-R0.1-SNAPSHOT
+ 2.11.6
provided
@@ -137,15 +131,10 @@
provided
- io.hotmail.com.jacob_vejvoda.infernal_mobs.infernal_mobs
- InfernalMobs
- 5.8
+ com.jacob_vejvoda
+ infernalmobs
+ 6.6
provided
-
- com.github.chocolf
- MoneyFromMobs
- 4.82
-
-
\ No newline at end of file
+