소스 검색

Fix Siegable Clan Halls lose permisions on server restart

Reporeted by : @u3games
Zealar 10 년 전
부모
커밋
d5a541f019

+ 1 - 1
L2J_Server/java/com/l2jserver/gameserver/idfactory/IdFactory.java

@@ -268,7 +268,7 @@ public abstract class IdFactory
 			cleanCount += stmt.executeUpdate("DELETE FROM clan_subpledges WHERE clan_subpledges.clan_id NOT IN (SELECT clan_id FROM clan_data);");
 			cleanCount += stmt.executeUpdate("DELETE FROM clan_wars WHERE clan_wars.clan1 NOT IN (SELECT clan_id FROM clan_data);");
 			cleanCount += stmt.executeUpdate("DELETE FROM clan_wars WHERE clan_wars.clan2 NOT IN (SELECT clan_id FROM clan_data);");
-			cleanCount += stmt.executeUpdate("DELETE FROM clanhall_functions WHERE clanhall_functions.hall_id NOT IN (SELECT id FROM clanhall WHERE ownerId <> 0);");
+			cleanCount += stmt.executeUpdate("DELETE FROM clanhall_functions WHERE clanhall_functions.hall_id NOT IN (SELECT id FROM clanhall WHERE ownerId <> 0 union all SELECT clanHallId FROM siegable_clanhall WHERE ownerId <> 0);");
 			cleanCount += stmt.executeUpdate("DELETE FROM siege_clans WHERE siege_clans.clan_id NOT IN (SELECT clan_id FROM clan_data);");
 			cleanCount += stmt.executeUpdate("DELETE FROM clan_notices WHERE clan_notices.clan_id NOT IN (SELECT clan_id FROM clan_data);");
 			cleanCount += stmt.executeUpdate("DELETE FROM auction_bid WHERE auction_bid.bidderId NOT IN (SELECT clan_id FROM clan_data);");

+ 6 - 0
L2J_Server/java/com/l2jserver/gameserver/model/entity/clanhall/SiegableHall.java

@@ -92,6 +92,12 @@ public final class SiegableHall extends ClanHall
 		{
 			_nextSiege.setTimeInMillis(nextSiege);
 		}
+		
+		if (getOwnerId() != 0)
+		{
+			_isFree = false;
+			loadFunctions();
+		}
 	}
 	
 	public void spawnDoor()