forked from GeyserMC/Geyser
Fix Merchant Inventory Transaction (#1017)
This commit is contained in:
parent
5c2a225533
commit
d03f56e7e8
1 changed files with 19 additions and 13 deletions
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue