Skip to content

Commit 8bf7b88

Browse files
Fix NPE in division placeholder and fix hotbar items in crafting slots
1 parent 150136e commit 8bf7b88

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

Plugin/src/main/java/dev/lrxh/neptune/feature/hotbar/listener/ItemListener.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.bukkit.event.Listener;
1515
import org.bukkit.event.block.Action;
1616
import org.bukkit.event.inventory.InventoryClickEvent;
17+
import org.bukkit.event.inventory.InventoryType;
1718
import org.bukkit.event.player.PlayerInteractEvent;
1819
import org.bukkit.event.player.PlayerSwapHandItemsEvent;
1920
import org.bukkit.inventory.ItemStack;
@@ -52,12 +53,15 @@ public void onInventoryClick(InventoryClickEvent event) {
5253
}
5354
if (profile.hasState(ProfileState.IN_CUSTOM, ProfileState.IN_KIT_EDITOR)) return;
5455
if (player.getGameMode().equals(GameMode.CREATIVE)) return;
55-
if (event.getClickedInventory() != event.getWhoClicked().getInventory()) return;
56+
if (event.getClickedInventory().getType() != InventoryType.CRAFTING && event.getClickedInventory() != event.getWhoClicked().getInventory()) return;
5657
event.setCancelled(true);
57-
if (event.getCurrentItem() == null) return;
58-
if (event.getCurrentItem().getType().equals(Material.AIR)) return;
58+
if (event.getCurrentItem() != null && event.getCursor() != null && event.getCurrentItem().getType() == Material.AIR && event.getCursor().getType() == Material.AIR)
59+
return;
60+
ItemStack item = event.getCurrentItem() == null || event.getCurrentItem().getType() == Material.AIR ? event.getCursor() : event.getCurrentItem();
61+
if (item == null) return;
62+
if (item.getType().equals(Material.AIR)) return;
5963

60-
handleAction(profile, event.getCurrentItem());
64+
handleAction(profile, item);
6165
}
6266

6367
@EventHandler

Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/PlaceholderUtil.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import dev.lrxh.neptune.API;
44
import dev.lrxh.neptune.Neptune;
5+
import dev.lrxh.neptune.feature.divisions.impl.Division;
56
import dev.lrxh.neptune.feature.party.Party;
67
import dev.lrxh.neptune.feature.queue.QueueEntry;
78
import dev.lrxh.neptune.feature.queue.QueueService;
@@ -78,8 +79,9 @@ public String format(String line, Player player) {
7879
line = line.replaceAll("<kit>", queueEntry.getKit().getDisplayName());
7980
line = line.replaceAll("<maxPing>", String.valueOf(profile.getSettingData().getMaxPing()));
8081
line = line.replaceAll("<time>", String.valueOf(queueEntry.getTime().formatTime()));
81-
line = line.replaceAll("<kit_division>",
82-
profile.getGameData().get(queueEntry.getKit()).getDivision().getDisplayName());
82+
Division kitDivision = profile.getGameData().get(queueEntry.getKit()).getDivision();
83+
if (kitDivision != null) line = line.replaceAll("<kit_division>",
84+
kitDivision.getDisplayName());
8385
}
8486

8587
if (state.equals(ProfileState.IN_KIT_EDITOR)) {

0 commit comments

Comments
 (0)