Jump to content

Question

Posted

Hello, i made a code and basically capture tokens from bypass using StringTokenizer tk = new StringTokenizer(command, " ");

and the bypass is like

%objectId%_something $var1 $var2 $var3 

 

the problem is that i use 3 boxes to fill (3 variables) and if a player inside box he use space to write 2 words it capture the 2nd word as another token so it end up like

4 token instead of 3.

 

How can i avoid this? Like if a player writes in box "Something Something" this will be captured as 1 token instead of 2 tokens ?

 

Thanks a lot.

Recommended Posts

  • 0
Posted

 

Use check like this:

if (st.countTokens() != 3)
{
	activeChar.sendMessage("You stupid idoit! I'm a lord from the Dark Side.");
	return;
}

the problem is not counting the tokens.

 

The other boxes are placed for strings too? or you have boxes for int value?

  • 0
Posted


if (st.countTokens() != 4)

{

activeChar.sendMessage("You stupid idoit! I'm a lord from the Dark Side.");

return;

}

else

{

st.nextToken(); // command name

String string1 = st.nextToken();

String string2 = st.nextToken();

String string3 = st.nextToken();

 

if (string1.equals(string2) || string2.equals(string3) || string3.equals(string1))

{

activeChar.sendMessage("Double entries was detected.");

return;

}

 

// Valid code for feature.

}

  • 0
Posted

Take an example...

 

bmqu9zO.jpg

 

code

 

 

if (currentCommand.startsWith("test"))
{
	String mergeString = null;
	int countTokens = st.countTokens();
	int wanted = 4;

	if (countTokens > wanted)
	{
		int fin = countTokens-wanted;
		for (int i=0; i<fin; i++)
		{
			if (i == 0)
				mergeString = st.nextToken() + " " + st.nextToken();
			else
				mergeString += " " + st.nextToken() ;
		}
	}

	
	Broadcast.announceToOnlinePlayers("Merge = " + mergeString);
	while(st.hasMoreTokens())
	{
		Broadcast.announceToOnlinePlayers("next token = " + st.nextToken());
	}
} 

 

 

 

bypasses:

<edit var="name1" width=110 height=15><br>
<edit var="name2" width=110 height=15><br>
<edit var="name3" width=110 height=15><br>
<edit var="name4" width=110 height=15><br>

<a action="bypass -h npc_%objectId%_test $name1 $name2 $name3 $name4">test</a><br><br>

p.s 

Ofc its not the code you looking for but for sure you can edit this one and make your code works

  • 0
Posted

Take an example...

 

bmqu9zO.jpg

 

code

 

 

if (currentCommand.startsWith("test"))
{
	String mergeString = null;
	int countTokens = st.countTokens();
	int wanted = 4;

	if (countTokens > wanted)
	{
		int fin = countTokens-wanted;
		for (int i=0; i<fin; i++)
		{
			if (i == 0)
				mergeString = st.nextToken() + " " + st.nextToken();
			else
				mergeString += " " + st.nextToken() ;
		}
	}

	
	Broadcast.announceToOnlinePlayers("Merge = " + mergeString);
	while(st.hasMoreTokens())
	{
		Broadcast.announceToOnlinePlayers("next token = " + st.nextToken());
	}
} 

 

 

 

bypasses:

<edit var="name1" width=110 height=15><br>
<edit var="name2" width=110 height=15><br>
<edit var="name3" width=110 height=15><br>
<edit var="name4" width=110 height=15><br>

<a action="bypass -h npc_%objectId%_test $name1 $name2 $name3 $name4">test</a><br><br>

p.s 

Ofc its not the code you looking for but for sure you can edit this one and make your code works

But what if he just complete 1 box and let the other 3 null.. this wouldnt work right?

  • 0
Posted

But what if he just complete 1 box and let the other 3 null.. this wouldnt work right?

probly it will fuck it up :P

i did it just for example in the first box cause i cant know what exactly he wants... 

p.s i think it can be done easier but nvm :p

  • 0
Posted

probly it will fuck it up :P

