Jump to content

Recommended Posts

Posted

Hello everyone, I would like some help adapting this file for a custom community board l2jFrozen:

ย 

package com.l2jfrozen.gameserver.communitybbs;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import java.util.StringTokenizer;

import javolution.util.FastMap;

import com.l2jfrozen.Config;
import com.l2jfrozen.gameserver.cache.HtmCache;
import com.l2jfrozen.gameserver.communitybbs.Manager.BaseBBSManager;
import com.l2jfrozen.gameserver.communitybbs.Manager.ClanBBSManager;
import com.l2jfrozen.gameserver.communitybbs.Manager.PostBBSManager;
import com.l2jfrozen.gameserver.communitybbs.Manager.RegionBBSManager;
import com.l2jfrozen.gameserver.communitybbs.Manager.TeleBBSManager;
import com.l2jfrozen.gameserver.communitybbs.Manager.TopicBBSManager;
import com.l2jfrozen.gameserver.communitybbs.Manager.shopBBSManager;
import com.l2jfrozen.gameserver.handler.IBBSHandler;
import com.l2jfrozen.gameserver.model.L2Clan;
import com.l2jfrozen.gameserver.model.L2World;
import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
import com.l2jfrozen.gameserver.model.multisell.L2Multisell;
import com.l2jfrozen.gameserver.network.L2GameClient;
import com.l2jfrozen.gameserver.network.SystemMessageId;
import com.l2jfrozen.gameserver.network.serverpackets.ShowBoard;
import com.l2jfrozen.gameserver.network.serverpackets.SystemMessage;

public class CommunityBoard
{
	private static CommunityBoard _instance;
	private final Map<String, IBBSHandler> _handlers;
	protected final SimpleDateFormat fmt = new SimpleDateFormat("H:mm.");
	
	public CommunityBoard()
	{
		_handlers = new FastMap<>();
		// null;
	}
	
	public boolean checkPlayerConditions(L2PcInstance activeChar, String command)
	{
	    if (activeChar.isInOlympiadMode())
	    {
	    	activeChar.sendMessage("CommunityBoard use is prohibited at the Olympiad");
	        return false;
	    }
	    if (activeChar.isFlying() || activeChar.isMounted())
	    {
	    	activeChar.sendMessage("CommunityBoard use is prohibited at while flying or mounted!");
	        return false;
	    }
	    if (activeChar.inObserverMode())
	    {
	    	activeChar.sendMessage("CommunityBoard use is prohibited in ObserveMode!");
	        return false;
	    }
	    if (activeChar.isAlikeDead() || activeChar.isDead())
	    {
	    	activeChar.sendMessage("CommunityBoard use is prohibited While Dead");
	        return false;
	    }
	    if (activeChar.isInCombat())
	    {
	    	activeChar.sendMessage("CommunityBoard use is prohibited in Combat!");
	        return false;
	    }
	    if (activeChar.isCastingNow())
	    {
	    	activeChar.sendMessage("CommunityBoard use is prohibited while Casting!");
	        return false;
	    }
	    if (activeChar.isAttackingNow())
	    {
	    	activeChar.sendMessage("CommunityBoard use is prohibited while Attacking!");
	        return false;
	    }
	    if (activeChar.isInDuel())
	    {
	    	activeChar.sendMessage("CommunityBoard use is prohibited while Playing Duel!");
	        return false;
	    }
	    if (activeChar.isFishing())
	    {
	    	activeChar.sendMessage("CommunityBoard use is prohibited while Fishing!");
	        return false;
	    }
	    if (activeChar.isInStoreMode())
	    {
	    	activeChar.sendMessage("CommunityBoard use is prohibited in StoreMode!");
	        return false;
	    }
	    if (activeChar.isInJail() || activeChar.isCursedWeaponEquipped() || activeChar.isFlying() || activeChar.isInBoat() || activeChar.isProcessingTransaction() || activeChar.isStunned())
	    {
	    	activeChar.sendMessage("CommunityBoard use is prohibited right now!");
	        return false;
	    }

	    return true;
	}
	
	public static CommunityBoard getInstance()
	{
		if (_instance == null)
		{
			_instance = new CommunityBoard();
		}
		
		return _instance;
	}
	
