Fix Merchant Inventory Transaction
@@ -60,7 +60,8 @@ public class MerchantInventoryTranslator extends BaseInventoryTranslator {
@Override
public int bedrockSlotToJava(InventoryActionData action) {
- if (action.getSource().getContainerId() == ContainerId.UI) {
+ switch (action.getSource().getContainerId()) {
+ case ContainerId.UI:
switch (action.getSlot()) {
case 4:
return 0;
@@ -69,6 +70,13 @@ public class MerchantInventoryTranslator extends BaseInventoryTranslator {
case 50:
return 2;
}
+ break;
+ case -28: // Trading 1?
+ return 0;
+ case -29: // Trading 2?
+ return 1;
+ case -30: // Trading Output?
+ return 2;
}
return super.bedrockSlotToJava(action);
}
@@ -109,11 +117,9 @@ public class MerchantInventoryTranslator extends BaseInventoryTranslator {
@Override
public void translateActions(GeyserSession session, Inventory inventory, List<InventoryActionData> actions) {
- for (InventoryActionData action : actions) {
- if (action.getSource().getType() == InventorySource.Type.NON_IMPLEMENTED_TODO) {
+ if (actions.stream().anyMatch(a -> a.getSource().getContainerId() == -31)) {
return;
}
- }
super.translateActions(session, inventory, actions);
}