i did it just for example in the first box cause i cant know what exactly he wants... 

p.s i think it can be done easier but nvm :P

 

The code you posted is not really valid since it cannot check empty boxes so doesnt help them at all

  • 0
Posted

The code you posted is not really valid since it cannot check empty boxes so doesnt help them at all

did u read my previous post ? 

 

  1. Ofc its not the code you looking for but for sure you can edit this one and make your code works
  2. i did it just for example in the first box cause i cant know what exactly he wants
  • 0
Posted

 

did u read my previous post ? 

 

  1. Ofc its not the code you looking for but for sure you can edit this one and make your code works
  2. i did it just for example in the first box cause i cant know what exactly he wants

 

I look :D????????????? rofl i quit life

  • 0
Posted (edited)

just dequeue the tokens on a loop and if they don't match the expected number return invalid

Edited by .Elfocrash
  • 0
Posted

There is a lot easier solution:

<a action="bypass -h npc_%objectId%_test $name1 ¡ $name2 ¡ $name3">

¡ - this is INVERTED EXCLAMATION MARK with C2A1 UTF-8 code. It cannot be wrote by player in game unless he is using programs like adrenaline. There are a lot more characters like this, you can check some UTF-8 table to find some pretty one.

 

Code:

StringTokenizer tk = new StringTokenizer(command, "¡");

You should use .trim() for every token parsed from StringTokenizer so they will not contain spaces.

  • 0
Posted (edited)

There is a lot easier solution:

<a action="bypass -h npc_%objectId%_test $name1 ¡ $name2 ¡ $name3">

¡ - this is INVERTED EXCLAMATION MARK with C2A1 UTF-8 code. It cannot be wrote by player in game unless he is using programs like adrenaline. There are a lot more characters like this, you can check some UTF-8 table to find some pretty one.

 

Code:

StringTokenizer tk = new StringTokenizer(command, "¡");

You should use .trim() for every token parsed from StringTokenizer so they will not contain spaces.

Can you give an example or tell us how this one will help this problem?

 

This guy didnt want to cancel the proccess when one more token found , contrary he want the unexpected tokens as one string with spaces inside.

i believe trim is useless, correct me if im wrong

Edited by melron
  • 0
Posted

There is a lot easier solution:

<a action="bypass -h npc_%objectId%_test $name1 ¡ $name2 ¡ $name3">

¡ - this is INVERTED EXCLAMATION MARK with C2A1 UTF-8 code. It cannot be wrote by player in game unless he is using programs like adrenaline. There are a lot more characters like this, you can check some UTF-8 table to find some pretty one.

 

Code:

StringTokenizer tk = new StringTokenizer(command, "¡");

You should use .trim() for every token parsed from StringTokenizer so they will not contain spaces.

