Hello, I'm creating a code for users to change passwords for a .change command, but I'm not able to get an html for the code. I've taken a part of a npc and help me code it down
/*
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/package net.sf.l2j.gameserver.handler.voicedcommandhandlers;import java.security.MessageDigest;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.Base64;import java.util.StringTokenizer;import java.util.logging.Logger;import net.sf.l2j.commons.concurrent.ThreadPool;import net.sf.l2j.L2DatabaseFactory;import net.sf.l2j.gameserver.handler.IVoicedCommandHandler;import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;/**
* @author williams
*
*/publicclassChangePasswordimplementsIVoicedCommandHandler{privatestaticfinalLogger _log =Logger.getLogger(ChangePassword.class.getName());privatestaticfinalString[] _voicedCommands ={"change"};@Overridepublicboolean useVoicedCommand(String command, L2PcInstance activeChar,String target){if(command.equalsIgnoreCase("change")&& target !=null){StringTokenizer st =newStringTokenizer(target);
st.nextToken();String curPass =null;String newPass =null;String repPass =null;try{if(st.hasMoreTokens()){
curPass = st.nextToken();
newPass = st.nextToken();
repPass = st.nextToken();}else{
activeChar.sendMessage("Please fill in all the blanks before requesting for a password change.");returnfalse;}
changePassword(curPass, newPass, repPass, activeChar);}catch(StringIndexOutOfBoundsException e){
e.printStackTrace();}}returnfalse;}@SuppressWarnings("null")publicstaticboolean changePassword(String currPass,String newPass,String repeatNewPass, L2PcInstance activeChar){if(newPass.length()<3){
activeChar.sendMessage("The new password is too short!");returnfalse;}if(newPass.length()>16){
activeChar.sendMessage("The new password is too long!");returnfalse;}if(!newPass.equals(repeatNewPass)){
activeChar.sendMessage("Repeated password doesn't match the new password.");returnfalse;}Connection con =null;String password =null;try{MessageDigest md =MessageDigest.getInstance("SHA");byte[] raw = currPass.getBytes("UTF-8");
raw = md.digest(raw);String currPassEncoded =Base64.getEncoder().encodeToString(raw);
con = L2DatabaseFactory.getInstance().getConnection();PreparedStatement statement = con.prepareStatement("SELECT password FROM accounts WHERE login=?");
statement.setString(1, activeChar.getAccountName());ResultSet rset = statement.executeQuery();while(rset.next()){
password = rset.getString("password");}
rset.close();
statement.close();byte[] password2 =null;if(currPassEncoded.equals(password)){
password2 = newPass.getBytes("UTF-8");
password2 = md.digest(password2);PreparedStatement statement2 = con.prepareStatement("UPDATE accounts SET password=? WHERE login=?");
statement2.setString(1,Base64.getEncoder().encodeToString(password2));
statement2.setString(2, activeChar.getAccountName());
statement2.executeUpdate();
statement2.close();
activeChar.sendMessage("Your password has been changed successfully! For security reasons, You will be disconnected in 3 Seconds. Please login again!");try{ThreadPool.schedule(()-> activeChar.logout(false),3000);}catch(Exception e){{
e.printStackTrace();}}
activeChar.broadcastUserInfo();
activeChar.decayMe();
activeChar.spawnMe();}else{
activeChar.sendMessage("The current password you've inserted is incorrect! Please try again!");return password2 !=null;}}catch(Exception e){
_log.warning("could not update the password of account: "+ activeChar.getAccountName());
e.printStackTrace();}finally{if(con !=null)try{
con.close();
con =null;}catch(finalThrowable e){}}returntrue;}@OverridepublicString[] getVoicedCommandList(){return _voicedCommands;}}
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Discord : utchiha_market
Telegram : https://t.me/utchiha_market
Auto Buy Store : https://utchiha-market.mysellauth.com/
Not sure if we’re legit? Check Our server — real reviews, real buyers
https://discord.gg/uthciha-servicess | https://campsite.bio/utchihaamkt
Question
l2jkain
Hello, I'm creating a code for users to change passwords for a .change command, but I'm not able to get an html for the code. I've taken a part of a npc and help me code it down
2 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.