Fixed NoSuchFieldError in MC 1.20.5 and earlier

This commit is contained in:
Intelli 2025-10-02 11:22:59 -06:00
parent 9de1d16836
commit 251b4c56cd
6 changed files with 32 additions and 6 deletions

View file

@ -209,4 +209,4 @@ VALID_DONATION_KEY: "Valid donation key."
VERSION_INCOMPATIBLE: "{0} {1} is not supported."
VERSION_NOTICE: "Version {0} is now available."
VERSION_REQUIRED: "{0} {1} or higher is required."
WORLD_NOT_FOUND: "World \"{0}\" not found."
WORLD_NOT_FOUND: "World \"{0}\" not found."

View file

@ -23,6 +23,7 @@ import org.bukkit.entity.EntityType;
import org.bukkit.entity.ItemFrame;
import org.bukkit.entity.LivingEntity;
import org.bukkit.event.block.SignChangeEvent;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.MerchantRecipe;
@ -355,6 +356,11 @@ public class BukkitAdapter implements BukkitInterface {
return null;
}
@Override
public boolean isCrafter(InventoryType type) {
return false;
}
@Override
public boolean isCopperChest(Material material) {
return false;

View file

@ -15,6 +15,7 @@ import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.LivingEntity;
import org.bukkit.event.block.SignChangeEvent;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.MerchantRecipe;
@ -434,7 +435,10 @@ public interface BukkitInterface {
*/
String parseLegacyName(String name);
boolean isCrafter(InventoryType type);
boolean isCopperChest(Material material);
Set<Material> copperChestMaterials();
}

View file

@ -11,6 +11,7 @@ import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import org.bukkit.Tag;
import org.bukkit.entity.EntityType;
import org.bukkit.event.inventory.InventoryType;
import net.coreprotect.model.BlockGroup;
@ -162,6 +163,11 @@ public class Bukkit_v1_21 extends Bukkit_v1_20 implements BukkitInterface {
}
@Override
public boolean isCrafter(InventoryType type) {
return type == InventoryType.CRAFTER;
}
@Override
public boolean isCopperChest(Material material) {
if (COPPER_CHESTS.contains(material) && material != Material.CHEST) {

View file

@ -17,10 +17,19 @@ 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.*;
import org.bukkit.inventory.*;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryAction;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryDragEvent;
import org.bukkit.event.inventory.InventoryMoveItemEvent;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.inventory.BlockInventoryHolder;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemStack;
import net.coreprotect.CoreProtect;
import net.coreprotect.bukkit.BukkitAdapter;
import net.coreprotect.config.Config;
import net.coreprotect.config.ConfigHandler;
import net.coreprotect.consumer.Queue;
@ -338,7 +347,7 @@ public final class InventoryChangeListener extends Queue implements Listener {
private boolean checkCrafterSlotChange(InventoryClickEvent event) {
// Check if the clicked inventory is a crafter
if (event.getInventory().getType() != InventoryType.CRAFTER) {
if (!BukkitAdapter.ADAPTER.isCrafter(event.getInventory().getType())) {
return false;
}
@ -364,7 +373,8 @@ public final class InventoryChangeListener extends Queue implements Listener {
Location location = null;
try {
location = inventory.getLocation();
} catch (Exception e) {
}
catch (Exception e) {
return false;
}

View file

@ -45,7 +45,7 @@ public class VersionCheckService {
}
// Patch version validation
if (VersionUtils.newVersion(ConfigHandler.PATCH_VERSION, VersionUtils.getPluginVersion()) && !ConfigHandler.EDITION_BRANCH.contains("-dev")) {
if (VersionUtils.newVersion(ConfigHandler.PATCH_VERSION, VersionUtils.getPluginVersion()) && !VersionUtils.isBranch("dev")) {
Chat.console(Phrase.build(Phrase.VERSION_INCOMPATIBLE, "CoreProtect", "v" + VersionUtils.getPluginVersion()));
Chat.sendConsoleMessage(Color.GREY + "[CoreProtect] " + Phrase.build(Phrase.INVALID_BRANCH_2));
return false;