Advertisement
Guest User

security system

a guest
Jan 29th, 2013
1,257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.33 KB | None | 0 0
  1. ### Eclipse Workspace Patch 1.0
  2. #P L2J_Server_BETA2
  3. Index: java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
  4. ===================================================================
  5. --- java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (revision 5757)
  6. +++ java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (working copy)
  7. @@ -306,6 +308,49 @@
  8. */
  9. public final class L2PcInstance extends L2Playable
  10. {
  11. + boolean secured = false;
  12. + public void setSecured(boolean s)
  13. + {
  14. + secured = s;
  15. + }
  16. +
  17. + public boolean isSecured()
  18. + {
  19. + return secured;
  20. + }
  21. +
  22. @@ -11883,6 +11976,12 @@
  23.  
  24. public void onActionRequest()
  25. {
  26. + if (!isSecured())
  27. + {
  28. + sendMessage("YOU CAN'T MOVE BIATCH ");
  29. + return;
  30. + }
  31. +
  32. if (isSpawnProtected())
  33. {
  34. sendPacket(SystemMessageId.YOU_ARE_NO_LONGER_PROTECTED_FROM_AGGRESSIVE_MONSTERS);
  35. Index: java/com/l2jserver/gameserver/network/clientpackets/RequestBypassToServer.java
  36. ===================================================================
  37. --- java/com/l2jserver/gameserver/network/clientpackets/RequestBypassToServer.java (revision 5757)
  38. +++ java/com/l2jserver/gameserver/network/clientpackets/RequestBypassToServer.java (working copy)
  39. @@ -18,13 +18,20 @@
  40. */
  41. package com.l2jserver.gameserver.network.clientpackets;
  42.  
  43. +import java.sql.Connection;
  44. +import java.sql.PreparedStatement;
  45. +import java.sql.ResultSet;
  46. +import java.sql.SQLException;
  47. import java.util.List;
  48. import java.util.StringTokenizer;
  49. import java.util.logging.Level;
  50.  
  51. +import javolution.text.TextBuilder;
  52. import javolution.util.FastList;
  53.  
  54. import com.l2jserver.Config;
  55. +import com.l2jserver.L2DatabaseFactory;
  56. import com.l2jserver.gameserver.ai.CtrlIntention;
  57. import com.l2jserver.gameserver.communitybbs.CommunityBoard;
  58. import com.l2jserver.gameserver.datatables.AdminTable;
  59. @@ -39,7 +46,9 @@
  60. import com.l2jserver.gameserver.model.actor.instance.L2MerchantSummonInstance;
  61. import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  62. import com.l2jserver.gameserver.model.entity.Hero;
  63. import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
  64. +import com.l2jserver.gameserver.network.L2GameClient;
  65. import com.l2jserver.gameserver.network.SystemMessageId;
  66. import com.l2jserver.gameserver.network.communityserver.CommunityServerThread;
  67. import com.l2jserver.gameserver.network.communityserver.writepackets.RequestShowCommunityBoard;
  68. @@ -136,6 +145,286 @@
  69. {
  70. comeHere(activeChar);
  71. }
  72. + else if (_command.startsWith("checkCode "))
  73. + {
  74. + String c = "";
  75. + StringTokenizer st = new StringTokenizer(_command, " ");
  76. + st.nextToken();
  77. + while (st.hasMoreTokens())
  78. + {
  79. + c = c + st.nextToken();
  80. + }
  81. + Connection con = null;
  82. + try
  83. + {
  84. +
  85. + con = L2DatabaseFactory.getInstance().getConnection();
  86. + PreparedStatement stm = con.prepareStatement("SELECT code FROM codes WHERE name=?");
  87. + stm.setString(1, activeChar.getName());
  88. + stm.execute();
  89. + ResultSet rs = stm.executeQuery();
  90. + while (rs.next())
  91. + {
  92. + String ip = rs.getString("code");
  93. + if (c.equals(ip))
  94. + {
  95. + activeChar.setSecured(true);
  96. + activeChar.sendMessage("Code is corrrect");
  97. +
  98. + }
  99. + else
  100. + {
  101. + activeChar.getClient().closeNow();
  102. + }
  103. + }
  104. + rs.close();
  105. + stm.close();
  106. +
  107. + }
  108. + catch (Exception sqle)
  109. + {
  110. + }
  111. + finally
  112. + {
  113. + try
  114. + {
  115. + con.close();
  116. + }
  117. + catch (Exception e)
  118. + {
  119. + activeChar.sendMessage(e.getMessage());
  120. + }
  121. + }
  122. +
  123. + }
  124. + else if (_command.startsWith("secure "))
  125. + {
  126. + String q = "";
  127. + StringTokenizer st = new StringTokenizer(_command, " ");
  128. + st.nextToken();
  129. + while (st.hasMoreTokens())
  130. + {
  131. + q = q + st.nextToken();
  132. + }
  133. +
  134. + Connection con = null;
  135. + try
  136. + {
  137. + String ip;
  138. + final L2GameClient client = activeChar.getClient();
  139. + ip = client.getConnection().getInetAddress().getHostAddress();
  140. + con = L2DatabaseFactory.getInstance().getConnection();
  141. +
  142. + PreparedStatement statement = con.prepareStatement("INSERT INTO codes VALUES (?,?,?)");
  143. +
  144. + statement.setString(1, activeChar.getName());
  145. + statement.setString(2, ip);
  146. + statement.setString(3, q);
  147. + statement.execute();
  148. + statement.close();
  149. +
  150. +
  151. + }
  152. + catch (Exception e)
  153. + {
  154. + }
  155. + finally
  156. + {
  157. +
  158. + try
  159. + {
  160. + con.close();
  161. + }
  162. + catch (SQLException e)
  163. + {
  164. + // TODO Auto-generated catch block
  165. + e.printStackTrace();
  166. + }
  167. + }
  168. + }
  169. +
  170. else if (_command.startsWith("npc_"))
  171. {
  172. if (!activeChar.validateBypass(_command))
  173. Index: java/com/l2jserver/gameserver/network/clientpackets/EnterWorld.java
  174. ===================================================================
  175. --- java/com/l2jserver/gameserver/network/clientpackets/EnterWorld.java (revision 5757)
  176. +++ java/com/l2jserver/gameserver/network/clientpackets/EnterWorld.java (working copy)
  177. @@ -19,14 +19,20 @@
  178. package com.l2jserver.gameserver.network.clientpackets;
  179.  
  180. import java.io.UnsupportedEncodingException;
  181. +import java.sql.Connection;
  182. +import java.sql.PreparedStatement;
  183. +import java.sql.ResultSet;
  184.  
  185. +import javolution.text.TextBuilder;
  186. import javolution.util.FastList;
  187.  
  188. import com.l2jserver.Config;
  189. +import com.l2jserver.L2DatabaseFactory;
  190. import com.l2jserver.gameserver.Announcements;
  191. import com.l2jserver.gameserver.LoginServerThread;
  192. import com.l2jserver.gameserver.SevenSigns;
  193. import com.l2jserver.gameserver.TaskPriority;
  194. +import com.l2jserver.gameserver.ThreadPoolManager;
  195. import com.l2jserver.gameserver.cache.HtmCache;
  196. import com.l2jserver.gameserver.communitybbs.Manager.RegionBBSManager;
  197. import com.l2jserver.gameserver.datatables.AdminTable;
  198. @@ -65,6 +71,7 @@
  199. import com.l2jserver.gameserver.model.quest.Quest;
  200. import com.l2jserver.gameserver.model.quest.QuestState;
  201. import com.l2jserver.gameserver.model.zone.ZoneId;
  202. +import com.l2jserver.gameserver.network.L2GameClient;
  203. import com.l2jserver.gameserver.network.SystemMessageId;
  204. import com.l2jserver.gameserver.network.communityserver.CommunityServerThread;
  205. import com.l2jserver.gameserver.network.communityserver.writepackets.WorldInfo;
  206. @@ -112,6 +119,24 @@
  207.  
  208. private final int[][] tracert = new int[5][4];
  209.  
  210. + class securitySystem implements Runnable
  211. + {
  212. + private final L2PcInstance p;
  213. +
  214. + public securitySystem(L2PcInstance player)
  215. + {
  216. + p = player;
  217. + }
  218. +
  219. + @Override
  220. + public void run()
  221. + {
  222. + check(p);
  223. + }
  224. +
  225. + }
  226. +
  227. public TaskPriority getPriority()
  228. {
  229. return TaskPriority.PR_URGENT;
  230. @@ -136,18 +161,93 @@
  231. }
  232. }
  233.  
  234. + public void enterCode(L2PcInstance a)
  235. + {
  236. + TextBuilder tb = new TextBuilder();
  237. + tb.append("<html><title>Secure System</title><body><center><br>");
  238. + tb.append("Enter Secure Code: <edit var=\"c\" width=\"120\" height=\"15\"><br>");
  239. + tb.append("<br><br><center><button value=\"Submit\" action=\"bypass -h checkCode $c\" width=160 height=32 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_ct1.button_df\"></center>");
  240. + NpcHtmlMessage msg = new NpcHtmlMessage(7);
  241. + msg.setHtml(tb.toString());
  242. + a.sendPacket(msg);
  243. + }
  244. +
  245. + public void check(L2PcInstance activeChar)
  246. + {
  247. + Connection con = null;
  248. + try
  249. + {
  250. +
  251. + con = L2DatabaseFactory.getInstance().getConnection();
  252. + PreparedStatement stm = con.prepareStatement("SELECT name,lastip FROM codes");
  253. + stm.execute();
  254. + ResultSet rs = stm.executeQuery();
  255. + final L2GameClient client = activeChar.getClient();
  256. + String ip = client.getConnection().getInetAddress().getHostAddress();
  257. + while (rs.next())
  258. + {
  259. + String name = rs.getString("name");
  260. + if (rs.getString("name").contains(activeChar.getName()))
  261. + {
  262. + if (!rs.getString("lastip").equals(ip))
  263. + {
  264. +
  265. + activeChar.setSecured(false);
  266. + enterCode(activeChar);
  267. +
  268. + }
  269. + else
  270. + {
  271. + activeChar.setSecured(true);
  272. + }
  273. + }
  274. + else
  275. + {
  276. + show(activeChar);
  277. + }
  278. + }
  279. + rs.close();
  280. + stm.close();
  281. +
  282. + }
  283. + catch (Exception sqle)
  284. + {
  285. + }
  286. + finally
  287. + {
  288. + try
  289. + {
  290. + con.close();
  291. + }
  292. + catch (Exception e)
  293. + {
  294. + activeChar.sendMessage(e.getMessage());
  295. + }
  296. + }
  297. + }
  298. +
  299. + public void show(L2PcInstance a)
  300. + {
  301. + TextBuilder tb = new TextBuilder();
  302. + tb.append("<html><title>Secure System</title><body><center><br>");
  303. + tb.append("New Security Code: <edit var=\"c\" width=\"120\" height=\"15\"><br>");
  304. + tb.append("<br><br><center><button value=\"Submit\" action=\"bypass -h secure $c\" width=160 height=32 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_ct1.button_df\"></center>");
  305. + NpcHtmlMessage msg = new NpcHtmlMessage(7);
  306. + msg.setHtml(tb.toString());
  307. + a.sendPacket(msg);
  308. +
  309. + }
  310. +
  311. @Override
  312. protected void runImpl()
  313. {
  314. L2PcInstance activeChar = getClient().getActiveChar();
  315. -
  316. if (activeChar == null)
  317. {
  318. _log.warning("EnterWorld failed! activeChar returned 'null'.");
  319. getClient().closeNow();
  320. return;
  321. }
  322. -
  323. String[] adress = new String[5];
  324. for (int i = 0; i < 5; i++)
  325. {
  326. @@ -453,11 +553,12 @@
  327. }
  328. }
  329.  
  330. + ThreadPoolManager.getInstance().scheduleGeneral(new securitySystem(activeChar), 10000);
  331. +
  332. activeChar.sendPacket(SystemMessageId.WELCOME_TO_LINEAGE);
  333. activeChar.sendMessage(getText("VGhpcyBTZXJ2ZXIgdXNlcyBMMkosIGEgUHJvamVjdCBmb3VuZGVkIGJ5IEwyQ2hlZg==" + Config.EOL));
  334. activeChar.sendMessage(getText("YW5kIGRldmVsb3BlZCBieSB0aGUgTDJKIERldiBUZWFtIGF0IHd3dy5sMmpzZXJ2ZXIuY29t" + Config.EOL));
  335. -
  336. if (Config.DISPLAY_SERVER_VERSION)
  337. {
  338. if (Config.SERVER_VERSION != null)
  339. @@ -608,6 +709,7 @@
  340. {
  341. listener.onSpawn(activeChar);
  342. }
  343. }
  344.  
  345. /**
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement