|
@@ -14,20 +14,7 @@
|
|
|
*/
|
|
|
package com.l2jserver.gameserver.model.actor.instance;
|
|
|
|
|
|
-import java.util.StringTokenizer;
|
|
|
-
|
|
|
-import com.l2jserver.gameserver.instancemanager.CastleManager;
|
|
|
import com.l2jserver.gameserver.instancemanager.CastleManorManager;
|
|
|
-import com.l2jserver.gameserver.network.SystemMessageId;
|
|
|
-import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
|
|
|
-import com.l2jserver.gameserver.network.serverpackets.BuyListSeed;
|
|
|
-import com.l2jserver.gameserver.network.serverpackets.ExShowCropInfo;
|
|
|
-import com.l2jserver.gameserver.network.serverpackets.ExShowManorDefaultInfo;
|
|
|
-import com.l2jserver.gameserver.network.serverpackets.ExShowProcureCropDetail;
|
|
|
-import com.l2jserver.gameserver.network.serverpackets.ExShowSeedInfo;
|
|
|
-import com.l2jserver.gameserver.network.serverpackets.ExShowSellCropList;
|
|
|
-import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
|
|
|
-import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
|
|
|
import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;
|
|
|
|
|
|
public class L2ManorManagerInstance extends L2MerchantInstance
|
|
@@ -38,115 +25,23 @@ public class L2ManorManagerInstance extends L2MerchantInstance
|
|
|
setInstanceType(InstanceType.L2ManorManagerInstance);
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public void onBypassFeedback(L2PcInstance player, String command)
|
|
|
- {
|
|
|
- // BypassValidation Exploit plug.
|
|
|
- if (player.getLastFolkNPC() == null || player.getLastFolkNPC().getObjectId() != getObjectId())
|
|
|
- return;
|
|
|
-
|
|
|
- if (command.startsWith("manor_menu_select"))
|
|
|
- {
|
|
|
- if (CastleManorManager.getInstance().isUnderMaintenance())
|
|
|
- {
|
|
|
- player.sendPacket(ActionFailed.STATIC_PACKET);
|
|
|
- player.sendPacket(new SystemMessage(SystemMessageId.THE_MANOR_SYSTEM_IS_CURRENTLY_UNDER_MAINTENANCE));
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- String params = command.substring(command.indexOf("?")+1);
|
|
|
- StringTokenizer st = new StringTokenizer(params, "&");
|
|
|
- int ask = Integer.parseInt(st.nextToken().split("=")[1]);
|
|
|
- int state = Integer.parseInt(st.nextToken().split("=")[1]);
|
|
|
- int time = Integer.parseInt(st.nextToken().split("=")[1]);
|
|
|
-
|
|
|
- int castleId;
|
|
|
- if (state == -1) // info for current manor
|
|
|
- castleId = getCastle().getCastleId();
|
|
|
- else // info for requested manor
|
|
|
- castleId = state;
|
|
|
-
|
|
|
- switch (ask)
|
|
|
- {
|
|
|
- case 1: // Seed purchase
|
|
|
- if (castleId != getCastle().getCastleId())
|
|
|
- player.sendPacket(new SystemMessage(SystemMessageId.HERE_YOU_CAN_BUY_ONLY_SEEDS_OF_S1_MANOR));
|
|
|
- else
|
|
|
- player.sendPacket(new BuyListSeed(player.getAdena(), castleId, getCastle().getSeedProduction(CastleManorManager.PERIOD_CURRENT)));
|
|
|
- break;
|
|
|
- case 2: // Crop sales
|
|
|
- player.sendPacket(new ExShowSellCropList(player, castleId, getCastle().getCropProcure(CastleManorManager.PERIOD_CURRENT)));
|
|
|
- break;
|
|
|
- case 3: // Current seeds (Manor info)
|
|
|
- if (time == 1 && !CastleManager.getInstance().getCastleById(castleId).isNextPeriodApproved())
|
|
|
- player.sendPacket(new ExShowSeedInfo(castleId, null));
|
|
|
- else
|
|
|
- player.sendPacket(new ExShowSeedInfo(castleId, CastleManager.getInstance().getCastleById(castleId).getSeedProduction(time)));
|
|
|
- break;
|
|
|
- case 4: // Current crops (Manor info)
|
|
|
- if (time == 1 && !CastleManager.getInstance().getCastleById(castleId).isNextPeriodApproved())
|
|
|
- player.sendPacket(new ExShowCropInfo(castleId, null));
|
|
|
- else
|
|
|
- player.sendPacket(new ExShowCropInfo(castleId, CastleManager.getInstance().getCastleById(castleId).getCropProcure(time)));
|
|
|
- break;
|
|
|
- case 5: // Basic info (Manor info)
|
|
|
- player.sendPacket(new ExShowManorDefaultInfo());
|
|
|
- break;
|
|
|
- case 6: // Buy harvester
|
|
|
- showBuyWindow(player, Integer.parseInt("3" + getNpcId()));
|
|
|
- break;
|
|
|
- case 9: // Edit sales (Crop sales)
|
|
|
- player.sendPacket(new ExShowProcureCropDetail(state));
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- else if (command.startsWith("help"))
|
|
|
- {
|
|
|
- StringTokenizer st = new StringTokenizer(command, " ");
|
|
|
- st.nextToken(); // discard first
|
|
|
- String filename = "manor_client_help00" + st.nextToken() + ".htm";
|
|
|
- showChatWindow(player, filename);
|
|
|
- }
|
|
|
- else
|
|
|
- super.onBypassFeedback(player, command);
|
|
|
- }
|
|
|
-
|
|
|
- public String getHtmlPath ()
|
|
|
- {
|
|
|
- return "data/html/manormanager/";
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public String getHtmlPath(int npcId, int val)
|
|
|
- {
|
|
|
- return "data/html/manormanager/manager.htm";
|
|
|
- }
|
|
|
-
|
|
|
@Override
|
|
|
public void showChatWindow(L2PcInstance player)
|
|
|
{
|
|
|
if (CastleManorManager.getInstance().isDisabled())
|
|
|
{
|
|
|
- NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
|
|
|
- html.setFile(player.getHtmlPrefix(), "data/html/npcdefault.htm");
|
|
|
- html.replace("%objectId%", String.valueOf(getObjectId()));
|
|
|
- html.replace("%npcname%", getName());
|
|
|
- player.sendPacket(html);
|
|
|
+ showChatWindow(player, "data/html/npcdefault.htm");
|
|
|
+ return;
|
|
|
}
|
|
|
- else if (!player.isGM() && getCastle() != null && getCastle().getCastleId() > 0 && player.getClan() != null && getCastle().getOwnerId() == player.getClanId() && player.isClanLeader())
|
|
|
- showChatWindow(player, "manager-lord.htm");
|
|
|
- else
|
|
|
- showChatWindow(player, "manager.htm");
|
|
|
- }
|
|
|
|
|
|
- @Override
|
|
|
- public void showChatWindow(L2PcInstance player, String filename)
|
|
|
- {
|
|
|
- NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
|
|
|
- html.setFile(player.getHtmlPrefix(), getHtmlPath() + filename);
|
|
|
- html.replace("%objectId%", String.valueOf(getObjectId()));
|
|
|
- html.replace("%npcId%", String.valueOf(getNpcId()));
|
|
|
- html.replace("%npcname%", getName());
|
|
|
- player.sendPacket(html);
|
|
|
+ if (!player.isGM()
|
|
|
+ && getCastle() != null
|
|
|
+ && getCastle().getCastleId() > 0
|
|
|
+ && player.getClan() != null
|
|
|
+ && getCastle().getOwnerId() == player.getClanId()
|
|
|
+ && player.isClanLeader())
|
|
|
+ showChatWindow(player, "data/html/manormanager/manager-lord.htm");
|
|
|
+ else
|
|
|
+ showChatWindow(player, "data/html/manormanager/manager.htm");
|
|
|
}
|
|
|
}
|