ItemsAutoDestroy class is a task manager.
This commit is contained in:
		| @@ -158,6 +158,7 @@ import org.l2jmobius.gameserver.network.NpcStringId; | ||||
| import org.l2jmobius.gameserver.network.SystemMessageId; | ||||
| import org.l2jmobius.gameserver.network.telnet.TelnetServer; | ||||
| import org.l2jmobius.gameserver.scripting.ScriptEngineManager; | ||||
| import org.l2jmobius.gameserver.taskmanager.ItemsAutoDestroyTaskManager; | ||||
| import org.l2jmobius.gameserver.taskmanager.TaskManager; | ||||
| import org.l2jmobius.gameserver.ui.Gui; | ||||
| import org.l2jmobius.gameserver.util.Broadcast; | ||||
| @@ -409,7 +410,7 @@ public class GameServer | ||||
| 		 | ||||
| 		if ((Config.AUTODESTROY_ITEM_AFTER > 0) || (Config.HERB_AUTO_DESTROY_TIME > 0)) | ||||
| 		{ | ||||
| 			ItemsAutoDestroy.getInstance(); | ||||
| 			ItemsAutoDestroyTaskManager.getInstance(); | ||||
| 		} | ||||
| 		 | ||||
| 		MonsterRace.getInstance(); | ||||
|   | ||||
| @@ -30,9 +30,9 @@ import org.l2jmobius.Config; | ||||
| import org.l2jmobius.commons.concurrent.ThreadPool; | ||||
| import org.l2jmobius.commons.database.DatabaseFactory; | ||||
| import org.l2jmobius.commons.util.Chronos; | ||||
| import org.l2jmobius.gameserver.ItemsAutoDestroy; | ||||
| import org.l2jmobius.gameserver.model.World; | ||||
| import org.l2jmobius.gameserver.model.items.instance.ItemInstance; | ||||
| import org.l2jmobius.gameserver.taskmanager.ItemsAutoDestroyTaskManager; | ||||
|  | ||||
| /** | ||||
|  * This class manage all items on ground. | ||||
| @@ -128,7 +128,7 @@ public class ItemsOnGroundManager implements Runnable | ||||
| 					// add to ItemsAutoDestroy only items not protected | ||||
| 					if (!Config.LIST_PROTECTED_ITEMS.contains(item.getId()) && (dropTime > -1) && (((Config.AUTODESTROY_ITEM_AFTER > 0) && !item.getItem().hasExImmediateEffect()) || ((Config.HERB_AUTO_DESTROY_TIME > 0) && item.getItem().hasExImmediateEffect()))) | ||||
| 					{ | ||||
| 						ItemsAutoDestroy.getInstance().addItem(item); | ||||
| 						ItemsAutoDestroyTaskManager.getInstance().addItem(item); | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
|   | ||||
| @@ -24,7 +24,6 @@ import org.l2jmobius.Config; | ||||
| import org.l2jmobius.commons.concurrent.ThreadPool; | ||||
| import org.l2jmobius.commons.util.Chronos; | ||||
| import org.l2jmobius.commons.util.Rnd; | ||||
| import org.l2jmobius.gameserver.ItemsAutoDestroy; | ||||
| import org.l2jmobius.gameserver.cache.HtmCache; | ||||
| import org.l2jmobius.gameserver.data.ItemTable; | ||||
| import org.l2jmobius.gameserver.data.xml.ClanHallData; | ||||
| @@ -104,6 +103,7 @@ import org.l2jmobius.gameserver.network.serverpackets.NpcSay; | ||||
| import org.l2jmobius.gameserver.network.serverpackets.ServerObjectInfo; | ||||
| import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; | ||||
| import org.l2jmobius.gameserver.taskmanager.DecayTaskManager; | ||||
| import org.l2jmobius.gameserver.taskmanager.ItemsAutoDestroyTaskManager; | ||||
| import org.l2jmobius.gameserver.util.Broadcast; | ||||
|  | ||||
| /** | ||||
| @@ -1593,7 +1593,7 @@ public class Npc extends Creature | ||||
| 			// Add drop to auto destroy item task. | ||||
| 			if (!Config.LIST_PROTECTED_ITEMS.contains(itemId) && (((Config.AUTODESTROY_ITEM_AFTER > 0) && !item.getItem().hasExImmediateEffect()) || ((Config.HERB_AUTO_DESTROY_TIME > 0) && item.getItem().hasExImmediateEffect()))) | ||||
| 			{ | ||||
| 				ItemsAutoDestroy.getInstance().addItem(item); | ||||
| 				ItemsAutoDestroyTaskManager.getInstance().addItem(item); | ||||
| 			} | ||||
| 			item.setProtected(false); | ||||
| 			 | ||||
|   | ||||
| @@ -53,7 +53,6 @@ import org.l2jmobius.commons.util.Chronos; | ||||
| import org.l2jmobius.commons.util.CommonUtil; | ||||
| import org.l2jmobius.commons.util.Rnd; | ||||
| import org.l2jmobius.gameserver.GameTimeController; | ||||
| import org.l2jmobius.gameserver.ItemsAutoDestroy; | ||||
| import org.l2jmobius.gameserver.LoginServerThread; | ||||
| import org.l2jmobius.gameserver.RecipeController; | ||||
| import org.l2jmobius.gameserver.ai.CreatureAI; | ||||
| @@ -351,6 +350,7 @@ import org.l2jmobius.gameserver.network.serverpackets.commission.ExResponseCommi | ||||
| import org.l2jmobius.gameserver.network.serverpackets.friend.FriendStatus; | ||||
| import org.l2jmobius.gameserver.network.serverpackets.vip.ReceiveVipInfo; | ||||
| import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager; | ||||
| import org.l2jmobius.gameserver.taskmanager.ItemsAutoDestroyTaskManager; | ||||
| import org.l2jmobius.gameserver.taskmanager.PlayerAutoSaveTaskManager; | ||||
| import org.l2jmobius.gameserver.taskmanager.PvpFlagTaskManager; | ||||
| import org.l2jmobius.gameserver.util.Broadcast; | ||||
| @@ -3695,7 +3695,7 @@ public class PlayerInstance extends Playable | ||||
| 		droppedItem.dropMe(this, (getX() + Rnd.get(50)) - 25, (getY() + Rnd.get(50)) - 25, getZ() + 20); | ||||
| 		if ((Config.AUTODESTROY_ITEM_AFTER > 0) && Config.DESTROY_DROPPED_PLAYER_ITEM && !Config.LIST_PROTECTED_ITEMS.contains(droppedItem.getId()) && ((droppedItem.isEquipable() && Config.DESTROY_EQUIPABLE_PLAYER_ITEM) || !droppedItem.isEquipable())) | ||||
| 		{ | ||||
| 			ItemsAutoDestroy.getInstance().addItem(droppedItem); | ||||
| 			ItemsAutoDestroyTaskManager.getInstance().addItem(droppedItem); | ||||
| 		} | ||||
| 		 | ||||
| 		// protection against auto destroy dropped item | ||||
| @@ -3771,7 +3771,7 @@ public class PlayerInstance extends Playable | ||||
| 		item.dropMe(this, x, y, z); | ||||
| 		if ((Config.AUTODESTROY_ITEM_AFTER > 0) && Config.DESTROY_DROPPED_PLAYER_ITEM && !Config.LIST_PROTECTED_ITEMS.contains(item.getId()) && ((item.isEquipable() && Config.DESTROY_EQUIPABLE_PLAYER_ITEM) || !item.isEquipable())) | ||||
| 		{ | ||||
| 			ItemsAutoDestroy.getInstance().addItem(item); | ||||
| 			ItemsAutoDestroyTaskManager.getInstance().addItem(item); | ||||
| 		} | ||||
| 		if (Config.DESTROY_DROPPED_PLAYER_ITEM) | ||||
| 		{ | ||||
|   | ||||
| @@ -14,7 +14,7 @@ | ||||
|  * 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 org.l2jmobius.gameserver; | ||||
| package org.l2jmobius.gameserver.taskmanager; | ||||
| 
 | ||||
| import java.util.Iterator; | ||||
| import java.util.LinkedList; | ||||
| @@ -27,20 +27,15 @@ import org.l2jmobius.gameserver.enums.ItemLocation; | ||||
| import org.l2jmobius.gameserver.instancemanager.ItemsOnGroundManager; | ||||
| import org.l2jmobius.gameserver.model.items.instance.ItemInstance; | ||||
| 
 | ||||
| public class ItemsAutoDestroy | ||||
| public class ItemsAutoDestroyTaskManager | ||||
| { | ||||
| 	private final List<ItemInstance> _items = new LinkedList<>(); | ||||
| 	 | ||||
| 	protected ItemsAutoDestroy() | ||||
| 	protected ItemsAutoDestroyTaskManager() | ||||
| 	{ | ||||
| 		ThreadPool.scheduleAtFixedRate(this::removeItems, 5000, 5000); | ||||
| 	} | ||||
| 	 | ||||
| 	public static ItemsAutoDestroy getInstance() | ||||
| 	{ | ||||
| 		return SingletonHolder.INSTANCE; | ||||
| 	} | ||||
| 	 | ||||
| 	public synchronized void addItem(ItemInstance item) | ||||
| 	{ | ||||
| 		item.setDropTime(Chronos.currentTimeMillis()); | ||||
| @@ -92,8 +87,13 @@ public class ItemsAutoDestroy | ||||
| 		} | ||||
| 	} | ||||
| 	 | ||||
| 	public static ItemsAutoDestroyTaskManager getInstance() | ||||
| 	{ | ||||
| 		return SingletonHolder.INSTANCE; | ||||
| 	} | ||||
| 	 | ||||
| 	private static class SingletonHolder | ||||
| 	{ | ||||
| 		protected static final ItemsAutoDestroy INSTANCE = new ItemsAutoDestroy(); | ||||
| 		protected static final ItemsAutoDestroyTaskManager INSTANCE = new ItemsAutoDestroyTaskManager(); | ||||
| 	} | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 MobiusDevelopment
					MobiusDevelopment