Help Me For Auto Register

Results 1 to 4 of 4
  1. #1
    Member NightEvil is offline
    MemberRank
    Oct 2012 Join Date
    59Posts

    ! Help Me For Auto Register

    Anyone Knw How To Make Auto Register For HeliosMS Source.. Please I Needed it so much..


  2. #2
    Moderator Eric is offline
    ModeratorRank
    Jan 2010 Join Date
    DEV CityLocation
    3,188Posts

    Re: Help Me For Auto Register

    Isn't this toggle-able via ServerConstants.java?

    If not, get AutoRegister.java and configure it, add the AutoRegister functions into net/login/handler/LoginPasswordHandler.java, compile, update jar, and test.

    You can get AutoRegister.java and Login functions from sources like MapleBlade.

  3. #3
    Member NightEvil is offline
    MemberRank
    Oct 2012 Join Date
    59Posts

    Re: Help Me For Auto Register

    Got tutorial???

  4. #4
    Moderator Eric is offline
    ModeratorRank
    Jan 2010 Join Date
    DEV CityLocation
    3,188Posts

    Re: Help Me For Auto Register

    EDIT: Here's my tutorial:

    Step 1 - Making the AutoRegister.class file! In Netbeans, right-click on "client" > New > Java Class > name it "AutoRegister"
    Step 2 - Replace all of the text with this:
    Spoiler:
    PHP Code:
    package client;

    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import java.sql.ResultSet;
    import tools.DatabaseConnection;

    public class 
    AutoRegister {

        private static final 
    org.slf4j.Logger log org.slf4j.LoggerFactory.getLogger(MapleClient.class);
        private static final 
    int ACCOUNTS_PER_IP 2// account limit
        
    public static final boolean autoRegister true;
        public static 
    boolean success;
        public static 
    boolean getAccountExists(String login) {
            
    boolean accountExists false;
            
    Connection con DatabaseConnection.getConnection();
            try {
                
    PreparedStatement ps con.prepareStatement("SELECT name FROM accounts WHERE name = ?");
                
    ps.setString(1login);
                
    ResultSet rs ps.executeQuery();
                if (
    rs.first()) {
                    
    accountExists true;
                }
            } catch (
    Exception ex) {
            }
            return 
    accountExists;
        }

        public static 
    void createAccount(String loginString pwdString eip) {
            
    String sockAddr eip;
            
    Connection con;
            try {
                
    con DatabaseConnection.getConnection();
            } catch (
    Exception ex) {
                
    log.error("ERROR"ex);
                return;
            }
            try {
                
    PreparedStatement ipc con.prepareStatement("SELECT lastknownip FROM accounts WHERE lastknownip = ?");
                
    ipc.setString(1sockAddr.substring(1sockAddr.lastIndexOf(':')));
                
    ResultSet rs ipc.executeQuery();
                if (
    rs.first() == false || rs.last() == true && rs.getRow() < ACCOUNTS_PER_IP) {
                    try {
                        
    PreparedStatement ps con.prepareStatement("INSERT INTO accounts (name, password, email, birthday, macs, lastknownip) VALUES (?, ?, ?, ?, ?, ?)");
                        
    ps.setString(1login);
                        
    ps.setString(2pwd);
                        
    ps.setString(3"no@email.provided");
                        
    ps.setString(4"1337-12-12"); 
                        
    ps.setString(5"13-33-33-33-33-37");
                        
    ps.setString(6sockAddr.substring(1sockAddr.lastIndexOf(':')));
                        
    ps.executeUpdate();
                        
    ps.close();
                        
    success true;
                    } catch (
    SQLException ex) {
                        
    log.error("ERROR"ex);
                        return;
                    }
                }
                
    ipc.close();
                
    rs.close();
            } catch (
    SQLException ex) {
                
    log.error("Something went wrong with AutoRegister.\r\n" ex);
            }
        }


    Step 3 - In Netbeans, go to net.login.handler package. Find "LoginPasswordHandler"
    Step 4 - In it, find package net.login.handler; below it you'll find imports. add:
    PHP Code:
    import client.AutoRegister
    Step 5 - Next, in LoginPasswordHandler find: final boolean isBanned = c.hasBannedIP() || c.hasBannedMac();
    After it, add:
    PHP Code:
          if (AutoRegister.getAccountExists(login)) {
                
    loginok c.login(loginpwdipBan || macBan);
            } else if (
    AutoRegister.success true && (!ipBan || !macBan)) {
                
    AutoRegister.createAccount(loginpwdc.getSession().getRemoteAddress().toString());
                if (
    AutoRegister.success) {
                    
    loginok c.login(loginpwdipBan || macBan);
                }
               } 
    Compile, update jar, and test it out! -- as that should do it.

    If it needs a SQL, I remember in v62 days you needed the lastknownip SQL. I already had it so i'm not sure. If you don't have lastknownip inside of the table 'accounts', or receive an error in your BAT about it, go to MySQL and click File > New Script Tab > and paste this in: ALTER TABLE `accounts` ADD COLUMN `lastknownip` TINYTEXT NULL;

    THIS should work!
    Last edited by Eric; 21-04-13 at 07:36 AM.



Advertisement