/* * 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 . */ package com.l2jserver.communityserver.communityboard; import java.util.logging.Logger; import javolution.util.FastList; import com.l2jserver.communityserver.network.writepackets.PlayerShowBoard; public abstract class CommunityBoard { private final CommunityBoardManager _mgr; private static Logger _log = Logger.getLogger(CommunityBoard.class.getName()); protected CommunityBoard(final CommunityBoardManager mgr) { _mgr = mgr; } protected final CommunityBoardManager getCommunityBoardManager() { return _mgr; } protected final void sendWrite(final int playerObjId, final String html, String string, String string2, String string3) { try { string = edtiSavedTxT(string); string2 = edtiSavedTxT(string2); string3 = edtiSavedTxT(string3); _mgr.sendPacket(new PlayerShowBoard(playerObjId, html)); FastList arg = new FastList(); arg.add("0"); arg.add("0"); arg.add("0"); arg.add("0"); arg.add("0"); arg.add("0"); arg.add(_mgr.getPlayer(playerObjId).getName()); arg.add(Integer.toString(playerObjId)); arg.add(_mgr.getPlayer(playerObjId).getAccountName()); arg.add("9"); arg.add(string3); arg.add(string2); arg.add(string); arg.add(string3); arg.add(string3); arg.add("0"); arg.add("0"); _mgr.sendPacket(new PlayerShowBoard(playerObjId, arg)); } catch (Exception e) { e.printStackTrace(); } } protected final void send(final int playerObjId, final String text) { try { if (text.length() <= 4096) { _mgr.sendPacket(new PlayerShowBoard(playerObjId, text, (byte)0)); _mgr.sendPacket(new PlayerShowBoard(playerObjId, null, (byte)1)); _mgr.sendPacket(new PlayerShowBoard(playerObjId, null, (byte)2)); } else if (text.length() <= 8192) { _mgr.sendPacket(new PlayerShowBoard(playerObjId, text.substring(0, 4096), (byte)0)); _mgr.sendPacket(new PlayerShowBoard(playerObjId, text.substring(4096), (byte)1)); _mgr.sendPacket(new PlayerShowBoard(playerObjId, null, (byte)2)); } else if (text.length() <= 12288) { _mgr.sendPacket(new PlayerShowBoard(playerObjId, text.substring(0, 4096), (byte)0)); _mgr.sendPacket(new PlayerShowBoard(playerObjId, text.substring(4096, 8192), (byte)1)); _mgr.sendPacket(new PlayerShowBoard(playerObjId, text.substring(8192), (byte)2)); } else { _log.warning("Text is too big!"); } } catch (Exception e) { e.printStackTrace(); } } protected String edtiPlayerTxT(String txt) { if (txt == null) return ""; txt = txt.replace(">", ">"); txt = txt.replace("<", "<"); txt = txt.replace("\n", ""); txt = txt.replace("$", "\\$"); return txt; } protected String edtiSavedTxT(String txt) { if (txt == null) return ""; txt = txt.replace(">", ">"); txt = txt.replace("<", "<"); txt = txt.replace("", "\n"); txt = txt.replace("\\$", "$"); return txt; } public abstract void parseCmd(final int playerObjId, final String cmd); public abstract void parseWrite(final int playerObjId, String ar1, String ar2, String ar3, String ar4, String ar5); }