Advertisement
Guest User

Untitled

a guest
Feb 10th, 2019
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.50 KB | None | 0 0
  1. package net.sf.l2j.gameserver.handler.admincommandhandlers;
  2.  
  3. import java.util.Set;
  4.  
  5. import net.sf.l2j.commons.lang.StringUtil;
  6.  
  7. import net.sf.l2j.gameserver.handler.IAdminCommandHandler;
  8. import net.sf.l2j.gameserver.model.actor.instance.Player;
  9. import net.sf.l2j.gameserver.model.item.instance.ItemInstance;
  10. import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;
  11.  
  12.  
  13. /**
  14.  * This class handles following admin commands:
  15.  * <ul>
  16.  * <li>show_ivetory</li>
  17.  * <li>delete_item</li>
  18.  * </ul>
  19.  * @author Zealar
  20.  */
  21.  
  22. public class AdminInventory implements IAdminCommandHandler
  23. {
  24.     private static final String[] ADMIN_COMMANDS =
  25.     {
  26.         "admin_show_inventory",
  27.         "admin_delete_item"
  28.     };
  29.    
  30.     @Override
  31.     public boolean useAdminCommand(String command, Player activeChar)
  32.     {
  33.         if ((activeChar.getTarget() == null))
  34.         {
  35.             activeChar.sendMessage("Select a target");
  36.             return false;
  37.         }
  38.        
  39.         if (!(activeChar.getTarget() instanceof Player))
  40.         {
  41.             activeChar.sendMessage("Target need to be player");
  42.             return false;
  43.         }
  44.        
  45.         Player player = activeChar.getTarget().getActingPlayer();
  46.        
  47.         if (command.startsWith(ADMIN_COMMANDS[0]))
  48.         {
  49.             if (command.length() > ADMIN_COMMANDS[0].length())
  50.             {
  51.                 String com = command.substring(ADMIN_COMMANDS[0].length() + 1);
  52.                 if (StringUtil.isDigit(com))
  53.                 {
  54.                     showItemsPage(aο»ΏctiveChar, Integer.parseInt(com));
  55.                 }
  56.             }
  57.            
  58.             else
  59.             {
  60.                 showItemsPage(activeChar, 0);
  61.             }
  62.         }
  63.         else if (command.contains(ADMIN_COMMANDS[1]))
  64.         {
  65.             String val = command.substring(ADMIN_COMMANDS[1].length() + 1);
  66.            
  67.             player.destroyItem("GM Destroy", Integer.parseInt(val), player.getInventory().getItemByObjectId(Integer.parseInt(val)).getCount(), null, true);
  68.             showItemsPage(activeChar, 0);
  69.         }
  70.        
  71.         return true;
  72.     }
  73.    
  74.     private static void showItemsPage(Player activeChar, int page)
  75.     {
  76.         final Player target = activeChar.getTarget().getActingPlayer();
  77.        
  78.  
  79.         final Set<ItemInstance> items = target.getInventory().getItems();
  80.        
  81.         int maxItemsPerPage = 16;
  82.         int maxPages = items.size() / maxItemsPerPage;
  83.         if (items.size() > (maxItemsPerPage * maxPages))
  84.         {
  85.             maxPages++;
  86.         }
  87.    
  88.         if (page > maxPages)
  89.         {
  90.             page = maxPages;
  91.         }
  92.        
  93.         int itemsStart = maxItemsPerPage * page;
  94.         int itemsEnd = items.size();
  95.         if ((itemsEnd - itemsStart) > maxItemsPerPage)
  96.         {
  97.             itemsEnd = itemsStart + maxItemsPerPage;
  98.         }
  99.        
  100.     final NpcHtmlMessage adminReply = new NpcHtmlMessage(0);
  101.         adminReply.setFile("data/html/admin/inventory.htm");
  102.         adminReply.replace("%PLAYER_NAME%", target.getName());
  103.        
  104.         StringBuilder sbPages = new StringBuilder();
  105.         for (int x = 0; x < maxPages; x++)
  106.         {
  107.             int pagenr = x + 1;
  108.             sbPages.append("<td><button value=\"" + String.valueOf(pagenr) + "\" action=\"bypass -h admin_show_inventory " + String.valueOf(x) + "\" width=14 height=14 back=\"sek.cbui67\" fore=\"sek.cbui67\"></td>");
  109.         }
  110.        
  111.         adminReply.replace("%PAGES%", sbPages.toString());
  112.        
  113.         StringBuilder sbItems = new StringBuilder();
  114.        
  115.         for (ItemInstance item: items)
  116.         {
  117.             sbItems.append("<tr><td><button action=\"bypass -h admin_delete_item " + String.valueOf(item.getObjectId()) + "\" width=16 height=16 back=\"L2UI.bbs_delete\" fore=\"L2UI.bbs_delete\">" + "</td>");
  118.             sbItems.append("<td width=60>" + item.getName() + "</td></tr><br>");
  119.         }
  120.        
  121.         adminReply.replace("%ITEMS%", sbItems.toString());
  122.        
  123.         activeChar.sendPacket(adminReply);
  124.     }
  125.    
  126.     @Override
  127.     public String[] getAdminCommandList()
  128.     {
  129.         return ADMIN_COMMANDS;
  130.     }
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement