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.



  • Posts

    • Discord         :  utchiha_market Telegram        : https://t.me/utchiha_market Auto Buy Store  : https://utchiha-market.mysellauth.com/ Not sure if we’re legit? Check Our server — real reviews, real buyers https://discord.gg/uthciha-servicess  | https://campsite.bio/utchihaamkt
    • Hi there, Looking to buy Salvation-H5 L2jEternity Files with Source Code + AutoFarm, no scammers please, only trusted payment methods, dm me with price and information. Thanks!
    • SocNet is looking for new suppliers!  — Reddit accounts with karma  — LinkedIn accounts with real connections  Message us or contact support — let’s discuss terms!  We’re also open to other partnership opportunities.   Our Online Store Offers: Accounts: Telegram, Facebook, Reddit, Twitter (X), Instagram, YouTube, TikTok, Discord, VK, LinkedIn, GitHub, Snapchat, Gmail, Emails (Outlook, Firstmail, Rambler, Onet, Gazeta, GMX, Yahoo, Proton, Web.de), Google Voice, Google Ads Premium Subscriptions: Telegram Premium, Twitter Premium X, YouTube Premium, Spotify Premium, Netflix Premium, Discord Nitro, ChatGPT Plus/PRO, XBOX Game Pass Additional Services: Telegram Stars, Proxies (IPv4, IPv6, ISP, Mobile), VPN (Outline, WireGuard, etc.), VDS/RDP Servers   SMM Panel Services: Use our SMM Panel to boost Facebook, Instagram, Telegram, Spotify, Soundcloud, YouTube, Reddit, Threads, Kick, Discord, LinkedIn, Likee, VK, Twitch, Kwai, Reddit, website traffic, TikTok, TrustPilot, Apple Music, Tripadvisor, Snapchat, and more. Promo code for store discount: PARTNER8 (8% off)  Get $1 trial balance for the SMM Panel:  Submit a ticket titled “Get Trial Bonus” via our website (Support)  ➡ Go to the SMM Panel (clickable) or contact us through the bot    Our Key Products:  Online Store: Click  Telegram Shop Bot: Click   SMM Panel: Click    Payments accepted: Bank cards · Crypto · Other popular methods   Returning buyers receive extra discounts and promo codes!   Support:  ➡ Telegram: https://t.me/solomon_bog   ➡ Discord: https://discord.gg/y9AStFFsrh   ➡ WhatsApp: https://wa.me/79051904467   ➡ Email: solomonbog@socnet.store    ➡ Telegram Channel: https://t.me/accsforyou_shop  You can also use these contacts to:  — Discuss bulk orders  — Form partnerships (Current partners: https://socnet.bgng.io/partners )  — Become our supplier SocNet — your digital goods & subscription store
  • Topics

×
×
  • 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