Jump to content

Question

Posted (edited)

new problem :D take a look

why is that happening ?

 

com.l2jserver.gameserver.dao.impl.mysql.HennaDAOMySQLImpl insert
SEVERE: Failed saving character henna. {}
java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '268591989-1-0' for key 'PRIMARY'
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:533)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:513)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:115)
at com.mysql.cj.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:1983)
at com.mysql.cj.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1826)
at com.mysql.cj.jdbc.PreparedStatement.execute(PreparedStatement.java:1153)
at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44)
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java)
at com.l2jserver.gameserver.dao.impl.mysql.HennaDAOMySQLImpl.insert(HennaDAOMySQLImpl.java:92)
at com.l2jserver.gameserver.model.actor.instance.L2PcInstance.addHenna(L2PcInstance.java:6929)
at com.l2jserver.gameserver.network.clientpackets.RequestHennaEquip.runImpl(RequestHennaEquip.java:74)
at com.l2jserver.gameserver.network.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:69)
at com.l2jserver.gameserver.network.L2GameClient.run(L2GameClient.java:1135)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
 
Edited by milosvamp

14 answers to this question

Recommended Posts

  • 0
Posted
2 hours ago, melron said:

post your addHenna method (L2PcInstance file)

here: 

public boolean addHenna(L2Henna henna)
	{
		for (int i = 0; i < 3; i++)
		{
			if (_henna[i] == null)
			{
				_henna[i] = henna;
				
				// Calculate Henna modifiers of this L2PcInstance
				recalcHennaStats();
				
				DAOFactory.getInstance().getHennaDAO().insert(this, henna, i + 1);
				
				// Send Server->Client HennaInfo packet to this L2PcInstance
				sendPacket(new HennaInfo(this));
				
				// Send Server->Client UserInfo packet to this L2PcInstance
				sendPacket(new UserInfo(this));
				sendPacket(new ExBrExtraUserInfo(this));
				
				// Notify to scripts
				EventDispatcher.getInstance().notifyEventAsync(new OnPlayerHennaRemove(this, henna), this);
				return true;
			}
		}
		return false;
	}
	
	/**
	 * Calculate Henna modifiers of this L2PcInstance.
	 */

and by the way, even when I manage to save the henna SOMEHOW idk how but sometimes it gets saved. AFTER RELOG IT DOESNT ACTIVATE IT, the dyes are ON THE CHAR but INACTIVE......pffff

  • 0
Posted
Just now, melron said:

The error appears when you trying to login whith saved henna? 

No, the problem shows up when i try to change dyes ( to remove the dyes and put the same dye again ) or to put another dye instead.... then the error shows up... Otherwise it saves normally but when i do a relog the dyes are INACTIVE they are not increasing the statuses.... but this thing doesn't show any error....so my dyes are basically fucked..

  • 0
Posted (edited)

Then the whole henna code is wrong.

 

check the remove thing first. Delete action seems like doesnt even exetute the db part and as the error appear Duplicate entry '268591989-1-0' for key 'PRIMARY'

it is because even if you can see the spot as empty it isnt. when you add a different henna , the server will try to save it in the db and the duplicate error will appear.

Edited by melron
  • 0
Posted
1 minute ago, melron said:

Then the whole henna code is wrong.

 

check the remove thing first. Delete action seems like doesnt even exetute the db part and as the error appear Duplicate entry '268591989-1-0' for key 'PRIMARY'

it is because even if you can see the spot as empty it isnt. when you add a different henna , the server will try to save it in the db and the dublicate error will appear.

So what to do :D

  • 0
Posted
1 minute ago, melron said:

I told you. check the remove henna to see whats going on .. put debugs too to catch the bug

public boolean removeHenna(int slot)
	{
		if ((slot < 1) || (slot > 3))
		{
			return false;
		}
		
		slot--;
		
		L2Henna henna = _henna[slot];
		if (henna == null)
		{
			return false;
		}
		
		_henna[slot] = null;
		
		DAOFactory.getInstance().getHennaDAO().delete(this, slot + 1);
		
		// Calculate Henna modifiers of this L2PcInstance
		recalcHennaStats();
		
		// Send Server->Client HennaInfo packet to this L2PcInstance
		sendPacket(new HennaInfo(this));
		
		// Send Server->Client UserInfo packet to this L2PcInstance
		sendPacket(new UserInfo(this));
		sendPacket(new ExBrExtraUserInfo(this));
		// Add the recovered dyes to the player's inventory and notify them.
		getInventory().addItem("Henna", henna.getDyeItemId(), henna.getCancelCount(), this, null);
		reduceAdena("Henna", henna.getCancelFee(), this, false);
		
		final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.EARNED_S2_S1_S);
		sm.addItemName(henna.getDyeItemId());
		sm.addLong(henna.getCancelCount());
		sendPacket(sm);
		sendPacket(SystemMessageId.SYMBOL_DELETED);
		
		// Notify to scripts
		EventDispatcher.getInstance().notifyEventAsync(new OnPlayerHennaRemove(this, henna), this);
		return true;
	}
	
	/**
	 * Adds a henna to the player and stores it into the database.
	 * @param henna the henna to add to the player
	 * @return {@code true} if the henna is added to the player, {@code false} otherwise
	 */

