160 lines
5.1 KiB
Java
160 lines
5.1 KiB
Java
/*
|
|
* 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 com.l2jserver.gameserver.communitybbs;
|
|
|
|
import com.l2jserver.Config;
|
|
import com.l2jserver.gameserver.communitybbs.Manager.ClanBBSManager;
|
|
import com.l2jserver.gameserver.communitybbs.Manager.PostBBSManager;
|
|
import com.l2jserver.gameserver.communitybbs.Manager.RegionBBSManager;
|
|
import com.l2jserver.gameserver.communitybbs.Manager.TopBBSManager;
|
|
import com.l2jserver.gameserver.communitybbs.Manager.TopicBBSManager;
|
|
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
|
import com.l2jserver.gameserver.network.L2GameClient;
|
|
import com.l2jserver.gameserver.network.SystemMessageId;
|
|
import com.l2jserver.gameserver.network.serverpackets.ShowBoard;
|
|
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
|
|
|
|
public class CommunityBoard
|
|
{
|
|
private CommunityBoard()
|
|
{
|
|
}
|
|
|
|
public static CommunityBoard getInstance()
|
|
{
|
|
return SingletonHolder._instance;
|
|
}
|
|
|
|
public void handleCommands(L2GameClient client, String command)
|
|
{
|
|
L2PcInstance activeChar = client.getActiveChar();
|
|
if (activeChar == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
switch (Config.COMMUNITY_TYPE)
|
|
{
|
|
default:
|
|
case 0: // disabled
|
|
activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.CB_OFFLINE));
|
|
break;
|
|
case 1: // old
|
|
RegionBBSManager.getInstance().parsecmd(command, activeChar);
|
|
break;
|
|
case 2: // new
|
|
if (command.startsWith("_bbsclan"))
|
|
{
|
|
ClanBBSManager.getInstance().parsecmd(command, activeChar);
|
|
}
|
|
else if (command.startsWith("_bbsmemo"))
|
|
{
|
|
TopicBBSManager.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 if (command.startsWith("_bbstop"))
|
|
{
|
|
TopBBSManager.getInstance().parsecmd(command, activeChar);
|
|
}
|
|
else if (command.startsWith("_bbshome"))
|
|
{
|
|
TopBBSManager.getInstance().parsecmd(command, activeChar);
|
|
}
|
|
else if (command.startsWith("_bbsloc"))
|
|
{
|
|
RegionBBSManager.getInstance().parsecmd(command, activeChar);
|
|
}
|
|
else
|
|
{
|
|
ShowBoard sb = new ShowBoard("<html><body><br><br><center>the command: " + command + " is not implemented yet</center><br><br></body></html>", "101");
|
|
activeChar.sendPacket(sb);
|
|
activeChar.sendPacket(new ShowBoard(null, "102"));
|
|
activeChar.sendPacket(new ShowBoard(null, "103"));
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param client
|
|
* @param url
|
|
* @param arg1
|
|
* @param arg2
|
|
* @param arg3
|
|
* @param arg4
|
|
* @param arg5
|
|
*/
|
|
public void handleWriteCommands(L2GameClient client, String url, String arg1, String arg2, String arg3, String arg4, String arg5)
|
|
{
|
|
L2PcInstance activeChar = client.getActiveChar();
|
|
if (activeChar == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
switch (Config.COMMUNITY_TYPE)
|
|
{
|
|
case 2:
|
|
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
|
|
{
|
|
ShowBoard sb = new ShowBoard("<html><body><br><br><center>the command: " + url + " is not implemented yet</center><br><br></body></html>", "101");
|
|
activeChar.sendPacket(sb);
|
|
activeChar.sendPacket(new ShowBoard(null, "102"));
|
|
activeChar.sendPacket(new ShowBoard(null, "103"));
|
|
}
|
|
break;
|
|
case 1:
|
|
RegionBBSManager.getInstance().parsewrite(arg1, arg2, arg3, arg4, arg5, activeChar);
|
|
break;
|
|
default:
|
|
case 0:
|
|
ShowBoard sb = new ShowBoard("<html><body><br><br><center>The Community board is currently disabled</center><br><br></body></html>", "101");
|
|
activeChar.sendPacket(sb);
|
|
activeChar.sendPacket(new ShowBoard(null, "102"));
|
|
activeChar.sendPacket(new ShowBoard(null, "103"));
|
|
break;
|
|
}
|
|
}
|
|
|
|
@SuppressWarnings("synthetic-access")
|
|
private static class SingletonHolder
|
|
{
|
|
protected static final CommunityBoard _instance = new CommunityBoard();
|
|
}
|
|
}
|