🆙 Add some love to the beds when there is a male/female in the bed

This commit is contained in:
duckietm
2026-03-16 08:42:48 +01:00
parent 9c7067b5a2
commit 1669847805
2 changed files with 43 additions and 8 deletions
@@ -479,6 +479,10 @@ public class RoomCycleManager {
unit.setStatus(RoomUnitStatus.LAY, layHeight + ";" + bedProfile.getLayXOffset() + ";" + bedProfile.getLayYOffset()); unit.setStatus(RoomUnitStatus.LAY, layHeight + ";" + bedProfile.getLayXOffset() + ";" + bedProfile.getLayYOffset());
unit.setRotation(RoomUserRotation.values()[topItem.getRotation() % 4]); unit.setRotation(RoomUserRotation.values()[topItem.getRotation() % 4]);
unit.setLocation(bedProfile.snapToLay(this.room, topItem, unit.getX(), unit.getY())); unit.setLocation(bedProfile.snapToLay(this.room, topItem, unit.getX(), unit.getY()));
// Check love effect when a user enters a bed
this.room.getUnitManager().checkBedLoveEffect(topItem);
update = true; update = true;
} }
} }
@@ -10,6 +10,7 @@ import com.eu.habbo.habbohotel.pets.PetVocalsType;
import com.eu.habbo.habbohotel.pets.RideablePet; import com.eu.habbo.habbohotel.pets.RideablePet;
import com.eu.habbo.habbohotel.users.DanceType; import com.eu.habbo.habbohotel.users.DanceType;
import com.eu.habbo.habbohotel.users.Habbo; import com.eu.habbo.habbohotel.users.Habbo;
import com.eu.habbo.habbohotel.users.HabboGender;
import com.eu.habbo.habbohotel.users.HabboItem; import com.eu.habbo.habbohotel.users.HabboItem;
import com.eu.habbo.habbohotel.wired.core.WiredManager; import com.eu.habbo.habbohotel.wired.core.WiredManager;
import com.eu.habbo.messages.outgoing.generic.alerts.GenericErrorMessagesComposer; import com.eu.habbo.messages.outgoing.generic.alerts.GenericErrorMessagesComposer;
@@ -42,6 +43,7 @@ import java.util.stream.Collectors;
*/ */
public class RoomUnitManager { public class RoomUnitManager {
private static final Logger LOGGER = LoggerFactory.getLogger(RoomUnitManager.class); private static final Logger LOGGER = LoggerFactory.getLogger(RoomUnitManager.class);
static final int BED_LOVE_EFFECT_ID = 9;
private final Room room; private final Room room;
@@ -420,6 +422,10 @@ public class RoomUnitManager {
} }
this.room.sendComposer(new RoomUserStatusComposer(roomUnits, true).compose()); this.room.sendComposer(new RoomUserStatusComposer(roomUnits, true).compose());
} }
if (topItem != null && topItem.getBaseItem().allowLay()) {
this.checkBedLoveEffect(topItem);
}
} }
// ==================== HABBO QUEUE ==================== // ==================== HABBO QUEUE ====================
@@ -1164,6 +1170,31 @@ public class RoomUnitManager {
} }
} }
public void checkBedLoveEffect(HabboItem bed) {
if (bed == null || !bed.getBaseItem().allowLay()) return;
BedProfile bedProfile = new BedProfile(bed);
if (!bedProfile.isDouble()) return;
THashSet<Habbo> habbosOnBed = this.getHabbosOnItem(bed);
Habbo male = null;
Habbo female = null;
for (Habbo h : habbosOnBed) {
if (h.getRoomUnit() == null || !h.getRoomUnit().hasStatus(RoomUnitStatus.LAY)) continue;
if (h.getHabboInfo().getGender() == HabboGender.M && male == null) {
male = h;
} else if (h.getHabboInfo().getGender() == HabboGender.F && female == null) {
female = h;
}
}
if (male != null && female != null) {
this.giveEffect(male.getRoomUnit(), BED_LOVE_EFFECT_ID, 5);
this.giveEffect(female.getRoomUnit(), BED_LOVE_EFFECT_ID, 5);
}
}
/** /**
* Gives a hand item to a Habbo. * Gives a hand item to a Habbo.
*/ */