Jump to content
  • 0

Aio Scheme BUg Help to fix Please


Question

Posted

Hi everybody i have error on Aio Scheme Buff now i will explain.

 

When i type in name field nothing and press create scheme than gives me this error

 

Jun 29, 2011 11:45:41 PM l2.brick.gameserver.network.clientpackets.RequestBypassToServer runImpl

WARNING: [Character: TESTING[268483796] - Account: katalonia - IP: 188.169.148.218] sent bad RequestBypassToServer: "Aioitem_scheme_createprofile"

java.lang.ArrayIndexOutOfBoundsException: 1

at handlers.aioitemhandler.AIOSchemeHandler.onBypassUse(AIOSchemeHandler.java:61)

at l2.brick.gameserver.datatables.AIOItemTable.handleBypass(AIOItemTable.java:608)

at l2.brick.gameserver.network.clientpackets.RequestBypassToServer.runImpl(RequestBypassToServer.java:273)

at l2.brick.gameserver.network.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:62)

at l2.brick.gameserver.network.L2GameClient.run(L2GameClient.java:1012)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

 

 

When i type in name field _ and press create scheme than gives me this error

 

Jun 29, 2011 11:45:16 PM l2.brick.gameserver.network.clientpackets.RequestBypassToServer runImpl

WARNING: [Character: TESTING[268483796] - Account: katalonia - IP: 188.169.148.218] sent bad RequestBypassToServer: "Aioitem_scheme_createprofile _"

java.lang.ArrayIndexOutOfBoundsException: 1

at handlers.aioitemhandler.AIOSchemeHandler.onBypassUse(AIOSchemeHandler.java:61)

at l2.brick.gameserver.datatables.AIOItemTable.handleBypass(AIOItemTable.java:608)

at l2.brick.gameserver.network.clientpackets.RequestBypassToServer.runImpl(RequestBypassToServer.java:273)

at l2.brick.gameserver.network.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:62)

at l2.brick.gameserver.network.L2GameClient.run(L2GameClient.java:1012)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

 

THIS IS MY AIO Buff SCHEME HANDLER

package handlers.aioitemhandler;

import java.util.logging.Logger;

import javolution.text.TextBuilder;
import javolution.util.FastList;
import javolution.util.FastMap;

import l2.brick.CustomConfig;
import l2.brick.gameserver.cache.HtmCache;
import l2.brick.gameserver.datatables.AIOItemTable;
import l2.brick.gameserver.handler.IAIOItemHandler;
import l2.brick.gameserver.model.L2ItemInstance;
import l2.brick.gameserver.model.L2Skill;
import l2.brick.gameserver.model.actor.instance.L2PcInstance;
import l2.brick.gameserver.network.serverpackets.NpcHtmlMessage;

