well i didnt used to had that issue u reffering , u can always lower the page value that would show on each page . keep in mind it was taken from h5 that it can handle more html length than interlude .
package handlers.admincommandhandlers;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
import org.l2jmobius.gameserver.util.Util;
public class AdminInventory implements IAdminCommandHandler {
private static final String[] ADMIN_COMMANDS =
{
"admin_showinv",
"admin_delete_item"
};
@Override
public boolean useAdminCommand(String command, Player activeChar)
{
WorldObject target = activeChar.getTarget();
if (target == null || !target.isPlayer()) {
activeChar.sendPacket(SystemMessageId.INVALID_TARGET);
return false;
}
if (command.startsWith(ADMIN_COMMANDS[0]))
{
if (command.length() > ADMIN_COMMANDS[0].length())
{
String com = command.substring(ADMIN_COMMANDS[0].length() + 1);
if (Util.isDigit(com))
{
showItemsPage(activeChar, Integer.parseInt(com));
}
}
else
{
showItemsPage(activeChar, 0);
}
}
int count = 1;
if (command.contains(ADMIN_COMMANDS[1])) {
String[] parts = command.split(" ");
if (parts.length == 3) {
try {
count = Integer.parseInt(parts[2]);
} catch (NumberFormatException e) {
activeChar.sendMessage("Invalid quantity format.");
return false;
}
}
if (count == 0) {
activeChar.sendMessage("Quantity must be 1 or above, or left blank for default.");
showItemsPage(activeChar, 0);
return false;
}
String val = parts[1];
target.getActingPlayer().destroyItem("GM Destroy", Integer.parseInt(val), count, null, true);
showItemsPage(activeChar, 0);
}
return true;
}
private void showItemsPage(Player activeChar, int page)
{
final WorldObject target = activeChar.getTarget();
final Player player = target.getActingPlayer();
final Item[] items = player.getInventory().getItems().toArray(new Item[0]);
int maxItemsPerPage = 13;
int maxPages = items.length / maxItemsPerPage;
if (items.length > (maxItemsPerPage * maxPages))
{
maxPages++;
}
if (page > maxPages)
{
page = maxPages;
}
int itemsStart = maxItemsPerPage * page;
int itemsEnd = items.length;
if ((itemsEnd - itemsStart) > maxItemsPerPage)
{
itemsEnd = itemsStart + maxItemsPerPage;
}
final NpcHtmlMessage adminReply = new NpcHtmlMessage(0);
adminReply.setFile(activeChar, "data/html/admin/inventory.htm");
adminReply.replace("%PLAYER_NAME%", activeChar.getName());
StringBuilder sbPages = new StringBuilder();
for (int x = 0; x < maxPages; x++)
{
int pagenr = x + 1;
sbPages.append("<td><button value=\"" + pagenr + "\" action=\"bypass -h admin_showinv " + x + "\" width=20 height=20 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>");
}
adminReply.replace("%PAGES%", sbPages.toString());
StringBuilder sbItems = getStringBuilder(itemsStart, itemsEnd, items);
adminReply.replace("%ITEMS%", sbItems.toString());
activeChar.sendPacket(adminReply);
}
private static StringBuilder getStringBuilder(int itemsStart, int itemsEnd, Item[] items) {
StringBuilder sbItems = new StringBuilder();
sbItems.append("<table width=270>");
sbItems.append("<tr>");
sbItems.append("<td width=24><b> </b></td>");
sbItems.append("<td width=120><b> </b></td>");
sbItems.append("<td width=90><b>Count</b></td>");
sbItems.append("<td width=65><b>Quantity</b></td>");
sbItems.append("</tr>");
for (int i = itemsStart; i < itemsEnd; i++) {
Item item = items[i];
sbItems.append("<tr>");
sbItems.append("<td><img src=").append(item.getTemplate().getIcon()).append(" width=24 height=24></td>");
sbItems.append("<td>").append(item.getName()).append("</td>");
sbItems.append("<td>").append(item.getCount()).append("</td>");
sbItems.append("<td>");
sbItems.append("<edit var=\"itemCount_").append(i).append("\" width=40>");
sbItems.append("</td>");
sbItems.append("<td><button action=\"bypass -h admin_delete_item ").append(item.getObjectId()).append(" $itemCount_").append(i).append("\" width=16 height=16 back=\"L2UI_ct1.Button_DF_Delete\" fore=\"L2UI_ct1.Button_DF_Delete\"></button></td>");
sbItems.append("</tr>");
}
sbItems.append("</table>");
return sbItems;
}
@Override
public String[] getAdminCommandList()
{
return ADMIN_COMMANDS;
}
}
Since i did jumped to mobius here the mobius one with quantity field aswell .
feel free to adapt it back to acis or wherever
<html><body><title>Inventory : %PLAYER_NAME%</title>
<center>
<table width=270>
<tr>
%PAGES%
</tr>
</table>
</center>
<br>
%ITEMS%
</body>
</html>