Skip to content

Commit

Permalink
Fix ShoulderBagStrap bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
dlee13 committed Aug 24, 2024
1 parent 75be0ab commit 04433a6
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 4 deletions.
7 changes: 5 additions & 2 deletions src/main/java/com/klin/holoItems/Events.java
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,10 @@ public void clickItem(InventoryClickEvent event){

int slot = event.getRawSlot();
boolean current = true;
for (ItemStack item : new ItemStack[]{event.getCurrentItem(), event.getCursor()}) {
final var itemsToCheck = new ItemStack[] {
event.getCurrentItem(), event.getCursor(), player.getInventory().getItemInOffHand()
};
for (final var item : itemsToCheck) {
if (item == null || item.getItemMeta() == null) {
current = false;
continue;
Expand Down Expand Up @@ -1258,7 +1261,7 @@ public void run() {
// }
}

@EventHandler(ignoreCancelled = true)
@EventHandler
public void placeAbility(BlockPlaceEvent event){
Player player = event.getPlayer();
ItemStack item = event.getItemInHand();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import org.bukkit.NamespacedKey;
import org.bukkit.block.ShulkerBox;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryCloseEvent;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.inventory.Inventory;
Expand All @@ -16,11 +18,12 @@

import com.klin.holoItems.HoloItems;
import com.klin.holoItems.Item;
import com.klin.holoItems.interfaces.Clickable;
import com.klin.holoItems.interfaces.Closeable;
import com.klin.holoItems.interfaces.Holdable;
import com.klin.holoItems.interfaces.Placeable;

public class ShoulderBagStrap extends Item implements Placeable, Holdable, Closeable {
public class ShoulderBagStrap extends Item implements Placeable, Holdable, Closeable, Clickable {
public static final String name = "shoulderBagStrap";

private static final Material material = Material.CHAIN;
Expand All @@ -47,7 +50,7 @@ public void registerRecipes() {
@Override
public void ability(BlockPlaceEvent event) {
final var itemStack = event.getItemInHand();
if (itemStack.getItemMeta() instanceof BlockStateMeta blockStateMeta && blockStateMeta.hasBlockState()
if (itemStack.getItemMeta() instanceof BlockStateMeta blockStateMeta
&& blockStateMeta.getBlockState() instanceof ShulkerBox shulkerBox) {
event.setCancelled(true);
final var shoulderBag = new ShoulderBag(itemStack.getType(), shulkerBox);
Expand All @@ -69,6 +72,13 @@ public void ability(InventoryCloseEvent event) {
}
}

@Override
public void ability(InventoryClickEvent event, boolean current) {
if (event.getInventory().getHolder() instanceof ShoulderBag && event.getClick() == ClickType.SWAP_OFFHAND) {
event.setCancelled(true);
}
}

private static class ShoulderBag implements InventoryHolder {

final Material material;
Expand Down

0 comments on commit 04433a6

Please sign in to comment.