fix(wired): improve rewards and room mute feedback

This commit is contained in:
Lorenzune
2026-03-18 17:01:10 +01:00
parent ce522eb3b3
commit c9f5c62c7f
7 changed files with 239 additions and 157 deletions
@@ -29,7 +29,7 @@ public class UnmuteCommand extends Command {
} }
if (habbo.getHabboInfo().getCurrentRoom() != null && habbo.getHabboInfo().getCurrentRoom().isMuted(habbo)) { if (habbo.getHabboInfo().getCurrentRoom() != null && habbo.getHabboInfo().getCurrentRoom().isMuted(habbo)) {
habbo.getHabboInfo().getCurrentRoom().muteHabbo(habbo, 1); habbo.getHabboInfo().getCurrentRoom().unmuteHabbo(habbo);
} }
gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_unmute").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_unmute").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT);
@@ -140,15 +140,6 @@ public class WiredEffectGiveReward extends InteractionWiredEffect {
return type; return type;
} }
@Override
public void onClick(GameClient client, Room room, Object[] objects) throws Exception {
super.onClick(client, room, objects);
if (client.getHabbo().hasPermission(Permission.ACC_SUPERWIRED)) {
client.getHabbo().whisper(Emulator.getTexts().getValue("hotel.wired.superwired.info"), RoomChatMessageBubbles.BOT);
}
}
@Override @Override
public void serializeWiredData(ServerMessage message, Room room) { public void serializeWiredData(ServerMessage message, Room room) {
message.appendBoolean(false); message.appendBoolean(false);
@@ -1865,11 +1865,15 @@ public class Room implements Comparable<Room>, ISerialize, Runnable {
} }
public void muteHabbo(Habbo habbo, int minutes) { public void muteHabbo(Habbo habbo, int minutes) {
this.rightsManager.muteHabbo(habbo, minutes); this.chatManager.muteHabbo(habbo, minutes);
}
public void unmuteHabbo(Habbo habbo) {
this.chatManager.unmuteHabbo(habbo);
} }
public boolean isMuted(Habbo habbo) { public boolean isMuted(Habbo habbo) {
return this.rightsManager.isMuted(habbo); return this.chatManager.isMuted(habbo);
} }
public void habboEntered(Habbo habbo) { public void habboEntered(Habbo habbo) {
@@ -156,6 +156,15 @@ public class RoomChatManager {
} }
} }
/**
* Removes a room mute from a Habbo.
*/
public void unmuteHabbo(Habbo habbo) {
synchronized (this.mutedHabbos) {
this.mutedHabbos.remove(habbo.getHabboInfo().getId());
}
}
/** /**
* Checks if a Habbo is muted. * Checks if a Habbo is muted.
*/ */
@@ -183,7 +192,8 @@ public class RoomChatManager {
*/ */
public int getMuteTimeRemaining(Habbo habbo) { public int getMuteTimeRemaining(Habbo habbo) {
if (this.mutedHabbos.containsKey(habbo.getHabboInfo().getId())) { if (this.mutedHabbos.containsKey(habbo.getHabboInfo().getId())) {
return this.mutedHabbos.get(habbo.getHabboInfo().getId()) - Emulator.getIntUnixTimestamp(); return Math.max(0,
this.mutedHabbos.get(habbo.getHabboInfo().getId()) - Emulator.getIntUnixTimestamp());
} }
return 0; return 0;
} }
@@ -298,7 +308,7 @@ public class RoomChatManager {
if (this.isMuted(habbo)) { if (this.isMuted(habbo)) {
habbo.getClient().sendResponse(new MutedWhisperComposer( habbo.getClient().sendResponse(new MutedWhisperComposer(
this.mutedHabbos.get(habbo.getHabboInfo().getId()) - Emulator.getIntUnixTimestamp())); Math.max(1, this.getMuteTimeRemaining(habbo))));
return; return;
} }
} }
@@ -285,88 +285,115 @@ public class WiredHandler {
} }
} }
private static void giveReward(Habbo habbo, WiredEffectGiveReward wiredBox, WiredGiveRewardItem reward) { private static void persistReward(int wiredId, int habboId, int rewardId, int timestamp) {
if (wiredBox.limit > 0)
wiredBox.given++;
try (Connection connection = Emulator.getDatabase().getDataSource().getConnection(); PreparedStatement statement = connection.prepareStatement("INSERT INTO wired_rewards_given (wired_item, user_id, reward_id, timestamp) VALUES ( ?, ?, ?, ?)")) { try (Connection connection = Emulator.getDatabase().getDataSource().getConnection(); PreparedStatement statement = connection.prepareStatement("INSERT INTO wired_rewards_given (wired_item, user_id, reward_id, timestamp) VALUES ( ?, ?, ?, ?)")) {
statement.setInt(1, wiredBox.getId()); statement.setInt(1, wiredId);
statement.setInt(2, habbo.getHabboInfo().getId()); statement.setInt(2, habboId);
statement.setInt(3, reward.id); statement.setInt(3, rewardId);
statement.setInt(4, Emulator.getIntUnixTimestamp()); statement.setInt(4, timestamp);
statement.execute(); statement.execute();
} catch (SQLException e) { } catch (SQLException e) {
LOGGER.error("Caught SQL exception", e); LOGGER.error("Caught SQL exception", e);
} }
}
private static void completeReward(Habbo habbo, WiredEffectGiveReward wiredBox, WiredGiveRewardItem reward, int successCode) {
if (wiredBox.limit > 0)
wiredBox.given++;
persistReward(wiredBox.getId(), habbo.getHabboInfo().getId(), reward.id, Emulator.getIntUnixTimestamp());
habbo.getClient().sendResponse(new WiredRewardAlertComposer(successCode));
}
private static boolean giveReward(Habbo habbo, WiredEffectGiveReward wiredBox, WiredGiveRewardItem reward) {
if (reward.badge) { if (reward.badge) {
UserWiredRewardReceived rewardReceived = new UserWiredRewardReceived(habbo, wiredBox, "badge", reward.data); UserWiredRewardReceived rewardReceived = new UserWiredRewardReceived(habbo, wiredBox, "badge", reward.data);
if (Emulator.getPluginManager().fireEvent(rewardReceived).isCancelled()) if (Emulator.getPluginManager().fireEvent(rewardReceived).isCancelled())
return; return false;
if (rewardReceived.value.isEmpty()) if (rewardReceived.value.isEmpty())
return; return false;
if (habbo.getInventory().getBadgesComponent().hasBadge(rewardReceived.value)) if (habbo.getInventory().getBadgesComponent().hasBadge(rewardReceived.value)) {
return; habbo.getClient().sendResponse(new WiredRewardAlertComposer(WiredRewardAlertComposer.REWARD_ALREADY_RECEIVED));
return false;
}
HabboBadge badge = new HabboBadge(0, rewardReceived.value, 0, habbo); HabboBadge badge = new HabboBadge(0, rewardReceived.value, 0, habbo);
Emulator.getThreading().run(badge); Emulator.getThreading().run(badge);
habbo.getInventory().getBadgesComponent().addBadge(badge); habbo.getInventory().getBadgesComponent().addBadge(badge);
habbo.getClient().sendResponse(new AddUserBadgeComposer(badge)); habbo.getClient().sendResponse(new AddUserBadgeComposer(badge));
habbo.getClient().sendResponse(new WiredRewardAlertComposer(WiredRewardAlertComposer.REWARD_RECEIVED_BADGE)); completeReward(habbo, wiredBox, reward, WiredRewardAlertComposer.REWARD_RECEIVED_BADGE);
} else { return true;
String[] data = reward.data.split("#");
if (data.length == 2) {
UserWiredRewardReceived rewardReceived = new UserWiredRewardReceived(habbo, wiredBox, data[0], data[1]);
if (Emulator.getPluginManager().fireEvent(rewardReceived).isCancelled())
return;
if (rewardReceived.value.isEmpty())
return;
if (rewardReceived.type.equalsIgnoreCase("credits")) {
int credits = Integer.parseInt(rewardReceived.value);
habbo.giveCredits(credits);
} else if (rewardReceived.type.equalsIgnoreCase("pixels")) {
int pixels = Integer.parseInt(rewardReceived.value);
habbo.givePixels(pixels);
} else if (rewardReceived.type.startsWith("points")) {
int points = Integer.parseInt(rewardReceived.value);
int type = 5;
try {
type = Integer.parseInt(rewardReceived.type.replace("points", ""));
} catch (Exception e) {
}
habbo.givePoints(type, points);
} else if (rewardReceived.type.equalsIgnoreCase("furni")) {
Item baseItem = Emulator.getGameEnvironment().getItemManager().getItem(Integer.parseInt(rewardReceived.value));
if (baseItem != null) {
HabboItem item = Emulator.getGameEnvironment().getItemManager().createItem(habbo.getHabboInfo().getId(), baseItem, 0, 0, "");
if (item != null) {
habbo.getClient().sendResponse(new AddHabboItemComposer(item));
habbo.getClient().getHabbo().getInventory().getItemsComponent().addItem(item);
habbo.getClient().sendResponse(new PurchaseOKComposer(null));
habbo.getClient().sendResponse(new InventoryRefreshComposer());
habbo.getClient().sendResponse(new WiredRewardAlertComposer(WiredRewardAlertComposer.REWARD_RECEIVED_ITEM));
}
}
} else if (rewardReceived.type.equalsIgnoreCase("respect")) {
habbo.getHabboStats().respectPointsReceived += Integer.parseInt(rewardReceived.value);
} else if (rewardReceived.type.equalsIgnoreCase("cata")) {
CatalogItem item = Emulator.getGameEnvironment().getCatalogManager().getCatalogItem(Integer.parseInt(rewardReceived.value));
if (item != null) {
Emulator.getGameEnvironment().getCatalogManager().purchaseItem(null, item, habbo, 1, "", true);
}
habbo.getClient().sendResponse(new WiredRewardAlertComposer(WiredRewardAlertComposer.REWARD_RECEIVED_ITEM));
}
}
} }
String[] data = reward.data.split("#");
if (data.length != 2)
return false;
UserWiredRewardReceived rewardReceived = new UserWiredRewardReceived(habbo, wiredBox, data[0], data[1]);
if (Emulator.getPluginManager().fireEvent(rewardReceived).isCancelled())
return false;
if (rewardReceived.value.isEmpty())
return false;
if (rewardReceived.type.equalsIgnoreCase("credits")) {
habbo.giveCredits(Integer.parseInt(rewardReceived.value));
completeReward(habbo, wiredBox, reward, WiredRewardAlertComposer.REWARD_RECEIVED_ITEM);
return true;
} else if (rewardReceived.type.equalsIgnoreCase("diamonds") || rewardReceived.type.equalsIgnoreCase("diamond")) {
habbo.givePoints(5, Integer.parseInt(rewardReceived.value));
completeReward(habbo, wiredBox, reward, WiredRewardAlertComposer.REWARD_RECEIVED_ITEM);
return true;
} else if (rewardReceived.type.equalsIgnoreCase("pixels")) {
habbo.givePixels(Integer.parseInt(rewardReceived.value));
completeReward(habbo, wiredBox, reward, WiredRewardAlertComposer.REWARD_RECEIVED_ITEM);
return true;
} else if (rewardReceived.type.startsWith("points")) {
int points = Integer.parseInt(rewardReceived.value);
int type = 5;
try {
type = Integer.parseInt(rewardReceived.type.replace("points", ""));
} catch (Exception e) {
}
habbo.givePoints(type, points);
completeReward(habbo, wiredBox, reward, WiredRewardAlertComposer.REWARD_RECEIVED_ITEM);
return true;
} else if (rewardReceived.type.equalsIgnoreCase("furni")) {
Item baseItem = Emulator.getGameEnvironment().getItemManager().getItem(Integer.parseInt(rewardReceived.value));
if (baseItem == null)
return false;
HabboItem item = Emulator.getGameEnvironment().getItemManager().createItem(habbo.getHabboInfo().getId(), baseItem, 0, 0, "");
if (item == null)
return false;
habbo.getClient().sendResponse(new AddHabboItemComposer(item));
habbo.getClient().getHabbo().getInventory().getItemsComponent().addItem(item);
habbo.getClient().sendResponse(new PurchaseOKComposer(null));
habbo.getClient().sendResponse(new InventoryRefreshComposer());
completeReward(habbo, wiredBox, reward, WiredRewardAlertComposer.REWARD_RECEIVED_ITEM);
return true;
} else if (rewardReceived.type.equalsIgnoreCase("respect")) {
habbo.getHabboStats().respectPointsReceived += Integer.parseInt(rewardReceived.value);
completeReward(habbo, wiredBox, reward, WiredRewardAlertComposer.REWARD_RECEIVED_ITEM);
return true;
} else if (rewardReceived.type.equalsIgnoreCase("cata")) {
CatalogItem item = Emulator.getGameEnvironment().getCatalogManager().getCatalogItem(Integer.parseInt(rewardReceived.value));
if (item == null)
return false;
Emulator.getGameEnvironment().getCatalogManager().purchaseItem(null, item, habbo, 1, "", true);
completeReward(habbo, wiredBox, reward, WiredRewardAlertComposer.REWARD_RECEIVED_ITEM);
return true;
}
return false;
} }
public static boolean getReward(Habbo habbo, WiredEffectGiveReward wiredBox) { public static boolean getReward(Habbo habbo, WiredEffectGiveReward wiredBox) {
@@ -433,22 +460,26 @@ public class WiredHandler {
} }
if (!found) { if (!found) {
giveReward(habbo, wiredBox, item); return giveReward(habbo, wiredBox, item);
return true;
} }
} }
habbo.getClient().sendResponse(new WiredRewardAlertComposer(WiredRewardAlertComposer.REWARD_ALL_COLLECTED));
return false;
} else { } else {
int randomNumber = Emulator.getRandom().nextInt(101); int randomNumber = Emulator.getRandom().nextInt(101);
int count = 0; int count = 0;
for (WiredGiveRewardItem item : wiredBox.rewardItems) { for (WiredGiveRewardItem item : wiredBox.rewardItems) {
if (randomNumber >= count && randomNumber <= (count + item.probability)) { if (randomNumber >= count && randomNumber <= (count + item.probability)) {
giveReward(habbo, wiredBox, item); return giveReward(habbo, wiredBox, item);
return true;
} }
count += item.probability; count += item.probability;
} }
habbo.getClient().sendResponse(new WiredRewardAlertComposer(WiredRewardAlertComposer.UNLUCKY_NO_REWARD));
return false;
} }
} }
} }
@@ -771,15 +771,7 @@ public final class WiredManager {
}); });
} }
private static void giveReward(Habbo habbo, WiredEffectGiveReward wiredBox, WiredGiveRewardItem reward) { private static void persistReward(int wiredId, int habboId, int rewardId, int timestamp) {
if (wiredBox.getLimit() > 0)
wiredBox.incrementGiven();
final int wiredId = wiredBox.getId();
final int habboId = habbo.getHabboInfo().getId();
final int rewardId = reward.id;
final int timestamp = Emulator.getIntUnixTimestamp();
Emulator.getThreading().run(() -> { Emulator.getThreading().run(() -> {
try (Connection connection = Emulator.getDatabase().getDataSource().getConnection(); try (Connection connection = Emulator.getDatabase().getDataSource().getConnection();
PreparedStatement statement = connection.prepareStatement("INSERT INTO wired_rewards_given (wired_item, user_id, reward_id, timestamp) VALUES ( ?, ?, ?, ?)")) { PreparedStatement statement = connection.prepareStatement("INSERT INTO wired_rewards_given (wired_item, user_id, reward_id, timestamp) VALUES ( ?, ?, ?, ?)")) {
@@ -792,75 +784,125 @@ public final class WiredManager {
LOGGER.error("Caught SQL exception", e); LOGGER.error("Caught SQL exception", e);
} }
}); });
}
private static void completeReward(Habbo habbo, WiredEffectGiveReward wiredBox, WiredGiveRewardItem reward, int successCode) {
if (wiredBox.getLimit() > 0) {
wiredBox.incrementGiven();
}
persistReward(wiredBox.getId(), habbo.getHabboInfo().getId(), reward.id, Emulator.getIntUnixTimestamp());
habbo.getClient().sendResponse(new WiredRewardAlertComposer(successCode));
}
private static boolean giveReward(Habbo habbo, WiredEffectGiveReward wiredBox, WiredGiveRewardItem reward) {
if (reward.badge) { if (reward.badge) {
UserWiredRewardReceived rewardReceived = new UserWiredRewardReceived(habbo, wiredBox, "badge", reward.data); UserWiredRewardReceived rewardReceived = new UserWiredRewardReceived(habbo, wiredBox, "badge", reward.data);
if (Emulator.getPluginManager().fireEvent(rewardReceived).isCancelled()) if (Emulator.getPluginManager().fireEvent(rewardReceived).isCancelled()) {
return; return false;
}
if (rewardReceived.value.isEmpty()) if (rewardReceived.value.isEmpty()) {
return; return false;
}
if (habbo.getInventory().getBadgesComponent().hasBadge(rewardReceived.value)) if (habbo.getInventory().getBadgesComponent().hasBadge(rewardReceived.value)) {
return; habbo.getClient().sendResponse(new WiredRewardAlertComposer(WiredRewardAlertComposer.REWARD_ALREADY_RECEIVED));
return false;
}
HabboBadge badge = new HabboBadge(0, rewardReceived.value, 0, habbo); HabboBadge badge = new HabboBadge(0, rewardReceived.value, 0, habbo);
Emulator.getThreading().run(badge); Emulator.getThreading().run(badge);
habbo.getInventory().getBadgesComponent().addBadge(badge); habbo.getInventory().getBadgesComponent().addBadge(badge);
habbo.getClient().sendResponse(new AddUserBadgeComposer(badge)); habbo.getClient().sendResponse(new AddUserBadgeComposer(badge));
habbo.getClient().sendResponse(new WiredRewardAlertComposer(WiredRewardAlertComposer.REWARD_RECEIVED_BADGE)); completeReward(habbo, wiredBox, reward, WiredRewardAlertComposer.REWARD_RECEIVED_BADGE);
} else { return true;
String[] data = reward.data.split("#");
if (data.length == 2) {
UserWiredRewardReceived rewardReceived = new UserWiredRewardReceived(habbo, wiredBox, data[0], data[1]);
if (Emulator.getPluginManager().fireEvent(rewardReceived).isCancelled())
return;
if (rewardReceived.value.isEmpty())
return;
if (rewardReceived.type.equalsIgnoreCase("credits")) {
int credits = Integer.parseInt(rewardReceived.value);
habbo.giveCredits(credits);
} else if (rewardReceived.type.equalsIgnoreCase("pixels")) {
int pixels = Integer.parseInt(rewardReceived.value);
habbo.givePixels(pixels);
} else if (rewardReceived.type.startsWith("points")) {
int points = Integer.parseInt(rewardReceived.value);
int type = 5;
try {
type = Integer.parseInt(rewardReceived.type.replace("points", ""));
} catch (Exception e) {
}
habbo.givePoints(type, points);
} else if (rewardReceived.type.equalsIgnoreCase("furni")) {
Item baseItem = Emulator.getGameEnvironment().getItemManager().getItem(Integer.parseInt(rewardReceived.value));
if (baseItem != null) {
HabboItem item = Emulator.getGameEnvironment().getItemManager().createItem(habbo.getHabboInfo().getId(), baseItem, 0, 0, "");
if (item != null) {
habbo.getClient().sendResponse(new AddHabboItemComposer(item));
habbo.getClient().getHabbo().getInventory().getItemsComponent().addItem(item);
habbo.getClient().sendResponse(new PurchaseOKComposer(null));
habbo.getClient().sendResponse(new InventoryRefreshComposer());
habbo.getClient().sendResponse(new WiredRewardAlertComposer(WiredRewardAlertComposer.REWARD_RECEIVED_ITEM));
}
}
} else if (rewardReceived.type.equalsIgnoreCase("respect")) {
habbo.getHabboStats().respectPointsReceived += Integer.parseInt(rewardReceived.value);
} else if (rewardReceived.type.equalsIgnoreCase("cata")) {
CatalogItem item = Emulator.getGameEnvironment().getCatalogManager().getCatalogItem(Integer.parseInt(rewardReceived.value));
if (item != null) {
Emulator.getGameEnvironment().getCatalogManager().purchaseItem(null, item, habbo, 1, "", true);
}
habbo.getClient().sendResponse(new WiredRewardAlertComposer(WiredRewardAlertComposer.REWARD_RECEIVED_ITEM));
}
}
} }
String[] data = reward.data.split("#");
if (data.length != 2) {
return false;
}
UserWiredRewardReceived rewardReceived = new UserWiredRewardReceived(habbo, wiredBox, data[0], data[1]);
if (Emulator.getPluginManager().fireEvent(rewardReceived).isCancelled()) {
return false;
}
if (rewardReceived.value.isEmpty()) {
return false;
}
if (rewardReceived.type.equalsIgnoreCase("credits")) {
habbo.giveCredits(Integer.parseInt(rewardReceived.value));
completeReward(habbo, wiredBox, reward, WiredRewardAlertComposer.REWARD_RECEIVED_ITEM);
return true;
}
if (rewardReceived.type.equalsIgnoreCase("diamonds") || rewardReceived.type.equalsIgnoreCase("diamond")) {
habbo.givePoints(5, Integer.parseInt(rewardReceived.value));
completeReward(habbo, wiredBox, reward, WiredRewardAlertComposer.REWARD_RECEIVED_ITEM);
return true;
}
if (rewardReceived.type.equalsIgnoreCase("pixels")) {
habbo.givePixels(Integer.parseInt(rewardReceived.value));
completeReward(habbo, wiredBox, reward, WiredRewardAlertComposer.REWARD_RECEIVED_ITEM);
return true;
}
if (rewardReceived.type.startsWith("points")) {
int points = Integer.parseInt(rewardReceived.value);
int type = 5;
try {
type = Integer.parseInt(rewardReceived.type.replace("points", ""));
} catch (Exception e) {
}
habbo.givePoints(type, points);
completeReward(habbo, wiredBox, reward, WiredRewardAlertComposer.REWARD_RECEIVED_ITEM);
return true;
}
if (rewardReceived.type.equalsIgnoreCase("furni")) {
Item baseItem = Emulator.getGameEnvironment().getItemManager().getItem(Integer.parseInt(rewardReceived.value));
if (baseItem == null) {
return false;
}
HabboItem item = Emulator.getGameEnvironment().getItemManager().createItem(habbo.getHabboInfo().getId(), baseItem, 0, 0, "");
if (item == null) {
return false;
}
habbo.getClient().sendResponse(new AddHabboItemComposer(item));
habbo.getClient().getHabbo().getInventory().getItemsComponent().addItem(item);
habbo.getClient().sendResponse(new PurchaseOKComposer(null));
habbo.getClient().sendResponse(new InventoryRefreshComposer());
completeReward(habbo, wiredBox, reward, WiredRewardAlertComposer.REWARD_RECEIVED_ITEM);
return true;
}
if (rewardReceived.type.equalsIgnoreCase("respect")) {
habbo.getHabboStats().respectPointsReceived += Integer.parseInt(rewardReceived.value);
completeReward(habbo, wiredBox, reward, WiredRewardAlertComposer.REWARD_RECEIVED_ITEM);
return true;
}
if (rewardReceived.type.equalsIgnoreCase("cata")) {
CatalogItem item = Emulator.getGameEnvironment().getCatalogManager().getCatalogItem(Integer.parseInt(rewardReceived.value));
if (item == null) {
return false;
}
Emulator.getGameEnvironment().getCatalogManager().purchaseItem(null, item, habbo, 1, "", true);
completeReward(habbo, wiredBox, reward, WiredRewardAlertComposer.REWARD_RECEIVED_ITEM);
return true;
}
return false;
} }
public static boolean getReward(Habbo habbo, WiredEffectGiveReward wiredBox) { public static boolean getReward(Habbo habbo, WiredEffectGiveReward wiredBox) {
@@ -927,22 +969,26 @@ public final class WiredManager {
} }
if (!found) { if (!found) {
giveReward(habbo, wiredBox, item); return giveReward(habbo, wiredBox, item);
return true;
} }
} }
habbo.getClient().sendResponse(new WiredRewardAlertComposer(WiredRewardAlertComposer.REWARD_ALL_COLLECTED));
return false;
} else { } else {
int randomNumber = Emulator.getRandom().nextInt(101); int randomNumber = Emulator.getRandom().nextInt(101);
int count = 0; int count = 0;
for (WiredGiveRewardItem item : wiredBox.getRewardItems()) { for (WiredGiveRewardItem item : wiredBox.getRewardItems()) {
if (randomNumber >= count && randomNumber <= (count + item.probability)) { if (randomNumber >= count && randomNumber <= (count + item.probability)) {
giveReward(habbo, wiredBox, item); return giveReward(habbo, wiredBox, item);
return true;
} }
count += item.probability; count += item.probability;
} }
habbo.getClient().sendResponse(new WiredRewardAlertComposer(WiredRewardAlertComposer.UNLUCKY_NO_REWARD));
return false;
} }
} }
} }
@@ -8,7 +8,7 @@ public class MutedWhisperComposer extends MessageComposer {
private final int seconds; private final int seconds;
public MutedWhisperComposer(int seconds) { public MutedWhisperComposer(int seconds) {
this.seconds = seconds; this.seconds = Math.max(0, seconds);
} }
@Override @Override