/* * 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; import silentium.gameserver.board.Manager.BaseBBSManager; import silentium.gameserver.board.Manager.ClanBBSManager; import silentium.gameserver.board.Manager.FriendsBBSManager; import silentium.gameserver.board.Manager.MailBBSManager; import silentium.gameserver.board.Manager.PostBBSManager; import silentium.gameserver.board.Manager.RegionBBSManager; import silentium.gameserver.board.Manager.TopBBSManager; import silentium.gameserver.board.Manager.TopicBBSManager; import silentium.gameserver.configs.MainConfig; import silentium.gameserver.model.actor.instance.L2PcInstance; import silentium.gameserver.network.L2GameClient; import silentium.gameserver.network.SystemMessageId; public class CommunityBoard { protected CommunityBoard() { } public static CommunityBoard getInstance() { return SingletonHolder._instance; } public void handleCommands(L2GameClient client, String command) { final L2PcInstance activeChar = client.getActiveChar(); if (activeChar == null) return; if (!MainConfig.ENABLE_COMMUNITY_BOARD) { activeChar.sendPacket(SystemMessageId.CB_OFFLINE); return; } if (command.startsWith("_bbshome")) TopBBSManager.getInstance().parseCmd(command, activeChar); else if (command.startsWith("_bbsloc")) RegionBBSManager.getInstance().parseCmd(command, activeChar); else if (command.startsWith("_bbsclan")) ClanBBSManager.getInstance().parseCmd(command, activeChar); else if (command.startsWith("_bbsmemo")) TopicBBSManager.getInstance().parseCmd(command, activeChar); else if (command.startsWith("_maillist_0_1_0_")) MailBBSManager.getInstance().parseCmd(command, activeChar); else if (command.startsWith("_friend") || command.startsWith("_block")) FriendsBBSManager.getInstance().parseCmd(command, activeChar); else if (command.startsWith("_bbstopics")) TopicBBSManager.getInstance().parseCmd(command, activeChar); else if (command.startsWith("_bbsposts")) PostBBSManager.getInstance().parseCmd(command, activeChar); else BaseBBSManager.separateAndSend("<html><body><br><br><center>The command: " + command + " isn't implemented.</center></body></html>", activeChar); } public void handleWriteCommands(L2GameClient client, String url, String arg1, String arg2, String arg3, String arg4, String arg5) { final L2PcInstance activeChar = client.getActiveChar(); if (activeChar == null) return; if (!MainConfig.ENABLE_COMMUNITY_BOARD) { activeChar.sendPacket(SystemMessageId.CB_OFFLINE); return; } if (url.equals("Topic")) TopicBBSManager.getInstance().parseWrite(arg1, arg2, arg3, arg4, arg5, activeChar); else if (url.equals("Post")) PostBBSManager.getInstance().parseWrite(arg1, arg2, arg3, arg4, arg5, activeChar); else if (url.equals("Region")) RegionBBSManager.getInstance().parseWrite(arg1, arg2, arg3, arg4, arg5, activeChar); else if (url.equals("Notice")) ClanBBSManager.getInstance().parseWrite(arg1, arg2, arg3, arg4, arg5, activeChar); else if (url.equals("Mail")) MailBBSManager.getInstance().parseWrite(arg1, arg2, arg3, arg4, arg5, activeChar); else BaseBBSManager.separateAndSend("<html><body><br><br><center>The command: " + url + " isn't implemented.</center></body></html>", activeChar); } private static class SingletonHolder { protected static final CommunityBoard _instance = new CommunityBoard(); } }