	/**
	 * by Azagthtot
	 * @param handler as IBBSHandler
	 */
	public void registerBBSHandler(final IBBSHandler handler)
	{
		for (final String s : handler.getBBSCommands())
		{
			_handlers.put(s, handler);
		}
	}
	
	/**
	 * by Azagthtot
	 * @param client
	 * @param command
	 */
	public void handleCommands(final L2GameClient client, final String command)
	{
		L2PcInstance activeChar = client.getActiveChar();
		
		if (activeChar == null)
			return;
		
		if(!checkPlayerConditions(activeChar, command))
			return;
		
		if (Config.COMMUNITY_TYPE.equals("full"))
		{
			String cmd = command.substring(4);
			String params = "";
			final int iPos = cmd.indexOf(" ");
			if (iPos != -1)
			{
				params = cmd.substring(iPos + 1);
				cmd = cmd.substring(0, iPos);
				
			}
			final IBBSHandler bbsh = _handlers.get(cmd);
			if (bbsh != null)
			{
				bbsh.handleCommand(cmd, activeChar, params);
			}
			else
			{
				if (command.startsWith("_bbsclan"))
				{
					String text = HtmCache.getInstance().getHtm("data/html/CommunityBoard/index.htm");
					//Custom Community Board
					text = text.replace("%CharName%", String.valueOf(activeChar.getName()));
					text = text.replace("%CharClass%", String.valueOf(activeChar.getClassId().name()));
					text = text.replace("%CharLevel%", String.valueOf(activeChar.getLevel()));
					if (activeChar.isNoble())
					{
						text = text.replace("%nobless%", "Yes");
					}
					else
					{
						text = text.replace("%nobless%", "No");
					}
					L2Clan clan = activeChar.getClan();
					if (clan != null)
					{
						text = text.replace("%CharClan%", String.valueOf(activeChar.getClan().getName()));
					}
					else
					{
						text = text.replace("%CharClan%", "No Clan");
					}
					text = text.replace("%CharIP%", String.valueOf(activeChar.getClient().getConnection().getInetAddress().getHostAddress()));
					text = text.replace("%PlayerOnline%", String.valueOf(L2World.getInstance().getAllPlayers().size()* 1));
					text = text.replace("%ServerTime%", fmt.format(new Date(System.currentTimeMillis())));
					//Custom Community Board
					BaseBBSManager.separateAndSend(text, activeChar);
				}
				else if (command.startsWith("_bbsmemo"))
				{
					String text = HtmCache.getInstance().getHtm("data/html/CommunityBoard/index.htm");
					//Custom Community Board
					text = text.replace("%CharName%", String.valueOf(activeChar.getName()));
					text = text.replace("%CharClass%", String.valueOf(activeChar.getClassId().name()));
					text = text.replace("%CharLevel%", String.valueOf(activeChar.getLevel()));
					if (activeChar.isNoble())
					{
						text = text.replace("%nobless%", "Yes");
					}
					else
					{
						text = text.replace("%nobless%", "No");
					}
					L2Clan clan = activeChar.getClan();
					if (clan != null)
					{
						text = text.replace("%CharClan%", String.valueOf(activeChar.getClan().getName()));
					}
					else
					{
						text = text.replace("%CharClan%", "No Clan");
					}
					text = text.replace("%CharIP%", String.valueOf(activeChar.getClient().getConnection().getInetAddress().getHostAddress()));
					text = text.replace("%PlayerOnline%", String.valueOf(L2World.getInstance().getAllPlayers().size()* 1));
					text = text.replace("%ServerTime%", fmt.format(new Date(System.currentTimeMillis())));
					//Custom Community Board
					BaseBBSManager.separateAndSend(text, activeChar);
				}
				else if (command.startsWith("_bbsgetfav"))
				{
					String text = HtmCache.getInstance().getHtm("data/html/CommunityBoard/index.htm");
					//Custom Community Board
					text = text.replace("%CharName%", String.valueOf(activeChar.getName()));
					text = text.replace("%CharClass%", String.valueOf(activeChar.getClassId().name()));
					text = text.replace("%CharLevel%", String.valueOf(activeChar.getLevel()));
					if (activeChar.isNoble())
					{
						text = text.replace("%nobless%", "Yes");
					}
					else
					{
						text = text.replace("%nobless%", "No");
					}
					L2Clan clan = activeChar.getClan();
					if (clan != null)
					{
						text = text.replace("%CharClan%", String.valueOf(activeChar.getClan().getName()));
					}
					else
					{
						text = text.replace("%CharClan%", "No Clan");
					}
					text = text.replace("%CharIP%", String.valueOf(activeChar.getClient().getConnection().getInetAddress().getHostAddress()));
					text = text.replace("%PlayerOnline%", String.valueOf(L2World.getInstance().getAllPlayers().size()* 1));
					text = text.replace("%ServerTime%", fmt.format(new Date(System.currentTimeMillis())));
					//Custom Community Board
					BaseBBSManager.separateAndSend(text, activeChar);	
				}
				else if (command.startsWith("_bbstopics"))
				{
					String text = HtmCache.getInstance().getHtm("data/html/CommunityBoard/index.htm");
					//Custom Community Board
					text = text.replace("%CharName%", String.valueOf(activeChar.getName()));
					text = text.replace("%CharClass%", String.valueOf(activeChar.getClassId().name()));
					text = text.replace("%CharLevel%", String.valueOf(activeChar.getLevel()));
					if (activeChar.isNoble())
					{
						text = text.replace("%nobless%", "Yes");
					}
					else
					{
						text = text.replace("%nobless%", "No");
					}
					L2Clan clan = activeChar.getClan();
					if (clan != null)
					{
						text = text.replace("%CharClan%", String.valueOf(activeChar.getClan().getName()));
					}
					else
					{
						text = text.replace("%CharClan%", "No Clan");
					}
					text = text.replace("%CharIP%", String.valueOf(activeChar.getClient().getConnection().getInetAddress().getHostAddress()));
					text = text.replace("%PlayerOnline%", String.valueOf(L2World.getInstance().getAllPlayers().size()* 1));
					text = text.replace("%ServerTime%", fmt.format(new Date(System.currentTimeMillis())));
					//Custom Community Board
					BaseBBSManager.separateAndSend(text, activeChar);
				}
				else if (command.startsWith("_bbsposts"))
				{
					String text = HtmCache.getInstance().getHtm("data/html/CommunityBoard/index.htm");
					//Custom Community Board
					text = text.replace("%CharName%", String.valueOf(activeChar.getName()));
					text = text.replace("%CharClass%", String.valueOf(activeChar.getClassId().name()));
					text = text.replace("%CharLevel%", String.valueOf(activeChar.getLevel()));
					if (activeChar.isNoble())
					{
						text = text.replace("%nobless%", "Yes");
					}
					else
					{
						text = text.replace("%nobless%", "No");
					}
					L2Clan clan = activeChar.getClan();
					if (clan != null)
					{
						text = text.replace("%CharClan%", String.valueOf(activeChar.getClan().getName()));
					}
					else
					{
						text = text.replace("%CharClan%", "No Clan");
					}
					text = text.replace("%CharIP%", String.valueOf(activeChar.getClient().getConnection().getInetAddress().getHostAddress()));
					text = text.replace("%PlayerOnline%", String.valueOf(L2World.getInstance().getAllPlayers().size()* 1));
					text = text.replace("%ServerTime%", fmt.format(new Date(System.currentTimeMillis())));
					//Custom Community Board
					BaseBBSManager.separateAndSend(text, activeChar);
				}
				else if (command.startsWith("_bbstop"))
				{
					String text = HtmCache.getInstance().getHtm("data/html/CommunityBoard/index.htm");
					//Custom Community Board
					text = text.replace("%CharName%", String.valueOf(activeChar.getName()));
					text = text.replace("%CharClass%", String.valueOf(activeChar.getClassId().name()));
					text = text.replace("%CharLevel%", String.valueOf(activeChar.getLevel()));
					if (activeChar.isNoble())
					{
						text = text.replace("%nobless%", "Yes");
					}
					else
					{
						text = text.replace("%nobless%", "No");
					}
					L2Clan clan = activeChar.getClan();
					if (clan != null)
					{
						text = text.replace("%CharClan%", String.valueOf(activeChar.getClan().getName()));
					}
					else
					{
						text = text.replace("%CharClan%", "No Clan");
					}
					text = text.replace("%CharIP%", String.valueOf(activeChar.getClient().getConnection().getInetAddress().getHostAddress()));
					text = text.replace("%PlayerOnline%", String.valueOf(L2World.getInstance().getAllPlayers().size()* 1));
					text = text.replace("%ServerTime%", fmt.format(new Date(System.currentTimeMillis())));
					//Custom Community Board
					BaseBBSManager.separateAndSend(text, activeChar);
				}
				else if (command.startsWith("_bbshome"))
				{
					String text = HtmCache.getInstance().getHtm("data/html/CommunityBoard/index.htm");
					//Custom Community Board
					text = text.replace("%CharName%", String.valueOf(activeChar.getName()));
					text = text.replace("%CharClass%", String.valueOf(activeChar.getClassId().name()));
					text = text.replace("%CharLevel%", String.valueOf(activeChar.getLevel()));
					if (activeChar.isNoble())
					{
						text = text.replace("%nobless%", "Yes");
					}
					else
					{
						text = text.replace("%nobless%", "No");
					}
					L2Clan clan = activeChar.getClan();
					if (clan != null)
					{
						text = text.replace("%CharClan%", String.valueOf(activeChar.getClan().getName()));
					}
					else
					{
						text = text.replace("%CharClan%", "No Clan");
					}
					text = text.replace("%CharIP%", String.valueOf(activeChar.getClient().getConnection().getInetAddress().getHostAddress()));
					text = text.replace("%PlayerOnline%", String.valueOf(L2World.getInstance().getAllPlayers().size()* 1));
					text = text.replace("%ServerTime%", fmt.format(new Date(System.currentTimeMillis())));
					//Custom Community Board
					BaseBBSManager.separateAndSend(text, activeChar);
				}
				else if (command.startsWith("_bbsloc"))
				{
					String text = HtmCache.getInstance().getHtm("data/html/CommunityBoard/index.htm");
					//Custom Community Board
					text = text.replace("%CharName%", String.valueOf(activeChar.getName()));
					text = text.replace("%CharClass%", String.valueOf(activeChar.getClassId().name()));
					text = text.replace("%CharLevel%", String.valueOf(activeChar.getLevel()));
					if (activeChar.isNoble())
					{
						text = text.replace("%nobless%", "Yes");
					}
					else
					{
						text = text.replace("%nobless%", "No");
					}
					L2Clan clan = activeChar.getClan();
					if (clan != null)
					{
						text = text.replace("%CharClan%", String.valueOf(activeChar.getClan().getName()));
					}
					else
					{
						text = text.replace("%CharClan%", "No Clan");
					}
					text = text.replace("%CharIP%", String.valueOf(activeChar.getClient().getConnection().getInetAddress().getHostAddress()));
					text = text.replace("%PlayerOnline%", String.valueOf(L2World.getInstance().getAllPlayers().size()* 1));
					text = text.replace("%ServerTime%", fmt.format(new Date(System.currentTimeMillis())));
					//Custom Community Board
					BaseBBSManager.separateAndSend(text, activeChar);
				}
				else if (command.startsWith("_bbstele"))
				{
					TeleBBSManager.getInstance().parsecmd(command, activeChar);
				}
				else if (command.startsWith("_bbsShop"))
				{
					shopBBSManager.getInstance().parsecmd(command, activeChar);
				}
				else if(command.startsWith("_bbsmultisell;"))
				{
				StringTokenizer st = new StringTokenizer(command, ";");
				st.nextToken();
				shopBBSManager.getInstance().parsecmd("_bbsShop;" + st.nextToken(), activeChar);
				L2Multisell.getInstance().SeparateAndSend(Integer.parseInt(st.nextToken()), activeChar, false, 0);
				}
				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);
					sb = null;
					activeChar.sendPacket(new ShowBoard(null, "102"));
					activeChar.sendPacket(new ShowBoard(null, "103"));
					
				}
			}
			
		}
		else if (Config.COMMUNITY_TYPE.equals("old"))
		{
			RegionBBSManager.getInstance().parsecmd(command, activeChar);
		}
		else
		{
			activeChar.sendPacket(new SystemMessage(SystemMessageId.CB_OFFLINE));
		}
		
		activeChar = null;
	}
	
	/**
	 * @param client
	 * @param url
	 * @param arg1
	 * @param arg2
	 * @param arg3
	 * @param arg4
	 * @param arg5
	 */
	public void handleWriteCommands(final L2GameClient client, final String url, final String arg1, final String arg2, final String arg3, final String arg4, final String arg5)
	{
		L2PcInstance activeChar = client.getActiveChar();
		
		if (activeChar == null)
			return;
		
		if (Config.COMMUNITY_TYPE.equals("full"))
		{
			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);
				sb = null;
				activeChar.sendPacket(new ShowBoard(null, "102"));
				activeChar.sendPacket(new ShowBoard(null, "103"));
			}
		}
		else if (Config.COMMUNITY_TYPE.equals("old"))
		{
			RegionBBSManager.getInstance().parsewrite(arg1, arg2, arg3, arg4, arg5, activeChar);
		}
		else
		{
			ShowBoard sb = new ShowBoard("<html><body><br><br><center>The Community board is currently disable</center><br><br></body></html>", "101");
			activeChar.sendPacket(sb);
			sb = null;
			activeChar.sendPacket(new ShowBoard(null, "102"));
			activeChar.sendPacket(new ShowBoard(null, "103"));
		}
		
		activeChar = null;
	}
}					

