From b9849717320d8b4b395e6ca55867c858c8299142 Mon Sep 17 00:00:00 2001 From: blablubbabc Date: Wed, 15 Jan 2020 22:49:44 +0100 Subject: [PATCH] Replaced the NMS call for setting the CanJoinRaid property on MC 1.15.x with a corresponding Bukkit API call. This only works on the very latest versions of MC 1.15.1 and upwards. --- CHANGELOG.md | 1 + .../shopkeepers/compat/v1_15_R1/NMSHandler.java | 10 ++++++++-- .../shopkeepers/compat/api/NMSCallProvider.java | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f4f3a3a8..58760ad1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ Date format: (YYYY-MM-DD) ## v2.9.1 (TBA) ### Supported MC versions: 1.15.1, 1.14.4 +* Changed: Replaced the NMS call for setting the CanJoinRaid property on MC 1.15.x with a corresponding Bukkit API call. This only works on the very latest versions of MC 1.15.1 and upwards. ## v2.9.0 (2019-12-28) ### Supported MC versions: 1.15.1, 1.14.4 diff --git a/modules/v1_15_R1/src/main/java/com/nisovin/shopkeepers/compat/v1_15_R1/NMSHandler.java b/modules/v1_15_R1/src/main/java/com/nisovin/shopkeepers/compat/v1_15_R1/NMSHandler.java index a255e865..db12414c 100644 --- a/modules/v1_15_R1/src/main/java/com/nisovin/shopkeepers/compat/v1_15_R1/NMSHandler.java +++ b/modules/v1_15_R1/src/main/java/com/nisovin/shopkeepers/compat/v1_15_R1/NMSHandler.java @@ -124,8 +124,14 @@ public final class NMSHandler implements NMSCallProvider { @Override public void setCanJoinRaid(Raider raider, boolean canJoinRaid) { - EntityRaider nmsRaider = ((CraftRaider) raider).getHandle(); - nmsRaider.u(canJoinRaid); // CanJoinRaid + try { + // only works in the latest versions of 1.15.1 and upwards: + raider.setCanJoinRaid(canJoinRaid); + } catch (Throwable t) { + // in case this is not supported by the current Bukkit version yet: + EntityRaider nmsRaider = ((CraftRaider) raider).getHandle(); + nmsRaider.u(canJoinRaid); // CanJoinRaid + } } @Override diff --git a/src/main/java/com/nisovin/shopkeepers/compat/api/NMSCallProvider.java b/src/main/java/com/nisovin/shopkeepers/compat/api/NMSCallProvider.java index 32f3f0f8..3713762f 100644 --- a/src/main/java/com/nisovin/shopkeepers/compat/api/NMSCallProvider.java +++ b/src/main/java/com/nisovin/shopkeepers/compat/api/NMSCallProvider.java @@ -29,7 +29,7 @@ public interface NMSCallProvider { public void setNoclip(Entity entity); - // TODO replace this once there is a corresponding Bukkit API for this + // TODO replace this once only the latest versions of 1.15.1 and upwards are supported public void setCanJoinRaid(Raider raider, boolean canJoinRaid); /**