diff --git a/src/main/java/com/eu/habbo/messages/incoming/guilds/forums/GuildForumModerateThreadEvent.java b/src/main/java/com/eu/habbo/messages/incoming/guilds/forums/GuildForumModerateThreadEvent.java index dbb55393..6fdea270 100644 --- a/src/main/java/com/eu/habbo/messages/incoming/guilds/forums/GuildForumModerateThreadEvent.java +++ b/src/main/java/com/eu/habbo/messages/incoming/guilds/forums/GuildForumModerateThreadEvent.java @@ -10,6 +10,7 @@ import com.eu.habbo.messages.incoming.MessageHandler; import com.eu.habbo.messages.outgoing.generic.alerts.BubbleAlertComposer; import com.eu.habbo.messages.outgoing.generic.alerts.BubbleAlertKeys; import com.eu.habbo.messages.outgoing.guilds.forums.GuildForumThreadMessagesComposer; +import com.eu.habbo.messages.outgoing.guilds.forums.GuildForumThreadsComposer; import com.eu.habbo.messages.outgoing.handshake.ConnectionErrorComposer; @@ -51,7 +52,7 @@ public class GuildForumModerateThreadEvent extends MessageHandler { thread.setState(ForumThreadState.fromValue(state)); thread.setAdminId(this.client.getHabbo().getHabboInfo().getId()); - Emulator.getThreading().run(thread); + thread.run(); switch (state) { case 10: @@ -64,5 +65,6 @@ public class GuildForumModerateThreadEvent extends MessageHandler { } this.client.sendResponse(new GuildForumThreadMessagesComposer(thread)); + this.client.sendResponse(new GuildForumThreadsComposer(guild, 0)); } } \ No newline at end of file diff --git a/src/main/java/com/eu/habbo/messages/incoming/guilds/forums/GuildForumThreadUpdateEvent.java b/src/main/java/com/eu/habbo/messages/incoming/guilds/forums/GuildForumThreadUpdateEvent.java index e2004257..a73b9b27 100644 --- a/src/main/java/com/eu/habbo/messages/incoming/guilds/forums/GuildForumThreadUpdateEvent.java +++ b/src/main/java/com/eu/habbo/messages/incoming/guilds/forums/GuildForumThreadUpdateEvent.java @@ -7,6 +7,8 @@ import com.eu.habbo.habbohotel.guilds.GuildRank; import com.eu.habbo.habbohotel.guilds.SettingsState; import com.eu.habbo.habbohotel.guilds.forums.ForumThread; import com.eu.habbo.messages.incoming.MessageHandler; +import com.eu.habbo.messages.outgoing.generic.alerts.BubbleAlertComposer; +import com.eu.habbo.messages.outgoing.generic.alerts.BubbleAlertKeys; import com.eu.habbo.messages.outgoing.guilds.forums.GuildForumThreadsComposer; import com.eu.habbo.messages.outgoing.guilds.forums.ThreadUpdatedMessageComposer; import com.eu.habbo.messages.outgoing.handshake.ConnectionErrorComposer; @@ -42,9 +44,24 @@ public class GuildForumThreadUpdateEvent extends MessageHandler { return; } + boolean pinChanged = isPinned != thread.isPinned(); + if (pinChanged) { + this.client.sendResponse(new BubbleAlertComposer(isPinned ? BubbleAlertKeys.FORUMS_THREAD_PINNED.key : BubbleAlertKeys.FORUMS_THREAD_UNPINNED.key).compose()); + } + + if (isLocked != thread.isLocked()) { + this.client.sendResponse(new BubbleAlertComposer(isLocked ? BubbleAlertKeys.FORUMS_THREAD_LOCKED.key : BubbleAlertKeys.FORUMS_THREAD_UNLOCKED.key).compose()); + } + + thread.setPinned(isPinned); + thread.setLocked(isLocked); + + thread.run(); + + this.client.sendResponse(new ThreadUpdatedMessageComposer(guild, thread, this.client.getHabbo(), isPinned, isLocked)); - if (isPinned) { + if (pinChanged) { this.client.sendResponse(new GuildForumThreadsComposer(guild, 0)); } } diff --git a/src/main/java/com/eu/habbo/messages/outgoing/guilds/forums/ThreadUpdatedMessageComposer.java b/src/main/java/com/eu/habbo/messages/outgoing/guilds/forums/ThreadUpdatedMessageComposer.java index 4d2453ef..4476859a 100644 --- a/src/main/java/com/eu/habbo/messages/outgoing/guilds/forums/ThreadUpdatedMessageComposer.java +++ b/src/main/java/com/eu/habbo/messages/outgoing/guilds/forums/ThreadUpdatedMessageComposer.java @@ -1,15 +1,11 @@ package com.eu.habbo.messages.outgoing.guilds.forums; -import com.eu.habbo.Emulator; import com.eu.habbo.habbohotel.guilds.Guild; -import com.eu.habbo.habbohotel.guilds.GuildRank; import com.eu.habbo.habbohotel.guilds.forums.ForumThread; import com.eu.habbo.habbohotel.users.Habbo; import com.eu.habbo.messages.ServerMessage; import com.eu.habbo.messages.outgoing.MessageComposer; import com.eu.habbo.messages.outgoing.Outgoing; -import com.eu.habbo.messages.outgoing.generic.alerts.BubbleAlertComposer; -import com.eu.habbo.messages.outgoing.generic.alerts.BubbleAlertKeys; public class ThreadUpdatedMessageComposer extends MessageComposer { @@ -33,30 +29,10 @@ public class ThreadUpdatedMessageComposer extends MessageComposer { @Override public ServerMessage compose() { - if (isPinned != thread.isPinned()) { - this.habbo.getClient().sendResponse(new BubbleAlertComposer(isPinned ? BubbleAlertKeys.FORUMS_THREAD_PINNED.key : BubbleAlertKeys.FORUMS_THREAD_UNPINNED.key).compose()); - } + this.response.init(Outgoing.ThreadUpdateMessageComposer); + this.response.appendInt(this.thread.getGuildId()); + this.thread.serialize(this.response); - if (isLocked != thread.isLocked()) { - this.habbo.getClient().sendResponse(new BubbleAlertComposer(isLocked ? BubbleAlertKeys.FORUMS_THREAD_LOCKED.key : BubbleAlertKeys.FORUMS_THREAD_UNLOCKED.key).compose()); - } - - if (this.habbo.getHabboInfo().getId() != guild.getOwnerId() || - guild.canModForum().state == 2 && (Emulator.getGameEnvironment().getGuildManager().getGuildMember(guild, habbo).getRank() == GuildRank.OWNER - || Emulator.getGameEnvironment().getGuildManager().getGuildMember(guild, habbo).getRank() == GuildRank.ADMIN) - || this.habbo.hasPermission("acc_modtool_ticket_q")) { - this.thread.setPinned(isPinned); - this.thread.setLocked(isLocked); - - Emulator.getThreading().run(this.thread); - - this.response.init(Outgoing.ThreadUpdateMessageComposer); - this.response.appendInt(this.thread.getGuildId()); - this.thread.serialize(this.response); - - return this.response; - } - - return null; + return this.response; } } \ No newline at end of file