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

Admincommandhandlers find it in your scripts or in your core if you are using aCis. Then simply add check to target to get The PcInstance

  • 0
Posted

Say what? It's working already.. Just take a target and make a command. :o

 

If target is not found, you create item for urself, if found = to the target.

  • 0
Posted

Admincommandhandlers find it in your scripts or in your core if you are using aCis. Then simply add check to target to get The PcInstance

 

Thank you! I will try in the scripts.

 

Say what? It's working already.. Just take a target and make a command. :o

 

If target is not found, you create item for urself, if found = to the target.

 

I know, but in this datapack don't work. All the items created are for myself. Thanks.

  • 0
Posted

I think that //create_item already has the ability to give items to a selected target.

 

Anyway, you can edit the command from the admincommanhandlers package.

  • 0
Posted

So, show us the code. AdminCreateItem.java or how it's called on your project. :)

 

Especially this part, similar to this or even the same.. You know differences between projects :P

 

if (command.startsWith("admin_create_item"))

  • 0
Posted

Thank for reply! I found my java code:

 

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
		{
			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(activeChar, idval, numval);
			}
			else if (st.countTokens() == 1)
			{
				String id = st.nextToken();
				int idval = Integer.parseInt(id);
				createItem(activeChar, 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.");
}
}

  • 0
Posted

Thank for reply! I found my java code:

 

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
		{
			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(activeChar, idval, numval);
			}
			else if (st.countTokens() == 1)
			{
				String id = st.nextToken();
				int idval = Integer.parseInt(id);
				createItem(activeChar, 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.");
}
}

 

So are you ok?

  • 0
Posted

So are you ok?

 

What do you mean? This is the code of "AdminCreateItem.java" of my datapack.

I don't understand much of java. I want the items be able created to target player.

  • 0
Posted

Say what? It's working already.. Just take a target and make a command. :o

 

If target is not found, you create item for urself, if found = to the target.

You use too much aCis.

  • 0
Posted

Well I think nobody can help me. I want it only for a fast test.

When my server will be live it will not necessary.

Thank you anyway.

 

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

  • 0
Posted

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

  • 0
Posted

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

 

"Admin" does nothing lol, that what matters is the object, in this case L2PcInstanece parametter

  • 0
Posted

"Admin" does nothing lol, that what matters is the object, in this case L2PcInstanece parametter

 

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

Guest
This topic is now closed to further replies.


  • Posts

    • Hello friends, good morning, good afternoon or good evening, depending on the time you are seeing this! I have been trying to decompile and compile again with only the classes that I want LineageEffect.u for a few days now, but I have not been successful. Could someone help me by clearing up some doubts about how I can do this work and be successful?!
    • **INTERLUDE REMASTERED** Moonland is a server that's been running for about three years without wipe, and they don't plan on wiping it anytime soon. I'm selling my items or even the account due to not having much time to play anymore. I'm selling only for $$$. Not going to disclose my nickname in the server, but here are some of the items: Lvl 5 equipment for both mage and fighter +100 mage pvp set 2mastery jewels for fighter, 2 for mage, blessed antharas, blessed queen ant, ring of fallen angel, earring of fafurion. 1k + col, VIP cosmetics for armor, agathion and weapons(duals + mage wep)   I'm only selling for real money via paypal or cs2 skins so don't offer me anything else.
    • ➡ Discount for your purchase: MAY2025 (10% discount) ➡ Our Online Shop: https://socnet.store  ➡ Our SMM-Boosting Panel: https://socnet.pro  ➡ Telegram Shop Bot: https://socnet.shop  ➡ Telegram Support: https://t.me/solomon_bog  ➡ Telegram Channel: https://t.me/accsforyou_shop  ➡ Discord Support: @AllSocialNetworksShop  ➡ Discord Server: https://discord.gg/y9AStFFsrh  ➡ WhatsApp Support: https://wa.me/79051904467 ➡ WhatsApp Channel: https://whatsapp.com/channel/0029Vau0CMX002TGkD4uHa2n  ➡ Email Support: solomonbog@socnet.store 
    • ➡ Discount for your purchase: MAY2025 (10% discount) ➡ Our Online Shop: https://socnet.store  ➡ Our SMM-Boosting Panel: https://socnet.pro  ➡ Telegram Shop Bot: https://socnet.shop  ➡ Telegram Support: https://t.me/solomon_bog  ➡ Telegram Channel: https://t.me/accsforyou_shop  ➡ Discord Support: @AllSocialNetworksShop  ➡ Discord Server: https://discord.gg/y9AStFFsrh  ➡ WhatsApp Support: https://wa.me/79051904467 ➡ WhatsApp Channel: https://whatsapp.com/channel/0029Vau0CMX002TGkD4uHa2n  ➡ Email Support: solomonbog@socnet.store 
  • Topics

×
×
  • Create New...