Jump to content

Recommended Posts

Posted

hey ... it looks awesome .. but .. i have only ONE problem .. so .. this is it:

 

THIS: getSocketChannel()

 

is unknown to my pack, how can i fix this ? ... when drag over that word, it shows a window with the next message: The method getSocketChannel() is undefined for the type MMOConnection<L2GameClient>

 

So .. what should i do ? ^^

 

EDIT: I FOUN YOU HAVE FIXED THIS WITH OTHER GUY IN FIRTS POSTS .. SO I TRIED THE SAME, AND I WILL NOTICE IF IT WORKED ^^ THANKS AGAIN.

  • 4 weeks later...
Posted

i have this problem when compile.

 

[iNFO] Compilation failure
\L2EmuProject-Game\src\main\java\net\l2emuproject\gameserver\model\entity\ProtectionIP.java:[48,44] 
cannot find symbol
symbol  : variable PARTY
location: class net.l2emuproject.gameserver.network.clientpackets.Say2

 

player.sendPacket(new CreatureSay(1, Say2.PARTY, "SYSTEM", "Last Acces your acc: "+last+" actuality ip: "+curr));

 

My Say2.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 net.l2emuproject.gameserver.network.clientpackets;

import java.util.regex.Pattern;

import net.l2emuproject.Config;
import net.l2emuproject.gameserver.LoginServerThread;
import net.l2emuproject.gameserver.datatables.GmListTable;
import net.l2emuproject.gameserver.handler.ChatHandler;
import net.l2emuproject.gameserver.handler.IChatHandler;
import net.l2emuproject.gameserver.handler.VoicedCommandHandler;
import net.l2emuproject.gameserver.model.actor.instance.L2PcInstance;
import net.l2emuproject.gameserver.model.restriction.AvailableRestriction;
import net.l2emuproject.gameserver.model.restriction.ObjectRestrictions;
import net.l2emuproject.gameserver.model.zone.L2Zone;
import net.l2emuproject.gameserver.network.Disconnection;
import net.l2emuproject.gameserver.network.SystemChatChannelId;
import net.l2emuproject.gameserver.network.SystemMessageId;
import net.l2emuproject.gameserver.util.Util;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;


