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.
Note: Your post will require moderator approval before it will be visible.

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

    • Well my friend, I'm not going to stay here arguing anymore, because you won't give up and much less have the humility to accept something you did wrong, as you saw, I value the work of others, I know who really creates or even takes a block of code and does something better and different, but the subject here was about a guy, nicknamed Vraekar, who steals and SELLS interfaces as if they were his, and is that within your beliefs?, belief that if the guy creates something it has to be stolen and whoever stole it can profit from it?, that's what I'm talking about, you've fought a lot against this, and today you help a guy like that to do wrong, but anyway, you know what you're doing, I hope you reflect, the community knows who does and who helps the wrong. Stay with God, because six of the problems that go around.
    • You claim you thought I was a "serious" person before. Well, maybe you just never took the time to actually know me. People evolve, but I stay true to what I do and believe in. If you’re that hung up on what I’ve been doing, maybe it's time to stop speculating and start focusing on yourself. 🙂
    • Well, at least it's clear that you don't respect the work of others. Secondly, everyone knows that you code nothing. Your group has devs. known that you've asked for a lot of help and code exchange with some well-known BRs. there are chats and I can prove it, then don't come playing the good guy because you're not. So, Celestine, I'm not judging you. I'm saying that I know that your group helped vraekar steal the codes, and I have proof. In the past, I thought you were a serious, good-natured guy, but lately, you're a different person. Your text above speaks for you.
    • What I do or who I work with is none of your concern, and honestly, I couldn't care less. Lately, I've seen a lot of people trying to make a quick buck off scams, so let's not even mention names you wouldn't want them getting upset, right? 🙂  As for the projects I've been involved with, there's a server about to launch that I’m personally waiting for, and when it does, I’ll release the work publicly for free because people deserve better than what these so called "developers" are pushing. I’m not here to defend anyone, but if you had any real knowledge, you’d see how poorly written some of these scripts are. I’ve worked with Vraekar in the past, and I know for a fact he’s never sold anything I’ve created. So before you start running your mouth, ask yourself: why are you even juding me?
    • I didn't even want to touch on your name Celestine, but it took a while to want to protect it, right? But then I say, everyone knows that you and your group helped Vraekar in deobfuscating the interfaces, do you want me to post here the dates and videos of the releases of the OMG and Silence interfaces?, and then see Vraekar's?, do you want?, a blatant copy, even their variable names, the theft is blatant, and you who are an admin here at Max and say you are the right one, helped him decrypt and remove the code obfuscation, everyone knows that, and now you come and tell me that his code is not copied?, if you want I can put all the evidence here and this will be very ugly even for you, since those you helped Vraekar and the interface dev community know this, they know about the thefts, very ugly indeed my friend that you still come and tell such a lie.   ps. And just one more thing, did you say that all the code he wrote? you became a joker? Vraekar doesn't program a single line of code, the guy works as a data analyst, what he learned was to copy and paste ready-made codes, but he doesn't write a single line of code.
  • Topics

×
×
  • Create New...