Guest User

famous system by marwan

a guest
Mar 1st, 2013
282
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.03 KB | None | 0 0
  1. ### Eclipse Workspace Patch 1.0
  2. #P L2J_Server_BETA2
  3. Index: java/com/l2jserver/gameserver/TopPlayers.java
  4. ===================================================================
  5. --- java/com/l2jserver/gameserver/TopPlayers.java (revision 0)
  6. +++ java/com/l2jserver/gameserver/TopPlayers.java (revision 0)
  7. @@ -0,0 +1,83 @@
  8. +package com.l2jserver.gameserver;
  9. +
  10. +import java.sql.Connection;
  11. +import java.sql.PreparedStatement;
  12. +import java.sql.ResultSet;
  13. +
  14. +import javolution.text.TextBuilder;
  15. +
  16. +import com.l2jserver.L2DatabaseFactory;
  17. +import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  18. +
  19. +public class TopPlayers
  20. +{
  21. + private final TextBuilder _top = new TextBuilder();
  22. +
  23. + public TopPlayers(L2PcInstance i)
  24. + {
  25. + loadDB(i);
  26. + }
  27. +
  28. + @SuppressWarnings("null")
  29. + private void loadDB(L2PcInstance i)
  30. + {
  31. + String command = "SELECT name,votes FROM famous ORDER BY votes DESC LIMIT 10";
  32. + Connection con = null;
  33. + try
  34. + {
  35. + con = L2DatabaseFactory.getInstance().getConnection();
  36. + PreparedStatement statement = con.prepareStatement(command);
  37. +
  38. + ResultSet result = statement.executeQuery();
  39. +
  40. + while (result.next())
  41. + {
  42. +
  43. + addFamous(i, result.getString("name"), result.getInt("votes"));
  44. +
  45. + }
  46. +
  47. + result.close();
  48. + statement.close();
  49. + }
  50. + catch (Exception e)
  51. + {
  52. + e.printStackTrace();
  53. + }
  54. + finally
  55. + {
  56. + try
  57. + {
  58. + con.close();
  59. + }
  60. + catch (Exception e)
  61. + {
  62. +
  63. + }
  64. + }
  65. + }
  66. +
  67. + public String loadList()
  68. + {
  69. + return _top.toString();
  70. + }
  71. +
  72. + private void addFamous(L2PcInstance i, String name, int votes)
  73. + {
  74. + String button = "<a action=bypass -h famous " + name + "><font color=LEVEL>Info.</font></a></center>";
  75. + _top.append("<table border=0 cellspacing=0 cellpadding=2 bgcolor=050505 height=19><tr><td FIXWIDTH=5></td>");
  76. + _top.append("<td FIXWIDTH=50></td>");
  77. + _top.append("<td FIXWIDTH=50>" + name + ".</td>");
  78. + _top.append("<td FIXWIDTH=50>" + votes + "</td>");
  79. + if (i.canVote())
  80. + {
  81. + _top.append("<td FIXWIDTH=50>" + button + "</td>");
  82. + }
  83. + else
  84. + {
  85. + _top.append("<td FIXWIDTH=50>Vote</td>");
  86. + }
  87. + _top.append("</tr></table><img src=\"L2UI.Squaregray\" width=\"158\" height=\"1\">");
  88. + }
  89. +
  90. +}
  91. \ No newline at end of file
  92. Index: java/com/l2jserver/gameserver/model/actor/instance/L2FamousInstance.java
  93. ===================================================================
  94. --- java/com/l2jserver/gameserver/model/actor/instance/L2FamousInstance.java (revision 0)
  95. +++ java/com/l2jserver/gameserver/model/actor/instance/L2FamousInstance.java (revision 0)
  96. @@ -0,0 +1,164 @@
  97. +package com.l2jserver.gameserver.model.actor.instance;
  98. +
  99. +import java.sql.Connection;
  100. +import java.sql.PreparedStatement;
  101. +import java.sql.ResultSet;
  102. +import java.sql.SQLException;
  103. +
  104. +import javolution.text.TextBuilder;
  105. +
  106. +import com.l2jserver.L2DatabaseFactory;
  107. +import com.l2jserver.gameserver.TopPlayers;
  108. +import com.l2jserver.gameserver.model.L2World;
  109. +import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
  110. +import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
  111. +
  112. +/**
  113. + * @author Marwan
  114. + * @version 1.0
  115. + */
  116. +public class L2FamousInstance extends L2NpcInstance
  117. +{
  118. + public L2FamousInstance(int objectId, L2NpcTemplate template)
  119. + {
  120. + super(objectId, template);
  121. + }
  122. +
  123. + public static void load()
  124. + {
  125. + for (L2PcInstance i : L2World.getInstance().getAllPlayersArray())
  126. + {
  127. + i.setVotes(getVotes(i));
  128. +
  129. + }
  130. + }
  131. +
  132. +
  133. + public static int getVotes(L2PcInstance i)
  134. + {
  135. + String command = "SELECT votes FROM famous WHERE name=? ";
  136. + Connection con = null;
  137. + int votes = 0;
  138. + try
  139. + {
  140. + con = L2DatabaseFactory.getInstance().getConnection();
  141. + PreparedStatement statement = con.prepareStatement(command);
  142. + statement.setString(1, i.getName());
  143. + ResultSet result = statement.executeQuery();
  144. + while (result.next())
  145. + {
  146. +
  147. + votes = result.getInt("votes");
  148. + }
  149. +
  150. + result.close();
  151. + statement.close();
  152. + }
  153. + catch (Exception e)
  154. + {
  155. + e.printStackTrace();
  156. + }
  157. + finally
  158. + {
  159. + try
  160. + {
  161. + con.close();
  162. + }
  163. + catch (Exception e)
  164. + {
  165. +
  166. + }
  167. + }
  168. + return votes;
  169. + }
  170. +
  171. + public void addPlayer(L2PcInstance i)
  172. + {
  173. + Connection con = null;
  174. + try
  175. + {
  176. + con = L2DatabaseFactory.getInstance().getConnection();
  177. +
  178. + PreparedStatement statement = con.prepareStatement("INSERT INTO famous VALUES (?,?,?)");
  179. +
  180. + statement.setString(1, i.getName());
  181. + statement.setInt(2, 0);
  182. + statement.setInt(3, 0);
  183. + statement.execute();
  184. + statement.close();
  185. +
  186. + i.sendMessage("You have been added to the famous list");
  187. +
  188. + }
  189. + catch (Exception e)
  190. + {
  191. + }
  192. + finally
  193. + {
  194. +
  195. + try
  196. + {
  197. + con.close();
  198. + }
  199. + catch (SQLException e)
  200. + {
  201. + // TODO Auto-generated catch block
  202. + e.printStackTrace();
  203. + }
  204. + }
  205. + }
  206. +
  207. + @Override
  208. + public void onBypassFeedback(L2PcInstance player, String command)
  209. + {
  210. + if ((player == null) || (player.getLastFolkNPC() == null) || (player.getLastFolkNPC().getObjectId() != this.getObjectId()))
  211. + {
  212. + return;
  213. + }
  214. + if (command.startsWith("addme"))
  215. + {
  216. + if (player.getPvpKills() == 100)
  217. + {
  218. + addPlayer(player);
  219. + }
  220. + }
  221. +
  222. + if (command.startsWith("viewlist"))
  223. + {
  224. + TextBuilder tb = new TextBuilder();
  225. + tb.append("<html><title>Top 10 Teams</title><body><center><br>");
  226. + tb.append("<table border=0 cellspacing=0 cellpadding=2 bgcolor=050505 height=19><tr><td FIXWIDTH=5></td>");
  227. + tb.append("<td FIXWIDTH=50>Name</td>");
  228. + tb.append("<td FIXWIDTH=50>Votes</td>");
  229. + tb.append("<td FIXWIDTH=50>Vote</td>");
  230. + tb.append("</tr></table><img src=\"L2UI.Squaregray\" width=\"158\" height=\"1\">");
  231. + TopPlayers top = new TopPlayers(player);
  232. + tb.append(top.loadList());
  233. + tb.append("</center></body></html");
  234. + NpcHtmlMessage msg = new NpcHtmlMessage(this.getObjectId());
  235. + msg.setHtml(tb.toString());
  236. + player.sendPacket(msg);
  237. +
  238. + }
  239. + }
  240. +
  241. + @Override
  242. + public void showChatWindow(L2PcInstance player, int val)
  243. + {
  244. + TextBuilder tb = new TextBuilder();
  245. + tb.append("<html><title>L2Famous Manager</title><body><center><br>");
  246. + tb.append("Hello <font color=\"LEVEL\">" + player.getName() + "</font><br>Are you looking for challenge?");
  247. + tb.append("<br><img src=\"l2ui.squaregray\" width=\"270\" height=\"1\"><br>");
  248. + tb.append("<button value=\"Vote List\" action=\"bypass -h npc_" + this.getObjectId() + "viewlist\" width=160 height=32 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_ct1.button_df\">");
  249. + tb.append("<button value=\"Add me\" action=\"bypass -h npc_" + this.getObjectId() + "_addme\" width=160 height=32 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_ct1.button_df\">");
  250. + tb.append("</center></body></html");
  251. + NpcHtmlMessage msg = new NpcHtmlMessage(this.getObjectId());
  252. + msg.setHtml(tb.toString());
  253. + player.sendPacket(msg);
  254. + }
  255. +}
  256. \ No newline at end of file
  257. Index: java/com/l2jserver/gameserver/GameServer.java
  258. ===================================================================
  259. --- java/com/l2jserver/gameserver/GameServer.java (revision 5757)
  260. +++ java/com/l2jserver/gameserver/GameServer.java (working copy)
  261. @@ -120,6 +120,7 @@
  262. import com.l2jserver.gameserver.model.L2World;
  263. import com.l2jserver.gameserver.model.PartyMatchRoomList;
  264. import com.l2jserver.gameserver.model.PartyMatchWaitingList;
  265. +import com.l2jserver.gameserver.model.actor.instance.L2FamousInstance;
  266. import com.l2jserver.gameserver.model.entity.Hero;
  267. import com.l2jserver.gameserver.model.entity.TvTManager;
  268. import com.l2jserver.gameserver.model.olympiad.Olympiad;
  269. @@ -210,7 +211,7 @@
  270. MapRegionManager.getInstance();
  271. Announcements.getInstance();
  272. GlobalVariablesManager.getInstance();
  273. -
  274. + L2FamousInstance.load();
  275. printSection("Skills");
  276. EffectHandler.getInstance().executeScript();
  277. EnchantGroupsData.getInstance();
  278. Index: java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
  279. ===================================================================
  280. --- java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (revision 5757)
  281. +++ java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (working copy)
  282. @@ -880,6 +926,18 @@
  283. }
  284. }
  285.  
  286. + int votes = 0;
  287. +
  288. + public void setVotes(int i)
  289. + {
  290. + votes = i;
  291. + }
  292. +
  293. + public int getVotes()
  294. + {
  295. + return votes;
  296. + }
  297. +
  298. public void stopPvpRegTask()
  299. {
  300. if (_PvPRegTask != null)
  301.  
  302. + boolean canVote = false;
  303. +
  304. + public void setCanVote(boolean h)
  305. + {
  306. + canVote = h;
  307. + if (!canVote)
  308. + {
  309. + ThreadPoolManager.getInstance().scheduleGeneral(new Famous(), 86400000);
  310. + }
  311. + }
  312. +
  313. + public boolean canVote()
  314. + {
  315. + return canVote;
  316. + }
  317. +
  318. + public class Famous implements Runnable
  319. + {
  320. + @Override
  321. + public void run()
  322. + {
  323. + setCanVote(true);
  324. + }
  325. + }
  326. +
  327.  
  328. private void storeCharBase()
  329. {
  330. try (Connection con = L2DatabaseFactory.getInstance().getConnection())
  331.  
  332. Index: java/com/l2jserver/gameserver/network/clientpackets/RequestBypassToServer.java
  333. ===================================================================
  334. --- java/com/l2jserver/gameserver/network/clientpackets/RequestBypassToServer.java (revision 5757)
  335. +++ java/com/l2jserver/gameserver/network/clientpackets/RequestBypassToServer.java (working copy)
  336.  
  337. @@ -136,6 +173,535 @@
  338. {
  339. comeHere(activeChar);
  340. }
  341. +
  342. + else if (_command.startsWith("famous "))
  343. + {
  344. + StringTokenizer st = new StringTokenizer(_command, " ");
  345. + st.nextToken();
  346. + String name = st.nextToken();
  347. + try (Connection con = L2DatabaseFactory.getInstance().getConnection();
  348. + PreparedStatement statement = con.prepareStatement("UPDATE famous SET votes=? WHERE name=?"))
  349. + {
  350. + activeChar.setCanVote(false);
  351. + statement.setInt(1, activeChar.getVotes() + 1);
  352. + statement.setString(2, activeChar.getName());
  353. + statement.execute();
  354. + }
  355. + catch (Exception e)
  356. + {
  357. + _log.log(Level.SEVERE, "Failed updating character online status.", e);
  358. + }
  359. + }
Advertisement
Add Comment
Please, Sign In to add comment