Jump to content

Recommended Posts

Posted

Index ?

/* 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 2, 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, write to the Free Software

* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA

* 02111-1307, USA.

*

* http://www.gnu.org/copyleft/gpl.html

*/

package net.sf.l2j.gameserver.model.entity;

 

import java.sql.PreparedStatement;

import java.sql.ResultSet;

 

import net.sf.l2j.L2DatabaseFactory;

import net.sf.l2j.gameserver.clientpackets.Say2;

import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;

import net.sf.l2j.gameserver.serverpackets.CreatureSay;

 

/**

*

* @author  xAddytzu

*/

public class ProtectionIP

{

public static void onEnterWorld(L2PcInstance player)

{

String last = "";

String curr = "";

try

{

last = LastIP(player);

curr = player.getClient().getConnection().getSocketChannel().socket().getInetAddress().getHostAddress();

}

catch (Exception e)

{

}

 

if (!last.equals(curr))

player.sendPacket(new CreatureSay(1, Say2.PARTY, "SYSTEM", "Your last ip was: "+last+" and current: "+curr));

 

UpdateLastIP(player, player.getAccountName());

}

public static String LastIP(L2PcInstance player)

{

String lastIp = "";

java.sql.Connection con = null;

try

{

ResultSet rset;

con = L2DatabaseFactory.getInstance().getConnection();

PreparedStatement statement = con.prepareStatement("SELECT * FROM `accounts` WHERE login = ?");

statement.setString(1, player.getAccountName());

rset = statement.executeQuery();

           while(rset.next())

           {

lastIp = rset.getString("lastIP");

           }

}

catch(Exception e)

{

e.printStackTrace();

}

finally

{

try

{

con.close();

}

catch(Exception e)

{

e.printStackTrace();

}

}

return lastIp;

}

 

public static void UpdateLastIP(L2PcInstance player ,String user)

{

String address = player.getClient().getConnection().getSocketChannel().socket().getInetAddress().getHostAddress();

java.sql.Connection con = null;

try

{

con = L2DatabaseFactory.getInstance().getConnection();

PreparedStatement statement = con.prepareStatement("UPDATE accounts SET lastIP=? WHERE login=?");

statement.setString(1, address);

statement.setString(2, user);

statement.execute();

statement.close();

}

catch(Exception e)

{

e.printStackTrace();

}

finally

{

try

{

con.close();

}

catch(Exception e)

{

e.printStackTrace();

}

}

}

}

  • 2 weeks later...
Posted

well... the point of all this ? ...

 

For example if the user has dynamic ip .... how would he know if his account was stolen ? or used by another person.... he would be confused anyway because he will see different ip's ... heh nvm xD talking to much :)

 

But regards the coding :) well done ^ ^ :)

Posted

