Jump to content
  • 0

How can I edit an Admin Command?


Question

Posted

Hello averyone!

 

I want to edit an Admin command (//create_item). The problem is that only create items to me. I need that this commando be able to create the items to the target too.

Thank you!

Recommended Posts

  • 0
Posted
  On 6/17/2013 at 6:32 AM, Stewie said:

Okey, thanks for answer but considering that its doing nothing why is there?

 

Maybe for protection logs

  • 0
Posted
  On 6/17/2013 at 6:30 AM, xdem said:

package handlers.admincommandhandlers;

import java.util.StringTokenizer;

import net.sf.l2j.gameserver.datatables.ItemTable;
import net.sf.l2j.gameserver.handler.IAdminCommandHandler;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.network.serverpackets.ItemList;
import net.sf.l2j.gameserver.templates.item.L2Item;

/**
* This class handles following admin commands:
* - itemcreate = show menu
* - create_item <id> [num] = creates num items with respective id, if num is not specified, assumes 1.
*
* @version $Revision: 1.2.2.2.2.3 $ $Date: 2005/04/11 10:06:06 $
*/
public class AdminCreateItem implements IAdminCommandHandler
{
private static final String[] ADMIN_COMMANDS =
{
	"admin_itemcreate",
	"admin_create_item"
};

public boolean useAdminCommand(String command, L2PcInstance activeChar)
{
	if (command.equals("admin_itemcreate"))
	{
		AdminHelpPage.showHelpPage(activeChar, "itemcreation.htm");
	}
	else if (command.startsWith("admin_create_item"))
	{
		try
		{
			L2PcInstance p = activeChar;
			if (activeChar.getTarget() != null && instanceof L2PcInstance)
				p = activeChar.getTarget();
			String val = command.substring(17);
			StringTokenizer st = new StringTokenizer(val);
			if (st.countTokens() == 2)
			{
				String id = st.nextToken();
				int idval = Integer.parseInt(id);
				String num = st.nextToken();
				long numval = Long.parseLong(num);
				createItem(p, idval, numval);
			}
			else if (st.countTokens() == 1)
			{
				String id = st.nextToken();
				int idval = Integer.parseInt(id);
				createItem(p, idval, 1);
			}
		}
		catch (StringIndexOutOfBoundsException e)
		{
			activeChar.sendMessage("Usage: //itemcreate <itemId> [amount]");
		}
		catch (NumberFormatException nfe)
		{
			activeChar.sendMessage("Specify a valid number.");
		}
		AdminHelpPage.showHelpPage(activeChar, "itemcreation.htm");
	}
	return true;
}

public String[] getAdminCommandList()
{
	return ADMIN_COMMANDS;
}

private void createItem(L2PcInstance activeChar, int id, long num)
{
	L2Item template = ItemTable.getInstance().getTemplate(id);
	if (template == null)
	{
		activeChar.sendMessage("This item doesn't exist.");
		return;
	}
	if (num > 20)
	{
		if (!template.isStackable())
		{
			activeChar.sendMessage("This item does not stack - Creation aborted.");
			return;
		}
	}

	activeChar.getInventory().addItem("Admin", id, num, activeChar, null);

	ItemList il = new ItemList(activeChar, true);
	activeChar.sendPacket(il);

	activeChar.sendMessage("You have spawned " + num + " item(s) number " + id + " in your inventory.");
}
}

 

This will be ok

 

Thanks for help!

 

It returned an error:

js.png

 

Thanks!

  • 0
Posted
  On 6/17/2013 at 5:57 AM, Stewie said:

O.o wait...

activeChar.getInventory().addItem("Admin", id, num, activeChar, null);

"Admin"

 

I'm not sure what this does exacly... remove it and check if smth changed :D

 

It did not work. Thanks anyway!

  • 0
Posted
  On 6/18/2013 at 3:38 AM, Thalion said:

Thanks for help!

 

It returned an error:

js.png

 

Thanks!

 

That was okay, just simply do this:

This line:

    if (activeChar.getTarget() != null && instanceof L2PcInstance)

Replace with this:

    if (activeChar.getTarget() != null && activeChar.getTarget() instanceof L2PcInstance)

  • 0
Posted

the post is from 2009, u both got tricked by a spammer XD

 

edit: damn wifi, opened the wrong topic.. ignore what u just read >.>

  • 0
Posted
  On 6/18/2013 at 8:20 AM, Setekh said:

the post is from 2009, u both got tricked by a spammer XD

 

edit: damn wifi, opened the wrong topic.. ignore what u just read >.>

ahahahha

 

xdem nice baloni code :X

  • 0
Posted
  On 6/18/2013 at 8:34 AM, An4rchy said:

 

xdem nice baloni code :X

 

nothing wrong with the code just a mistake I made cause I didnt had eclipse and wrote it here direcrtly :P

  • 0
Posted
  On 6/18/2013 at 8:16 AM, Erlandys said:

That was okay, just simply do this:

This line:

    if (activeChar.getTarget() != null && instanceof L2PcInstance)

Replace with this:

    if (activeChar.getTarget() != null && activeChar.getTarget() instanceof L2PcInstance)

 

Thank you again!

Well I changed it and now I got this error:

 

udk.png

  • 0
Posted

yea you need to cast

 

this

p = activeChar.getTarget();

 

to

p = (L2PcInstance) activeChar.getTarget();

 

OR (more secure) but still you have the instanceof above =p

p = activeChar.getTarget().getActingPlayer();

  • 0
Posted
  On 6/18/2013 at 4:53 PM, xdem said:

yea you need to cast

 

this

p = activeChar.getTarget();

 

to

p = (L2PcInstance) activeChar.getTarget();

 

OR (more secure) but still you have the instanceof above =p

p = activeChar.getTarget().getActingPlayer();

 

Now it works! Thank you very much, you are amazing!

 

P.D.: Is working with "p = (L2PcInstance) activeChar.getTarget();"

  • 0
Posted
  On 6/18/2013 at 5:01 PM, Thalion said:

Now it works! Thank you very much, you are amazing!

 

your welcome

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