diff --git a/Emulator/src/main/java/com/eu/habbo/messages/PacketManager.java b/Emulator/src/main/java/com/eu/habbo/messages/PacketManager.java index febcf5b3..6bd33db3 100644 --- a/Emulator/src/main/java/com/eu/habbo/messages/PacketManager.java +++ b/Emulator/src/main/java/com/eu/habbo/messages/PacketManager.java @@ -369,6 +369,7 @@ public class PacketManager { this.registerHandler(Incoming.HotelViewInventoryEvent, RequestInventoryItemsEvent.class); this.registerHandler(Incoming.RequestInventoryPetsEvent, RequestInventoryPetsEvent.class); this.registerHandler(Incoming.RequestInventoryPetDelete, RequestInventoryPetDelete.class); + this.registerHandler(Incoming.RequestInventoryBadgeDelete, RequestInventoryBadgeDelete.class); } void registerRooms() throws Exception { diff --git a/Emulator/src/main/java/com/eu/habbo/messages/incoming/Incoming.java b/Emulator/src/main/java/com/eu/habbo/messages/incoming/Incoming.java index 957515db..8c9625e7 100644 --- a/Emulator/src/main/java/com/eu/habbo/messages/incoming/Incoming.java +++ b/Emulator/src/main/java/com/eu/habbo/messages/incoming/Incoming.java @@ -408,4 +408,5 @@ public class Incoming { // CUSTOM public static final int UpdateFurniturePositionEvent = 10019; public static final int RequestInventoryPetDelete = 10030; + public static final int RequestInventoryBadgeDelete = 10031; } diff --git a/Emulator/src/main/java/com/eu/habbo/messages/incoming/inventory/RequestInventoryBadgeDelete.java b/Emulator/src/main/java/com/eu/habbo/messages/incoming/inventory/RequestInventoryBadgeDelete.java new file mode 100644 index 00000000..8beda6ec --- /dev/null +++ b/Emulator/src/main/java/com/eu/habbo/messages/incoming/inventory/RequestInventoryBadgeDelete.java @@ -0,0 +1,38 @@ +package com.eu.habbo.messages.incoming.inventory; + +import com.eu.habbo.habbohotel.users.Habbo; +import com.eu.habbo.habbohotel.users.HabboBadge; +import com.eu.habbo.habbohotel.users.inventory.BadgesComponent; +import com.eu.habbo.messages.incoming.MessageHandler; +import com.eu.habbo.messages.outgoing.inventory.InventoryBadgesComposer; +import com.eu.habbo.messages.outgoing.users.UserBadgesComposer; + +public class RequestInventoryBadgeDelete extends MessageHandler { + @Override + public int getRatelimit() { + return 500; + } + + @Override + public void handle() { + final String badgeCode = this.packet.readString(); + final Habbo habbo = this.client.getHabbo(); + + if (habbo == null || badgeCode == null || badgeCode.isEmpty()) + return; + + final HabboBadge badge = habbo.getInventory().getBadgesComponent().removeBadge(badgeCode); + + if (badge == null) + return; + + BadgesComponent.deleteBadge(habbo.getHabboInfo().getId(), badge.getCode()); + + this.client.sendResponse(new InventoryBadgesComposer(habbo)); + + if (habbo.getHabboInfo().getCurrentRoom() != null) + habbo.getHabboInfo().getCurrentRoom().sendComposer(new UserBadgesComposer(habbo.getInventory().getBadgesComponent().getWearingBadges(), habbo.getHabboInfo().getId()).compose()); + else + this.client.sendResponse(new UserBadgesComposer(habbo.getInventory().getBadgesComponent().getWearingBadges(), habbo.getHabboInfo().getId())); + } +}