Arcturus-Community/src/main/java/com/eu/habbo/threading/runnables/CrackableExplode.java

70 lines
2.6 KiB
Java
Raw Normal View History

2018-07-06 15:30:00 +02:00
package com.eu.habbo.threading.runnables;
import com.eu.habbo.Emulator;
2018-09-28 21:25:00 +02:00
import com.eu.habbo.habbohotel.items.interactions.InteractionCrackable;
2018-07-06 15:30:00 +02:00
import com.eu.habbo.habbohotel.rooms.Room;
2018-09-28 21:25:00 +02:00
import com.eu.habbo.habbohotel.users.Habbo;
2018-07-06 15:30:00 +02:00
import com.eu.habbo.habbohotel.users.HabboItem;
2018-09-28 21:25:00 +02:00
import com.eu.habbo.messages.outgoing.inventory.AddHabboItemComposer;
import com.eu.habbo.messages.outgoing.inventory.InventoryRefreshComposer;
2018-07-06 15:30:00 +02:00
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;
2018-09-28 21:25:00 +02:00
private final InteractionCrackable habboItem;
private final Habbo habbo;
private final boolean toInventory;
2018-07-06 15:30:00 +02:00
2018-09-28 21:25:00 +02:00
public CrackableExplode(Room room, InteractionCrackable item, Habbo habbo, boolean toInventory)
2018-07-06 15:30:00 +02:00
{
this.room = room;
this.habboItem = item;
2018-09-28 21:25:00 +02:00
this.habbo = habbo;
this.toInventory = toInventory;
2018-07-06 15:30:00 +02:00
}
@Override
public void run()
{
if (habboItem.getRoomId() == 0)
{
return;
}
2018-09-28 21:25:00 +02:00
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);
}
2018-10-07 00:28:00 +02:00
HabboItem newItem = Emulator.getGameEnvironment().getItemManager().createItem(this.habboItem.allowAnyone() ? habbo.getHabboInfo().getId() : this.habboItem.getUserId(), Emulator.getGameEnvironment().getItemManager().getCrackableReward(this.habboItem.getBaseItem().getId()), 0, 0, "");
2018-07-06 15:30:00 +02:00
if (newItem != null)
{
2018-09-28 21:25:00 +02:00
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());
}
2018-07-06 15:30:00 +02:00
}
}
}