public class AIOSchemeHandler implements IAIOItemHandler
{
private static final Logger _log = Logger.getLogger(AIOSchemeHandler.class.getName());
private static final String BYPASS = "scheme";

private static enum Action
{
	CREATE_PROFILE,
	GET_BUFFS
}


@Override
public String getBypass() 
{
	return BYPASS;
}

@Override
public void onBypassUse(L2PcInstance player, String command) 
{
	String[] subCommands = command.split(" ");
	String actualCmd = subCommands[0];


	/*
	 * Send main's scheme page
	 */
	if(actualCmd.equalsIgnoreCase("main"))
	{
		sendSchemePageToPlayer(player);
	}
	/*
	 * Create scheme profile
	 */
	else if(actualCmd.equalsIgnoreCase("createprofile"))
	{
		if(player.getProfileNames().size() == CustomConfig.AIOITEM_SCHEME_MAX_PROFILES)
		{
			player.sendMessage("You alredy  reached the max allowed profiles per char!");
			return;
		}

		String secondCmd = subCommands[1];
		if(secondCmd == null || secondCmd.isEmpty())
		{
			_log.severe("Null Scheme Profile From :"+player.getName());
			return;
		}
		if(player.getProfileNames().contains(secondCmd))
		{
			player.sendMessage("The given profile alredy exist in your list!");
			return;
		}

		if(!paymentDone(player, Action.CREATE_PROFILE))
		{
			return;
		}

		player.addNewProfile(secondCmd);
		player.needSaveSchemes();
		sendSchemePageToPlayer(player);
	}
	/*
	 * Manage profile
	 */
	else if(actualCmd.equalsIgnoreCase("manage"))
	{
		String secondCmd = subCommands[1];

		if(secondCmd != null)
		{
			sendManageWindow(player, secondCmd);
		}
		else
		{
			_log.severe("Player "+player.getName()+" has a empty AIOItem scheme profile!");
			return;
		}
	}
	/*
	 * Get buffs
	 */
	else if(actualCmd.equalsIgnoreCase("buff"))
	{
		if(!paymentDone(player, Action.GET_BUFFS))
		{
			return;
		}

		String secondCmd = subCommands[1];
		if(secondCmd == null || secondCmd.isEmpty())
		{
			_log.severe("Null Scheme profile for player: "+player.getName());
			return;
		}

		FastList<L2Skill> buffs = player.getProfileBuffs(secondCmd);
		if(buffs != null)
		{
			for(L2Skill sk : buffs)
			{
				sk.getEffects(player, player);
			}
		}
	}
	/*
	 * Erase profile
	 */
	else if(actualCmd.equalsIgnoreCase("del"))
	{
		String secondCmd = subCommands[1];
		if(secondCmd == null || secondCmd.isEmpty())
		{
			_log.severe("Null scheme profile for: "+player.getName());
			return;
		}
		player.deleteProfile(secondCmd);
		player.needSaveSchemes();
		sendSchemePageToPlayer(player);
	}
	/*
	 * Add buffs to profile page
	 */
	else if(actualCmd.equalsIgnoreCase("editadd"))
	{
		String category = subCommands[1];
		String profile = subCommands[2];

		if(category == null || profile == null)
			return;

		sendAddBuffWindow(category, profile, player);
		player.setLastAIOBufferCategory(category);
	}
	/*
	 * Add a buff
	 */
	else if(actualCmd.equalsIgnoreCase("addbuff"))
	{
		String profile = subCommands[1];

		if(profile == null)
			return;

		int buffId = 0;
		try
		{
			buffId = Integer.parseInt(subCommands[2]);
		}
		catch(NumberFormatException nfe)
		{
			nfe.printStackTrace();
		}

		L2Skill buff = null;

		if((buff = AIOItemTable.getInstance().getBuff(buffId)) != null)
		{
			player.addNewBuff(profile, buff);
			player.needSaveSchemes();
			sendAddBuffWindow(player.getLastCategory(), profile, player);
		}
	}
	/*
	 * Delete buff window
	 */
	else if(actualCmd.equalsIgnoreCase("editdel"))
	{
		if(subCommands[1] == null)
			return;

		sendDelBuffWindow(subCommands[1], player);
	}
	/*
	 * Delete a buff
	 */
	else if(actualCmd.equalsIgnoreCase("delbuff"))
	{
		String profile = subCommands[1];

		if(profile == null)
			return;

		int buffId = 0;
		try
		{
			buffId = Integer.parseInt(subCommands[2]);
		}
		catch(NumberFormatException nfe)
		{
			nfe.printStackTrace();
		}

		L2Skill deletedBuff = AIOItemTable.getInstance().getBuff(buffId);
		player.deleteBuff(profile, deletedBuff);
		player.needSaveSchemes();
		sendDelBuffWindow(profile, player);
	}
}

/**
 * Will return true if the player made the payment for the
 * service, otherwise, will return false
 * @param player
 * @param action
 * @return boolean
 */
private boolean paymentDone(L2PcInstance player, Action action)
{
	L2ItemInstance coin = null;

	if((coin = player.getInventory().getItemByItemId(CustomConfig.AIOITEM_SCHEME_COIN)) == null)
	{
		player.sendMessage("You dont have the required items to proceed!");
		return false;
	}

	switch(action)
	{
		case CREATE_PROFILE:
		{
			if(coin.getCount() < CustomConfig.AIOITEM_SCHEME_PROFILE_PRICE)
			{
				player.sendMessage("You dont have enought "+coin.getName()+" to create a new scheme!");
				return false;
			}
			else
			{
				player.destroyItemByItemId("AIOItem", coin.getItemId(), CustomConfig.AIOITEM_SCHEME_PROFILE_PRICE, player, true);
				return true;
			}
		}
		case GET_BUFFS:
		{
			if(coin.getCount() < CustomConfig.AIOITEM_SCHEME_PRICE)
			{
				player.sendMessage("You dont have enought "+coin.getName()+" to create a new scheme!");
				return false;
			}
			else
			{
				player.destroyItemByItemId("AIOItem", coin.getItemId(), CustomConfig.AIOITEM_SCHEME_PRICE, player, true);
				return true;
			}
		}
		default:
			return false;
	}
}

/**
 * Will send to the player the scheme page with his info
 * @param player
 */
private void sendSchemePageToPlayer(L2PcInstance player)
{
	String schemeMain = HtmCache.getInstance().getHtm(null, "data/html/aioitem/scheme.htm");
	StringBuilder profiles = new StringBuilder();
	for(String prof : player.getProfileNames())
	{
		profiles.append("<a action=\"bypass -h Aioitem_scheme_manage "+prof+"\">"+prof+"<br1>");
	}
	NpcHtmlMessage msg = new NpcHtmlMessage(5);
	msg.setHtml(schemeMain);
	msg.replace("%profList%", profiles.toString());
	player.sendPacket(msg);
}

/**
 * Will send the profile edition page to the given player
 * @param player
 * @param profile
 */
private void sendManageWindow(L2PcInstance player, String profile)
{
	String html = HtmCache.getInstance().getHtm(null, "data/html/aioitem/schememanage.htm");
	if(html == null)
	{
		_log.severe("The file schememanage.htm for the AIOItem desn't exist or is corrupted!");
		return;
	}

	StringBuilder categories = new StringBuilder();
	for(String cat : AIOItemTable.getInstance().getBuffs().keySet())
	{
		categories.append("<a action=\"bypass -h Aioitem_scheme_editadd "+cat+" "+profile+"\">Add "+cat+" buffs</a>");
	}
	NpcHtmlMessage msg = new NpcHtmlMessage(5);
	msg.setHtml(html);
	msg.replace("%profile%", profile);
	msg.replace("%addList%", categories.toString());
	player.sendPacket(msg);
}

/**
 * Will show a window with the buffs from the given category
 * to be added to the player schemes profile
 * @param category
 * @param profile
 * @param player
 */
private void sendAddBuffWindow(String category, String profile, L2PcInstance player)
{
	int b = 2;
	FastMap<Integer, L2Skill> temp = AIOItemTable.getInstance().getBuffCategory(category).getCategoryBuffs();

	TextBuilder tb = new TextBuilder();
	tb.append("<html><body><center>");
	tb.append("<br><font color=LEVEL>Choose what you want!</font><br>");
	tb.append("<table width = 240 height 32>");
	for(int i : temp.keySet())
	{
		L2Skill sk = temp.get(i);
		if(player.getProfileBuffs(profile).contains(sk))
			continue;

		if(b % 2 == 0)
		{
			tb.append("<tr>");
			tb.append("<td><a action=\"bypass -h Aioitem_scheme_addbuff "+profile+" "+i+"\">"+sk.getName()+"</a></td>");
		}
		else
		{
			tb.append("<td><a action=\"bypass -h Aioitem_scheme_addbuff "+profile+" "+i+"\">"+sk.getName()+"</a></td>");
			tb.append("</tr>");
		}
		b++;
	}
	tb.append("</table><br><a action=\"bypass -h Aioitem_scheme_main\"><font color=LEVEL>Main</font></a>");
	tb.append("</center></body></html>");

	NpcHtmlMessage msg = new NpcHtmlMessage(5);
	msg.setHtml(tb.toString());
	player.sendPacket(msg);
}

private void sendDelBuffWindow(String profile, L2PcInstance player)
{
	if(player.getProfileBuffs(profile) == null)
		return;

	int b = 2;
	TextBuilder tb = new TextBuilder();
	tb.append("<html><body><center>");
	tb.append("<br><font color=LEVEL>Choose what you want!</font><br>");
	tb.append("<table width = 240 height 32>");
	for(L2Skill sk : player.getProfileBuffs(profile))
	{
		int id = sk.getId();
		if(player.getProfileBuffs(profile).contains(sk))
			continue;

		if(b % 2 == 0)
		{
			tb.append("<tr>");
			tb.append("<td><a action=\"bypass -h Aioitem_scheme_delbuff "+profile+" "+id+"\">"+sk.getName()+"</a></td>");
		}
		else
		{
			tb.append("<td><a action=\"bypass -h Aioitem_scheme_delbuff "+profile+" "+id+"\">"+sk.getName()+"</a></td>");
			tb.append("</tr>");
		}
		b++;
	}
	tb.append("</table><br><a action=\"bypass -h Aioitem_scheme_main\"><font color=LEVEL>Main</font></a>");
	tb.append("</center></body></html>");

	NpcHtmlMessage msg = new NpcHtmlMessage(5);
	msg.setHtml(tb.toString());
	player.sendPacket(msg);
}
}

3 answers to this question

Recommended Posts

Guest
This topic is now closed to further replies.


×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock