diff --git a/sqlupdates/2_3_1_TO_2_4_0-RC-1.sql b/sqlupdates/2_3_1_TO_2_4_0-RC-1.sql index 5cebe121..24f16927 100644 --- a/sqlupdates/2_3_1_TO_2_4_0-RC-1.sql +++ b/sqlupdates/2_3_1_TO_2_4_0-RC-1.sql @@ -1,3 +1,7 @@ INSERT INTO `emulator_settings`(`key`, `value`) VALUES ('hotel.room.stickies.max', '200'); INSERT INTO `emulator_settings`(`key`, `value`) VALUES ('retro.style.homeroom', '1'); + +ALTER TABLE `permissions` ADD `cmd_softkick` ENUM( '0', '1' ) NOT NULL DEFAULT '0' AFTER `cmd_kickall`; + +INSERT INTO `emulator_texts` (`key`, `value`) VALUES ('commands.keys.cmd_softkick', 'softkick'); diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/CommandHandler.java b/src/main/java/com/eu/habbo/habbohotel/commands/CommandHandler.java index a8e550a1..33974e59 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/CommandHandler.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/CommandHandler.java @@ -284,6 +284,7 @@ public class CommandHandler { addCommand(new WordQuizCommand()); addCommand(new UpdateYoutubePlaylistsCommand()); addCommand(new AddYoutubePlaylistCommand()); + addCommand(new SoftKickCommand()); addCommand(new TestCommand()); } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/SoftKickCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/SoftKickCommand.java new file mode 100644 index 00000000..7323e0dc --- /dev/null +++ b/src/main/java/com/eu/habbo/habbohotel/commands/SoftKickCommand.java @@ -0,0 +1,25 @@ +package com.eu.habbo.habbohotel.commands; + +import com.eu.habbo.Emulator; +import com.eu.habbo.habbohotel.gameclients.GameClient; +import com.eu.habbo.habbohotel.permissions.Permission; +import com.eu.habbo.habbohotel.rooms.Room; +import com.eu.habbo.habbohotel.users.Habbo; + +public class SoftKickCommand extends Command { + public SoftKickCommand() { + super("cmd_softkick", Emulator.getTexts().getValue("commands.keys.cmd_softkick").split(";")); + } + + @Override + public boolean handle(GameClient gameClient, String[] params) throws Exception { + final Room room = gameClient.getHabbo().getHabboInfo().getCurrentRoom(); + + for (Habbo habbo : room.getHabbos()) { + if (!(habbo.hasPermission(Permission.ACC_UNKICKABLE) || habbo.hasPermission(Permission.ACC_SUPPORTTOOL) || room.isOwner(habbo))) { + room.kickHabbo(habbo, false); + } + } + return true; + } +}