From f952ac15d286edec7e06d5f06d36e9748ae2b5aa Mon Sep 17 00:00:00 2001 From: Remco Date: Mon, 23 Nov 2020 15:10:27 +0100 Subject: [PATCH] Changed CostumeHopper to EffectHopper and made effect configurable with customparams --- .../habbo/habbohotel/items/ItemManager.java | 2 +- ...meGate.java => InteractionEffectGate.java} | 28 ++++++++++++++++--- 2 files changed, 25 insertions(+), 5 deletions(-) rename src/main/java/com/eu/habbo/habbohotel/items/interactions/{InteractionCostumeGate.java => InteractionEffectGate.java} (60%) diff --git a/src/main/java/com/eu/habbo/habbohotel/items/ItemManager.java b/src/main/java/com/eu/habbo/habbohotel/items/ItemManager.java index 2f258100..f702d68c 100644 --- a/src/main/java/com/eu/habbo/habbohotel/items/ItemManager.java +++ b/src/main/java/com/eu/habbo/habbohotel/items/ItemManager.java @@ -141,7 +141,7 @@ public class ItemManager { this.interactionsList.add(new ItemInteraction("puzzle_box", InteractionPuzzleBox.class)); this.interactionsList.add(new ItemInteraction("hopper", InteractionHopper.class)); this.interactionsList.add(new ItemInteraction("costume_hopper", InteractionCostumeHopper.class)); - this.interactionsList.add(new ItemInteraction("costume_gate", InteractionCostumeGate.class)); + this.interactionsList.add(new ItemInteraction("effect_gate", InteractionEffectGate.class)); this.interactionsList.add(new ItemInteraction("club_hopper", InteractionHabboClubHopper.class)); this.interactionsList.add(new ItemInteraction("club_gate", InteractionHabboClubGate.class)); this.interactionsList.add(new ItemInteraction("club_teleporttile", InteractionHabboClubTeleportTile.class)); diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/InteractionCostumeGate.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/InteractionEffectGate.java similarity index 60% rename from src/main/java/com/eu/habbo/habbohotel/items/interactions/InteractionCostumeGate.java rename to src/main/java/com/eu/habbo/habbohotel/items/interactions/InteractionEffectGate.java index 20034266..0e6ad5d7 100644 --- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/InteractionCostumeGate.java +++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/InteractionEffectGate.java @@ -10,15 +10,28 @@ import com.eu.habbo.threading.runnables.CloseGate; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; -public class InteractionCostumeGate extends InteractionDefault implements ConditionalGate { +public class InteractionEffectGate extends InteractionDefault implements ConditionalGate { - public InteractionCostumeGate(ResultSet set, Item baseItem) throws SQLException { + // List of Habboween costumes according to http://www.habboxwiki.com/Costumes + private static final List defaultAllowedEnables = new ArrayList<>(Arrays.asList( + 114, // Strong Arms + 115, // Ringmaster Costume + 116, // Fly Head + 117, // Executioner Hood + 118, // Evil Clown Paint + 135 // Marionette + )); + + public InteractionEffectGate(ResultSet set, Item baseItem) throws SQLException { super(set, baseItem); this.setExtradata("0"); } - public InteractionCostumeGate(int id, int userId, Item item, String extradata, int limitedStack, int limitedSells) { + public InteractionEffectGate(int id, int userId, Item item, String extradata, int limitedStack, int limitedSells) { super(id, userId, item, extradata, limitedStack, limitedSells); this.setExtradata("0"); } @@ -33,7 +46,14 @@ public class InteractionCostumeGate extends InteractionDefault implements Condit if (roomUnit == null || room == null) return false; - return roomUnit.getEffectId() > 0; + String customparams = this.getBaseItem().getCustomParams().trim(); + + if (!customparams.isEmpty()) { + return Arrays.asList(customparams.split(";")) + .contains(Integer.valueOf(roomUnit.getEffectId()).toString()); + } + + return defaultAllowedEnables.contains(roomUnit.getEffectId()); } @Override