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..3e2d7895 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,3 @@ INSERT INTO `emulator_settings`(`key`, `value`) VALUES ('hotel.room.stickies.max', '200'); -INSERT INTO `emulator_settings`(`key`, `value`) VALUES ('retro.style.homeroom', '1'); +INSERT INTO `emulator_settings`(`key`, `value`) VALUES ('retro.style.homeroom', '1'); \ No newline at end of file diff --git a/sqlupdates/2_4_0-RC-1 to 2_4_0-RC-2.sql b/sqlupdates/2_4_0-RC-1 to 2_4_0-RC-2.sql index cb3bef84..2f68174f 100644 --- a/sqlupdates/2_4_0-RC-1 to 2_4_0-RC-2.sql +++ b/sqlupdates/2_4_0-RC-1 to 2_4_0-RC-2.sql @@ -1,3 +1,11 @@ +-- Hide email from specific ranks. ALTER TABLE `permissions` ADD `acc_hide_mail` ENUM('0', '1') NOT NULL DEFAULT '0' AFTER `acc_hide_ip`; -INSERT INTO `emulator_settings` (`key`, `value`) VALUES ('flood.with.rights', '0'); \ No newline at end of file +-- Flood with rights. +INSERT INTO `emulator_settings` (`key`, `value`) VALUES ('flood.with.rights', '0'); + +-- Softkick command. +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'); +INSERT INTO `emulator_texts` (`key`, `value`) VALUES ('commands.error.cmd_softkick_not_found', '%user% not found'); +INSERT INTO `emulator_texts` (`key`, `value`) VALUES ('commands.error.cmd_softkick_error_self', 'You can not softkick yourself!'); \ No newline at end of file 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..c89ab075 --- /dev/null +++ b/src/main/java/com/eu/habbo/habbohotel/commands/SoftKickCommand.java @@ -0,0 +1,38 @@ +package com.eu.habbo.habbohotel.commands; + +import com.eu.habbo.Emulator; +import com.eu.habbo.habbohotel.gameclients.GameClient; +import com.eu.habbo.habbohotel.rooms.Room; +import com.eu.habbo.habbohotel.rooms.RoomChatMessageBubbles; +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 { + if (params.length == 2) { + final String username = params[1]; + final Habbo habbo = gameClient.getHabbo().getHabboInfo().getCurrentRoom().getHabbo(username); + + if (habbo == null) { + gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.keys.cmd_softkick_error").replace("%user%", username), RoomChatMessageBubbles.ALERT); + return true; + } + + if (habbo == gameClient.getHabbo()) { + gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.keys.cmd_softkick_error_self"), RoomChatMessageBubbles.ALERT); + return true; + } + + final Room room = gameClient.getHabbo().getHabboInfo().getCurrentRoom(); + + if (room != null) { + room.kickHabbo(habbo, false); + } + } + return true; + } +}