Jump to content

Question

Posted

Hey guys, I have another question for you.....

Whenever i try to name a pet inside game I got this error: This is the image of the problem.... Sorry for quallity I did it with phone....

 

Here is the SQL of my pets table in my DB

 

-- Table structure for pets
-- ----------------------------
DROP TABLE IF EXISTS `pets`;
CREATE TABLE `pets` (
  `item_obj_id` int(10) unsigned NOT NULL,
  `name` varchar(16) DEFAULT NULL,
  `level` smallint(2) unsigned NOT NULL,
  `curHp` int(9) unsigned DEFAULT '0',
  `curMp` int(9) unsigned DEFAULT '0',
  `exp` bigint(20) unsigned DEFAULT '0',
  `sp` int(10) unsigned DEFAULT '0',
  `fed` int(10) unsigned DEFAULT '0',
  `ownerId` int(10) NOT NULL DEFAULT '0',
  `restore` enum('true','false') NOT NULL DEFAULT 'false',
  PRIMARY KEY (`item_obj_id`),
  KEY `ownerId` (`ownerId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Any ideas ?? :/ 

9 answers to this question

Recommended Posts

  • 1
Posted

Verify PetNameTable line 45. Most probably it misses the argument (invalid parameters count), or the String parameter to test is either edited in the method itself or the verification check for "null" String is missing.

  • 0
Posted (edited)
3 hours ago, Tryskell said:

Verify PetNameTable line 45. Most probably it misses the argument (invalid parameters count), or the String parameter to test is either edited in the method itself or the verification check for "null" String is missing.

/*
 * Copyright (C) 2004-2016 L2J DataPack
 * 
 * This file is part of L2J DataPack.
 * 
 * L2J DataPack 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.
 * 
 * L2J DataPack 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 handlers.targethandlers;

import com.l2jserver.gameserver.handler.ITargetTypeHandler;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.skills.Skill;
import com.l2jserver.gameserver.model.skills.targets.L2TargetType;

/**
 * Target Pet handler.
 * @author UnAfraid
 */
public class Pet implements ITargetTypeHandler
{
	@Override
	public L2Object[] getTargetList(Skill skill, L2Character activeChar, boolean onlyFirst, L2Character target)
	{
		if (activeChar.hasPet())
		{
			return new L2Character[]
			{
				activeChar.getSummon()
			};
		}
		return EMPTY_TARGET_LIST;
	}
	!!!!!!!! >>>HERE SHOULD BE 45 <<<< !!!!!!!!!!!!!1
	@Override
	public Enum<L2TargetType> getTargetType()
	{
		return L2TargetType.PET;
	}
}

Is this what are we talking about ? But 45 doesn't have anyting

Edited by milosvamp
  • 0
Posted (edited)
On 12/19/2017 at 11:27 AM, Tryskell said:

Verify PetNameTable line 45. Most probably it misses the argument (invalid parameters count), or the String parameter to test is either edited in the method itself or the verification check for "null" String is missing.

Here is it 

/*
 * Copyright (C) 2004-2016 L2J Server
 * 
 * This file is part of L2J Server.
 * 
 * L2J Server 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.
 * 
 * L2J Server 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 com.l2jserver.gameserver.data.sql.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

import com.l2jserver.Config;
import com.l2jserver.commons.database.pool.impl.ConnectionFactory;

public class PetNameTable
{
	private static Logger LOGGER = Logger.getLogger(PetNameTable.class.getName());
	
	public static PetNameTable getInstance()
	{
		return SingletonHolder._instance;
	}
	
	public boolean doesPetNameExist(String name)
	{
		try (Connection con = ConnectionFactory.getInstance().getConnection();
			PreparedStatement ps = con.prepareStatement("SELECT name FROM pets WHERE name=?"))
		{
--------------->>>LINE 45>>>>>>>>	try (ResultSet rs = ps.executeQuery()) <<<<LINE 45 <<<<<<<--------------------
			{
				return rs.next();
			}
		}
		catch (SQLException e)
		{
			LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Could not check existing petname:" + e.getMessage(), e);
		}
		return false;
	}
	
	public boolean isValidPetName(String name)
	{
		return Config.PET_NAME_TEMPLATE.matcher(name).matches();
	}
	
	private static class SingletonHolder
	{
		protected static final PetNameTable _instance = new PetNameTable();
	}
}

 

Edited by milosvamp
  • 0
Posted (edited)

as tryskell mentioned. you are missing one line there.

 

before the line n45

ps.setString(1,name);

 

Also, remove the 2nd try statement

Edited by melron
  • 0
Posted
4 hours ago, melron said:

as tryskell mentioned. you are missing one line there.

 

before the line n45


ps.setString(1,name);

 

Also, remove the 2nd try statement

so to remove this  

try (ResultSet rs = ps.executeQuery())
			{
				return rs.next();
			}
		}

and add this: 

ps.setString(1,name);

pls tell me is it literally so ?

 

1 hour ago, Tryskell said:

ps.setString(1,name);

ResultSet rs = ps.executeQuery();
return rs.next();

The second try is normally needed to correctly close the rs, but using "return" also closes it. Eclipse maybe still needs it to avoid the ressource leak warning.

 

And I was right, it was missing the parameter.

Thank you very much for your help.

 

4 hours ago, melron said:

as tryskell mentioned. you are missing one line there.

 

before the line n45


ps.setString(1,name);

 

Also, remove the 2nd try statement

Thank you.

 

On 20/12/2017 at 1:23 AM, SweeTs said:

Core.. Error last line, you have the location. 

Thank you for joining our conversation and your help.

  • 0
Posted (edited)
ps.setString(1,name);

ResultSet rs = ps.executeQuery();
return rs.next();

The second try is normally needed to correctly close the rs, but using "return" also closes it. Eclipse maybe still needs it to avoid the ressource leak warning.

 

And I was right, it was missing the parameter.

Edited by Tryskell
Guest
This topic is now closed to further replies.


  • Posts

    • NEW HIDDENSTASH KEY SYSTEM INTRODUCED TO THE SITE   **Earn While You Spend - Introducing HS Cashback!**   Every purchase on our site now rewards you with **HS Keys cashback**   EVERY ONE WHO REGISTERS IN SITE UNTILL 15TH OF MAY GETS 2000 HS KEYS IN HES BALANE   Here's how it works:       **1 USD = 1000 HS Keys**   **Get 3% cashback** on every purchase   **Use your HS Keys to **save on your next order**   ---   ### ⚡ Why this is awesome   * Every order gives you value back   * Stack it with promos & HS usage   * Turn your spending into future discounts   ---   ### Example   Spend **$10** → Get **300 HS Keys** back   Spend **$50** → Get **1500 HS Keys** back   ---   ### Smart system (built for fairness)   * Cashback is rounded to keep things balanced   * Prevents abuse from tiny orders   * Rewards real buyers   ---   ### Start earning now   Every purchase = progress toward your next discount   Shop now and build your HS balance!   #cashback #gamingdeals #d2r #rewards #loyalty   Stay safe out there, heroes - and happy hunting! www.d2rhiddenstash.com     We just launched our new Affiliate Program — and it’s the easiest way to earn HS Keys.   Invite your friends using your personal link.   Example: If your friend spends $10 → you get 300 HS Keys No limits. No effort. Just share your link.   Get your referral link here: www.d2rhiddenstash.com/profile     Start earning today
    • https://jumpshare.com/share/L45ApA5PVrGN2O5Ua5pQ   Skill synchronization with the server: Launching and synchronizing animations, launching and synchronizing effects. All of this is tied to the server's timing  
  • 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..