.....................

  • 0
Posted

bro try to do something lol .... 

 

1) add debugs in your both codes

 

2)

clear the data about hennas from your char (db part) 

then login with your char (should be with empty hennas)

try to add one, check the database is it saved? if yes

try to remove it. check the db is it removed? ...

 

  • 0
Posted
1 minute ago, melron said:

bro try to do something lol .... 

 

1) add debugs in your both codes

 

2)

clear the data about hennas from your char (db part) 

then login with your char (should be with empty hennas)

try to add one, check the database is it saved? if yes

try to remove it. check the db is it removed? ...

 

idk how to add debug codes...."bro" .... :D :/

  • 0
Posted
11 minutes ago, melron said:

then choose the 2nd option.

 

You can just use println option and increasing the number to see where it stops 

I did the method 2 and it works.... But I can't do it all the time with all chars...damn.... and also THE DYES ARE INCATIVE within relogging the char, I put the dye, everything works. Relog. Dye status disappeared eventho it's on my char....

  • 0
Posted

the 'method' 2 was for test purpose and not for fix your problem. i dont have your sources to check whats going on dude.... So even restoreHenna is wrong...

 

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

    • If you don't want spam, stop badmouthing open source code just to try and sell your compiled crap in a licensed DLL, which is probably full of backdoors like any criminal would do.   I'll create a Git repository just to publish the mods Skylord prepared for this garbage for free.   You're the only scammer here, selling a compilation of the source code Guytis gave you. Regards.   It's not easy when you dedicate yourself to insulting, threatening, and harassing people. Just look at your own reality and you'll realize it.
    • (3241-100)/9 = 349 online xD     WHAT I WILL SEE ON NEW SEASON ? *Free VIP characters for everyone for first 3 days after opening ! Unique augmentation trade/sell system (NEW PATCH V3.2). Improved server stability. No more lagg / dc. Pvp map area HIDE Names/clans unique system. Big changes on augmentation system.  rotfl Lucky fortune monsters on levelling area with 10min spawn. Also we will try to push longer seasons ever !  HAHAHAHAHAHA XD Increased giran trading area for sell. New raid boss events in coliseum. Fixed reflect damage skills. New raid boss banshee. Fixed pvp area flag issues. Fixed castle siege pray issues. New pvp map in sea of spores. Increased all mob drops rate by +20%. And much more...   Augment diammond 100% 3x winter xDD   And now the best part   HAHAHAH 1-10 random level LS Augment Also we will try to push longer seasons ever !  HAHAHAHAHAHA XD   GRAND START FROM - 15/08/2025, FRIDAY, 20:00 +3 GMT ! GRAND OPENING FROM - 10/10/2025, FRIDAY, 20:00 +3 GRAND OPENING FROM - 05 DECEMBER 2025, FRIDAY, 20:00 +2 GMT ! GRAND OPENING FROM - 12/052025, FRIDAY, 20:00 +3 GMT ! GRAND OPENING FROM - 23 JANUARY 2026, FRIDAY, 20:00 +2 GMT ! WIPE ! NEW SEASON GRAND OPENING FROM TODAY ! - 23/01/2026, FRIDAY, 20:00 +3 GMT ! OPENING TODAY !!! FROM - 06/03/2026, FRIDAY, 20:00 +3 GMT !   1. When wipe?  2. When will there be any response to the allegations? 3. When will they stop deceiving players with the actual number of players online? 4. When change server name to L2][Wipe the best waste Time][Money?
    • Don't spam my post again. Do you need attention? That guy doesn't work at L2Devs, he's not a programmer, and I've never spoken to him. You should respond to the people you scammed. Regards!
    • “WRONG EMAIL – AND EVERYTHING FALLS APART.” ▪ Requests are different. Sometimes a task takes three days, sometimes thirty minutes. ▪ Recently a regular client contacted us. The account had one e-mail, but another one was required for a specific service. ▪ The screenshot was sent immediately. Task – carefully replace the e-mail in the document so that everything looks natural and leaves no editing traces. ▪ Small details like this are often underestimated. › What usually happens: – one symbol in the e-mail doesn’t match – the system starts checking metadata – questions appear about the file origin – the document goes to additional verification ▪ We simply did it properly: the e-mail matches, the file structure remained intact, the document looks original. ▪ Sometimes a good result is not “magic”, but precision in details. ▪ If your document were checked right now – are you sure there are no small details that could ruin everything? › TG: https://t.me/mustang_service ( https:// t.me/ mustang_service ) › Channel: https://t.me/+JPpJCETg-xM1NjNl ( https:// t.me/ +JPpJCETg-xM1NjNl ) #documentdesign #verification #documents #case #antifraud
    • Skylord  = L2Gold.eu ;   Skylord is the programmer at L2Devs. Look what he posted in my thread. I reported him, and they automatically deleted his post and closed my thread.   They need to trick people into buying this garbage.   You can safely use this extender:   https://maxcheaters.com/topic/253977-%F0%9F%94%A5-l2ext-custom-interlude-vang-%E2%80%93-2026-release/  
  • 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..