/* * Copyright (C) 2004-2014 L2J DataPack * * This file is part of L2J DataPack. * * L2J DataPack 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 DataPack 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 . */ package handlers.communityboard; import java.util.List; import com.l2jserver.gameserver.cache.HtmCache; import com.l2jserver.gameserver.datatables.ClanTable; import com.l2jserver.gameserver.handler.CommunityBoardHandler; import com.l2jserver.gameserver.handler.IWriteBoardHandler; import com.l2jserver.gameserver.instancemanager.CastleManager; import com.l2jserver.gameserver.model.L2Clan; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.model.entity.Castle; /** * Region board. * @author Zoey76 */ public class RegionBoard implements IWriteBoardHandler { // Region data // @formatter:off private static final int[] REGIONS = { 1049, 1052, 1053, 1057, 1060, 1059, 1248, 1247, 1056 }; // @formatter:on private static final String[] COMMANDS = { "_bbsloc" }; @Override public String[] getCommunityBoardCommands() { return COMMANDS; } @Override public boolean parseCommunityBoardCommand(String command, L2PcInstance activeChar) { if (command.equals("_bbsloc")) { CommunityBoardHandler.getInstance().addBypass(activeChar, "Region", command); final String list = HtmCache.getInstance().getHtm(activeChar.getHtmlPrefix(), "data/html/CommunityBoard/region_list.html"); final StringBuilder sb = new StringBuilder(); final List castles = CastleManager.getInstance().getCastles(); for (int i = 0; i < REGIONS.length; i++) { final Castle castle = castles.get(i); final L2Clan clan = ClanTable.getInstance().getClan(castle.getOwnerId()); String link = list.replaceAll("%region_id%", String.valueOf(i)); link = list.replace("%region_name%", String.valueOf(REGIONS[i])); link = link.replace("%region_owning_clan%", (clan != null ? clan.getName() : "NPC")); link = link.replace("%region_owning_clan_alliance%", ((clan != null) && (clan.getAllyName() != null) ? clan.getAllyName() : "")); link = link.replace("%region_tax_rate%", String.valueOf(castle.getTaxRate() * 100) + "%"); sb.append(link); } String html = HtmCache.getInstance().getHtm(activeChar.getHtmlPrefix(), "data/html/CommunityBoard/region.html"); html = html.replace("%region_list%", sb.toString()); CommunityBoardHandler.separateAndSend(html, activeChar); } else if (command.startsWith("_bbsloc;")) { CommunityBoardHandler.getInstance().addBypass(activeChar, command, "Region>"); // TODO: Implement region info. } return true; } @Override public boolean writeCommunityBoardCommand(L2PcInstance activeChar, String arg1, String arg2, String arg3, String arg4, String arg5) { return false; } }