Sync with L2jServer HighFive Jul 25th 2015.
This commit is contained in:
@@ -38,7 +38,7 @@ import org.w3c.dom.NamedNodeMap;
|
||||
import org.w3c.dom.Node;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.L2DatabaseFactory;
|
||||
import com.l2jserver.commons.database.pool.impl.ConnectionFactory;
|
||||
import com.l2jserver.gameserver.model.CursedWeapon;
|
||||
import com.l2jserver.gameserver.model.actor.L2Attackable;
|
||||
import com.l2jserver.gameserver.model.actor.L2Character;
|
||||
@@ -172,7 +172,7 @@ public final class CursedWeaponsManager
|
||||
|
||||
private final void restore()
|
||||
{
|
||||
try (Connection con = L2DatabaseFactory.getInstance().getConnection();
|
||||
try (Connection con = ConnectionFactory.getInstance().getConnection();
|
||||
Statement s = con.createStatement();
|
||||
ResultSet rs = s.executeQuery("SELECT itemId, charId, playerKarma, playerPkKills, nbKills, endTime FROM cursed_weapons"))
|
||||
{
|
||||
@@ -197,15 +197,17 @@ public final class CursedWeaponsManager
|
||||
|
||||
private final void controlPlayers()
|
||||
{
|
||||
try (Connection con = L2DatabaseFactory.getInstance().getConnection();
|
||||
// TODO: See comments below...
|
||||
// This entire for loop should NOT be necessary, since it is already handled by
|
||||
// CursedWeapon.endOfLife(). However, if we indeed *need* to duplicate it for safety,
|
||||
// then we'd better make sure that it FULLY cleans up inactive cursed weapons!
|
||||
// Undesired effects result otherwise, such as player with no zariche but with karma
|
||||
// or a lost-child entry in the cursed weapons table, without a corresponding one in items...
|
||||
|
||||
// Retrieve the L2PcInstance from the characters table of the database
|
||||
try (Connection con = ConnectionFactory.getInstance().getConnection();
|
||||
PreparedStatement ps = con.prepareStatement("SELECT owner_id FROM items WHERE item_id=?"))
|
||||
{
|
||||
// TODO: See comments below...
|
||||
// This entire for loop should NOT be necessary, since it is already handled by
|
||||
// CursedWeapon.endOfLife(). However, if we indeed *need* to duplicate it for safety,
|
||||
// then we'd better make sure that it FULLY cleans up inactive cursed weapons!
|
||||
// Undesired effects result otherwise, such as player with no zariche but with karma
|
||||
// or a lost-child entry in the cursed weapons table, without a corresponding one in items...
|
||||
for (CursedWeapon cw : _cursedWeapons.values())
|
||||
{
|
||||
if (cw.isActivated())
|
||||
@@ -250,6 +252,7 @@ public final class CursedWeaponsManager
|
||||
removeFromDb(itemId);
|
||||
}
|
||||
}
|
||||
ps.clearParameters();
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -368,7 +371,7 @@ public final class CursedWeaponsManager
|
||||
|
||||
public static void removeFromDb(int itemId)
|
||||
{
|
||||
try (Connection con = L2DatabaseFactory.getInstance().getConnection();
|
||||
try (Connection con = ConnectionFactory.getInstance().getConnection();
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM cursed_weapons WHERE itemId = ?"))
|
||||
{
|
||||
ps.setInt(1, itemId);
|
||||
|
Reference in New Issue
Block a user