Jump to content
  • 0

Help With CommunityBoard Services


Question

Posted

Hello Friends, i wanna add to my home community board a buttons, for example (buffer, gatekeeper). I write in the BoardsManager.java the command and in the ServicesBBSManager.java the command but in the game i am getting the message "the command _bbspipin;gatekeeper is not implemented yet. 

I dont know how can add this addons, has anyone the possibility to help me please?.
 

 

public class BoardsManager
{
	public void handleCommands(L2GameClient client, String command)
	{
		L2PcInstance activeChar = client.getActiveChar();
		if (activeChar == null)
		{
			return;
		}
		
		if (SunriseEvents.cbBypass(activeChar, command))
		{
			return;
		}
		
		if (CommunityDonateConfigs.COMMUNITY_DONATE_ALLOW && command.startsWith(CommunityDonateConfigs.BYPASS_COMMAND))
		{
			DonateBBSManager.getInstance().cbByPass(command, activeChar);
			return;
		}
		
		if (!Config.ENABLE_COMMUNITY)
		{
			activeChar.sendPacket(SystemMessageId.CB_OFFLINE);
			return;
		}
		
		if (command.startsWith(ServicesBBSManager.getInstance()._servicesBBSCommand))
		{
			ServicesBBSManager.getInstance().cbByPass(command, activeChar);
			return;
		}
		if (command.startsWith("_bbspipin"))
		{
			ServicesBBSManager.getInstance().cbByPass(command, activeChar);
		}
		
		if (command.startsWith("_bbsclan"))
		{
			ClanBBSManager.getInstance().cbByPass(command, activeChar);
		}
		else if (command.startsWith("_bbsmemo"))
		{
			// TopicBBSManager.getInstance().cbByPass(command, activeChar);
		}
		else if (command.startsWith("_bbstopics"))
		{
			TopicBBSManager.getInstance().cbByPass(command, activeChar);
		}
		else if (command.startsWith("_bbsposts"))
		{
			PostBBSManager.getInstance().cbByPass(command, activeChar);
		}
		else if (command.startsWith("_bbstop"))
		{
			TopBBSManager.getInstance().cbByPass(command, activeChar);
		}
		else if (command.startsWith("_bbshome"))
		{
			TopBBSManager.getInstance().cbByPass(command, activeChar);
		}
		else if (command.startsWith("_maillist"))
		{
			MailBBSManager.getInstance().cbByPass(command, activeChar);
		}
		else if (command.startsWith("_friendlist_0_") || command.startsWith("_bbs_friends") || command.startsWith("_bbsfriends"))
		{
			
		}
		else if (command.startsWith("_bbsloc"))
		{
			// RegionBBSManager.getInstance().cbByPass(command, activeChar);
		}
		else if (command.startsWith("_bbsgetfav") || command.startsWith("bbs_add_fav") || command.startsWith("_bbsdelfav_"))
		{
			FavoriteBBSManager.getInstance().cbByPass(command, activeChar);
		}
		else if (command.startsWith("_bbslink"))
		{
			// RegionBBSManager.getInstance().cbByPass(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"));
		}
	}
	
	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;
		}
		
		if (url.equals("Topic"))
		{
			TopicBBSManager.getInstance().parsewrite(url, arg1, arg2, arg3, arg4, arg5, activeChar);
		}
		else if (url.equals("Post"))
		{
			PostBBSManager.getInstance().parsewrite(url, arg1, arg2, arg3, arg4, arg5, activeChar);
		}
		else if (url.equals("Region"))
		{
			// Future usage
			// RegionBBSManager.getInstance().parsewrite(url, arg1, arg2, arg3, arg4, arg5, activeChar);
		}
		else if (url.equals("Friends"))
		{
			// Future usage
			// FriendsBBSManager.getInstance().parsewrite(url, arg1, arg2, arg3, arg4, arg5, activeChar);
		}
		else if (url.equals("Notice"))
		{
			ClanBBSManager.getInstance().parsewrite(url, arg1, arg2, arg3, arg4, arg5, activeChar);
		}
		else if (url.equals("Mail"))
		{
			MailBBSManager.getInstance().parsewrite(url, arg1, arg2, arg3, arg4, arg5, activeChar);
		}
		else
		{
			// no nothing
		}
		return;
	}
	
	// This will be used for favorite bbs manager
	/** The bypasses used by the players. */
	private final Map<Integer, String> _bypasses = new ConcurrentHashMap<>();
	
	/**
	 * Sets the last bypass used by the player.
	 * @param player the player
	 * @param title the title
	 * @param bypass the bypass
	 */
	public void addBypass(L2PcInstance player, String title, String bypass)
	{
		_bypasses.put(player.getObjectId(), title + "&" + bypass);
	}
	
	/**
	 * Removes the last bypass used by the player.
	 * @param player the player
	 * @return the last bypass used
	 */
	public String removeBypass(L2PcInstance player)
	{
		return _bypasses.remove(player.getObjectId());
	}
	
	public static BoardsManager getInstance()
	{
		return SingletonHolder._instance;
	}
	
	private static class SingletonHolder
	{
		protected static final BoardsManager _instance = new BoardsManager();
	}
}




