3
0
Mirror von https://github.com/GeyserMC/Geyser.git synchronisiert 2024-12-24 15:20:25 +01:00

Allow dropping items from the creative menu in mobile

Fixes #2626
Dieser Commit ist enthalten in:
Camotoy 2021-12-26 12:07:38 -05:00
Ursprung 68c13c08fa
Commit b70e2645c8
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: 7EEFB66FE798081F

Datei anzeigen

@ -401,7 +401,6 @@ public class PlayerInventoryTranslator extends InventoryTranslator {
break;
}
case CRAFT_RESULTS_DEPRECATED: {
CraftResultsDeprecatedStackRequestActionData deprecatedCraftAction = (CraftResultsDeprecatedStackRequestActionData) action;
if (craftState != CraftState.RECIPE_ID) {
return rejectRequest(request);
}
@ -453,6 +452,28 @@ public class PlayerInventoryTranslator extends InventoryTranslator {
}
break;
}
case DROP: {
// Can be replicated as of 1.18.2 Bedrock on mobile by clicking from the creative menu to outside it
if (craftState != CraftState.DEPRECATED) {
return rejectRequest(request);
}
DropStackRequestActionData dropAction = (DropStackRequestActionData) action;
if (dropAction.getSource().getContainer() != ContainerSlotType.CREATIVE_OUTPUT || dropAction.getSource().getSlot() != 50) {
return rejectRequest(request);
}
ItemStack dropStack;
if (dropAction.getCount() == javaCreativeItem.getAmount()) {
dropStack = javaCreativeItem;
} else {
// Specify custom count
dropStack = new ItemStack(javaCreativeItem.getId(), dropAction.getCount(), javaCreativeItem.getNbt());
}
ServerboundSetCreativeModeSlotPacket creativeDropPacket = new ServerboundSetCreativeModeSlotPacket(-1, dropStack);
session.sendDownstreamPacket(creativeDropPacket);
break;
}
default:
return rejectRequest(request);
}