Proper inventory in drag clicks

Signed-off-by: TheMode <themode@outlook.fr>
This commit is contained in:
TheMode 2022-06-29 19:48:14 +02:00
parent fb58253423
commit 7da0aba66e
4 changed files with 22 additions and 10 deletions

View File

@ -317,7 +317,7 @@ public non-sealed class Inventory extends AbstractInventory implements Viewable
return dragHelper.test(player, slot, button, clickSlot, clickInv,
// Start
(clickType) -> {
final var tmp = handlePreClick(clickInv, player, -999, clickType,
final var tmp = handlePreClick(null, player, -999, clickType,
getCursorItem(player), ItemStack.AIR);
if (tmp.cancelled()) {
update();
@ -335,7 +335,7 @@ public non-sealed class Inventory extends AbstractInventory implements Viewable
(clickType, entries) -> {
var slots = entries.stream().map(dragData -> Pair.of(dragData.inventory(), dragData.slot())).toList();
// Handle last drag
final var tmp = handlePreClick(clickInv, player, -999, clickType,
final var tmp = handlePreClick(null, player, -999, clickType,
getCursorItem(player), ItemStack.AIR);
if (tmp.cancelled()) {
update();

View File

@ -265,7 +265,7 @@ public non-sealed class PlayerInventory extends AbstractInventory implements Equ
return dragHelper.test(player, slot, button, convertedSlot, this,
// Start
(clickType) -> {
final var tmp = handlePreClick(this, player, -999, clickType,
final var tmp = handlePreClick(null, player, -999, clickType,
getCursorItem(), ItemStack.AIR);
if (tmp.cancelled()) {
update();
@ -284,7 +284,7 @@ public non-sealed class PlayerInventory extends AbstractInventory implements Equ
// Handle each individual drag
var slots = entries.stream().map(DragHelper.Entry::slot).toList();
// Handle last drag
final var tmp = handlePreClick(this, player, -999, clickType,
final var tmp = handlePreClick(null, player, -999, clickType,
getCursorItem(), ItemStack.AIR);
if (tmp.cancelled()) {
update();

View File

@ -17,8 +17,7 @@ import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.List;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.fail;
import static org.junit.jupiter.api.Assertions.*;
@EnvTest
public class DragLeftClickIntegrationTest {
@ -40,6 +39,7 @@ public class DragLeftClickIntegrationTest {
{
// Start
var event = events.get(0);
assertNull(event.getInventory());
assertEquals(ClickType.START_LEFT_DRAGGING, event.getClickType());
assertEquals(-999, event.getSlot());
assertEquals(ItemStack.of(Material.STONE, 64), event.getCursorItem());
@ -48,6 +48,7 @@ public class DragLeftClickIntegrationTest {
{
// Slot 1
var event = events.get(1);
assertNull(event.getInventory());
assertEquals(ClickType.LEFT_DRAGGING, event.getClickType());
assertEquals(1, event.getSlot());
assertEquals(ItemStack.of(Material.STONE, 64), event.getCursorItem());
@ -56,6 +57,7 @@ public class DragLeftClickIntegrationTest {
{
// Slot 2
var event = events.get(2);
assertNull(event.getInventory());
assertEquals(ClickType.LEFT_DRAGGING, event.getClickType());
assertEquals(2, event.getSlot());
assertEquals(ItemStack.of(Material.STONE, 64), event.getCursorItem());
@ -64,6 +66,7 @@ public class DragLeftClickIntegrationTest {
{
// End
var event = events.get(3);
assertNull(event.getInventory());
assertEquals(ClickType.END_LEFT_DRAGGING, event.getClickType());
assertEquals(-999, event.getSlot());
assertEquals(ItemStack.of(Material.STONE, 64), event.getCursorItem());
@ -148,7 +151,7 @@ public class DragLeftClickIntegrationTest {
{
// Start
var event = events.get(0);
assertEquals(inventory, event.getInventory());
assertNull(event.getInventory());
assertEquals(ClickType.START_LEFT_DRAGGING, event.getClickType());
assertEquals(-999, event.getSlot());
assertEquals(ItemStack.of(Material.STONE, 64), event.getCursorItem());
@ -157,6 +160,7 @@ public class DragLeftClickIntegrationTest {
{
// Slot 1
var event = events.get(1);
assertEquals(inventory, event.getInventory());
assertEquals(ClickType.LEFT_DRAGGING, event.getClickType());
assertEquals(1, event.getSlot());
assertEquals(ItemStack.of(Material.STONE, 64), event.getCursorItem());
@ -165,6 +169,7 @@ public class DragLeftClickIntegrationTest {
{
// Slot 2
var event = events.get(2);
assertEquals(inventory, event.getInventory());
assertEquals(ClickType.LEFT_DRAGGING, event.getClickType());
assertEquals(2, event.getSlot());
assertEquals(ItemStack.of(Material.STONE, 64), event.getCursorItem());
@ -173,6 +178,7 @@ public class DragLeftClickIntegrationTest {
{
// End
var event = events.get(3);
assertNull(event.getInventory());
assertEquals(ClickType.END_LEFT_DRAGGING, event.getClickType());
assertEquals(-999, event.getSlot());
assertEquals(ItemStack.of(Material.STONE, 64), event.getCursorItem());

View File

@ -17,8 +17,7 @@ import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.List;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.fail;
import static org.junit.jupiter.api.Assertions.*;
@EnvTest
public class DragRightClickIntegrationTest {
@ -40,6 +39,7 @@ public class DragRightClickIntegrationTest {
{
// Start
var event = events.get(0);
assertNull(event.getInventory());
assertEquals(ClickType.START_RIGHT_DRAGGING, event.getClickType());
assertEquals(-999, event.getSlot());
assertEquals(ItemStack.of(Material.STONE, 64), event.getCursorItem());
@ -48,6 +48,7 @@ public class DragRightClickIntegrationTest {
{
// Slot 1
var event = events.get(1);
assertNull(event.getInventory());
assertEquals(ClickType.RIGHT_DRAGGING, event.getClickType());
assertEquals(1, event.getSlot());
assertEquals(ItemStack.of(Material.STONE, 64), event.getCursorItem());
@ -56,6 +57,7 @@ public class DragRightClickIntegrationTest {
{
// Slot 2
var event = events.get(2);
assertNull(event.getInventory());
assertEquals(ClickType.RIGHT_DRAGGING, event.getClickType());
assertEquals(2, event.getSlot());
assertEquals(ItemStack.of(Material.STONE, 64), event.getCursorItem());
@ -64,6 +66,7 @@ public class DragRightClickIntegrationTest {
{
// End
var event = events.get(3);
assertNull(event.getInventory());
assertEquals(ClickType.END_RIGHT_DRAGGING, event.getClickType());
assertEquals(-999, event.getSlot());
assertEquals(ItemStack.of(Material.STONE, 64), event.getCursorItem());
@ -148,7 +151,7 @@ public class DragRightClickIntegrationTest {
{
// Start
var event = events.get(0);
assertEquals(inventory, event.getInventory());
assertNull(event.getInventory());
assertEquals(ClickType.START_RIGHT_DRAGGING, event.getClickType());
assertEquals(-999, event.getSlot());
assertEquals(ItemStack.of(Material.STONE, 64), event.getCursorItem());
@ -157,6 +160,7 @@ public class DragRightClickIntegrationTest {
{
// Slot 1
var event = events.get(1);
assertEquals(inventory, event.getInventory());
assertEquals(ClickType.RIGHT_DRAGGING, event.getClickType());
assertEquals(1, event.getSlot());
assertEquals(ItemStack.of(Material.STONE, 64), event.getCursorItem());
@ -165,6 +169,7 @@ public class DragRightClickIntegrationTest {
{
// Slot 2
var event = events.get(2);
assertEquals(inventory, event.getInventory());
assertEquals(ClickType.RIGHT_DRAGGING, event.getClickType());
assertEquals(2, event.getSlot());
assertEquals(ItemStack.of(Material.STONE, 64), event.getCursorItem());
@ -173,6 +178,7 @@ public class DragRightClickIntegrationTest {
{
// End
var event = events.get(3);
assertNull(event.getInventory());
assertEquals(ClickType.END_RIGHT_DRAGGING, event.getClickType());
assertEquals(-999, event.getSlot());
assertEquals(ItemStack.of(Material.STONE, 64), event.getCursorItem());