ย 

And making it work in another l2jOrion project:

ย 

package l2jorion.game.community;

import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

import l2jorion.Config;
import l2jorion.game.community.manager.BaseBBSManager;
import l2jorion.game.community.manager.ClanBBSManager;
import l2jorion.game.community.manager.FavoriteBBSManager;
import l2jorion.game.community.manager.FriendsBBSManager;
import l2jorion.game.community.manager.MailBBSManager;
import l2jorion.game.community.manager.PostBBSManager;
import l2jorion.game.community.manager.RankBBSManager;
import l2jorion.game.community.manager.RegionBBSManager;
import l2jorion.game.community.manager.TopBBSManager;
import l2jorion.game.community.manager.TopicBBSManager;
import l2jorion.game.handler.ICommunityBoardHandler;
import l2jorion.game.model.actor.instance.L2PcInstance;
import l2jorion.game.network.L2GameClient;
import l2jorion.game.network.SystemMessageId;
import l2jorion.logger.Logger;
import l2jorion.logger.LoggerFactory;

public class CommunityBoardManager
{
	protected static Logger LOG = LoggerFactory.getLogger(CommunityBoardManager.class);
	
	private Map<String, ICommunityBoardHandler> _handlers = new HashMap<>();
	private final Map<Integer, String> _bypasses = new ConcurrentHashMap<>();
	
