diff --git a/src/engine/net/client/handlers/BreakFealtyHandler.java b/src/engine/net/client/handlers/BreakFealtyHandler.java index ce83e9f4..787106c4 100644 --- a/src/engine/net/client/handlers/BreakFealtyHandler.java +++ b/src/engine/net/client/handlers/BreakFealtyHandler.java @@ -77,19 +77,30 @@ public class BreakFealtyHandler extends AbstractClientMsgHandler { switch (guild.getGuildState()) { case Sworn: - guild.setNation(null); + guild.setNation(Guild.getErrantNation()); GuildManager.updateAllGuildTags(guild); GuildManager.updateAllGuildBinds(guild, null); + guild.setGuildState(mbEnums.GuildState.Errant); break; case Province: + case Protectorate: guild.setNation(guild); GuildManager.updateAllGuildTags(guild); GuildManager.updateAllGuildBinds(guild, guild.getOwnedCity()); + + boolean isNation = false; + + for (Guild subGuild : guild.getSubGuildList()) + if (subGuild.getOwnedCity() != null) + isNation = true; + + if (isNation) + guild.setGuildState(mbEnums.GuildState.Nation); + else + guild.setGuildState(mbEnums.GuildState.Sovereign); break; } - guild.downgradeGuildState(); - SendGuildEntryMsg msg = new SendGuildEntryMsg(player); dispatch = Dispatch.borrow(player, msg); DispatchManager.dispatchMsgDispatch(dispatch, mbEnums.DispatchChannel.SECONDARY);