DominiQue Posted April 5, 2010 Share Posted April 5, 2010 Core: Index: java/com/l2jserver/communityserver/communityboard/boards/TopBoard.java =================================================================== --- java/com/l2jserver/communityserver/communityboard/boards/TopBoard.java (revision 631) +++ java/com/l2jserver/communityserver/communityboard/boards/TopBoard.java (working copy) @@ -16,9 +16,12 @@ import java.util.StringTokenizer; +import javolution.text.TextBuilder; + import com.l2jserver.communityserver.cache.HtmCache; import com.l2jserver.communityserver.communityboard.CommunityBoard; import com.l2jserver.communityserver.communityboard.CommunityBoardManager; +import com.l2jserver.communityserver.model.PlayerList; public class TopBoard extends CommunityBoard { @@ -42,6 +45,10 @@ } if (file.isEmpty()) content = "<html><body><br><br><center>Error: no file name </center></body></html>"; + else if (file.equals("top_pk")) + content = top10pk(); + else if (file.equals("top_pvp")) + content = top10pvp(); else content = HtmCache.getInstance().getHtm(this.getCommunityBoardManager().getSQLDPId(),"html/" + file); if (content == null) @@ -50,6 +57,26 @@ super.send(playerObjId, content); } + public String top10pk() { + PlayerList pl = new PlayerList(0); + String content = HtmCache.getInstance().getHtm("cb_data/staticfiles/html/top-players.htm"); + //content = content.replaceAll("%Link%","top_pk"); + content = content.replaceAll("%LinkTitle%","Top PK"); + content = content.replaceAll("%Title%","<font color=\"LEVEL\">[Top PK]</font>"); + content = content.replaceAll("%PlayerList%", pl.loadPlayerList()); + return content; + } + + public String top10pvp() { + PlayerList pl = new PlayerList(1); + String content = HtmCache.getInstance().getHtm("cb_data/staticfiles/html/top-players.htm"); + //content = content.replaceAll("%Link%","top_pvp"); + content = content.replaceAll("%LinkTitle%","Top PvP"); + content = content.replaceAll("%Title%","<font color=\"LEVEL\">[Top PvP]</font>"); + content = content.replaceAll("%PlayerList%", pl.loadPlayerList()); + return content; + } + @Override public final void parseWrite(final int playerObjId, final String ar1, final String ar2, final String ar3, final String ar4, final String ar5) { Index: java/com/l2jserver/communityserver/model/PlayerList.java =================================================================== --- java/com/l2jserver/communityserver/model/PlayerList.java (revision 0) +++ java/com/l2jserver/communityserver/model/PlayerList.java (revision 0) @@ -0,0 +1,206 @@ +package com.l2jserver.communityserver.model; + +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.Map; +import java.util.logging.Logger; + +import com.l2jserver.communityserver.L2DatabaseFactory; + +import javolution.text.TextBuilder; +import javolution.util.FastMap; + +public class PlayerList +{ + private static Logger _log = Logger.getLogger(PlayerList.class.getName()); + + private int _posId; + private TextBuilder _playerList = new TextBuilder(); + + + public PlayerList(int type) + { + loadFromDB(type); + } + + private void loadFromDB(int type) { + java.sql.Connection con = null; + String top; + if (type==0) + top = "pkkills"; + else + top = "pvpkills"; + try + { + _posId = 0; + con = L2DatabaseFactory.getInstance().getConnection(); + PreparedStatement statement = con.prepareStatement("SELECT c.char_name, c.base_class, c."+top+", c.level, c.online, cl.clan_name, cl.ally_name FROM characters c LEFT JOIN clan_data cl ON cl.clan_id=c.clanid WHERE c.accesslevel=0 ORDER BY c."+top+" DESC, c.char_name ASC LIMIT 10"); + + ResultSet result = statement.executeQuery(); + + while (result.next()) + { + boolean status = false; + _posId = _posId + 1; + + if(result.getInt("online") == 1) + status = true; + + addPlayerToList(_posId, result.getString("char_name"), result.getString("clan_name"), result.getString("ally_name"), result.getInt("base_class"), result.getInt("level"), result.getInt(top), status); + } + + result.close(); + statement.close(); + } + catch (Exception e) + { + e.printStackTrace(); + } + finally + { + try + { + con.close(); + } + catch (Exception e) + { + } + } + } + + public String loadPlayerList() + { + return _playerList.toString(); + } + + private void addPlayerToList(int objId, String name, String clan, String alliance, int ChrClass, int level, int points, boolean isOnline) + { + _playerList.append("<table border=0 cellspacing=0 cellpadding=2 width=750>"); + _playerList.append("<tr>"); + _playerList.append("<td FIXWIDTH=10></td>"); + _playerList.append("<td FIXWIDTH=40>"+objId+".</td>"); + _playerList.append("<td FIXWIDTH=150>"+name+"</td>"); + _playerList.append("<td FIXWIDTH=80>"+level+"</td>"); + _playerList.append("<td FIXWIDTH=160>"+className(ChrClass)+"</td>"); + _playerList.append("<td FIXWIDTH=160>"+clan+"</td>"); + _playerList.append("<td FIXWIDTH=160>"+alliance+"</td>"); + _playerList.append("<td FIXWIDTH=60>"+points+"</td>"); + _playerList.append("<td FIXWIDTH=90>"+((isOnline) ? "<font color=99FF00>Online</font>" : "<font color=CC0000>Offline</font>")+"</td>"); + _playerList.append("<td FIXWIDTH=5></td>"); + _playerList.append("</tr>"); + _playerList.append("</table>"); + _playerList.append("<img src=\"L2UI.Squaregray\" width=\"740\" height=\"1\">"); + } + + private final String className(int classId) + { + Map<Integer, String> classList; + classList = new FastMap<Integer, String>(); + classList.put(0, "Fighter"); + classList.put(1, "Warrior"); + classList.put(2, "Gladiator"); + classList.put(3, "Warlord"); + classList.put(4, "Knight"); + classList.put(5, "Paladin"); + classList.put(6, "Dark Avenger"); + classList.put(7, "Rogue"); + classList.put(8, "Treasure Hunter"); + classList.put(9, "Hawkeye"); + classList.put(10, "Mage"); + classList.put(11, "Wizard"); + classList.put(12, "Sorcerer"); + classList.put(13, "Necromancer"); + classList.put(14, "Warlock"); + classList.put(15, "Cleric"); + classList.put(16, "Bishop"); + classList.put(17, "Prophet"); + classList.put(18, "Elven Fighter"); + classList.put(19, "Elven Knight"); + classList.put(20, "Temple Knight"); + classList.put(21, "Swordsinger"); + classList.put(22, "Elven Scout"); + classList.put(23, "Plains Walker"); + classList.put(24, "Silver Ranger"); + classList.put(25, "Elven Mage"); + classList.put(26, "Elven Wizard"); + classList.put(27, "Spellsinger"); + classList.put(28, "Elemental Summoner"); + classList.put(29, "Oracle"); + classList.put(30, "Elder"); + classList.put(31, "Dark Fighter"); + classList.put(32, "Palus Knightr"); + classList.put(33, "Shillien Knight"); + classList.put(34, "Bladedancer"); + classList.put(35, "Assasin"); + classList.put(36, "Abyss Walker"); + classList.put(37, "Phantom Ranger"); + classList.put(38, "Dark Mage"); + classList.put(39, "Dark Wizard"); + classList.put(40, "Spellhowler"); + classList.put(41, "Phantom Summoner"); + classList.put(42, "Shillien Oracle"); + classList.put(43, "Shilien Elder"); + classList.put(44, "Orc Fighter"); + classList.put(45, "Orc Raider"); + classList.put(46, "Destroyer"); + classList.put(47, "Orc Monk"); + classList.put(48, "Tyrant"); + classList.put(49, "Orc Mage"); + classList.put(50, "Orc Shaman"); + classList.put(51, "Overlord"); + classList.put(52, "Warcryer"); + classList.put(53, "Dwarven Fighter"); + classList.put(54, "Scavenger"); + classList.put(55, "Bounty Hunter"); + classList.put(56, "Artisan"); + classList.put(57, "Warsmith"); + classList.put(88, "Duelist"); + classList.put(89, "Dreadnought"); + classList.put(90, "Phoenix Knight"); + classList.put(91, "Hell Knight"); + classList.put(92, "Sagittarius"); + classList.put(93, "Adventurer"); + classList.put(94, "Archmage"); + classList.put(95, "Soultaker"); + classList.put(96, "Arcana Lord"); + classList.put(97, "Cardinal"); + classList.put(98, "Hierophant"); + classList.put(99, "Evas Templar"); + classList.put(100, "Sword Muse"); + classList.put(101, "Wind Rider"); + classList.put(102, "Moonlight Sentinel"); + classList.put(103, "Mystic Muse"); + classList.put(104, "Elemental Master"); + classList.put(105, "Evas Saint"); + classList.put(106, "Shillien Templar"); + classList.put(107, "Spectral Dancer"); + classList.put(108, "Ghost Hunter"); + classList.put(109, "Ghost Sentinel"); + classList.put(110, "Storm Screamer"); + classList.put(111, "Spectral Master"); + classList.put(112, "Shillien Saint"); + classList.put(113, "Titan"); + classList.put(114, "Grand Khavatari"); + classList.put(115, "Dominator"); + classList.put(116, "Doomcryer"); + classList.put(117, "Fortune Seeker"); + classList.put(118, "Maestro"); + classList.put(123, "Male Soldier"); + classList.put(124, "Female Soldier"); + classList.put(125, "Trooper"); + classList.put(126, "Warder"); + classList.put(127, "Berserker"); + classList.put(128, "Male Soulbreaker"); + classList.put(129, "Female Soulbreaker"); + classList.put(130, "Arbalester"); + classList.put(131, "Doombringer"); + classList.put(132, "Male Soulhound"); + classList.put(133, "Female Soulhound"); + classList.put(134, "Trickster"); + classList.put(135, "Inspector"); + classList.put(136, "Judicator"); + + return classList.get(classId); + } +} DP: Index: cb_data/staticfiles/html/top-players.htm =================================================================== --- cb_data/staticfiles/html/top-players.htm (revision 0) +++ cb_data/staticfiles/html/top-players.htm (revision 0) @@ -0,0 +1,36 @@ +<html> + + +<body> + +<center><br><br> <br1><br1> + +<table border=0 cellspacing=0 cellpadding=0> +<tr> +<td FIXWIDTH=15> </td> +<td width=750 height=30 align=left><a action="bypass _bbshome"> LOCAL COMMUNITY </a> > %LinkTitle%</td> +</tr></table> +%Title% +<br> +<table border=0 cellspacing=0 cellpadding=2 bgcolor=5A5A5A width=750> +<tr> + +<td FIXWIDTH=10></td> +<td FIXWIDTH=40>#</td> +<td FIXWIDTH=150>Name</td> +<td FIXWIDTH=80>Lv</td> +<td FIXWIDTH=160>Class</td> +<td FIXWIDTH=160>Clan</td> +<td FIXWIDTH=160>Ally</td> +<td FIXWIDTH=60>Points</td> +<td FIXWIDTH=90>Status</td> +<td FIXWIDTH=5></td> +</tr> +</table> + +%PlayerList% + +<br> <br> <br> +</center> +</body> +</html> Index: cb_data/top/bartz/html/index.htm =================================================================== --- cb_data/top/bartz/html/index.htm (revision 631) +++ cb_data/top/bartz/html/index.htm (working copy) @@ -80,6 +80,37 @@ <tr><td width=755><img src="l2ui.squaregray" width="750" height="1"></td></tr> </table> <br> + +<table border=0 cellspacing=0 cellpadding=2> +<tr> +<td FIXWIDTH=100 align=right valign=top><img src="l2ui.bbs_folder" width=32 height=32></td> +<td FIXWIDTH=410 align=left valign=top><a action="bypass _bbshome;top_pvp">Top PvP</a><br1> + +<font color="AAAAAA">Top PvP players</font></td> +<td FIXWIDTH=95 align=center valign=top>10</td> +<td FIXWIDTH=150 align=center valign=top>mochitto</td> +</tr> +</table> +<table border=0 cellspacing=0 cellpadding=0> +<tr><td width=755><img src="l2ui.squaregray" width="750" height="1"></td></tr> +</table> + <br> + + <table border=0 cellspacing=0 cellpadding=2> +<tr> +<td FIXWIDTH=100 align=right valign=top><img src="l2ui.bbs_folder" width=32 height=32></td> +<td FIXWIDTH=410 align=left valign=top><a action="bypass _bbshome;top_pk">Top PK</a><br1> + +<font color="AAAAAA">Top PK players</font></td> +<td FIXWIDTH=95 align=center valign=top>10</td> +<td FIXWIDTH=150 align=center valign=top>mochitto</td> +</tr> +</table> +<table border=0 cellspacing=0 cellpadding=0> +<tr><td width=755><img src="l2ui.squaregray" width="750" height="1"></td></tr> +</table> + <br> + <br> <font color="LEVEL">L2J Community Board.</font> Credits : L2j-Forum Patch is for epilogue Link to comment Share on other sites More sharing options...
Matim Posted April 5, 2010 Share Posted April 5, 2010 Quite nice idea :) Link to comment Share on other sites More sharing options...
`Rοmeο Posted April 5, 2010 Share Posted April 5, 2010 That is realy cool ! I did not see that thing before thank you. I will try adapt for interlude :D Link to comment Share on other sites More sharing options...
xAddytzu Posted April 5, 2010 Share Posted April 5, 2010 InfiniteL2 style :D Link to comment Share on other sites More sharing options...
DominiQue Posted April 5, 2010 Author Share Posted April 5, 2010 InfiniteL2 style :D Yes Link to comment Share on other sites More sharing options...
livogro Posted April 5, 2010 Share Posted April 5, 2010 That is realy cool ! I did not see that thing before thank you. I will try adapt for interlude :D Do faster :D becouse i am trying now, and nothing xD Link to comment Share on other sites More sharing options...
Matim Posted April 5, 2010 Share Posted April 5, 2010 Do faster :D becouse i am trying now, and nothing xD If You had errors, you can show us them, if you expect help. Link to comment Share on other sites More sharing options...
livogro Posted April 5, 2010 Share Posted April 5, 2010 if (file.isEmpty()) content = "<html><body><br><br><center>Error: no file name </center></body></html>"; + else if (file.equals("top_pk")) + content = top10pk(); + else if (file.equals("top_pvp")) + content = top10pvp(); else content = HtmCache.getInstance().getHtm(this.getCommunityBoardManager().getSQLDPId(),"html/" + file); if (content == null) @@ -50,6 +57,26 @@ super.send(playerObjId, content); } + public String top10pk() { + PlayerList pl = new PlayerList(0); + String content = HtmCache.getInstance().getHtm("cb_data/staticfiles/html/top-players.htm"); + //content = content.replaceAll("%Link%","top_pk"); + content = content.replaceAll("%LinkTitle%","Top PK"); + content = content.replaceAll("%Title%","<font color=\"LEVEL\">[Top PK]</font>"); + content = content.replaceAll("%PlayerList%", pl.loadPlayerList()); + return content; + } + + public String top10pvp() { + PlayerList pl = new PlayerList(1); + String content = HtmCache.getInstance().getHtm("cb_data/staticfiles/html/top-players.htm"); + //content = content.replaceAll("%Link%","top_pvp"); + content = content.replaceAll("%LinkTitle%","Top PvP"); + content = content.replaceAll("%Title%","<font color=\"LEVEL\">[Top PvP]</font>"); + content = content.replaceAll("%PlayerList%", pl.loadPlayerList()); + return content; + } + this part do not fit i my community board :) it's very diffrent codes. Link to comment Share on other sites More sharing options...
Matim Posted April 5, 2010 Share Posted April 5, 2010 You just have to add these three strings, whats wrong? Link to comment Share on other sites More sharing options...
xAddytzu Posted April 5, 2010 Share Posted April 5, 2010 Quote from L2jserver by mochitto on Thu Feb 18, 2010 11:31 am -On L2Open work on L2Jserver I dont know Link to comment Share on other sites More sharing options...
livogro Posted April 5, 2010 Share Posted April 5, 2010 if (file.isEmpty()) content = "<html><body><br><br><center>Error: no file name </center></body></html>"; no these lines content = content.replaceAll("%LinkTitle%","Top PK"); nothing like this anywhere... I think for il need to do full rework becouse in mine files is like htmlCode.append("<table>"); htmlCode.append(trOpen); htmlCode.append("<td align=left valign=top>Server Restarted: " + GameServer.dateTimeServerStarted.getTime() + tdClose); htmlCode.append(trClose); htmlCode.append("</table>"); htmlCode.append("<table>"); htmlCode.append(trOpen); htmlCode.append("<td><img src=\"sek.cbui355\" width=600 height=1><br></td>"); htmlCode.append(trClose); at all no word like content Link to comment Share on other sites More sharing options...
xAddytzu Posted April 5, 2010 Share Posted April 5, 2010 if (file.isEmpty()) content = "<html><body><br><br><center>Error: no file name </center></body></html>"; no these lines content = content.replaceAll("%LinkTitle%","Top PK"); nothing like this anywhere... I think for il need to do full rework becouse in mine files is like htmlCode.append("<table>"); htmlCode.append(trOpen); htmlCode.append("<td align=left valign=top>Server Restarted: " + GameServer.dateTimeServerStarted.getTime() + tdClose); htmlCode.append(trClose); htmlCode.append("</table>"); htmlCode.append("<table>"); htmlCode.append(trOpen); htmlCode.append("<td><img src=\"sek.cbui355\" width=600 height=1><br></td>"); htmlCode.append(trClose); at all no word like content You can replace online players with top pvp/pk .. Link to comment Share on other sites More sharing options...
livogro Posted April 5, 2010 Share Posted April 5, 2010 maybe u can explain a little bit more? how to do that. atleast i don't know where tu put these + else if (file.equals("top_pk")) + content = top10pk(); + else if (file.equals("top_pvp")) + content = top10pvp(); about others i don't talk at all... Link to comment Share on other sites More sharing options...
malder Posted April 5, 2010 Share Posted April 5, 2010 Why without configs? Link to comment Share on other sites More sharing options...
Coyote™ Posted April 5, 2010 Share Posted April 5, 2010 Why without configs? It's easy to make any configs, I have made a guide about them Link to comment Share on other sites More sharing options...
Recommended Posts