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

    • Hello everyone! L2 Imagination High Five x30 Summer Seasson     OPEN BETA from 05.07.2026 LIVE START 10.07.2026 GMT+2      Rates: XP/SP 30x, Spoil 15x, Drop 15x, Adena 15x   Server Features: Spoil Agathion, Free Auto-Farm, Castle Instance, Daily Reward Calendar, Adena Boxes VIP Gold Color Chat, Unique Olympiad Extra Points Engine, GvG Event Solo Instance, PvP Solo Rift, Automatic GvG Event, Improved Orfen and Core Areas Lair of Antharas and Dragon Valley alternating PvP and Normal  every hour 6:00PM-0:00AM      Website: https://www.l2imagination.com  Discord: https://discord.com/invite/frCaDM4Bhg
    • L2 ASAGONIUM - High Five heavily customised PVE Server [OPEN BETA] Website: http://l2asagonium.eu/ Hello everyone, After months of development, tuning and a lot of late nights, I'd like to introduce you to L2 Asagonium - a Lineage 2 High Five server built around one simple idea: a fair, long-lasting world where your time and skill matter more than your wallet. We are currently in OPEN BETA, which means the server is fully online, fully playable, and we are actively listening to feedback to polish the final experience before the official launch. ----------------------------------------------------------- ABOUT THE SERVER - Chronicle: High Five (Mobius) - Type: Really hard PVE with custom content - Status: Open Beta - join, test, shape the server - Mentality: No Pay-to-Win. Ever. ----------------------------------------------------------- WHAT MAKES ASAGONIUM DIFFERENT 1) Custom Armor & Weapon Sets We have introduced new tiers of equipment (Twilight, Cronos, Olympus, Exodus, Leviathan, Ixion, Assassin, Odyssey, Chaos, Immortal) with their own visuals, set bonuses and passive skills. Each set has a clear identity and a real role in the meta - no "one best set wins everything". 2) Custom Passive Skills New Asagonium passive skills (P.Atk, M.Atk, HP, Haste and more) tied to gear and progression, so character building has more depth than just stacking enchants. 3) Live Leaderboards on the Website This is the part I'm most proud of. Our website is connected directly to the game database in real time. You can browse all characters and see: - Level + exact % to next level - Online / Offline / Offline Farming status - "You Died" status (Dark Souls style, stays until next login) - Death counter per character - Total time played (days / hours / minutes) - Top Adena, Top PvP, Top PK - Max Enchant on equipped weapons - Hover a character name to see their passive skills with icons - Hover an enchant value to see the weapon name, P.Atk and set It updates live. Anyone can check the rankings without logging in. ----------------------------------------------------------- NO PAY-TO-WIN - SERIOUSLY I'm tired of servers that promise "balanced donations" and then sell the best items in the cash shop two weeks later. On Asagonium: - No donation items that affect gameplay balance. - No paid enchants, no paid stats, no paid gear. - No "VIP" buffs that make you stronger than free players. Donations (if/when they exist) will be strictly cosmetic and quality-of-life only. The goal is a server that survives because people enjoy playing it, not because a few whales fund it. ----------------------------------------------------------- OPEN BETA - WHY YOU SHOULD JOIN NOW - The server is fully online and stable. - Your feedback directly shapes the final balance. - You get to learn the custom content before everyone else. - Active development - bugs get fixed, ideas get tested fast. ----------------------------------------------------------- HOW TO JOIN 1. Go to http://l2asagonium.eu/ 2. Open "How to Connect" - it walks you through the client download, the 64-bit patch and the system config in 5 simple steps. ----------------------------------------------------------- LINKS http://l2asagonium.eu/ ----------------------------------------------------------- Thanks for reading. If you give Asagonium a try during the beta, please drop your feedback - good or bad. That's exactly what this phase is for. See you in-game.
  • 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..