Stewie Posted November 25, 2012 Posted November 25, 2012 I'm looking for that command if someone share please. http://maxcheaters.com/forum/index.php?topic=90945.0 /* * 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 l2j.crazy.devs.gameserver.handler.voicedcommandhandlers; import java.security.MessageDigest; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.StringTokenizer; import l2j.crazy.devs.Base64; import l2j.crazy.devs.L2DatabaseFactory; import l2j.crazy.devs.gameserver.handler.IVoicedCommandHandler; import l2j.crazy.devs.gameserver.model.actor.instance.L2PcInstance; /** * * @author Destractor * */ public class ChangePassword implements IVoicedCommandHandler { private static final String[] _voicedCommands = { "changepassword" }; public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target) { if (command.equalsIgnoreCase("changepassword") && target != null) { StringTokenizer st = new StringTokenizer(target); try { String curpass = null, newpass = null, repeatnewpass = null; if (st.hasMoreTokens()) curpass = st.nextToken(); if (st.hasMoreTokens()) newpass = st.nextToken(); if (st.hasMoreTokens()) repeatnewpass = st.nextToken(); if (!(curpass == null || newpass == null || repeatnewpass == null)) { if (!newpass.equals(repeatnewpass)) { activeChar.sendMessage("The new password doesn't match with the repeated one!"); return false; } if (newpass.length() < 3) { activeChar.sendMessage("The new password is shorter than 3 chars! Please try with a longer one."); return false; } if (newpass.length() > 30) { activeChar.sendMessage("The new password is longer than 30 chars! Please try with a shorter one."); return false; } MessageDigest md = MessageDigest.getInstance("SHA"); byte[] raw = curpass.getBytes("UTF-8"); raw = md.digest(raw); String curpassEnc = Base64.encodeBytes(raw); String pass = null; int passUpdated = 0; // SQL connection Connection con = null; con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("SELECT password FROM accounts WHERE login=?"); statement.setString(1, activeChar.getAccountName()); ResultSet rset = statement.executeQuery(); if (rset.next())pass = rset.getString("password"); rset.close(); statement.close(); if (curpassEnc.equals(pass)) { byte[] password = newpass.getBytes("UTF-8"); password = md.digest(password); // SQL connection PreparedStatement ps = con.prepareStatement("UPDATE accounts SET password=? WHERE login=?"); ps.setString(1, Base64.encodeBytes(password)); ps.setString(2, activeChar.getAccountName()); passUpdated = ps.executeUpdate(); ps.close(); con.close(); if (passUpdated > 0) { activeChar.sendMessage("You have successfully changed your password!"); } else { activeChar.sendMessage("The password change was unsuccessful!"); } } else { activeChar.sendMessage("CurrentPass doesn't match with your current one."); return false; } } else { activeChar.sendMessage("Invalid pass data! Format: .changepassword CurrentPass NewPass NewPass"); return false; } } catch (Exception e) { activeChar.sendMessage("A problem occured while changing password!"); } } else { activeChar.sendMessage("To change your current password, you have to type the command in the following format(without the brackets []): [.changepassword CurrentPass NewPass NewPass]. You should also know that the password is case sensitive."); return false; } return true; } public String[] getVoicedCommandList() { return _voicedCommands; } } And this code will work? And from where i should know it's already add to H5 LoL /* * 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 handlers.voicedcommandhandlers; import java.util.StringTokenizer; import java.util.logging.Level; import com.l2jserver.gameserver.LoginServerThread; import com.l2jserver.gameserver.cache.HtmCache; import com.l2jserver.gameserver.handler.IVoicedCommandHandler; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage; /** * @author Nik */ public class ChangePassword implements IVoicedCommandHandler { private static final String[] _voicedCommands = { "changepassword" }; @Override public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target) { if (target != null) { final StringTokenizer st = new StringTokenizer(target); try { String curpass = null, newpass = null, repeatnewpass = null; if (st.hasMoreTokens()) { curpass = st.nextToken(); } if (st.hasMoreTokens()) { newpass = st.nextToken(); } if (st.hasMoreTokens()) { repeatnewpass = st.nextToken(); } if (!((curpass == null) || (newpass == null) || (repeatnewpass == null))) { if (!newpass.equals(repeatnewpass)) { activeChar.sendMessage("The new password doesn't match with the repeated one!"); return false; } if (newpass.length() < 3) { activeChar.sendMessage("The new password is shorter than 3 chars! Please try with a longer one."); return false; } if (newpass.length() > 30) { activeChar.sendMessage("The new password is longer than 30 chars! Please try with a shorter one."); return false; } LoginServerThread.getInstance().sendChangePassword(activeChar.getAccountName(), activeChar.getName(), curpass, newpass); } else { activeChar.sendMessage("Invalid password data! You have to fill all boxes."); return false; } } catch (Exception e) { activeChar.sendMessage("A problem occured while changing password!"); _log.log(Level.WARNING, "", e); } } else { // showHTML(activeChar); String html = HtmCache.getInstance().getHtm("en", "data/html/mods/ChangePassword.htm"); if (html == null) { html = "<html><body><br><br><center><font color=LEVEL>404:</font> File Not Found</center></body></html>"; } activeChar.sendPacket(new NpcHtmlMessage(1, html)); return true; } return true; } @Override public String[] getVoicedCommandList() { return _voicedCommands; } }
Lineal Posted November 25, 2012 Posted November 25, 2012 LOL what do you need now?A changepass command? Because if you share this , this is not correct , with this code only it will not work. I am very confused.
Stewie Posted November 25, 2012 Author Posted November 25, 2012 I need patch for freya, for command .changepassword
Fizo Posted November 26, 2012 Posted November 26, 2012 I need patch for freya, for command .changepassword try to adapt the code from l2jserver h5 version ! Also u have already found solution http://trac.l2jserver.com/changeset/4917 http://trac.l2jdp.com/changeset/8369
LioNa Posted November 27, 2012 Posted November 27, 2012 game\data\scripts\handlers\voicedcommandhandlers -> Create ChangePassword.java /* * 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 handlers.voicedcommandhandlers; import java.security.MessageDigest; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.StringTokenizer; import java.util.logging.Level; import com.l2jserver.Base64; import com.l2jserver.L2DatabaseFactory; import com.l2jserver.gameserver.handler.IVoicedCommandHandler; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; public class ChangePassword implements IVoicedCommandHandler { private static final String[] _voicedCommands = { "changepassword" }; private static final int MIN = 6; // minimum character lengths private static final int MAX = 30; // miaximum character lengths @Override public boolean useVoicedCommand(final String command, final L2PcInstance activeChar, final String target) { if (command.equalsIgnoreCase("changepassword") && target != null) { final StringTokenizer st = new StringTokenizer(target); try { String curpass = null, newpass = null, repeatnewpass = null; if (st.hasMoreTokens()) curpass = st.nextToken(); if (st.hasMoreTokens()) newpass = st.nextToken(); if (st.hasMoreTokens()) repeatnewpass = st.nextToken(); if (!(curpass == null || newpass == null || repeatnewpass == null)) { if (!newpass.equals(repeatnewpass)) { activeChar.sendMessage("Your repeated password must be the same as new password!"); return false; } if (newpass.length() < MIN) { activeChar.sendMessage("Your password must have min: " + MIN + " chars!"); return false; } if (newpass.length() > MAX) { activeChar.sendMessage("Your password can't have more than " + MAX + " chars!"); return false; } final MessageDigest md = MessageDigest.getInstance("SHA"); byte[] raw = curpass.getBytes("UTF-8"); raw = md.digest(raw); final String curpassEnc = Base64.encodeBytes(raw); String pass = null; int passUpdated = 0; Connection con = null; try { con = L2DatabaseFactory.getInstance().getConnection(); final PreparedStatement statement = con.prepareStatement("SELECT password FROM accounts WHERE login=?"); statement.setString(1, activeChar.getAccountName()); final ResultSet rset = statement.executeQuery(); if (rset.next()) pass = rset.getString("password"); rset.close(); statement.close(); if (curpassEnc.equals(pass)) { byte[] password = newpass.getBytes("UTF-8"); password = md.digest(password); final PreparedStatement ps = con.prepareStatement("UPDATE accounts SET password=? WHERE login=?"); ps.setString(1, Base64.encodeBytes(password)); ps.setString(2, activeChar.getAccountName()); passUpdated = ps.executeUpdate(); ps.close(); _log.info("Character " + activeChar.getName() + " has changed his password from " + curpassEnc + " to " + Base64.encodeBytes(password)); if (passUpdated > 0) activeChar.sendMessage("Your password was updated successfully!"); else activeChar.sendMessage("Your password wasn't changed due troubles!"); } else { L2DatabaseFactory.close(con); activeChar.sendMessage("Passess not matches."); return false; } } catch (final Exception e) { } finally { L2DatabaseFactory.close(con); } } else { activeChar.sendMessage("Wrong command structure! Use: .changepassword currendPassword newPassword retypePassword"); return false; } } catch (final Exception e) { activeChar.sendMessage("A problem occured while changing password!"); _log.log(Level.WARNING, "", e); } } else { activeChar.sendMessage("Wrong command structure! Use: .changepassword currendPassword newPassword retypePassword"); return false; } return true; } @Override public String[] getVoicedCommandList() { return _voicedCommands; } }
Stewie Posted November 27, 2012 Author Posted November 27, 2012 try to adapt the code from l2jserver h5 version ! Also u have already found solution http://trac.l2jserver.com/changeset/4917 http://trac.l2jdp.com/changeset/8369 I try, can't.. i'm looking for already adapted one...
MlDNlGHT Posted November 30, 2012 Posted November 30, 2012 I try, can't.. i'm looking for already adapted one... http://maxcheaters.com/forum/index.php?topic=256461.0 You're welcome.
Recommended Posts