janiko Posted June 30, 2011 Posted June 30, 2011 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); } }
0 FighterBoss Posted July 2, 2011 Posted July 2, 2011 They don't help me :) Use another project then,l2jserver well better. Locked.
Question
janiko
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
3 answers to this question
Recommended Posts