|
@@ -1,151 +0,0 @@
|
|
|
-/*
|
|
|
- * Copyright © 2004-2023 L2J Server
|
|
|
- *
|
|
|
- * This file is part of L2J Server.
|
|
|
- *
|
|
|
- * L2J Server 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.
|
|
|
- *
|
|
|
- * L2J Server 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 com.l2jserver.gameserver.model.actor.instance;
|
|
|
-
|
|
|
-import java.util.StringTokenizer;
|
|
|
-
|
|
|
-import org.slf4j.Logger;
|
|
|
-import org.slf4j.LoggerFactory;
|
|
|
-
|
|
|
-import com.l2jserver.gameserver.SevenSigns;
|
|
|
-import com.l2jserver.gameserver.data.sql.impl.TeleportLocationTable;
|
|
|
-import com.l2jserver.gameserver.enums.InstanceType;
|
|
|
-import com.l2jserver.gameserver.model.L2TeleportLocation;
|
|
|
-import com.l2jserver.gameserver.model.actor.L2Npc;
|
|
|
-import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
|
|
|
-import com.l2jserver.gameserver.network.SystemMessageId;
|
|
|
-import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
|
|
|
-import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
|
|
|
-
|
|
|
-public class L2DungeonGatekeeperInstance extends L2Npc {
|
|
|
- private static final Logger LOG = LoggerFactory.getLogger(L2DungeonGatekeeperInstance.class);
|
|
|
-
|
|
|
- public L2DungeonGatekeeperInstance(L2NpcTemplate template) {
|
|
|
- super(template);
|
|
|
- setInstanceType(InstanceType.L2DungeonGatekeeperInstance);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onBypassFeedback(L2PcInstance player, String command) {
|
|
|
- player.sendPacket(ActionFailed.STATIC_PACKET);
|
|
|
-
|
|
|
- StringTokenizer st = new StringTokenizer(command, " ");
|
|
|
- String actualCommand = st.nextToken(); // Get actual command
|
|
|
-
|
|
|
- String filename = SevenSigns.SEVEN_SIGNS_HTML_PATH;
|
|
|
- int sealAvariceOwner = SevenSigns.getInstance().getSealOwner(SevenSigns.SEAL_AVARICE);
|
|
|
- int sealGnosisOwner = SevenSigns.getInstance().getSealOwner(SevenSigns.SEAL_GNOSIS);
|
|
|
- int playerCabal = SevenSigns.getInstance().getPlayerCabal(player.getObjectId());
|
|
|
- boolean isSealValidationPeriod = SevenSigns.getInstance().isSealValidationPeriod();
|
|
|
- int compWinner = SevenSigns.getInstance().getCabalHighestScore();
|
|
|
-
|
|
|
- if (actualCommand.startsWith("necro")) {
|
|
|
- boolean canPort = true;
|
|
|
- if (isSealValidationPeriod) {
|
|
|
- if ((compWinner == SevenSigns.CABAL_DAWN) && ((playerCabal != SevenSigns.CABAL_DAWN) || (sealAvariceOwner != SevenSigns.CABAL_DAWN))) {
|
|
|
- player.sendPacket(SystemMessageId.CAN_BE_USED_BY_DAWN);
|
|
|
- canPort = false;
|
|
|
- } else if ((compWinner == SevenSigns.CABAL_DUSK) && ((playerCabal != SevenSigns.CABAL_DUSK) || (sealAvariceOwner != SevenSigns.CABAL_DUSK))) {
|
|
|
- player.sendPacket(SystemMessageId.CAN_BE_USED_BY_DUSK);
|
|
|
- canPort = false;
|
|
|
- } else if ((compWinner == SevenSigns.CABAL_NULL) && (playerCabal != SevenSigns.CABAL_NULL)) {
|
|
|
- canPort = true;
|
|
|
- } else if (playerCabal == SevenSigns.CABAL_NULL) {
|
|
|
- canPort = false;
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (playerCabal == SevenSigns.CABAL_NULL) {
|
|
|
- canPort = false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (!canPort) {
|
|
|
- final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
|
|
|
- filename += "necro_no.htm";
|
|
|
- html.setFile(player.getHtmlPrefix(), filename);
|
|
|
- player.sendPacket(html);
|
|
|
- } else {
|
|
|
- doTeleport(player, Integer.parseInt(st.nextToken()));
|
|
|
- player.setIsIn7sDungeon(true);
|
|
|
- }
|
|
|
- } else if (actualCommand.startsWith("cata")) {
|
|
|
- boolean canPort = true;
|
|
|
- if (isSealValidationPeriod) {
|
|
|
- if ((compWinner == SevenSigns.CABAL_DAWN) && ((playerCabal != SevenSigns.CABAL_DAWN) || (sealGnosisOwner != SevenSigns.CABAL_DAWN))) {
|
|
|
- player.sendPacket(SystemMessageId.CAN_BE_USED_BY_DAWN);
|
|
|
- canPort = false;
|
|
|
- } else if ((compWinner == SevenSigns.CABAL_DUSK) && ((playerCabal != SevenSigns.CABAL_DUSK) || (sealGnosisOwner != SevenSigns.CABAL_DUSK))) {
|
|
|
- player.sendPacket(SystemMessageId.CAN_BE_USED_BY_DUSK);
|
|
|
- canPort = false;
|
|
|
- } else if ((compWinner == SevenSigns.CABAL_NULL) && (playerCabal != SevenSigns.CABAL_NULL)) {
|
|
|
- canPort = true;
|
|
|
- } else if (playerCabal == SevenSigns.CABAL_NULL) {
|
|
|
- canPort = false;
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (playerCabal == SevenSigns.CABAL_NULL) {
|
|
|
- canPort = false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (!canPort) {
|
|
|
- final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
|
|
|
- filename += "cata_no.htm";
|
|
|
- html.setFile(player.getHtmlPrefix(), filename);
|
|
|
- player.sendPacket(html);
|
|
|
- } else {
|
|
|
- doTeleport(player, Integer.parseInt(st.nextToken()));
|
|
|
- player.setIsIn7sDungeon(true);
|
|
|
- }
|
|
|
- } else if (actualCommand.startsWith("exit")) {
|
|
|
- doTeleport(player, Integer.parseInt(st.nextToken()));
|
|
|
- player.setIsIn7sDungeon(false);
|
|
|
- } else if (actualCommand.startsWith("goto")) {
|
|
|
- doTeleport(player, Integer.parseInt(st.nextToken()));
|
|
|
- } else {
|
|
|
- super.onBypassFeedback(player, command);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- private void doTeleport(L2PcInstance player, int val) {
|
|
|
- L2TeleportLocation list = TeleportLocationTable.getInstance().getTemplate(val);
|
|
|
- if (list != null) {
|
|
|
- if (player.isAlikeDead()) {
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- player.teleToLocation(list.getLocX(), list.getLocY(), list.getLocZ(), true);
|
|
|
- } else {
|
|
|
- LOG.warn("No teleport destination with id: {}", val);
|
|
|
- }
|
|
|
-
|
|
|
- player.sendPacket(ActionFailed.STATIC_PACKET);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public String getHtmlPath(int npcId, int val) {
|
|
|
- String pom;
|
|
|
- if (val == 0) {
|
|
|
- pom = "" + npcId;
|
|
|
- } else {
|
|
|
- pom = npcId + "-" + val;
|
|
|
- }
|
|
|
- return "data/html/teleporter/" + pom + ".htm";
|
|
|
- }
|
|
|
-}
|