	private static CommunityBoardManager _instance;
	
	public static CommunityBoardManager getInstance()
	{
		if (_instance == null)
		{
			_instance = new CommunityBoardManager();
		}
		
		return _instance;
	}
	
	private CommunityBoardManager()
	{
		registerBBSHandler(new TopBBSManager());
		registerBBSHandler(new FavoriteBBSManager());
		registerBBSHandler(new RegionBBSManager());
		registerBBSHandler(new ClanBBSManager());
		registerBBSHandler(new TopicBBSManager());
		registerBBSHandler(new MailBBSManager());
		registerBBSHandler(new FriendsBBSManager());
		registerBBSHandler(new TopicBBSManager());
		registerBBSHandler(new PostBBSManager());
		registerBBSHandler(new RankBBSManager());
		
		LOG.info("CommunityBoardHandlers: Loaded " + _handlers.size() + " handlers");
		
	}
	
	public void registerBBSHandler(ICommunityBoardHandler handler)
	{
		for (String bypass : handler.getBypassBbsCommands())
		{
			if (_handlers.containsKey(bypass))
			{
				continue;
			}
			
			_handlers.put(bypass, handler);
		}
	}
	
	public void onBypassCommand(L2GameClient client, String command)
	{
		final L2PcInstance player = client.getActiveChar();
		if (player == null)
		{
			return;
		}
		
		if (Config.COMMUNITY_TYPE.equals("off"))
		{
			player.sendPacket(SystemMessageId.CB_OFFLINE);
			return;
		}
		
		/*
		 * if (!AutoImageSenderManager.wereAllImagesSent(player)) { player.sendMessage("Community wasn't loaded yet, try again in few seconds."); player.sendPacket(new ExShowScreenMessage("Community wasn't loaded yet, try again in few seconds.", 2000, 2, false)); return; }
		 */
		
		String cmd = command.substring(4);
		String params = "";
		final int iPos = cmd.indexOf(" ");
		if (iPos != -1)
		{
			params = cmd.substring(iPos + 1);
			cmd = cmd.substring(0, iPos);
		}
		
		ICommunityBoardHandler bypass = _handlers.get(cmd);
		if (bypass != null)
		{
			bypass.handleCommand(cmd, player, params);
		}
		else
		{
			if (command.startsWith("_bbshome"))
			{
				TopBBSManager.getInstance().parseCmd(command, player);
			}
			else if (command.startsWith("_bbsgetfav") || command.startsWith("bbs_add_fav") || command.startsWith("_bbsdelfav_"))
			{
				FavoriteBBSManager.getInstance().parseCmd(command, player);
			}
			else if (command.startsWith("_bbsloc"))
			{
				RegionBBSManager.getInstance().parseCmd(command, player);
			}
			else if (command.startsWith("_bbsclan"))
			{
				ClanBBSManager.getInstance().parseCmd(command, player);
			}
			else if (command.startsWith("_bbsmemo"))
			{
				TopicBBSManager.getInstance().parseCmd(command, player);
			}
			else if (command.startsWith("_bbsmail") || command.equals("_maillist_0_1_0_"))
			{
				MailBBSManager.getInstance().parseCmd(command, player);
			}
			else if (command.startsWith("_friend") || command.startsWith("_block"))
			{
				FriendsBBSManager.getInstance().parseCmd(command, player);
			}
			else if (command.startsWith("_bbstopics"))
			{
				TopicBBSManager.getInstance().parseCmd(command, player);
			}
			else if (command.startsWith("_bbsposts"))
			{
				PostBBSManager.getInstance().parseCmd(command, player);
			}
			else if (command.startsWith("_bbsshowrank"))
			{
				RankBBSManager.getInstance().parseCmd(command, player);
			}
			else
			{
				BaseBBSManager.separateAndSend("<html><body><br><br><center>The command: " + command + " isn't implemented.</center></body></html>", player);
			}
		}
	}
	
