Jump to content
  • 0

Community Boarb


Question

2 answers to this question

Recommended Posts

  • 0
Posted (edited)
package ...
 
 
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.logging.Level;
import java.util.logging.Logger;
 
import net.sf.l2j.Config;
import net.sf.l2j.L2DatabaseFactory;
 
 
public class TopPlayers
{
protected static final Logger _log = Logger.getLogger(TopPlayers.class.getName());
 
private static final String SELECT_CHARS = "SELECT SUM(chr.points), SUM(it.count), ch.char_name, ch.pkkills, ch.pvpkills, ch.onlinetime, ch.base_class, ch.online FROM characters ch LEFT JOIN character_raid_points chr ON ch.obj_Id=ch.obj_Id LEFT OUTER JOIN items it ON ch.obj_Id=it.owner_id WHERE item_id=57 GROUP BY ch.obj_Id ORDER BY ";
 
private int pos;
private final StringBuilder _topList = new StringBuilder();
String sort = "";
 
public TopPlayers(String file)
{
loadDB(file);
}
 
private void loadDB(String file)
{
switch (file)
{
case "toppvp":
sort = "pvpkills";
break;
case "toppk":
sort = "pkkills";
break;
case "topadena":
sort = "SUM(it.count)";
break;
case "toprbrank":
sort = "SUM(chr.points)";
break;
case "toponline":
sort = "onlinetime";
break;
default:
break;
 
}
 
try (Connection con = L2DatabaseFactory.getInstance().getConnection())
{
pos = 0;
PreparedStatement statement = con.prepareStatement(SELECT_CHARS + sort + " DESC LIMIT " + Config.TOP_PLAYER_RESULTS);
 
ResultSet result = statement.executeQuery();
 
while (result.next())
{
boolean status = false;
pos++;
 
if (result.getInt("online") == 1)
{
status = true;
}
String timeon = getPlayerRunTime(result.getInt("ch.onlinetime"));
String adenas = getAdenas(result.getLong("SUM(it.count)"));
 
addChar(pos, result.getString("ch.char_name"), result.getInt("base_class"), result.getInt("ch.pvpkills"), result.getInt("ch.pkkills"), result.getInt("SUM(chr.points)"), adenas, timeon, status);
}
 
result.close();
statement.close();
}
catch (Exception e)
{
_log.log(Level.WARNING, getClass().getName() + ": Could not Select Top Players " + e);
}
}
 
public String loadTopList()
{
return _topList.toString();
}
 
private void addChar(int position, String name, int classid, int pvp, int pk, int raid, String adenas, String online, boolean isOnline)
{
_topList.append("<table border=0 cellspacing=0 cellpadding=2 bgcolor=050505 height=" + Config.TOP_PLAYER_ROW_HEIGHT + "><tr><td FIXWIDTH=5></td>");
_topList.append("<td FIXWIDTH=27>" + position + ".</td>");
_topList.append("<td FIXWIDTH=160>" + name + "</td>");
_topList.append("<td FIXWIDTH=145>" + className(classid) + "</td>");
_topList.append("<td FIXWIDTH=60>" + pvp + "</td>");
_topList.append("<td FIXWIDTH=60>" + pk + "</td>");
_topList.append("<td FIXWIDTH=60>" + raid + "</td>");
_topList.append("<td FIXWIDTH=150>" + adenas + "</td>");
_topList.append("<td FIXWIDTH=150>" + online + "</td>");
_topList.append("<td FIXWIDTH=65>" + ((isOnline) ? "<font color=99FF00>Online</font>" : "<font color=CC0000>Offline</font>") + "</td>");
_topList.append("</tr></table><img src=\"L2UI.Squaregray\" width=\"610\" height=\"1\">");
}
 
public final static String className(int classId)
{
return String.valueOf(ClassList.className(classId));
}
 
public String getPlayerRunTime(int secs)
{
String timeResult = "";
timeResult = ((secs >= 86400 ? Integer.toString(secs / 86400) + " Days " + Integer.toString((secs % 86400) / 3600) + " hours." : Integer.toString(secs / 3600) + " Hours " + Integer.toString((secs % 3600) / 60) + " mins."));
return timeResult;
}
 
public String getAdenas(Long adena)
{
String adenas = "";
adenas = (adena >= 1000000000 ? Long.toString(adena / 1000000000) + " Billion " + Long.toString((adena % 1000000000) / 1000000) + " million" : Long.toString(adena / 1000000) + " Million " + Long.toString((adena % 1000000) / 1000) + " k");
return adenas;
}
}

 

public class TopPvpPlayers
{
private int _counter = 1;
private final TextBuilder _topPvp = new TextBuilder();
 
public TopPvpPlayers(String file)
{
loadDB(file);
}
 
private void loadDB(String file)
{
for (PlayersTopData playerData : CustomTable.getInstance().getTopPvp())
{
if (getCounter() <= SmartCommunityConfigs.TOP_PLAYER_RESULTS)
{
String name = playerData.getCharName();
String cName = playerData.getClanName();
int pvp = playerData.getPvp();
 
addChar(name, cName, pvp);
setCounter(getCounter() + 1);
}
}
}
 
public String loadTopList()
{
return _topPvp.toString();
}
 
private void addChar(String name, String cname, int pvp)
{
_topPvp.append("<table border=0 cellspacing=0 cellpadding=2 bgcolor=111111 width=750>");
_topPvp.append("<tr>");
_topPvp.append("<td FIXWIDTH=40>" + getCounter() + "</td");
_topPvp.append("<td fixwidth=160>" + name + "</td");
_topPvp.append("<td fixwidth=160>" + cname + "</td>");
_topPvp.append("<td fixwidth=80>" + pvp + "</td>");
_topPvp.append("</tr></table><img src=\"L2UI.Squaregray\" width=\"735\" height=\"1\">");
}
 
public int getCounter()
{
return _counter;
}
 
public void setCounter(int counter)
{
_counter = counter;
}
}
Edited by ExCaLiBuR®

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...