diff --git a/Emulator/src/main/java/com/eu/habbo/habbohotel/guilds/Guild.java b/Emulator/src/main/java/com/eu/habbo/habbohotel/guilds/Guild.java index d77f677..4010588 100644 --- a/Emulator/src/main/java/com/eu/habbo/habbohotel/guilds/Guild.java +++ b/Emulator/src/main/java/com/eu/habbo/habbohotel/guilds/Guild.java @@ -135,6 +135,7 @@ public class Guild implements Runnable { public String getOwnerName() { return this.ownerName; } + public void setOwnerName(String ownerName) { this.ownerName = ownerName; } public String getName() { return this.name; diff --git a/Emulator/src/main/java/com/eu/habbo/habbohotel/guilds/GuildManager.java b/Emulator/src/main/java/com/eu/habbo/habbohotel/guilds/GuildManager.java index 2f84660..4aae513 100644 --- a/Emulator/src/main/java/com/eu/habbo/habbohotel/guilds/GuildManager.java +++ b/Emulator/src/main/java/com/eu/habbo/habbohotel/guilds/GuildManager.java @@ -503,7 +503,26 @@ public class GuildManager { return guilds; } + public List getOwnedGuilds(int userId) { + List guilds = new ArrayList(); + try (Connection connection = Emulator.getDatabase().getDataSource().getConnection(); PreparedStatement statement = connection.prepareStatement("SELECT id FROM guilds WHERE user_id = ?")) { + statement.setInt(1, userId); + try (ResultSet set = statement.executeQuery()) { + while (set.next()) { + Guild guild = getGuild(set.getInt("id")); + + if (guild != null) { + guilds.add(guild); + } + } + } + } catch (SQLException e) { + LOGGER.error("Caught SQL exception", e); + } + + return guilds; + } public List getAllGuilds() { List guilds = new ArrayList(); diff --git a/Emulator/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectResetTimers.java b/Emulator/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectResetTimers.java index 826b8d3..eef5926 100644 --- a/Emulator/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectResetTimers.java +++ b/Emulator/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectResetTimers.java @@ -83,7 +83,7 @@ public class WiredEffectResetTimers extends InteractionWiredEffect { @Override public String getWiredData() { return WiredHandler.getGsonBuilder().create().toJson(new JsonData( - this.delay + this.getDelay() )); } diff --git a/Emulator/src/main/java/com/eu/habbo/messages/incoming/guilds/GuildRemoveMemberEvent.java b/Emulator/src/main/java/com/eu/habbo/messages/incoming/guilds/GuildRemoveMemberEvent.java index dcde989..16ee969 100644 --- a/Emulator/src/main/java/com/eu/habbo/messages/incoming/guilds/GuildRemoveMemberEvent.java +++ b/Emulator/src/main/java/com/eu/habbo/messages/incoming/guilds/GuildRemoveMemberEvent.java @@ -21,46 +21,56 @@ public class GuildRemoveMemberEvent extends MessageHandler { Guild guild = Emulator.getGameEnvironment().getGuildManager().getGuild(guildId); + if(guild == null) { + return; + } - if (guild != null) { - GuildMember member = Emulator.getGameEnvironment().getGuildManager().getGuildMember(guild, this.client.getHabbo()); - if (userId == this.client.getHabbo().getHabboInfo().getId() || guild.getOwnerId() == this.client.getHabbo().getHabboInfo().getId() || member.getRank().equals(GuildRank.OWNER) || member.getRank().equals(GuildRank.ADMIN) || this.client.getHabbo().hasPermission(Permission.ACC_GUILD_ADMIN)) { - Habbo habbo = Emulator.getGameEnvironment().getHabboManager().getHabbo(userId); - GuildRemovedMemberEvent removedMemberEvent = new GuildRemovedMemberEvent(guild, userId, habbo); - Emulator.getPluginManager().fireEvent(removedMemberEvent); - if (removedMemberEvent.isCancelled()) - return; + GuildMember member = Emulator.getGameEnvironment().getGuildManager().getGuildMember(guild, this.client.getHabbo()); - Emulator.getGameEnvironment().getGuildManager().removeMember(guild, userId); - guild.decreaseMemberCount(); + if(member == null) { + return; + } - if (userId != this.client.getHabbo().getHabboInfo().getId()) { - this.client.sendResponse(new GuildRefreshMembersListComposer(guild)); - } + if(userId == guild.getOwnerId()) { + return; + } - Room room = Emulator.getGameEnvironment().getRoomManager().loadRoom(guild.getRoomId()); + if (userId == this.client.getHabbo().getHabboInfo().getId() || guild.getOwnerId() == this.client.getHabbo().getHabboInfo().getId() || member.getRank().equals(GuildRank.OWNER) || member.getRank().equals(GuildRank.ADMIN) || this.client.getHabbo().hasPermission(Permission.ACC_GUILD_ADMIN)) { + Habbo habbo = Emulator.getGameEnvironment().getHabboManager().getHabbo(userId); + GuildRemovedMemberEvent removedMemberEvent = new GuildRemovedMemberEvent(guild, userId, habbo); + Emulator.getPluginManager().fireEvent(removedMemberEvent); + if (removedMemberEvent.isCancelled()) + return; - if (habbo != null) { - habbo.getHabboStats().removeGuild(guild.getId()); - if (habbo.getHabboStats().guild == guildId) - habbo.getHabboStats().guild = 0; + Emulator.getGameEnvironment().getGuildManager().removeMember(guild, userId); + guild.decreaseMemberCount(); - if (room != null) { - if (habbo.getHabboInfo().getCurrentRoom() != null && habbo.getRoomUnit() != null) - habbo.getHabboInfo().getCurrentRoom().sendComposer(new GuildFavoriteRoomUserUpdateComposer(habbo.getRoomUnit(), null).compose()); - if (habbo.getHabboInfo().getCurrentRoom() == room) - room.refreshRightsForHabbo(habbo); - } + if (userId != this.client.getHabbo().getHabboInfo().getId()) { + this.client.sendResponse(new GuildRefreshMembersListComposer(guild)); + } - habbo.getClient().sendResponse(new GuildInfoComposer(guild, habbo.getClient(), false, null)); - } + Room room = Emulator.getGameEnvironment().getRoomManager().loadRoom(guild.getRoomId()); + + if (habbo != null) { + habbo.getHabboStats().removeGuild(guild.getId()); + if (habbo.getHabboStats().guild == guildId) + habbo.getHabboStats().guild = 0; if (room != null) { - if (room.getGuildId() == guildId) { - room.ejectUserFurni(userId); - } + if (habbo.getHabboInfo().getCurrentRoom() != null && habbo.getRoomUnit() != null) + habbo.getHabboInfo().getCurrentRoom().sendComposer(new GuildFavoriteRoomUserUpdateComposer(habbo.getRoomUnit(), null).compose()); + if (habbo.getHabboInfo().getCurrentRoom() == room) + room.refreshRightsForHabbo(habbo); + } + + habbo.getClient().sendResponse(new GuildInfoComposer(guild, habbo.getClient(), false, null)); + } + + if (room != null) { + if (room.getGuildId() == guildId) { + room.ejectUserFurni(userId); } } } } -} +} \ No newline at end of file diff --git a/Emulator/src/main/java/com/eu/habbo/messages/incoming/users/ConfirmChangeNameEvent.java b/Emulator/src/main/java/com/eu/habbo/messages/incoming/users/ConfirmChangeNameEvent.java index 03e0214..16614b7 100644 --- a/Emulator/src/main/java/com/eu/habbo/messages/incoming/users/ConfirmChangeNameEvent.java +++ b/Emulator/src/main/java/com/eu/habbo/messages/incoming/users/ConfirmChangeNameEvent.java @@ -1,6 +1,7 @@ package com.eu.habbo.messages.incoming.users; import com.eu.habbo.Emulator; +import com.eu.habbo.habbohotel.guilds.Guild; import com.eu.habbo.habbohotel.rooms.Room; import com.eu.habbo.habbohotel.users.HabboInfo; import com.eu.habbo.habbohotel.users.HabboManager; @@ -62,6 +63,10 @@ public class ConfirmChangeNameEvent extends MessageHandler { room.save(); } + for (Guild guild : Emulator.getGameEnvironment().getGuildManager().getOwnedGuilds(this.client.getHabbo().getHabboInfo().getId())) { + guild.setOwnerName(name); + } + synchronized (changingUsernames) { changingUsernames.remove(name); } diff --git a/Latest_Compiled_Version/Habbo-3.6.0-jar-with-dependencies.jar b/Latest_Compiled_Version/Habbo-3.6.0-jar-with-dependencies.jar index 3b18bc3..0160aac 100644 Binary files a/Latest_Compiled_Version/Habbo-3.6.0-jar-with-dependencies.jar and b/Latest_Compiled_Version/Habbo-3.6.0-jar-with-dependencies.jar differ