diff --git a/Emulator/src/main/java/com/eu/habbo/habbohotel/rooms/Room.java b/Emulator/src/main/java/com/eu/habbo/habbohotel/rooms/Room.java index be7ada12..eac294d7 100644 --- a/Emulator/src/main/java/com/eu/habbo/habbohotel/rooms/Room.java +++ b/Emulator/src/main/java/com/eu/habbo/habbohotel/rooms/Room.java @@ -877,7 +877,7 @@ public class Room implements Comparable, ISerialize, Runnable { return; } - Habbo habbo = (picker != null && picker.getHabboInfo().getId() == item.getId() ? picker + Habbo habbo = (picker != null && picker.getHabboInfo().getId() == item.getUserId() ? picker : Emulator.getGameServer().getGameClientManager().getHabbo(item.getUserId())); if (!trackedBuildersClubItem && habbo != null) { habbo.getInventory().getItemsComponent().addItem(item); diff --git a/Emulator/src/test/java/com/eu/habbo/habbohotel/rooms/RoomPickupOwnershipContractTest.java b/Emulator/src/test/java/com/eu/habbo/habbohotel/rooms/RoomPickupOwnershipContractTest.java new file mode 100644 index 00000000..d3776099 --- /dev/null +++ b/Emulator/src/test/java/com/eu/habbo/habbohotel/rooms/RoomPickupOwnershipContractTest.java @@ -0,0 +1,21 @@ +package com.eu.habbo.habbohotel.rooms; + +import org.junit.jupiter.api.Test; + +import java.nio.file.Files; +import java.nio.file.Path; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +class RoomPickupOwnershipContractTest { + @Test + void pickupReturnsItemToPickerWhenPickerOwnsTheItem() throws Exception { + String source = Files.readString(Path.of("src/main/java/com/eu/habbo/habbohotel/rooms/Room.java")); + + assertTrue(source.contains("picker.getHabboInfo().getId() == item.getUserId()"), + "Room.pickUpItem should compare the picker id against the item owner id"); + assertFalse(source.contains("picker.getHabboInfo().getId() == item.getId()"), + "Room.pickUpItem must not compare user ids against furniture item ids"); + } +}