Jump to content
  • 0

HTML too long/I need to make some pages in java!


Question

Posted

Hi guys once again i need your help.

I added a shift + click droplist panel on my server works fine except one missfaction. When the droplist is too big for example grandbosses the html page crashes.   "Your html is too long use database for this action"

So i need to seperate the droplist data in pages [1,2,3] or adding a next page button. 

Looking for someone to help me! Thank you!

My java code is here i use only requestbypasstoserver.java :

 else if (_command.startsWith("DropListNpc"))
              {
               final L2Object object = activeChar.getTarget();
              
              
               if (object instanceof L2NpcInstance)
               {
                   NpcHtmlMessage html = new NpcHtmlMessage(0);
                   StringBuilder html1 = new StringBuilder("<html>");
                  
                   html1.append("<title>Npc Name: " + object.getName() + "</title>");
                   html1.append("<body>");
                   html1.append("<br>");
                   html1.append("<table cellspacing=2 cellpadding=1 width=\"280\">");
                  
                   if (((L2NpcInstance) object).getTemplate().getDropData() != null)
                   {
                	   
                       for (L2DropCategory cat : ((L2NpcInstance) object).getTemplate().getDropData())
                       {
                          for (L2DropData drop : cat.getAllDrops())
                           {
                               final L2Item item = ItemTable.getInstance().getTemplate(drop.getItemId());
                               
                               if (item == null)
                                   continue;
                               int mind = 0, maxd = 0;
                               String smind = null, smaxd = null;
                               String name = item.getName();
                               if (cat.isSweep())
                               {
                                   mind = (int) (Config.RATE_DROP_SPOIL * drop.getMinDrop());
                                   maxd = (int) (Config.RATE_DROP_SPOIL * drop.getMaxDrop());
                               }
                               else if (drop.getItemId() == 57)
                               {
                                   mind = 300 * drop.getMinDrop();
                                   maxd = 300 * drop.getMaxDrop();
                               }
                               else
                               {
                                   mind = (int) (Config.RATE_DROP_ITEMS * drop.getMinDrop());
                                   maxd = (int) (Config.RATE_DROP_ITEMS * drop.getMaxDrop());
                               }
                               if (mind > 999999)
                               {
                                   DecimalFormat df = new DecimalFormat("###.#");
                                   smind = df.format(((double) (mind)) / 1000000) + " KK";
                                   smaxd = df.format(((double) (maxd)) / 1000000) + " KK";
                               }
                               else if (mind > 999)
                               {
                                   smind = ((mind / 1000)) + " K";
                                   smaxd = ((maxd / 1000)) + " K";
                               }
                              
                               else
                               {
                                   smind = Integer.toString(mind);
                                   smaxd = Integer.toString(maxd);
                               }
                               if (name.startsWith("Common Item - "))
                               {
                                   name = "(CI)" + name.substring(14);
                               }
                               if (name.length() >= 34)
                               {
                                   name = name.substring(0, 30) + "...";
                               }
                               html1.append("<tr>");
                               html1.append("<td valign=top align=center height=38 width=40><img src=\"" + getIcon(item.getItemId()) + "\" height=32 width=32></td>");
                               html1.append("<td>");
                               html1.append("<table cellpadding=0 cellspacing=1 width=260>");
                               html1.append("<tr>");
                               html1.append("<td><font color=fff600>" + name + "</font> " + (maxd == 1 ? "[1]" : "[" + smind + " - " + smaxd + "]") + "</td>");
                               html1.append("</tr>");
                               html1.append("<tr>");
                               html1.append("<td><font color=00ff00>Chance: </font>" + (drop.getChance() >= 10000 ? (double) drop.getChance() / 10000 : drop.getChance() < 10000 ? (double) drop.getChance() / 10000 : "N/A") + "%  "+ "</td>");
                               html1.append("</tr>");
                               html1.append("<tr>");
                               html1.append("<td><font color=00b3b3>Drop Type:</font> " + (drop.isQuestDrop() ? "<font color=00b3b3>[Quest]</font>" : (cat.isSweep() ? "<font color=ff00ff>[Spoil]</font> " : "<font color=00b3b3>[Drop]</font>")) + "</td>");
                               html1.append("</tr>");
                               html1.append("</table><img src=L2UI.SquareGray width=260 height=1>");
                               html1.append("</td>");
                               
                          
                               
                           }
                       }
                   }
                  
                   html1.append("</tr></table>");
                   html1.append("</body>");
                   html1.append("</html>");
                  
                   html.setHtml(html1.toString());
                   activeChar.sendPacket(html);
                  
                   html1 = null;
                   html = null;
               }
           }
           
		}

 

12 answers to this question

Recommended Posts

  • 0
Posted
On 9/19/2020 at 7:06 PM, Rootware said:

Add optional pagination if drop list has more than 20 items.

can i have a preview cause i'm a newbie java coder? in my code i posted above? thank you very much

  • 0
Posted
2 minutes ago, KaLeDoR said:

can i have a preview cause i'm a newbie java coder? in my code i posted above? thank you very much

 

The preview will contains the full completed code. And this will not help in solving your problem, but doing the work for you. You need make a choice: get help or asking do work for you.

  • 0
Posted (edited)

You can check pagination system on aCis. It basically store all elements in a List than sublist it based on given page number.

 

Simply check one of the 7 occurences of MathUtil#countPagesNumber.

 

https://gitlab.com/Tryskell/acis_public/-/blob/master/aCis_gameserver/java/net/sf/l2j/commons/math/MathUtil.java

 

Exemple of use #showBookmarks :

 

https://gitlab.com/Tryskell/acis_public/-/blob/master/aCis_gameserver/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminBookmark.java

 

By default L2J got also some handwritten pagination, maybe 1 or 2 times, but I don't find it really readable.

Edited by Tryskell
  • 0
Posted
On 9/20/2020 at 11:20 PM, Rootware said:

 

The preview will contains the full completed code. And this will not help in solving your problem, but doing the work for you. You need make a choice: get help or asking do work for you.

If anyone can make the work done i could pay him a small fee by paypall. I already tried to add pagination like stinkymadness did in his code but not working sth i do wrong propably.

  • 0
Posted
On 9/19/2020 at 7:06 PM, Rootware said:

Add optional pagination if drop list has more than 20 items.

I haven't the knowledge to do this to you want to do the job and get paid?

  • 0
Posted (edited)
13 hours ago, KaLeDoR said:

I haven't the knowledge to do this to you want to do the job and get paid?

Dude just adapt 10 lines of existing code, you dont have to create a new one or pay for such a thing

Edited by Zake
  • 0
Posted
26 minutes ago, Zake said:

Dude just adapt 10 lines of existing code, you dont have to create a new one or pay for such a thing

I dont have the knowledge to do this thats why i made a topic if theres anyone willing to help but i can pay for cause i didnt receive any help

Only tryskel gave me some info about pagination on acis but i use frozen and i cant understand the use of list arrays and bookmarks even if i tried is so hard for my skills

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...