package com.l2jfrozen.gameserver.model.actor.instance; import com.l2jfrozen.gameserver.ai.CtrlIntention; import com.l2jfrozen.gameserver.ai.L2CharacterAI; import com.l2jfrozen.gameserver.network.serverpackets.ActionFailed; import com.l2jfrozen.gameserver.network.serverpackets.MyTargetSelected; import com.l2jfrozen.gameserver.network.serverpackets.NpcHtmlMessage; import com.l2jfrozen.gameserver.network.serverpackets.ValidateLocation; import com.l2jfrozen.gameserver.templates.L2NpcTemplate; import java.util.StringTokenizer; import javolution.text.TextBuilder; public class L2PasswordChangerInstance extends L2FolkInstance { public L2PasswordChangerInstance(int objectId, L2NpcTemplate template) { super(objectId, template); } public void onBypassFeedback(L2PcInstance player, String command) { if (command.startsWith("change_password")) { StringTokenizer st = new StringTokenizer(command); st.nextToken(); String currPass = null; String newPass = null; String repeatNewPass = null; try { if (st.hasMoreTokens()) { currPass = st.nextToken(); newPass = st.nextToken(); repeatNewPass = st.nextToken(); } else { player.sendMessage("Please fill in all the blanks before requesting for a password change."); return; } changePassword(currPass, newPass, repeatNewPass, player); } catch (StringIndexOutOfBoundsException localStringIndexOutOfBoundsException) { } } } public void onAction(L2PcInstance player) { if (!(canTarget(player))) { return; } if (this != player.getTarget()) { player.setTarget(this); player.sendPacket(new MyTargetSelected(getObjectId(), 0)); player.sendPacket(new ValidateLocation(this)); } else if (!(canInteract(player))) { player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this); } else { showHtmlWindow(player); } player.sendPacket(new ActionFailed()); } private void showHtmlWindow(L2PcInstance activeChar) { NpcHtmlMessage nhm = new NpcHtmlMessage(5); TextBuilder replyMSG = new TextBuilder(""); replyMSG.append("<html><title>L2Swearer Account Manager</title>"); replyMSG.append("<body><center>"); replyMSG.append("To change your password:<br1> First fill in your current password and then your new!</font><br>"); replyMSG.append("Current Password: <edit var=\"cur\" width=100 height=15><br>"); replyMSG.append("New Password: <edit var=\"new\" width=100 height=15><br>"); replyMSG.append("Repeat New Password: <edit var=\"repeatnew\" width=100 height=15><br><br>"); replyMSG.append("<button value=\"Change Password\" action=\"bypass -h npc_" + getObjectId() + "_change_password $cur $new $repeatnew\" width=120 height=30 back=\"L2UI_CH3.refinegrade3_21\" fore=\"L2UI_CH3.refinegrade3_21\">"); nhm.setHtml(replyMSG.toString()); activeChar.sendPacket(nhm); activeChar.sendPacket(new ActionFailed()); } // ERROR // public static boolean changePassword(String currPass, String newPass, String repeatNewPass, L2PcInstance activeChar) { // Byte code: // 0: aload_1 // 1: invokevirtual 49 java/lang/String:length ()I // 4: iconst_5 // 5: if_icmpge +11 -> 16 // 8: aload_3 // 9: ldc 50 // 11: invokevirtual 9 com/l2jfrozen/gameserver/model/actor/instance/L2PcInstance:sendMessage (Ljava/lang/String;)V // 14: iconst_0 // 15: ireturn // 16: aload_1 // 17: invokevirtual 49 java/lang/String:length ()I // 20: bipush 20 // 22: if_icmple +11 -> 33 // 25: aload_3 // 26: ldc 51 // 28: invokevirtual 9 com/l2jfrozen/gameserver/model/actor/instance/L2PcInstance:sendMessage (Ljava/lang/String;)V // 31: iconst_0 // 32: ireturn // 33: aload_1 // 34: aload_2 // 35: invokevirtual 52 java/lang/String:equals (Ljava/lang/Object;)Z // 38: ifne +11 -> 49 // 41: aload_3 // 42: ldc 53 // 44: invokevirtual 9 com/l2jfrozen/gameserver/model/actor/instance/L2PcInstance:sendMessage (Ljava/lang/String;)V // 47: iconst_0 // 48: ireturn // 49: aconst_null // 50: astore 4 // 52: aconst_null // 53: astore 5 // 55: ldc 54 // 57: invokestatic 55 java/security/MessageDigest:getInstance (Ljava/lang/String;)Ljava/security/MessageDigest; // 60: astore 6 // 62: aload_0 // 63: ldc 56 // 65: invokevirtual 57 java/lang/String:getBytes (Ljava/lang/String;)[B // 68: astore 7 // 70: aload 6 // 72: aload 7 // 74: invokevirtual 58 java/security/MessageDigest:digest ([B)[B // 77: astore 7 // 79: aload 7 // 81: invokestatic 59 com/l2jfrozen/crypt/Base64:encodeBytes ([B)Ljava/lang/String; // 84: astore 8 // 86: invokestatic 60 com/l2jfrozen/util/database/L2DatabaseFactory:getInstance ()Lcom/l2jfrozen/util/database/L2DatabaseFactory; // 89: invokevirtual 61 com/l2jfrozen/util/database/L2DatabaseFactory:getConnection ()Ljava/sql/Connection; // 92: astore 4 // 94: aload 4 // 96: ldc 62 // 98: invokeinterface 63 2 0 // 103: astore 9 // 105: aload 9 // 107: iconst_1 // 108: aload_3 // 109: invokevirtual 64 com/l2jfrozen/gameserver/model/actor/instance/L2PcInstance:getAccountName ()Ljava/lang/String; // 112: invokeinterface 65 3 0 // 117: aload 9 // 119: invokeinterface 66 1 0 // 124: astore 10 // 126: aload 10 // 128: invokeinterface 67 1 0 // 133: ifeq +17 -> 150 // 136: aload 10 // 138: ldc 68 // 140: invokeinterface 69 2 0 // 145: astore 5 // 147: goto -21 -> 126 // 150: aload 10 // 152: invokeinterface 70 1 0 // 157: aload 9 // 159: invokeinterface 71 1 0 // 164: aconst_null // 165: astore 11 // 167: aload 8 // 169: aload 5 // 171: invokevirtual 52 java/lang/String:equals (Ljava/lang/Object;)Z // 174: ifeq +106 -> 280 // 177: aload_1 // 178: ldc 56 // 180: invokevirtual 57 java/lang/String:getBytes (Ljava/lang/String;)[B // 183: astore 11 // 185: aload 6 // 187: aload 11 // 189: invokevirtual 58 java/security/MessageDigest:digest ([B)[B // 192: astore 11 // 194: aload 4 // 196: ldc 72 // 198: invokeinterface 63 2 0 // 203: astore 12 // 205: aload 12 // 207: iconst_1 // 208: aload 11 // 210: invokestatic 59 com/l2jfrozen/crypt/Base64:encodeBytes ([B)Ljava/lang/String; // 213: invokeinterface 65 3 0 // 218: aload 12 // 220: iconst_2 // 221: aload_3 // 222: invokevirtual 64 com/l2jfrozen/gameserver/model/actor/instance/L2PcInstance:getAccountName ()Ljava/lang/String; // 225: invokeinterface 65 3 0 // 230: aload 12 // 232: invokeinterface 73 1 0 // 237: pop // 238: aload 12 // 240: invokeinterface 71 1 0 // 245: aload_3 // 246: ldc 74 // 248: invokevirtual 9 com/l2jfrozen/gameserver/model/actor/instance/L2PcInstance:sendMessage (Ljava/lang/String;)V // 251: ldc2_w 75 // 254: invokestatic 77 java/lang/Thread:sleep (J)V // 257: goto +5 -> 262 // 260: astore 13 // 262: aload_3 // 263: invokevirtual 79 com/l2jfrozen/gameserver/model/actor/instance/L2PcInstance:deleteMe ()V // 266: aload_3 // 267: new 80 com/l2jfrozen/gameserver/network/serverpackets/LeaveWorld // 270: dup // 271: invokespecial 81 com/l2jfrozen/gameserver/network/serverpackets/LeaveWorld:<init> ()V // 274: invokevirtual 18 com/l2jfrozen/gameserver/model/actor/instance/L2PcInstance:sendPacket (Lcom/l2jfrozen/gameserver/network/serverpackets/L2GameServerPacket;)V // 277: goto +49 -> 326 // 280: aload_3 // 281: ldc 82 // 283: invokevirtual 9 com/l2jfrozen/gameserver/model/actor/instance/L2PcInstance:sendMessage (Ljava/lang/String;)V // 286: aload 11 // 288: ifnull +7 -> 295 // 291: iconst_1 // 292: goto +4 -> 296 // 295: iconst_0 // 296: istore 12 // 298: aload 4 // 300: ifnull +10 -> 310 // 303: aload 4 // 305: invokeinterface 83 1 0 // 310: goto +13 -> 323 // 313: astore 13 // 315: getstatic 85 com/l2jfrozen/gameserver/model/actor/instance/L2PasswordChangerInstance:_log Ljava/util/logging/Logger; // 318: ldc 86 // 320: invokevirtual 87 java/util/logging/Logger:warning (Ljava/lang/String;)V // 323: iload 12 // 325: ireturn // 326: aload 4 // 328: ifnull +10 -> 338 // 331: aload 4 // 333: invokeinterface 83 1 0 // 338: goto +104 -> 442 // 341: astore 6 // 343: getstatic 85 com/l2jfrozen/gameserver/model/actor/instance/L2PasswordChangerInstance:_log Ljava/util/logging/Logger; // 346: ldc 86 // 348: invokevirtual 87 java/util/logging/Logger:warning (Ljava/lang/String;)V // 351: goto +91 -> 442 // 354: astore 6 // 356: getstatic 85 com/l2jfrozen/gameserver/model/actor/instance/L2PasswordChangerInstance:_log Ljava/util/logging/Logger; // 359: new 40 java/lang/StringBuilder // 362: dup // 363: invokespecial 41 java/lang/StringBuilder:<init> ()V // 366: ldc 88 // 368: invokevirtual 43 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 371: aload_3 // 372: invokevirtual 64 com/l2jfrozen/gameserver/model/actor/instance/L2PcInstance:getAccountName ()Ljava/lang/String; // 375: invokevirtual 43 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 378: invokevirtual 46 java/lang/StringBuilder:toString ()Ljava/lang/String; // 381: invokevirtual 87 java/util/logging/Logger:warning (Ljava/lang/String;)V // 384: aload 4 // 386: ifnull +10 -> 396 // 389: aload 4 // 391: invokeinterface 83 1 0 // 396: goto +46 -> 442 // 399: astore 6 // 401: getstatic 85 com/l2jfrozen/gameserver/model/actor/instance/L2PasswordChangerInstance:_log Ljava/util/logging/Logger; // 404: ldc 86 // 406: invokevirtual 87 java/util/logging/Logger:warning (Ljava/lang/String;)V // 409: goto +33 -> 442 // 412: astore 14 // 414: aload 4 // 416: ifnull +10 -> 426 // 419: aload 4 // 421: invokeinterface 83 1 0 // 426: goto +13 -> 439 // 429: astore 15 // 431: getstatic 85 com/l2jfrozen/gameserver/model/actor/instance/L2PasswordChangerInstance:_log Ljava/util/logging/Logger; // 434: ldc 86 // 436: invokevirtual 87 java/util/logging/Logger:warning (Ljava/lang/String;)V // 439: aload 14 // 441: athrow // 442: aload 4 // 444: ifnull +10 -> 454 // 447: aload 4 // 449: invokeinterface 83 1 0 // 454: goto +13 -> 467 // 457: astore 6 // 459: getstatic 85 com/l2jfrozen/gameserver/model/actor/instance/L2PasswordChangerInstance:_log Ljava/util/logging/Logger; // 462: ldc 86 // 464: invokevirtual 87 java/util/logging/Logger:warning (Ljava/lang/String;)V // 467: iconst_1 // 468: ireturn // // Exception table: // from to target type // 251 257 260 java/lang/Exception // 298 310 313 java/sql/SQLException // 326 338 341 java/sql/SQLException // 55 298 354 java/lang/Exception // 384 396 399 java/sql/SQLException // 55 298 412 finally // 354 384 412 finally // 412 414 412 finally // 414 426 429 java/sql/SQLException // 442 454 457 java/sql/SQLException } }