Advertisement
Guest User

CatsGuardHandler.java

a guest
Jul 26th, 2013
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.47 KB | None | 0 0
  1. package ru.catssoftware.protection;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.PreparedStatement;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7.  
  8.  
  9. import ru.catssoftware.L2DatabaseFactory;
  10. import ru.catssoftware.gameserver.gmaccess.gmCache;
  11. import ru.catssoftware.gameserver.gmaccess.gmHandler;
  12. import ru.catssoftware.gameserver.model.L2World;
  13. import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance;
  14. import ru.catssoftware.gameserver.network.Disconnection;
  15. import ru.catssoftware.gameserver.network.serverpackets.NpcHtmlMessage;
  16. import ru.catssoftware.gameserver.util.L2Utils;
  17.  
  18. public class GatsGuardHandler extends gmHandler {
  19.  
  20. private static String [] _COMMANDS = {
  21. "hwid",
  22. "hwidban",
  23. "hwidunban",
  24. "hwidlist",
  25. "hwidbanned"
  26. };
  27. @Override
  28. public String[] getCommandList() {
  29. return _COMMANDS;
  30. }
  31.  
  32. @Override
  33. public void runCommand(L2PcInstance admin, String... params) {
  34. String command = params[0];
  35. if(command.equals("hwid")) {
  36. String html = "<html><title>CatsGuard</title><body><center><br>";
  37. html+="<edit var=\"char_name\" width=110 height=15><br>";
  38. html+="<table width=200><tr>";
  39. html+="<td><button action=\"bypass -h admin_hwidban $char_name\" value=\"Бан\" width=74 height=21 back=\"L2UI_CH3.Btn1_normalOn\" fore=\"L2UI_CH3.Btn1_normal\"></td>";
  40. html+="<td><button action=\"bypass -h admin_hwidunban $char_name\" value=\"Анбан\" width=74 height=21 back=\"L2UI_CH3.Btn1_normalOn\" fore=\"L2UI_CH3.Btn1_normal\"></td>";
  41. html+="</tr><tr><td><button action=\"bypass -h admin_hwidbanned\" value=\"Забаненные\" width=74 height=21 back=\"L2UI_CH3.Btn1_normalOn\" fore=\"L2UI_CH3.Btn1_normal\"></td>";
  42. html+="<td><button action=\"bypass -h admin_hwidlist\" value=\"Игроки\" width=74 height=21 back=\"L2UI_CH3.Btn1_normalOn\" fore=\"L2UI_CH3.Btn1_normal\"></td>";
  43. html +="</tr></table>";
  44. html +="Справка по коммандам<br>";
  45. html +="//hwidban [имя_игрока] - забанить игрока<br1>";
  46. html +="//hwidunban имя_игрока - разбанить игрока игрока<br1>";
  47. html +="//hwidbanned - список забаненых<br1>";
  48. html +="//hwidlist - список игроков онлайн с HWID<br1>";
  49. html +="</center></body></html>";
  50. NpcHtmlMessage msg = new NpcHtmlMessage(0);
  51. msg.setHtml(html);
  52. admin.sendPacket(msg);
  53. }
  54. else if (command.equals("hwidban")) {
  55. String hwid=null;
  56. if(params.length==1) {
  57. if(admin.getTarget() instanceof L2PcInstance)
  58. hwid = ((L2PcInstance)admin.getTarget()).getHWid();
  59. }
  60. else {
  61. hwid = L2Utils.getHwId(params[1]);
  62. }
  63. if(hwid!=null) {
  64. try {
  65. // Integer.parseInt(hwid,16);
  66. CatsGuard.getInstance().ban(hwid);
  67. for(L2PcInstance pc : L2World.getInstance().getAllPlayers()) {
  68. if(pc.getHWid()!=null && pc.getHWid().equals(hwid) && !gmCache.getInstance().isGm(pc.getObjectId()))
  69. new Disconnection(pc).defaultSequence(false);
  70. }
  71. admin.sendMessage("HWID "+hwid+" забанен");
  72. } catch(NumberFormatException e) {
  73. admin.sendMessage("Нет такого игрока "+params[1]);
  74. }
  75.  
  76. }
  77. runCommand(admin, new String[] {"hwidbanned"});
  78. }
  79. else if (command.equals("hwidlist")) {
  80. int start =0;
  81. int ncount = 0;
  82. String table = "";
  83. if(params.length==2)
  84. start = Integer.parseInt(params[1]);
  85. boolean endReached = true;
  86. String html = "<html><title>CatsGuard</title><body><center>Игроки онлайн (всего "+L2World.getInstance().getAllPlayersCount()+")<br><table width=220>";
  87. for(L2PcInstance pc : L2World.getInstance().getAllPlayers()) {
  88. if(pc.isOfflineTrade()) continue;
  89. if(++ncount<start) continue;
  90. table+="<tr><td><font color=\"LEVEL\">"+pc.getHWid()+"</font></td><td>"+pc.getName()+"</td><td><a action=\"bypass -h admin_hwidban "+pc.getName()+"\">Бан</td></tr>";
  91. if(table.length()>7000) {
  92. endReached = false;
  93. break;
  94. }
  95. }
  96. html+=table;
  97. html+="</table>";
  98. if(!endReached)
  99. html+="<a action=\"bypass -h admin_hwidlist "+ncount+"\">Дальше</a><br>";
  100. html+="<button action=\"bypass -h admin_hwid\" value=\"Назад\" width=74 height=21 back=\"L2UI_CH3.Btn1_normalOn\" fore=\"L2UI_CH3.Btn1_normal\">";
  101. html+="</center></body></html>";
  102. NpcHtmlMessage msg = new NpcHtmlMessage(0);
  103. msg.setHtml(html);
  104. admin.sendPacket(msg);
  105. }
  106. else if (command.equals("hwidbanned")) {
  107. try {
  108. Connection con = L2DatabaseFactory.getInstance().getConnection();
  109. PreparedStatement stm = con.prepareStatement("select h.hwid, ch.account_name, ch.char_name from banned_hwid h "+
  110. "inner join characters ch on ch.hwid = h.hwid");
  111. ResultSet rs = stm.executeQuery();
  112. int start = 0;
  113. int ncount = 0;
  114. if(params.length==2)
  115. start = Integer.parseInt(params[1]);
  116. String html = "<html><title>CatsGuard</title><body><center>Забаненные<br><table width=220>";
  117. String table = "";
  118. boolean endReached = true;
  119. while(rs.next()) {
  120. if(++ncount < start) continue;
  121. table+="<tr><td><font color=\"LEVEL\">"+rs.getString(1)+"</font></td><td>"+rs.getString(2)+"</td><td>"+rs.getString(3)+
  122. "</td><td><a action=\"bypass -h admin_hwidunban "+rs.getString(1)+"\">Анбан</a></td></tr>";
  123. if(table.length()>7000) {
  124. endReached = false;
  125. break;
  126. }
  127. }
  128. html+=table;
  129. html+="</table>";
  130. if(!endReached)
  131. html+="<a action=\"bypass -h admin_hwidbanned "+ncount+"\">Дальше</a><br>";
  132. html+="<button action=\"bypass -h admin_hwid\" value=\"Назад\" width=74 height=21 back=\"L2UI_CH3.Btn1_normalOn\" fore=\"L2UI_CH3.Btn1_normal\">";
  133. html+="</center></body></html>";
  134.  
  135. rs.close();
  136. stm.close();
  137. con.close();
  138. NpcHtmlMessage msg = new NpcHtmlMessage(0);
  139. msg.setHtml(html);
  140. admin.sendPacket(msg);
  141. } catch(SQLException e) {
  142.  
  143. }
  144. }
  145. else if (command.equals("hwidunban")) {
  146. if(params.length==1)
  147. admin.sendMessage("Использование //hwidunban hwid|персонаж");
  148. else {
  149. String hwid = L2Utils.getHwId(params[1]);
  150. if(hwid!=null) {
  151. CatsGuard.getInstance().unban(hwid);
  152. admin.sendMessage("Игрок "+params[1]+" разбанен");
  153. } else {
  154. CatsGuard.getInstance().unban(params[1]);
  155. admin.sendMessage("HWID "+params[1]+" разбанен");
  156. }
  157. }
  158. runCommand(admin, new String[] {"hwidbanned"});
  159. }
  160.  
  161. }
  162.  
  163. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement