Jump to content
  • 0

Fix for \n


KaL

Question

Hi all...

 

I'm trying to fix \n words in chat, but it's not working!

 

I tried to insert this line in all ChatHandlers:

 

text.replaceAll("\n", "");

 

And this in Say2.java

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

 

But \n still works in game

 

Can anyone help me to fix it?  :'(

Link to comment
Share on other sites

15 answers to this question

Recommended Posts

  • 0

Using "if text == "\n"

won't be efficient, because if a player writes 1\n for example, the message will pass and the new line will appear normaly..

as fakoykas said:

That's a client bug.

 

Can be easily fixed just by editing your client. Use your imagination :)

Link to comment
Share on other sites

  • 0

Hi all...

 

I'm trying to fix \n words in chat, but it's not working!

 

I tried to insert this line in all ChatHandlers:

 

text.replaceAll("\n", "");

 

And this in Say2.java

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

 

But \n still works in game

 

Can anyone help me to fix it?  :'(

 

Strings are immutable, you cannot modify the string itself, you can just create another one and point it to the same reference so. Your problem has easy fix though, since replaceAll method returns the new string:

 

instead of

text.replaceAll("\n", "");

use

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

 

and all your problems are done ;D

Link to comment
Share on other sites

  • 0

Well, the string is already declared in the function

 

Anyway, i tried using text = text.replaceAll("\n", ""); but didn't work

 

Probably you made a mistake somewhere since code is OK (you made me test it lol :P)

 

Post whole method/classes where you inserted that code

Link to comment
Share on other sites

  • 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 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.handler.chathandlers;

import net.sf.l2j.Config;
import net.sf.l2j.gameserver.handler.IChatHandler;
import net.sf.l2j.gameserver.model.BlockList;
import net.sf.l2j.gameserver.model.entity.events.FortressSiege;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.network.SystemChatChannelId;
import net.sf.l2j.gameserver.serverpackets.CreatureSay;

/**
*
* @author  Noctarius
*/
public class ChatAll implements IChatHandler
{
private SystemChatChannelId[] _chatTypes = { SystemChatChannelId.Chat_Normal };

/**
 * @see de.dc.l2j.gameserver.handler.IChatHandler#getChatType()
 */
public SystemChatChannelId[] getChatTypes()
{
	return _chatTypes;
}

/**
 * @see de.dc.l2j.gameserver.handler.IChatHandler#useChatHandler(de.dc.l2j.gameserver.character.player.L2PcInstance, de.dc.l2j.gameserver.network.enums.SystemChatChannelId, java.lang.String)
 */
public void useChatHandler(L2PcInstance activeChar, String target, SystemChatChannelId chatType, String text)
{
        if (text.startsWith("~") && activeChar._inEventFOS && FortressSiege._started){
        	CreatureSay cs = new CreatureSay(activeChar.getObjectId(), 16, activeChar.getName(), text.substring(1));
        	if (FortressSiege._players!=null && !FortressSiege._players.isEmpty()) 
        			for (L2PcInstance player: FortressSiege._players)
        				if (player._teamNameFOS.equals(activeChar._teamNameFOS))
        					player.sendPacket(cs);
        	return;
        }

       text = text.replaceAll("\n", "");
	CreatureSay cs = new CreatureSay(activeChar.getObjectId(), chatType.getId(), activeChar.getName(), text);

	for (L2PcInstance player : activeChar.getKnownList().getKnownPlayers().values())
	{
		if (player != null && activeChar.isInsideRadius(player, 1250, false, true)
			&& !(Config.REGION_CHAT_ALSO_BLOCKED && BlockList.isBlocked(player, activeChar)))
		{
			player.sendPacket(cs);
			player.broadcastSnoop(activeChar.getObjectId(), chatType.getId(), activeChar.getName(), text);
		}
	}
	activeChar.sendPacket(cs);
	activeChar.broadcastSnoop(activeChar.getObjectId(), chatType.getId(), activeChar.getName(), text);
}
}

 

This is ChatAll.java, all other files have the line in the same place (Upper Creature say cs...)

 

I got this fix from L2jArchid trac timeline, it's place upper this there..

Link to comment
Share on other sites

  • 0

Yeah, but it can be used on chats so I wanna block it :/

 

No more suggestions? I'm still trying an ArrayList and using it in Say2.java

 

But it return an error while compiling...look what I did :

 

private ArrayList<String> list = new ArraList<String>();
list.add("\n");


for(String pattern : list)
{
_text = _text.replaceAll(pattern, "");
}

 

