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

58 lines
2.0 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-10-07 00:28:00 +02:00
import com.eu.habbo.habbohotel.gameclients.GameClient;
2018-07-06 15:30:00 +02:00
import com.eu.habbo.habbohotel.items.interactions.InteractionCannon;
2018-09-12 18:45:00 +02:00
import com.eu.habbo.habbohotel.permissions.Permission;
2018-07-06 15:30:00 +02:00
import com.eu.habbo.habbohotel.rooms.Room;
import com.eu.habbo.habbohotel.rooms.RoomTile;
import com.eu.habbo.habbohotel.users.Habbo;
import com.eu.habbo.messages.ServerMessage;
import com.eu.habbo.messages.outgoing.generic.alerts.BubbleAlertComposer;
import gnu.trove.map.hash.THashMap;
import java.util.List;
public class CannonKickAction implements Runnable
{
private final InteractionCannon cannon;
private final Room room;
2018-10-07 00:28:00 +02:00
private final GameClient client;
2018-07-06 15:30:00 +02:00
2018-10-07 00:28:00 +02:00
public CannonKickAction(InteractionCannon cannon, Room room, GameClient client)
2018-07-06 15:30:00 +02:00
{
this.cannon = cannon;
this.room = room;
2018-10-07 00:28:00 +02:00
this.client = client;
2018-07-06 15:30:00 +02:00
}
@Override
public void run()
{
2019-03-18 02:22:00 +01:00
if (this.client != null)
{
this.client.getHabbo().getRoomUnit().setCanWalk(true);
}
2018-09-28 21:25:00 +02:00
THashMap<String, String> dater = new THashMap<>();
2018-07-06 15:30:00 +02:00
dater.put("title", "${notification.room.kick.cannonball.title}");
dater.put("message", "${notification.room.kick.cannonball.message}");
ServerMessage message = new BubbleAlertComposer("cannon.png", dater).compose();
int rotation = this.cannon.getRotation();
List<RoomTile> tiles = this.room.getLayout().getTilesInFront(this.room.getLayout().getTile(this.cannon.getX(), this.cannon.getY()), rotation + 6, 3);
for(RoomTile t : tiles)
{
for(Habbo habbo : this.room.getHabbosAt(t.x, t.y))
{
2018-09-12 18:45:00 +02:00
if(!habbo.hasPermission(Permission.ACC_UNKICKABLE) && !this.room.isOwner(habbo))
2018-07-06 15:30:00 +02:00
{
Emulator.getGameEnvironment().getRoomManager().leaveRoom(habbo, this.room);
habbo.getClient().sendResponse(message); //kicked composer
}
}
}
}
}