	public void handleWriteCommands(L2GameClient client, String url, String arg1, String arg2, String arg3, String arg4, String arg5)
	{
		final L2PcInstance player = client.getActiveChar();
		if (player == null)
		{
			return;
		}
		
		if (Config.COMMUNITY_TYPE.equals("off"))
		{
			player.sendPacket(SystemMessageId.CB_OFFLINE);
			return;
		}
		
		if (url.equals("Topic"))
		{
			TopicBBSManager.getInstance().parseWrite(arg1, arg2, arg3, arg4, arg5, player);
		}
		else if (url.equals("Post"))
		{
			PostBBSManager.getInstance().parseWrite(arg1, arg2, arg3, arg4, arg5, player);
		}
		else if (url.equals("_bbsloc"))
		{
			RegionBBSManager.getInstance().parseWrite(arg1, arg2, arg3, arg4, arg5, player);
		}
		else if (url.equals("_bbsclan"))
		{
			ClanBBSManager.getInstance().parseWrite(arg1, arg2, arg3, arg4, arg5, player);
		}
		else if (url.equals("Mail"))
		{
			MailBBSManager.getInstance().parseWrite(arg1, arg2, arg3, arg4, arg5, player);
		}
		else if (url.equals("Clan"))
		{
			ClanBBSManager.getInstance().parseWrite(arg1, arg2, arg3, arg4, arg5, player);
		}
		else if (url.equals("_friend"))
		{
			FriendsBBSManager.getInstance().parseWrite(arg1, arg2, arg3, arg4, arg5, player);
		}
		else
		{
			BaseBBSManager.separateAndSend("<html><body><br><br><center>The command: " + url + " isn't implemented.</center></body></html>", player);
		}
	}
	