Did you try it? It's not working + eclipse can't compile this character.

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

    • 🎉 L2NeverPain StuckSub - GRAND OPENING 12 December 2025🎉 After beta, testing, mistakes, laughs and a lot of PvP, the moment has finally come. L2NeverPain StuckSub is officially opening its gates on 12 December 2025.   ⚔️What to expect: ✦Main Class +2 Stuck Sub system ✦Balanced PvP & custom party farm areas ✦Custom events, bosses and strong rewards ✦Competitive clan scene with castle rewards   📌Until the opening: ✦Create your clans and register them in the Clan-Register channel ✦Invite your friends / old parties / CPs ✦Stay tuned for more information (rates, events, siege times, etc.)   Get your setups ready, prepare your macros and your Discord/voice. On 12 December 2025 20:00 GMT+2, we write the first chapter of NeverPain together. 🔥 https://l2neverpain.com/ https://discord.gg/kNP3UXgkmN
    • Check my post where I shared Lucera pack, you can pick textures from there. Here is a link of datapack/srv  https://eu2.contabostorage.com/d4b39866f6bb4084b6c969ec8fe20063:kita/Lucera_Classic_Remaster/Lucera Classic Remaster Server and Datapack files.rar
    • Hi friends, does anyone have these Aden Classic textures for IL + geodata? Please ❤️  
    • New products in our store: ➡Telegram Ukraine +380 | NO USED BEFORE | CLEAR ACCOUNTS | TDATA | No Spam Block | 2FA included | Age: from 3 days | Price from $3.2 ➡Facebook OLD Account 2020–2023 | Geo: EU+ASIA | Age: 2020–2023 | Profile filled with real friends: 50+ | Email Included + 2FA included | Real accounts | Price from $4.5 ➡SORA 2 | Invite code for YOUR account or a READY ChatGPT account + Sora 2 (read the product description) | Price from $2 ➡Instagram REALLY OLD accounts (2010–2013) with/without 2FA access | Country: MIX | Submail included | Price from $4 ➡Reddit FOR ONLYFANS Karma OLD Accounts | 1,000–10,000 KARMA (your choice) | MIX IP Registered | High-Quality Accounts for ONLYFANS WORKERS | Price from $4 ➡Mail.tm (temporary mails) AutoReg Account | Mixed IPs and Mixed Gender | IMAP, POP3, and SMTP Enabled | Price from $0.005 ➡ShadowSocks, VLESS, Trojan VPN Client | Any Country of Your Choice | Works on All Devices and in Any Country (Including Russia!) | Duration: 30/90/180/360 days | Price from $3 ➡TIKTOK ADS VERIFIED ACCOUNTS | GEO: ASIA/USA/EUROPE, AFRICA, ARABIC COUNTRIES, SOUTH AMERICA | Business Verified On ASIA/USA/EUROPE Company + POSTPAY | FULL ACCESS | Price from: $20 ➡TIKTOK ADS ACCOUNTS | GEO: Europe + Australia (your choice) | Business Verified + POSTPAY + BONUS COUPON for $6000 | Manual Registration | Email access + Cookies + VAT Info | Price from: $6 ➡Telegram API/HASH USA +1 Autoreg 1+ month age TDATA + SESSION + JSON + 2FA + API/HASH ID | Price from: $0.95 ➡KYC Business Verification Services | Verification for any service | Available geo: EUROPE, USA, ASIA Companies | Price from $300 ➡Telegram USA/Canada +1 with ACTIVE PREMIUM UP TO 01.12.2025 Autoreg | Age: from 6+ months | TDATA + SESSION + JSON + 2FA + PREMIUM | Price from $0.65 ➡Telegram USA/Canada +1 with ACTIVE PREMIUM (30 DAYS) Autoreg | Age: from 6+ months | TDATA + SESSION + JSON + 2FA + PREMIUM for 30 DAYS | Price from $5 Available for purchase in our store on the website or via the Telegram bot! Active links: Digital goods store (Website): Go to Store Telegram bot: Go to – convenient access to the store through the Telegram messenger. Other services: Virtual numbers service: Go to Telegram bot for purchasing Telegram Stars: Go to – fast and profitable purchase of Stars in Telegram. SMM Panel: Go to – promotion of your social media accounts. We want to present you the current list of promotions and special offers for purchasing our service’s products and services: 1. You can use a promo code for your first purchase: SOCNET (15% discount) 2. Get $1 on your store balance or a 10–20% discount — simply send your username after registering on our website using the following template: "SEND ME BONUS, MY USERNAME IS..." — you need to write this in our forum thread! 3. Get $1 for the first trial start of the SMM Panel: just open a ticket with the subject “Get Trial Bonus” on our website (Support). 4. Weekly Telegram Stars giveaways in our Telegram channel and in our bot for purchasing stars! News: ➡ Telegram channel: https://t.me/accsforyou_shop ➡ WhatsApp channel: https://chat.whatsapp.com/K8rBy500nA73z27PxgaJUw?mode=ems_copy_t ➡ Discord server: https://discord.gg/y9AStFFsrh Contacts and Support: ➡ Telegram: https://t.me/socnet_support ➡ WhatsApp: https://wa.me/79051904467 ➡ Discord: socnet_support ➡ ✉ Email: solomonbog@socnet.store
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock