Skip to content

Commit

Permalink
Fixes in quick armor swap
Browse files Browse the repository at this point in the history
  • Loading branch information
juancarloscp52 committed Jan 23, 2021
1 parent 18fa8a3 commit 3ba8a68
Showing 1 changed file with 14 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,20 +17,22 @@ public class ArmorReplacer {

public static TypedActionResult<ItemStack> tryChangeArmor(PlayerEntity playerEntity, Hand hand){
ItemStack newArmor = playerEntity.getStackInHand(hand);
if (newArmor.getItem() == Items.ELYTRA || newArmor.getItem() instanceof ArmorItem){
ClientPlayerInteractionManager interactionManager = MinecraftClient.getInstance().interactionManager;
if(interactionManager != null && MinecraftClient.getInstance().mouse.wasRightButtonClicked()){
EquipmentSlot equipmentSlot = MobEntity.getPreferredEquipmentSlot(newArmor);
ClientPlayerInteractionManager interactionManager = MinecraftClient.getInstance().interactionManager;
if(interactionManager != null && MinecraftClient.getInstance().mouse.wasRightButtonClicked()){
if (!(newArmor.getItem() == Items.ELYTRA || newArmor.getItem() instanceof ArmorItem))
return TypedActionResult.pass(newArmor);

if(!playerEntity.getEquippedStack(equipmentSlot).getItem().equals(Items.AIR)){
int slotIndex = 8-equipmentSlot.getEntitySlotId();
interactionManager.clickSlot(playerEntity.playerScreenHandler.syncId,slotIndex,playerEntity.inventory.main.indexOf(newArmor), SlotActionType.SWAP,playerEntity);
playerEntity.playSound(newArmor.getItem() == Items.ELYTRA ? SoundEvents.ITEM_ARMOR_EQUIP_ELYTRA : ((ArmorItem)newArmor.getItem()).getMaterial().getEquipSound(), 1.0F,1.0F);
return TypedActionResult.success(playerEntity.getStackInHand(hand));
}
}
EquipmentSlot equipmentSlot = MobEntity.getPreferredEquipmentSlot(newArmor);

if(playerEntity.getEquippedStack(equipmentSlot).getItem().equals(Items.AIR))
return TypedActionResult.pass(newArmor);

int slotIndex = 8-equipmentSlot.getEntitySlotId();
interactionManager.clickSlot(playerEntity.playerScreenHandler.syncId,slotIndex,playerEntity.inventory.main.indexOf(newArmor), SlotActionType.SWAP,playerEntity);
playerEntity.playSound(newArmor.getItem() == Items.ELYTRA ? SoundEvents.ITEM_ARMOR_EQUIP_ELYTRA : ((ArmorItem)newArmor.getItem()).getMaterial().getEquipSound(), 1.0F,1.0F);
return TypedActionResult.success(playerEntity.getStackInHand(hand));
}
return TypedActionResult.pass(newArmor);
return TypedActionResult.fail(newArmor);
}

}

0 comments on commit 3ba8a68

Please sign in to comment.