Skip to content

Commit 251b4c5

Browse files
committed
Fixed NoSuchFieldError in MC 1.20.5 and earlier
1 parent 9de1d16 commit 251b4c5

File tree

6 files changed

+32
-6
lines changed

6 files changed

+32
-6
lines changed

lang/en.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,4 +209,4 @@ VALID_DONATION_KEY: "Valid donation key."
209209
VERSION_INCOMPATIBLE: "{0} {1} is not supported."
210210
VERSION_NOTICE: "Version {0} is now available."
211211
VERSION_REQUIRED: "{0} {1} or higher is required."
212-
WORLD_NOT_FOUND: "World \"{0}\" not found."
212+
WORLD_NOT_FOUND: "World \"{0}\" not found."

src/main/java/net/coreprotect/bukkit/BukkitAdapter.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import org.bukkit.entity.ItemFrame;
2424
import org.bukkit.entity.LivingEntity;
2525
import org.bukkit.event.block.SignChangeEvent;
26+
import org.bukkit.event.inventory.InventoryType;
2627
import org.bukkit.event.player.PlayerInteractEvent;
2728
import org.bukkit.inventory.ItemStack;
2829
import org.bukkit.inventory.MerchantRecipe;
@@ -355,6 +356,11 @@ public Object getRegistryValue(String key, Object tClass) {
355356
return null;
356357
}
357358

359+
@Override
360+
public boolean isCrafter(InventoryType type) {
361+
return false;
362+
}
363+
358364
@Override
359365
public boolean isCopperChest(Material material) {
360366
return false;

src/main/java/net/coreprotect/bukkit/BukkitInterface.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import org.bukkit.entity.EntityType;
1616
import org.bukkit.entity.LivingEntity;
1717
import org.bukkit.event.block.SignChangeEvent;
18+
import org.bukkit.event.inventory.InventoryType;
1819
import org.bukkit.event.player.PlayerInteractEvent;
1920
import org.bukkit.inventory.ItemStack;
2021
import org.bukkit.inventory.MerchantRecipe;
@@ -434,7 +435,10 @@ public interface BukkitInterface {
434435
*/
435436
String parseLegacyName(String name);
436437

438+
boolean isCrafter(InventoryType type);
439+
437440
boolean isCopperChest(Material material);
438441

439442
Set<Material> copperChestMaterials();
443+
440444
}

src/main/java/net/coreprotect/bukkit/Bukkit_v1_21.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import org.bukkit.NamespacedKey;
1212
import org.bukkit.Tag;
1313
import org.bukkit.entity.EntityType;
14+
import org.bukkit.event.inventory.InventoryType;
1415

1516
import net.coreprotect.model.BlockGroup;
1617

@@ -162,6 +163,11 @@ public void setWolfVariant(org.bukkit.entity.Wolf wolf, Object value) {
162163

163164
}
164165

166+
@Override
167+
public boolean isCrafter(InventoryType type) {
168+
return type == InventoryType.CRAFTER;
169+
}
170+
165171
@Override
166172
public boolean isCopperChest(Material material) {
167173
if (COPPER_CHESTS.contains(material) && material != Material.CHEST) {

src/main/java/net/coreprotect/listener/player/InventoryChangeListener.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,19 @@
1717
import org.bukkit.event.EventHandler;
1818
import org.bukkit.event.EventPriority;
1919
import org.bukkit.event.Listener;
20-
import org.bukkit.event.inventory.*;
21-
import org.bukkit.inventory.*;
20+
import org.bukkit.event.inventory.ClickType;
21+
import org.bukkit.event.inventory.InventoryAction;
22+
import org.bukkit.event.inventory.InventoryClickEvent;
23+
import org.bukkit.event.inventory.InventoryDragEvent;
24+
import org.bukkit.event.inventory.InventoryMoveItemEvent;
25+
import org.bukkit.event.inventory.InventoryType;
26+
import org.bukkit.inventory.BlockInventoryHolder;
27+
import org.bukkit.inventory.Inventory;
28+
import org.bukkit.inventory.InventoryHolder;
29+
import org.bukkit.inventory.ItemStack;
2230

2331
import net.coreprotect.CoreProtect;
32+
import net.coreprotect.bukkit.BukkitAdapter;
2433
import net.coreprotect.config.Config;
2534
import net.coreprotect.config.ConfigHandler;
2635
import net.coreprotect.consumer.Queue;
@@ -338,7 +347,7 @@ private boolean checkAnvilOperation(InventoryClickEvent event) {
338347

339348
private boolean checkCrafterSlotChange(InventoryClickEvent event) {
340349
// Check if the clicked inventory is a crafter
341-
if (event.getInventory().getType() != InventoryType.CRAFTER) {
350+
if (!BukkitAdapter.ADAPTER.isCrafter(event.getInventory().getType())) {
342351
return false;
343352
}
344353

@@ -364,7 +373,8 @@ private boolean checkCrafterSlotChange(InventoryClickEvent event) {
364373
Location location = null;
365374
try {
366375
location = inventory.getLocation();
367-
} catch (Exception e) {
376+
}
377+
catch (Exception e) {
368378
return false;
369379
}
370380

src/main/java/net/coreprotect/services/VersionCheckService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public static boolean performVersionChecks() {
4545
}
4646

4747
// Patch version validation
48-
if (VersionUtils.newVersion(ConfigHandler.PATCH_VERSION, VersionUtils.getPluginVersion()) && !ConfigHandler.EDITION_BRANCH.contains("-dev")) {
48+
if (VersionUtils.newVersion(ConfigHandler.PATCH_VERSION, VersionUtils.getPluginVersion()) && !VersionUtils.isBranch("dev")) {
4949
Chat.console(Phrase.build(Phrase.VERSION_INCOMPATIBLE, "CoreProtect", "v" + VersionUtils.getPluginVersion()));
5050
Chat.sendConsoleMessage(Color.GREY + "[CoreProtect] " + Phrase.build(Phrase.INVALID_BRANCH_2));
5151
return false;

0 commit comments

Comments
 (0)