package com.eu.habbo.habbohotel.items.interactions; import com.eu.habbo.Emulator; import com.eu.habbo.habbohotel.gameclients.GameClient; import com.eu.habbo.habbohotel.items.Item; import com.eu.habbo.habbohotel.rooms.Room; import com.eu.habbo.habbohotel.users.HabboGender; import com.eu.habbo.habbohotel.users.HabboItem; import com.eu.habbo.habbohotel.users.inventory.EffectsComponent; import com.eu.habbo.messages.outgoing.rooms.items.RemoveFloorItemComposer; import com.eu.habbo.threading.runnables.QueryDeleteHabboItem; import java.sql.ResultSet; import java.sql.SQLException; public class InteractionFXBox extends InteractionDefault { public InteractionFXBox(ResultSet set, Item baseItem) throws SQLException { super(set, baseItem); // this.setExtradata("0"); } public InteractionFXBox(int id, int userId, Item item, String extradata, int limitedStack, int limitedSells) { super(id, userId, item, extradata, limitedStack, limitedSells); // this.setExtradata("0"); } @Override public void onClick(GameClient client, Room room, Object[] objects) throws Exception { if (client != null && this.getUserId() == client.getHabbo().getHabboInfo().getId()) { if(this.getExtradata().equals("1")) return; int effectId = -1; if (client.getHabbo().getHabboInfo().getGender().equals(HabboGender.M)) { if (this.getBaseItem().getEffectM() > 0) { effectId = this.getBaseItem().getEffectM(); } } if (client.getHabbo().getHabboInfo().getGender().equals(HabboGender.F)) { if (this.getBaseItem().getEffectF() > 0) { effectId = this.getBaseItem().getEffectF(); } } if(effectId < 0) return; if(client.getHabbo().getInventory().getEffectsComponent().ownsEffect(effectId)) return; EffectsComponent.HabboEffect effect = client.getHabbo().getInventory().getEffectsComponent().createEffect(effectId, 0); client.getHabbo().getInventory().getEffectsComponent().enableEffect(effectId); this.setExtradata("1"); room.updateItemState(this); room.removeHabboItem(this); HabboItem item = this; Emulator.getThreading().run(() -> { new QueryDeleteHabboItem(item.getId()).run(); room.sendComposer(new RemoveFloorItemComposer(item).compose()); room.updateTile(room.getLayout().getTile(this.getX(), this.getY())); }, 500); } } }