/*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that
* it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If
* not, see <http://www.gnu.org/licenses/>.
*/
package silentium.gameserver.model.actor.instance;
import silentium.gameserver.data.html.StaticHtmPath;
import silentium.gameserver.instancemanager.ClanHallManager;
import silentium.gameserver.model.L2Clan;
import silentium.gameserver.model.entity.ClanHall;
import silentium.gameserver.network.serverpackets.ActionFailed;
import silentium.gameserver.network.serverpackets.NpcHtmlMessage;
import silentium.gameserver.tables.ClanTable;
import silentium.gameserver.templates.chars.L2NpcTemplate;
public class L2ClanHallDoormenInstance extends L2DoormenInstance
{
private ClanHall _clanHall = null;
public L2ClanHallDoormenInstance(int objectID, L2NpcTemplate template)
{
super(objectID, template);
}
@Override
public void showChatWindow(L2PcInstance player)
{
player.sendPacket(ActionFailed.STATIC_PACKET);
NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
if (getClanHall() != null)
{
L2Clan owner = ClanTable.getInstance().getClan(getClanHall().getOwnerId());
if (isOwnerClan(player))
{
html.setFile(StaticHtmPath.ClanHallDoormenHtmPath + "doormen.htm", player);
html.replace("%clanname%", owner.getName());
}
else
{
if (owner != null && owner.getLeader() != null)
{
html.setFile(StaticHtmPath.ClanHallDoormenHtmPath + "doormen-no.htm", player);
html.replace("%leadername%", owner.getLeaderName());
html.replace("%clanname%", owner.getName());
}
else
{
html.setFile(StaticHtmPath.ClanHallDoormenHtmPath + "emptyowner.htm", player);
html.replace("%hallname%", getClanHall().getName());
}
}
}
else
return;
html.replace("%objectId%", String.valueOf(getObjectId()));
player.sendPacket(html);
}
@Override
protected final void openDoors(L2PcInstance player, String command)
{
getClanHall().openCloseDoors(true);
NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(StaticHtmPath.ClanHallDoormenHtmPath + "doormen-opened.htm", player);
html.replace("%objectId%", String.valueOf(getObjectId()));
player.sendPacket(html);
}
@Override
protected final void closeDoors(L2PcInstance player, String command)
{
getClanHall().openCloseDoors(false);
NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(StaticHtmPath.ClanHallDoormenHtmPath + "doormen-closed.htm", player);
html.replace("%objectId%", String.valueOf(getObjectId()));
player.sendPacket(html);
}
private final ClanHall getClanHall()
{
if (_clanHall == null)
_clanHall = ClanHallManager.getInstance().getNearbyClanHall(getX(), getY(), 500);
return _clanHall;
}
@Override
protected final boolean isOwnerClan(L2PcInstance player)
{
if (player.getClan() != null && getClanHall() != null)
{
if (player.getClanId() == getClanHall().getOwnerId())
return true;
}
return false;
}
}