/* * 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.board.Manager; import java.util.List; import javolution.util.FastList; import silentium.gameserver.data.html.HtmCache; import silentium.gameserver.data.html.StaticHtmPath; import silentium.gameserver.model.actor.instance.L2PcInstance; import silentium.gameserver.network.serverpackets.ShowBoard; public abstract class BaseBBSManager { public abstract void parseCmd(String command, L2PcInstance activeChar); public abstract void parseWrite(String ar1, String ar2, String ar3, String ar4, String ar5, L2PcInstance activeChar); public static void separateAndSend(String html, L2PcInstance acha) { if (html == null || acha == null) return; if (html.length() < 4090) { acha.sendPacket(new ShowBoard(html, "101")); acha.sendPacket(ShowBoard.STATIC_SHOWBOARD_102); acha.sendPacket(ShowBoard.STATIC_SHOWBOARD_103); } else if (html.length() < 8180) { acha.sendPacket(new ShowBoard(html.substring(0, 4090), "101")); acha.sendPacket(new ShowBoard(html.substring(4090, html.length()), "102")); acha.sendPacket(ShowBoard.STATIC_SHOWBOARD_103); } else if (html.length() < 12270) { acha.sendPacket(new ShowBoard(html.substring(0, 4090), "101")); acha.sendPacket(new ShowBoard(html.substring(4090, 8180), "102")); acha.sendPacket(new ShowBoard(html.substring(8180, html.length()), "103")); } } protected static void send1001(String html, L2PcInstance acha) { if (html.length() < 8180) acha.sendPacket(new ShowBoard(html, "1001")); } protected static void send1002(L2PcInstance acha) { send1002(acha, " ", " ", "0"); } protected static void send1002(L2PcInstance activeChar, String string, String string2, String string3) { List<String> _arg = new FastList<>(); _arg.add("0"); _arg.add("0"); _arg.add("0"); _arg.add("0"); _arg.add("0"); _arg.add("0"); _arg.add(activeChar.getName()); _arg.add(Integer.toString(activeChar.getObjectId())); _arg.add(activeChar.getAccountName()); _arg.add("9"); _arg.add(string2); _arg.add(string2); _arg.add(string); _arg.add(string3); _arg.add(string3); _arg.add("0"); _arg.add("0"); activeChar.sendPacket(new ShowBoard(_arg)); } /** * Loads an HTM located in the default CB path. * * @param file * : the file to load. * @param activeChar * : the requester. */ protected void loadStaticHtm(String file, L2PcInstance activeChar) { separateAndSend(HtmCache.getInstance().getHtm(StaticHtmPath.BoardHtmPath + getFolder() + file), activeChar); } /** * That method is overidden in every board type. It allows to switch of folders following the board. * * @return the folder. */ protected String getFolder() { return ""; } }