Did everything exactly like you, but flying bug: ( Where could I go wrong?

 

    [javac] D:\opensource\la2vt\la2vt-core\java\com\l2dc\gameserver\model\entity\ProtectionIP.java:42: cannot find symbol
    [javac] 			curr = player.getClient().getConnection().getSocketChannel().socket().getInetAddress().getHostAddress();
    [javac] 			                                         ^
    [javac]   symbol:   method getSocketChannel()
    [javac]   location: class MMOConnection<L2GameClient>
    [javac] D:\opensource\la2vt\la2vt-core\java\com\l2dc\gameserver\model\entity\ProtectionIP.java:89: cannot find symbol
    [javac] 		String address = player.getClient().getConnection().getSocketChannel().socket().getInetAddress().getHostAddress();
    [javac] 		                                                   ^
    [javac]   symbol:   method getSocketChannel()
    [javac]   location: class MMOConnection<L2GameClient>
    [javac] 2 errors

Posted

Did everything exactly like you, but flying bug: ( Where could I go wrong?

 

    [javac] D:\opensource\la2vt\la2vt-core\java\com\l2dc\gameserver\model\entity\ProtectionIP.java:42: cannot find symbol
    [javac] 			curr = player.getClient().getConnection().getSocketChannel().socket().getInetAddress().getHostAddress();
    [javac] 			                                         ^
    [javac]   symbol:   method getSocketChannel()
    [javac]   location: class MMOConnection<L2GameClient>
    [javac] D:\opensource\la2vt\la2vt-core\java\com\l2dc\gameserver\model\entity\ProtectionIP.java:89: cannot find symbol
    [javac] 		String address = player.getClient().getConnection().getSocketChannel().socket().getInetAddress().getHostAddress();
    [javac] 		                                                   ^
    [javac]   symbol:   method getSocketChannel()
    [javac]   location: class MMOConnection<L2GameClient>
    [javac] 2 errors

 

look this

 

 

package net.sf.l2j.gameserver.model.entity;

import java.sql.PreparedStatement;
import java.sql.ResultSet;

import net.sf.l2j.L2DatabaseFactory;
import net.sf.l2j.gameserver.clientpackets.Say2;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.serverpackets.CreatureSay;

/**
*
* @author  xAddytzu
*/
public class ProtectionIP
{
public static void onEnterWorld(L2PcInstance player)
{
	String last = "";
	String curr = "";
	try
	{
		last = LastIP(player);
		curr = player.getClient().getConnection().getSocketChannel().socket().getInetAddress().getHostAddress();
	}
	catch (Exception e)
	{
	}

	if (!last.equals(curr))
		player.sendPacket(new CreatureSay(1, Say2.PARTY, "SYSTEM", "Your last ip was: "+last+" and current: "+curr));

	UpdateLastIP(player, player.getAccountName());
}
public static String LastIP(L2PcInstance player)
{
	String lastIp = "";
	java.sql.Connection con = null;
	try
	{
		ResultSet rset;
		con = L2DatabaseFactory.getInstance().getConnection();
		PreparedStatement statement = con.prepareStatement("SELECT * FROM `accounts` WHERE login = ?");
		statement.setString(1, player.getAccountName());
		rset = statement.executeQuery();
            while(rset.next())
            {
				lastIp = rset.getString("lastIP");
            }
	}
	catch(Exception e)
	{
		e.printStackTrace();
	}
	finally
	{
		try
		{
			con.close();
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
	}
	return lastIp;
}

public static void UpdateLastIP(L2PcInstance player ,String user)
{
	String address = player.getClient().getConnection().getSocketChannel().socket().getInetAddress().getHostAddress();
	java.sql.Connection con = null;
	try
	{
		con = L2DatabaseFactory.getInstance().getConnection();
		PreparedStatement statement = con.prepareStatement("UPDATE accounts SET lastIP=? WHERE login=?");
		statement.setString(1, address);
		statement.setString(2, user);
		statement.execute();
		statement.close();
	}
	catch(Exception e)
	{
		e.printStackTrace();
	}
	finally
	{
		try
		{
			con.close();
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
	}
}
}

 

 

delete for this

 

/* 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 2, 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, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* http://www.gnu.org/copyleft/gpl.html
*/

and is ok :P

 

test for  l2j Interlude

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



  • Posts

    • NEW SEASON GRAND OPENING FROM - 10/07/2026, FRIDAY, 20:00 +3 GMT !
    • System folder is indeed missing @eMommy
    • No complicated KYC, instant setup after purchase!  Boost your connection speed and secure your privacy today!  Official Website: https://novproxy.com?kwd=tt-max
    • I don't know this guy and I don't care about him or the server. What I want to say I already do it. And yes, it does seem like he has some mental problems to make up these stories. 
    • L2JForge Edition Update Revision: V1.0.119  Update: 15 June – 1 July 2026  Fixes & Improvements Fixed PawnShop pagination and inactive Community Board actions. Added thread-safe caching to the PawnShop system. Fixed MMOTopVote vote tracking. Fixed PvP Event participant cleanup. Restored the missing PvP Ranking broadcast. Improved CTF flag handling and zone validation. Added Try Skin / Hat Preview handlers to the Community Board. Improved character skin appearance refreshes without requiring a restart. Improved NPC positioning to reduce train and collision abuse. Fixed Seal of Ruler casting from invalid artifact positions. Added stricter castle artifact, range and height validation. Fixed character restoration stability during Enter World. Reworked Community Board Home, Shop, Bosses and Events sections. Added live Raid/Epic Boss status and respawn information. Added upcoming PvP and GvG event schedules. Integrated character services, settings and statistics into the Community Board. Moved Vote Rewards from a voiced command into the Character Menu in Community Board. Removed the obsolete Achievements / .rewards system.  Removed unused multilingual resources and simplified datapack loading. Improved datapack startup and HTML cache stability. Added automatic build revision and build-date metadata. Reorganized runtime libraries and standardized generated server jars. Refined the Player, Creature, GameClient, Clan and Frintezza systems. Performed extensive source cleanup and reliability improvements. Updated build configuration and repository exclusions.  Work in Progress Development continues with additional gameplay fixes, performance improvements, system cleanup and more upgrades already in progress..
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..