From d97e7d57bc9f568bd3b0a3645e3aa0d20c9569b7 Mon Sep 17 00:00:00 2001 From: JasperLorelai Date: Mon, 7 Sep 2026 18:17:32 +0200 Subject: [PATCH 1/3] fix: NPE --- .../com/nisovin/magicspells/spells/passive/TicksListener.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/com/nisovin/magicspells/spells/passive/TicksListener.java b/core/src/main/java/com/nisovin/magicspells/spells/passive/TicksListener.java index 42d219636..e7fa7f184 100644 --- a/core/src/main/java/com/nisovin/magicspells/spells/passive/TicksListener.java +++ b/core/src/main/java/com/nisovin/magicspells/spells/passive/TicksListener.java @@ -45,7 +45,7 @@ public void initialize(@NotNull String var) { int interval = Integer.parseInt(var); ticker = new Ticker(passiveSpell, interval); } catch (NumberFormatException e) { - // ignored + return; } for (World world : Bukkit.getWorlds()) { From eb1f2a6960a366843e1a4d5fc106261c4f57aea2 Mon Sep 17 00:00:00 2001 From: JasperLorelai Date: Mon, 7 Sep 2026 18:19:25 +0200 Subject: [PATCH 2/3] fix: Place if air AND solid below --- .../com/nisovin/magicspells/spells/targeted/CarpetSpell.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/com/nisovin/magicspells/spells/targeted/CarpetSpell.java b/core/src/main/java/com/nisovin/magicspells/spells/targeted/CarpetSpell.java index 1435bac92..4e77b3eb1 100644 --- a/core/src/main/java/com/nisovin/magicspells/spells/targeted/CarpetSpell.java +++ b/core/src/main/java/com/nisovin/magicspells/spells/targeted/CarpetSpell.java @@ -144,7 +144,7 @@ private CastResult layCarpet(SpellData data) { if (b.getType().isOccluding()) b = b.getRelative(0, 1, 0); else if (!b.getRelative(0, -1, 0).getType().isOccluding()) b = b.getRelative(0, -1, 0); - if (!b.getType().isAir() && !b.getRelative(0, -1, 0).getType().isSolid()) continue; + if (!b.isEmpty() || !b.getRelative(0, -1, 0).isSolid()) continue; blocks.put(b, new CarpetData(data, material, b.getType(), removeOnTouch)); b.setType(material, false); From b92235380a960e7fec034701ab3b209591b1475f Mon Sep 17 00:00:00 2001 From: JasperLorelai Date: Mon, 7 Sep 2026 18:54:11 +0200 Subject: [PATCH 3/3] fix: Check for isSolid instead of isOccluding --- .../magicspells/spells/targeted/CarpetSpell.java | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/core/src/main/java/com/nisovin/magicspells/spells/targeted/CarpetSpell.java b/core/src/main/java/com/nisovin/magicspells/spells/targeted/CarpetSpell.java index 4e77b3eb1..362ff7453 100644 --- a/core/src/main/java/com/nisovin/magicspells/spells/targeted/CarpetSpell.java +++ b/core/src/main/java/com/nisovin/magicspells/spells/targeted/CarpetSpell.java @@ -105,22 +105,18 @@ public CastResult castAtLocation(SpellData data) { private CastResult layCarpet(SpellData data) { Location loc = data.location(); - if (!loc.getBlock().getType().isOccluding()) { + if (!loc.getBlock().isSolid()) { int c = 0; - while (!loc.getBlock().getRelative(0, -1, 0).getType().isOccluding() && c <= 2) { + while (!loc.getBlock().getRelative(0, -1, 0).isSolid() && c <= 2) { loc.subtract(0, 1, 0); c++; } - - data = data.location(loc); } else { int c = 0; - while (loc.getBlock().getType().isOccluding() && c <= 2) { + while (loc.getBlock().isSolid() && c <= 2) { loc.add(0, 1, 0); c++; } - - data = data.location(loc); } Block b; @@ -141,8 +137,8 @@ private CastResult layCarpet(SpellData data) { b = loc.getWorld().getBlockAt(x, y, z); if (circle && loc.getBlock().getLocation().distanceSquared(b.getLocation()) > rad * rad) continue; - if (b.getType().isOccluding()) b = b.getRelative(0, 1, 0); - else if (!b.getRelative(0, -1, 0).getType().isOccluding()) b = b.getRelative(0, -1, 0); + if (b.isSolid()) b = b.getRelative(0, 1, 0); + else if (!b.getRelative(0, -1, 0).isSolid()) b = b.getRelative(0, -1, 0); if (!b.isEmpty() || !b.getRelative(0, -1, 0).isSolid()) continue;