i try to edit something code for l2jserver. Hope it work.
Create java file: LevelCommands.java in voicedcommand folder
/*
* 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 handlers.voicedcommandhandlers;
import com.l2jserver.gameserver.handler.IVoicedCommandHandler;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.serverpackets.InventoryUpdate;
import com.l2jserver.gameserver.model.base.Experience;
/**
* @author Mentor
* @date 2009.09.05
*/
public class LevelCommands implements IVoicedCommandHandler
{
private static final String[] _voicedCommands = { "levelup", "leveldown" , "downlevel" , "uplevel" };
public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target)
{
int itemID = 57;
int itemCountUp = 1000000;
int itemCountDown = 200000;
if (command.equalsIgnoreCase("levelup") || command.equalsIgnoreCase("uplevel"))
{
if (activeChar.getInventory().getInventoryItemCount(itemID, 0) >= itemCountUp && activeChar.getStat().getLevel() < 85)
{
InventoryUpdate iu = new InventoryUpdate();
activeChar.getInventory().destroyItemByItemId("Adena", itemID, itemCountUp, activeChar, null);
activeChar.getInventory().updateDatabase();
activeChar.sendPacket(iu);
activeChar.addExpAndSp(Experience.LEVEL[activeChar.getStat().getLevel() + 1] - Experience.LEVEL[activeChar.getStat().getLevel()], 0);
activeChar.sendMessage("Level UP.");
}
else if(activeChar.getInventory().getInventoryItemCount(itemID, 0) >= 1000 && activeChar.getStat().getLevel() == 85){
activeChar.sendMessage("Sorry. You get maximum lv.");
}
else
{
activeChar.sendMessage("Havent enought item.");
}
}
else if (command.equalsIgnoreCase("leveldown") || command.equalsIgnoreCase("downlevel"))
{
if (activeChar.getInventory().getInventoryItemCount(itemID, 0) >= itemCountDown && activeChar.getStat().getLevel() > 1)
{
InventoryUpdate iu = new InventoryUpdate();
activeChar.getInventory().destroyItemByItemId("Event Medal", itemID, itemCountDown, activeChar, null);
activeChar.getInventory().updateDatabase();
activeChar.sendPacket(iu);
activeChar.getStat().removeExpAndSp((activeChar.getExp() - Experience.LEVEL[activeChar.getStat().getLevel() - 1]), 0);
activeChar.sendMessage("Level DOWN");
}
else if(activeChar.getInventory().getInventoryItemCount(itemID, 0) >= itemCountDown && activeChar.getStat().getLevel() == 1){
activeChar.sendMessage("Sorry. You get lowest lv.");
}
else
{
activeChar.sendMessage("Havent enought item.");
}
}
return true;
}
public String[] getVoicedCommandList()
{
return _voicedCommands;
}
}
Register in MasterHandler.java
VoicedCommandHandler.getInstance().registerVoicedCommandHandler(new LevelCommands());