But it returns an error in array list and says that I need to use an <interactor> or something like that after de "add"...but I don't know what it really mean :S

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   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.



  • Posts

    • Powerful Spells Caster & Spiritual Healer Web: lovespellsafrika.com Phone: +27780802727 WhatsApp +27789121499 Email: bbaantu@gmail.com Real Magic Spells | How To Get Back Ex-Boyfriend or Ex-Girlfriend. Real Magic Spells for all purpose; Now you can benefit through the use of spells like Love Spells, Money Spells, Talismans, Charms, Prayers, Curses and Chants. Magic Spells can be spell cast for many purposes. Talismans and Charms work as powerful Ingredients. If you need any spiritual knowledge on the power of Spells and Magic you can always Powerful Magic Rings Love Spells                     Casting of Simple and Effective Love Spells Easy Love Spells Spells for Attraction between two Lovers Binding Love Spells Get back Lost Lover Spells Spells to Strengthen Love Relation Lost Love Spells Soul Mate Spells Marriage Spell for a happy Married Life. Retrieve a Lost Love Spells Bring Back Your Love Spells Gay Love Spells, Lesbian Love Spells Anti-Love Spells, Divorce Spells, Break up Spells How to Get Back Ex-Boyfriend, or Ex-Girlfriend Casting Spells to Get Rid of Your Husband, Wife or Partner without Fights or them hating you Magic Rings, Powerful Love Rings Spells to stop a divorce Voodoo Spells for Love Love Return Spells Money & Prosperity Spells Phone: +27780802727 WhatsApp +27789121499 How to Cast Magic Money Spells Lottery Spells or Lotto Spells Voodoo Spells for Money Black Magic Spell for Money Protection & Banishing Spells Black Magic Spells and Curses to Destroy Enemy or Evil People Protection from Black Magic Spells and Curses Dark Magic Spells Voodoo Spells for Revenge Spells to win court cases &legal matters Healing spells for all purpose Stroke Diabetics Lottery Spells Phone: +27780802727 WhatsApp: +27789121499 Web: lovespellsafrika.com
    • Powerful Spells Caster & Spiritual Healer Web: lovespellsafrika.com Phone: +27780802727 WhatsApp +27789121499 Email: bbaantu@gmail.com Real Magic Spells | How To Get Back Ex-Boyfriend or Ex-Girlfriend. Real Magic Spells for all purpose; Now you can benefit through the use of spells like Love Spells, Money Spells, Talismans, Charms, Prayers, Curses and Chants. Magic Spells can be spell cast for many purposes. Talismans and Charms work as powerful Ingredients. If you need any spiritual knowledge on the power of Spells and Magic you can always Powerful Magic Rings Love Spells                     Casting of Simple and Effective Love Spells Easy Love Spells Spells for Attraction between two Lovers Binding Love Spells Get back Lost Lover Spells Spells to Strengthen Love Relation Lost Love Spells Soul Mate Spells Marriage Spell for a happy Married Life. Retrieve a Lost Love Spells Bring Back Your Love Spells Gay Love Spells, Lesbian Love Spells Anti-Love Spells, Divorce Spells, Break up Spells How to Get Back Ex-Boyfriend, or Ex-Girlfriend Casting Spells to Get Rid of Your Husband, Wife or Partner without Fights or them hating you Magic Rings, Powerful Love Rings Spells to stop a divorce Voodoo Spells for Love Love Return Spells Money & Prosperity Spells Phone: +27780802727 WhatsApp +27789121499 How to Cast Magic Money Spells Lottery Spells or Lotto Spells Voodoo Spells for Money Black Magic Spell for Money Protection & Banishing Spells Black Magic Spells and Curses to Destroy Enemy or Evil People Protection from Black Magic Spells and Curses Dark Magic Spells Voodoo Spells for Revenge Spells to win court cases &legal matters Healing spells for all purpose Stroke Diabetics Lottery Spells Phone: +27780802727 WhatsApp: +27789121499 Web: lovespellsafrika.com
    • Hey guys, is everything ok? I've been looking for a way to add more than one mount to Interlude for some time and I haven't been able to, since when you add more than one mount without replacing the Strider, when you mount the added mount, the character appears on top of the Strider. Many people say that in Interlude, this is not possible due to its limitations, etc. etc... But it turns out that recently I was on Facebook and saw some L2 Royale posts and there are several mounts there, and the client is the Interlude c6 and not a Classic Interlude. I believe they did it in a different way, can anyone imagine a way to make this work? Thanks!
  • Topics

×
×
  • Create New...