// CLASS SERVICESBBSManager


public class ServicesBBSManager extends BaseBBSManager
{
	public String _servicesBBSCommand = CommunityServicesConfigs.BYPASS_COMMAND;
	
	@Override
	public void cbByPass(String command, L2PcInstance activeChar)
	{
		if (!CommunityServicesConfigs.COMMUNITY_SERVICES_ALLOW)
		{
			activeChar.sendMessage("This function is disabled by admin.");
			return;
		}
		
		String path = "data/html/CommunityBoard/services/";
		String filepath = "";
		String content = "";
		
		if (command.equals(_servicesBBSCommand + ""))
		{
			BoardsManager.getInstance().addBypass(activeChar, "Service Command", command);
			filepath = path + "main.htm";
			content = HtmCache.getInstance().getHtm(activeChar, activeChar.getHtmlPrefix(), filepath);
			separateAndSend(content, activeChar);
		}
		else if (command.startsWith("_bbspipin" + ";gatekeeper"))
		{
			BoardsManager.getInstance().addBypass(activeChar, "Service Command", command);
			filepath = path + "main.htm";
			content = HtmCache.getInstance().getHtm(activeChar, activeChar.getHtmlPrefix(), filepath);
			separateAndSend(content, activeChar);
		}
		else if (command.startsWith(_servicesBBSCommand + ";gatekeeper"))
		{
			BoardsManager.getInstance().addBypass(activeChar, "Service Gatekeeper", command);
			StringTokenizer st = new StringTokenizer(command, ";");
			st.nextToken();
			st.nextToken();
			String file = st.nextToken();
			path = "data/html/CommunityBoard/services/gatekeeper/";
			sendHtm(activeChar, filepath, path, file, command);
		}
		else if (command.startsWith(_servicesBBSCommand + ";"))
		{
			StringTokenizer st = new StringTokenizer(command, ";");
			st.nextToken();
			String file = st.nextToken();
			sendHtm(activeChar, filepath, path, file, command);
		}
		else if (command.startsWith(_servicesBBSCommand + "_sendMultisell"))
		{
			BoardsManager.getInstance().addBypass(activeChar, "Service Multisell", command);
			if (!CommunityServicesConfigs.COMMUNITY_SERVICES_SHOP_ALLOW)
			{
				activeChar.sendMessage("This function is disabled by admin.");
				return;
			}
			
			if (!CommunityServicesConfigs.COMMUNITY_SERVICES_SHOP_NONPEACE && !activeChar.isInsideZone(ZoneIdType.PEACE))
			{
				activeChar.sendMessage("You cannot use this function outside peace zone.");
			}
			else
			{
				try
				{
					String multisell = commandSeperator(command);
					int multi = Integer.valueOf(multisell);
					
					switch (multi)
					{
						case 90525:
							content = HtmCache.getInstance().getHtm(activeChar, activeChar.getHtmlPrefix(), "data/html/CommunityBoard/services/symbolMaker.htm");
							break;
						case 90526:
							content = HtmCache.getInstance().getHtm(activeChar, activeChar.getHtmlPrefix(), "data/html/CommunityBoard/services/warehouse.htm");
							break;
						case 90539:
						case 90540:
						case 90541:
							content = HtmCache.getInstance().getHtm(activeChar, activeChar.getHtmlPrefix(), "data/html/CommunityBoard/services/exclusiveShop.htm");
							break;
						default:
							content = HtmCache.getInstance().getHtm(activeChar, activeChar.getHtmlPrefix(), "data/html/CommunityBoard/services/gmshop.htm");
							break;
					}
					
					if ((multi == 90527) || (multi == 90528) || (multi == 90529) || (multi == 90530) || (multi == 90531) || (multi == 90532) || (multi == 90533) || (multi == 90534) || (multi == 90535) || (multi == 90536) || (multi == 90537) || (multi == 90538))
					{
						content = HtmCache.getInstance().getHtm(activeChar, activeChar.getHtmlPrefix(), "data/html/CommunityBoard/services/blacksmith.htm");
					}
					
					separateAndSend(content, activeChar);
					
					if (CommunityServicesConfigs.MULTISELL_LIST.contains(multi))
					{
						activeChar.setIsUsingAioMultisell(true);
						MultisellData.getInstance().separateAndSend(multi, activeChar, null, false);
					}
					else
					{
						SecurityActions.startSecurity(activeChar, SecurityType.COMMUNITY_SYSTEM);
					}
				}
				catch (Exception e)
				{
					SecurityActions.startSecurity(activeChar, SecurityType.COMMUNITY_SYSTEM);
				}
			}
		}
      
      
      and continues

 

2 answers to this question

Recommended Posts

  • 0
Posted

The code is awful

31 minutes ago, barao45 said:

else if (command.startsWith("_bbspipin" + ";gatekeeper")) { BoardsManager.getInstance().addBypass(activeChar, "Service Command", command); filepath = path + "main.htm"; content = HtmCache.getInstance().getHtm(activeChar, activeChar.getHtmlPrefix(), filepath); separateAndSend(content, activeChar); }

you can use substring here

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...