/**
* This class represents a packet sent by the client when a chat message is entered.
*/
public class Say2 extends L2GameClientPacket
{
private static final String		_C__SAY2	= "[C] 49 Say2 c[sd|s|]";
private static final Log		_logChat	= LogFactory.getLog("chat");

private String					_text;
private SystemChatChannelId		_type;
private String					_target;

private static final String[]	LINKED_ITEM	=
											{ "Type=", "ID=", "Color=", "Underline=", "Title=" };

@Override
protected void readImpl()
{
	_text = readS();
	_type = SystemChatChannelId.getChatType(readD());
	_target = _type == SystemChatChannelId.Chat_Tell ? readS() : null;
}

@Override
protected void runImpl()
{
	L2PcInstance activeChar = getClient().getActiveChar();
	if (activeChar == null)
		return;

	// If no or wrong channel is used - punish/return
	switch (_type)
	{
	case Chat_None:
	case Chat_Announce:
	case Chat_Critical_Announce:
	case Chat_System:
	case Chat_Custom:
		if (Config.BAN_CLIENT_EMULATORS)
			Util.handleIllegalPlayerAction(activeChar, "Bot usage for chatting with wrong type by " + activeChar);
		else
			sendAF();
		return;
	}

	if (Config.DISABLE_ALL_CHAT)
	{
		requestFailed(SystemMessageId.GM_NOTICE_CHAT_DISABLED);
		return;
	}

	switch (_type)
	{
	case Chat_GM_Pet:
	case Chat_User_Pet:
	case Chat_Tell:
		break;
	default:
		// If player is chat banned
		if (ObjectRestrictions.getInstance().checkRestriction(activeChar, AvailableRestriction.PlayerChat))
		{
			requestFailed(SystemMessageId.CHATTING_IS_CURRENTLY_PROHIBITED);
			return;
		}
	}

	if (activeChar.isCursedWeaponEquipped())
	{
		switch (_type)
		{
		case Chat_Shout:
		case Chat_Market:
			requestFailed(SystemMessageId.SHOUT_AND_TRADE_CHAT_CANNOT_BE_USED_WHILE_POSSESSING_CURSED_WEAPON);
			return;
		}
	}

	switch (_type)
	{
	case Chat_GM_Pet:
	case Chat_User_Pet:
	case Chat_Normal:
		break;
	default:
		// If player is jailed
		if ((activeChar.isInJail() || activeChar.isInsideZone(L2Zone.FLAG_JAIL)) && Config.JAIL_DISABLE_CHAT && !activeChar.isGM())
		{
			requestFailed(SystemMessageId.REPORTED_CHAT_NOT_ALLOWED);
			return;
		}
	}

	// If Petition and GM use GM_Petition Channel
	if (_type == SystemChatChannelId.Chat_User_Pet && activeChar.isGM())
		_type = SystemChatChannelId.Chat_GM_Pet;

	switch (_type)
	{
	case Chat_Normal:
	case Chat_Shout:
	case Chat_Market:
		if (!Config.GM_ALLOW_CHAT_INVISIBLE && activeChar.getAppearance().isInvisible())
		{
			requestFailed(SystemMessageId.NOT_CHAT_WHILE_INVISIBLE);
			return;
		}
	}

	if (_text.isEmpty())
	{
		if (Config.BAN_CLIENT_EMULATORS)
			Util.handleIllegalPlayerAction(activeChar, "Bot usage for chatting with empty messages by " + activeChar);
		else
			sendAF();

		_log.warn(activeChar.getName() + ": sending empty text. Possible packet hack!");
		return;
	}

	//Under no circumstances the official client will send a 400 character message
	//If there are no linked items in the message, you can only input 105 characters
	if (_text.length() > 400 || (_text.length() > 105 && !containsLinkedItems()))
	{
		if (Config.BAN_CLIENT_EMULATORS)
			Util.handleIllegalPlayerAction(activeChar, "Bot usage for chatting with too long messages by " + activeChar);
		else
			requestFailed(SystemMessageId.DONT_SPAM);
		//prevent crashing official clients
		return;
	}

	int oldLength = _text.length();

	_text = _text.replaceAll("\\\\n", "");

	if (oldLength != _text.length())
		activeChar.sendPacket(SystemMessageId.DONT_SPAM);

	// L2EMU_ADD - Rayan - Modified for our Implementation
	// Say Filter implementation
	if (Config.USE_CHAT_FILTER)
		checkText(activeChar);
	// L2EMU_ADD

	if (VoicedCommandHandler.getInstance().useVoicedCommand(_text, activeChar))
	{
		sendAF();
		return;
	}

	// Some custom implementation to show how to add channels
	// (for me Chat_System is used for emotes - further informations
	// in ChatSystem.java)
	// else if (_text.startsWith("(")&&
	//		_text.length() >= 5 &&
	//		_type == SystemChatChannelId.Chat_Normal)
	//{
	//	_type = SystemChatChannelId.Chat_System;
	//
	//	_text = _text.substring(1);
	//	_text = "*" + _text + "*";
	//}

	// Log chat to file
	if (Config.LOG_CHAT)
	{
		if (_type == SystemChatChannelId.Chat_Tell)
			_logChat.info(_type.getName() + "[" + activeChar.getName() + " to " + _target + "] " + _text);
		else
			_logChat.info(_type.getName() + "[" + activeChar.getName() + "] " + _text);
	}

	IChatHandler ich = ChatHandler.getInstance().getChatHandler(_type);
	if (ich != null)
		ich.useChatHandler(activeChar, _target, _type, _text);

	sendAF();
}

@Override
public String getType()
{
	return _C__SAY2;
}

private boolean containsLinkedItems()
{
	for (int i = 0; i < LINKED_ITEM.length; i++)
		if (!_text.contains(LINKED_ITEM[i]))
			return false;
	return true;
}

// L2EmuProject: Addons
private void checkText(L2PcInstance activeChar)
{
	if (Config.USE_CHAT_FILTER)
	{
		String filteredText = _text;

		for (Pattern pattern : Config.FILTER_LIST)
			filteredText = pattern.matcher(_text).replaceAll(Config.CHAT_FILTER_CHARS);

		if (Config.CHAT_FILTER_PUNISHMENT.equalsIgnoreCase("warn") && _text != filteredText)
			GmListTable.broadcastMessageToGMs("WARNING: Player " + activeChar.getName() + " said illegal words.");
		else if (Config.CHAT_FILTER_PUNISHMENT.equalsIgnoreCase("jail") && _text != filteredText)			
			activeChar.setInJail(true, Config.CHAT_FILTER_PUNISHMENT_PARAM1);
		else if (Config.CHAT_FILTER_PUNISHMENT.equalsIgnoreCase("kick") && _text != filteredText)
			new Disconnection(activeChar).defaultSequence(false);
		else if (Config.CHAT_FILTER_PUNISHMENT.equalsIgnoreCase("ban") && _text != filteredText)
		{
			LoginServerThread.getInstance().sendAccessLevel(activeChar.getAccountName(), -100);
			new Disconnection(activeChar).defaultSequence(false);
		}

		_text = filteredText;
	}
}
}

help me

l2emuproject

 

 

  • 2 months later...
  • 1 month later...
  • 3 months later...
Posted

where wtirte it?

/* 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();

}

}

}

}

 

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.




×
×
  • Create New...