	public ICommunityBoardHandler getCommunityHandler(String bypass)
	{
		if (_handlers.isEmpty())
		{
			return null;
		}
		
		for (Map.Entry<String, ICommunityBoardHandler> entry : _handlers.entrySet())
		{
			if (bypass.contains(entry.getKey()))
			{
				return entry.getValue();
			}
		}
		
		return null;
	}
	
	public void addBypass(L2PcInstance player, String title, String bypass)
	{
		_bypasses.put(player.getObjectId(), title + "&" + bypass);
	}
	
	public String removeBypass(L2PcInstance player)
	{
		return _bypasses.remove(player.getObjectId());
	}
	
	public Map<Integer, String> getAllBypass()
	{
		return _bypasses;
	}
}

ย 

Posted
On 4/18/2025 at 12:45 AM, Atom said:

For heck, upload on gifthub, may you ask for help later. ๐Ÿ™‚

thanks for the reply,ย ย 

This is the Cadmus projectย 

And i needย  to adapt this community board to

This is L2jOrion project

ย 

  • 2 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • Server owners, Top.MaxCheaters.comย is now live and accepting Lineage 2 server listings. There isย no voting, no rankings manipulation, and no paid advantages. Visibility is clean and equal, and early listings naturally appear at the top while the platform grows. If your server is active, it should already be listed. Submit here ย https://Top.MaxCheaters.com This platform is part of theย MaxCheaters.comย network and is being built as a long-term reference point for the Lineage 2 community. โ€” MaxCheaters.com Team
    • Someone knows if there is a free download in some place for get it?. Thanks!
    • NEWS Elysian Realms ย  LINEAGE 2 PRIVATE PUBLIC SERVER A complete, optimized, and feature-rich Lineage 2 experience โ€” ready to launch, play, and scale. ย OVERVIEW Elysian Realmsย is a high-quality Lineage 2 private public server pack, crafted for stability, balance, and long-term gameplay enjoyment. Every system is preconfigured and battle-tested, allowing server owners to focus on community and growth rather than constant fixes. Whether you aim for classic nostalgia or a modern custom experience, Elysian Realms adapts to your vision. STABLE & SECURE CORE Performance-focused and scalable core High uptime & low latency Bug-free, smooth gameplay Designed for long-term server stability Your players stay focused on the world โ€” not server issues. ย CUSTOM FEATURES WITHOUT COMPROMISE Authentic Lineage 2 feeling enhanced with smart QoL systems: ย Interface & Visuals Unique UI tweaks Custom skins, armors, weapons, tattoos & cloaks Special camera effects on death Color Choose Player system Vitality 16+ special armor effects ย Gameplay Systems Balanced skills & stats (fully tested) Unique Rebirth Manager (Doll Skills) Dolls items with custom skills Rune XP Bonus system (XP / SP / Drop boosts) Auto Pots system (.menu) Buff cancel (5 sec return) ย PVE & FARMING CONTENT Expanded PvE zones Solo farm zones (Top / Mid / Low LS) Tyrannosaurus addons with top LS drops Party Farm Event Dungeon Manager Top Farm Items Manager Global Drop System Farm Protection (Captcha) Solo & Zerg protection system ย PVP & COMPETITIVE EVENTS Flag Raid Zones (PvP zones) PvP Top Player events + rewards Special PvP & PK rankings (spawned in Giran) Tournament events (x3 / x5 / x9) TvT & CTF Random 1vs1 Event Hero Boss Event System Race of Wars (Unique Event) Elysian Ultimate Zones โ€“ God Zone RAIDS & WORLD CONTENT Raid HP announcements Special Gatekeeper: Farm Zones PvP Zones Raid Zones Event Zones Party Farms Random Locations Flagged Raid Zones (PvP enabled) AUTOMATION & SMART SYSTEMS Auto Farm (VIP) Auto Gold Bar system Auto NPC announcements (Giran Town) Auto login & online record announcements Auto Vote system with global rewards Auto Zones Timed Items Dungeon Unique. REWARDS, PROGRESSION & ECONOMY Achievement Manager Mission System (Cafe Points + Random Rewards) Capsule Boxes. Top Boxes system with configurable rewards Roll Dice System (Lucky Manager x2 rewards) Donate Manager (clean & transparent) Auction Manager (extended icon support) ย FULLY DOCUMENTED & DEVELOPER FRIENDLY Complete server & client documentation ย MULTIVERSE-READY CORE Supports C4-style to High Five gameplay Multi-language support Scalable rates Modular scripts & systems One core. Endless possibilities. ย DESIGNED FOR Indie server owners & developers Event & GvG organizers Modders & hobbyists Fans of classic & custom Lineage 2 PROVEN & BATTLE-TESTED Previously online withย 100+ active players All systems tested in live environment Balanced for both PvE & PvP longevity ELYSIAN REALMS PHILOSOPHY Elysian Realms isnโ€™t just a server pack โ€” itโ€™s a complete Lineage 2 ecosystem built for players and creators alike. Ready to enter the Elysian World? Launch. Customize. Dominate. ย  https://www.l2elysian.com/
  • Topics

ร—
ร—
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..