All pastes #25520 Raw Edit

Miscellany

public java v1 · immutable
#25520 ·published 2005-10-14 23:20 UTC
rendered paste body
Index: C:/eclipse-31m7/workspace/c4/L2_GameServer/java/net/sf/l2j/gameserver/ClientThread.java===================================================================--- C:/eclipse-31m7/workspace/c4/L2_GameServer/java/net/sf/l2j/gameserver/ClientThread.java	(revision 1250)+++ C:/eclipse-31m7/workspace/c4/L2_GameServer/java/net/sf/l2j/gameserver/ClientThread.java	(working copy)@@ -146,7 +146,41 @@ 			clan.removeClanMember(cha.getName()); 	} -	public void deleteChar(int charslot) throws Exception+    /**+     * Marks char as deleted, sets deletettime field+     * @param charslot+     */+    public void markDeleted(int charslot)+    {+        int objid = getObjectIdForSlot(charslot);+        if (objid < 0)+            return;+        +        java.sql.Connection con = null;+        try +        {+            con = L2DatabaseFactory.getInstance().getConnection();+            PreparedStatement statement = con.prepareStatement("UPDATE characters SET deletetime = ? WHERE obj_Id=?");+            statement.setLong(1, System.currentTimeMillis()+(60000*60*24*Config.CHAR_DELETE_TIME));+            statement.setInt(2, objid);+            statement.execute();+            statement.close();+        }+        catch (Exception e)+        {+            _log.warning("Error while marking char as deleted: " + e);+        } +        finally +        {+            try { con.close(); } catch (Exception e) {}+        }+    }+    +    /**+     * Delete char+     * @param objid+     */+	public void deleteChar(int objid) 	{	 		//have to make sure active character must be nulled 		if (getActiveChar() != null)@@ -156,7 +190,6 @@ 			_activeChar = null; 		} -		int objid = getObjectIdForSlot(charslot);         if (objid < 0)             return; Index: C:/eclipse-31m7/workspace/c4/L2_GameServer/java/net/sf/l2j/gameserver/clientpackets/CharacterDelete.java===================================================================--- C:/eclipse-31m7/workspace/c4/L2_GameServer/java/net/sf/l2j/gameserver/clientpackets/CharacterDelete.java	(revision 1250)+++ C:/eclipse-31m7/workspace/c4/L2_GameServer/java/net/sf/l2j/gameserver/clientpackets/CharacterDelete.java	(working copy)@@ -55,7 +55,7 @@  		try 		{-			getClient().deleteChar(_charSlot);+			getClient().markDeleted(_charSlot); 		} 		catch (Exception e) 		{Index: C:/eclipse-31m7/workspace/c4/L2_GameServer/java/net/sf/l2j/gameserver/model/CharSelectInfoPackage.java===================================================================--- C:/eclipse-31m7/workspace/c4/L2_GameServer/java/net/sf/l2j/gameserver/model/CharSelectInfoPackage.java	(revision 1250)+++ C:/eclipse-31m7/workspace/c4/L2_GameServer/java/net/sf/l2j/gameserver/model/CharSelectInfoPackage.java	(working copy)@@ -113,10 +113,26 @@ 	{ 		return _deleteTimer; 	}-	public void setDeleteTimer(int deleteTimer)++	public void setDeleteTimer(long deleteTimer) 	{-		_deleteTimer = deleteTimer;+		long currentTimestamp = System.currentTimeMillis();+        int estimated = 0;+        +        if(currentTimestamp < deleteTimer && deleteTimer > 0) // still alive :P+        {+            estimated = Math.abs((int)(deleteTimer - currentTimestamp)/1000);+        }+        else if(currentTimestamp > deleteTimer && deleteTimer > 0) // w00t, time to kill tat fuggin char+        {+            _deleteTimer = -1;+            //System.out.println("Char deletion time arrived, bye bye!");+        }+        +        //System.out.println("Char deletion infoz, estimated: "+ estimated +" delete timer: "+deleteTimer+" current timestamp: "+currentTimestamp);+        _deleteTimer = (estimated); 	}+ 	public long getLastAccess() 	{ 		return _lastAccess;Index: C:/eclipse-31m7/workspace/c4/L2_GameServer/java/net/sf/l2j/gameserver/serverpackets/MultiSellList.java===================================================================--- C:/eclipse-31m7/workspace/c4/L2_GameServer/java/net/sf/l2j/gameserver/serverpackets/MultiSellList.java	(revision 1250)+++ C:/eclipse-31m7/workspace/c4/L2_GameServer/java/net/sf/l2j/gameserver/serverpackets/MultiSellList.java	(working copy)@@ -28,7 +28,11 @@  */ package net.sf.l2j.gameserver.serverpackets; +import java.util.ArrayList;++import net.sf.l2j.gameserver.model.L2MultiSell; import net.sf.l2j.gameserver.model.L2PcInstance;+import net.sf.l2j.gameserver.model.L2MultiSell.MultisellEntry;  /**  * This class ...@@ -40,10 +44,14 @@     private static final String _S__D0_MULTISELLLIST = "[S] D0 MultiSellList";      protected L2PcInstance _player;+    protected int _listId;+    protected ArrayList<MultisellEntry> list; -    public MultiSellList( L2PcInstance p )+    public MultiSellList( L2PcInstance p, int listId )     {         _player = p;+        _listId = listId;+        list = L2MultiSell.getInstance().getList(_listId);     }         void runImpl()@@ -51,43 +59,31 @@     }      void writeImpl()-    {       +    {+        //ddddd [dchh] [hdhdh] [hhdh]         writeC(0xd0);         writeD(1); //?? list id         writeD(1); //list lenght-        for(int i = 0; i < 1; i++)-        {//dhdhdhh-            writeD(1); // makeID-            writeH(10);-            writeD(71); //itemID-            writeH(20);-            //writeD(512); //itemType-            //writeD(1); //itemAmount-            writeD(512); -            writeH(3);      //Ingredient Count-            writeH(3);-            //supposed to be "dhdhdhh"-            -            //Item 1 supposed to be hhdh-            writeH(1458);   //ID-            writeH(1459);   //??-            writeD(573);    //Count-            writeH(0x7fff); //Enchant Level-            //Item 2-            writeH(1458);   //ID-            writeH(10);     //??-            writeD(555);    //Count-            writeH(0x7fff); //Enchant Level-            //Item 2-            writeH(1459);   //ID-            writeH(1459);   //??-            writeD(555);    //Count-            writeH(0x7fff); //Enchant Level--        }    --        writeD(12); //?? -                +        writeD(1);+        writeD(1);+        writeD(1);+        +        writeD(1);+        writeC(1);+        writeH(1);+        writeH(1);+        +        writeH(1);+        writeD(1);+        writeH(1);+        writeD(1);+        writeH(1);+        +        writeH(1);+        writeH(1);+        writeD(1);+        writeH(1);+             }      @OverrideIndex: C:/eclipse-31m7/workspace/c4/L2_GameServer/java/net/sf/l2j/gameserver/serverpackets/CharSelectInfo.java===================================================================--- C:/eclipse-31m7/workspace/c4/L2_GameServer/java/net/sf/l2j/gameserver/serverpackets/CharSelectInfo.java	(revision 1250)+++ C:/eclipse-31m7/workspace/c4/L2_GameServer/java/net/sf/l2j/gameserver/serverpackets/CharSelectInfo.java	(working copy)@@ -188,7 +188,9 @@             while (charList.next())// fills the package             {                 charInfopackage = restoreChar(charList);-                characterList.add(charInfopackage);+                +                if(charInfopackage != null)+                    characterList.add(charInfopackage);             }              charList.close();@@ -233,7 +235,7 @@              charInfopackage.setRace(chardata.getInt("race"));             charInfopackage.setClassId(chardata.getInt("classid"));-            charInfopackage.setDeleteTimer(chardata.getInt("deletetime"));+            charInfopackage.setDeleteTimer(chardata.getLong("deletetime"));             charInfopackage.setLastAccess(chardata.getLong("lastAccess"));         }         catch (Exception e)@@ -241,6 +243,12 @@ 			_log.log(Level.INFO, "", e);         }         +        if(charInfopackage.getDeleteTimer() == -1)+        {+            getClient().deleteChar(charInfopackage.getObjectId());+            return null;+        }+                 return charInfopackage;     }