ItemsAutoDestroy class is a task manager.
This commit is contained in:
@ -159,6 +159,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;
|
||||
@ -408,7 +409,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;
|
||||
@ -103,6 +102,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;
|
||||
|
||||
/**
|
||||
@ -1581,7 +1581,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);
|
||||
|
||||
|
@ -50,7 +50,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.ai.CreatureAI;
|
||||
import org.l2jmobius.gameserver.ai.CreatureAI.IntentionCommand;
|
||||
@ -351,6 +350,7 @@ import org.l2jmobius.gameserver.network.serverpackets.monsterbook.ExMonsterBook;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.monsterbook.ExMonsterBookCloseForce;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.monsterbook.ExMonsterBookRewardIcon;
|
||||
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;
|
||||
@ -3704,7 +3704,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
|
||||
@ -3780,7 +3780,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