Arcturus-Community/src/main/java/com/eu/habbo/threading/runnables/CrackableExplode.java
2018-09-28 19:25:00 +00:00

70 lines
2.6 KiB
Java

package com.eu.habbo.threading.runnables;
import com.eu.habbo.Emulator;
import com.eu.habbo.habbohotel.items.interactions.InteractionCrackable;
import com.eu.habbo.habbohotel.rooms.Room;
import com.eu.habbo.habbohotel.users.Habbo;
import com.eu.habbo.habbohotel.users.HabboItem;
import com.eu.habbo.messages.outgoing.inventory.AddHabboItemComposer;
import com.eu.habbo.messages.outgoing.inventory.InventoryRefreshComposer;
import com.eu.habbo.messages.outgoing.rooms.items.AddFloorItemComposer;
import com.eu.habbo.messages.outgoing.rooms.items.RemoveFloorItemComposer;
public class CrackableExplode implements Runnable
{
private final Room room;
private final InteractionCrackable habboItem;
private final Habbo habbo;
private final boolean toInventory;
public CrackableExplode(Room room, InteractionCrackable item, Habbo habbo, boolean toInventory)
{
this.room = room;
this.habboItem = item;
this.habbo = habbo;
this.toInventory = toInventory;
}
@Override
public void run()
{
if (habboItem.getRoomId() == 0)
{
return;
}
if (!this.habboItem.resetable())
{
this.room.removeHabboItem(this.habboItem);
this.room.sendComposer(new RemoveFloorItemComposer(this.habboItem).compose());
this.habboItem.setRoomId(0);
Emulator.getGameEnvironment().getItemManager().deleteItem(this.habboItem);
}
else
{
this.habboItem.reset(this.room);
}
HabboItem newItem = Emulator.getGameEnvironment().getItemManager().createItem(this.habboItem.getUserId(), Emulator.getGameEnvironment().getItemManager().getCrackableReward(this.habboItem.getBaseItem().getId()), 0, 0, "");
if (newItem != null)
{
if (this.toInventory)
{
habbo.getInventory().getItemsComponent().addItem(newItem);
habbo.getClient().sendResponse(new AddHabboItemComposer(newItem));
habbo.getClient().sendResponse(new InventoryRefreshComposer());
}
else
{
newItem.setX(this.habboItem.getX());
newItem.setY(this.habboItem.getY());
newItem.setZ(this.habboItem.getZ());
newItem.setRoomId(this.room.getId());
newItem.needsUpdate(true);
this.room.addHabboItem(newItem);
this.room.sendComposer(new AddFloorItemComposer(newItem, this.room.getFurniOwnerNames().get(newItem.getUserId())).compose());
}
}
}
}