Skip to content

Commit

Permalink
Fix efr firework interaction (#13)
Browse files Browse the repository at this point in the history
  • Loading branch information
Lyfts authored Jul 25, 2024
1 parent 17dd0ef commit 46f35af
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 3 deletions.
1 change: 0 additions & 1 deletion src/main/java/xonin/backhand/ServerEventsHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ public void onPlayerInteractNonVanilla(PlayerInteractEvent event) {
ItemStack offhandItem = BackhandUtils.getOffhandItem(player);
if ((mainhandItem == null || mainhandItem.getItem() != Items.fireworks) && offhandItem != null
&& offhandItem.getItem() == Items.fireworks) {
BackhandUtils.swapOffhandItem(player);
fireworkHotSwapped = 1;
}
}
Expand Down
1 change: 1 addition & 0 deletions src/main/java/xonin/backhand/ServerTickHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,7 @@ public void onUpdatePlayer(TickEvent.PlayerTickEvent event) {
if (ServerEventsHandler.fireworkHotSwapped > 0) {
ServerEventsHandler.fireworkHotSwapped--;
} else if (ServerEventsHandler.fireworkHotSwapped == 0) {
BackhandUtils.swapOffhandItem(player);
ServerEventsHandler.fireworkHotSwapped--;
MinecraftForge.EVENT_BUS.post(
new PlayerInteractEvent(
Expand Down
15 changes: 13 additions & 2 deletions src/main/java/xonin/backhand/api/core/BackhandUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,13 @@ public static boolean hasOffhandInventory(EntityPlayer player) {
}

public static void swapOffhandItem(EntityPlayer player) {
final ItemStack mainhandItem = player.getCurrentEquippedItem();
final ItemStack offhandItem = BackhandUtils.getOffhandItem(player);
final ItemStack mainhandItem = getLegalStack(player.getCurrentEquippedItem());
final ItemStack offhandItem = getLegalStack(BackhandUtils.getOffhandItem(player));
BackhandUtils.setPlayerCurrentItem(player, offhandItem);
BackhandUtils.setPlayerOffhandItem(player, mainhandItem);
if (Backhand.UseInventorySlot) {
player.inventoryContainer.detectAndSendChanges();
}
}

public static void setPlayerCurrentItem(EntityPlayer player, ItemStack stack) {
Expand Down Expand Up @@ -515,4 +518,12 @@ public static ItemStack beforeFinishUseEvent(EntityPlayer entityPlayer, ItemStac
entityPlayer.clearItemInUse();
return null;
}

public static ItemStack getLegalStack(ItemStack stack) {
if (stack != null && stack.stackSize == 0) {
return null;
}

return stack;
}
}

0 comments on commit 46f35af

Please sign in to comment.