Changeset 1002

User picture

Author: lord_rex

(2010/02/08 19:20) About 2 years ago

PacketBroadcaster Update:
- AbstractLockManager idea of MrPoke.
- AbstractPeriodicTaskManager, like l2j-free.
- I tested it with 2 players it was work fine for me. Please test with more players and report in forum.
SQL Maintance FIX.
Warning cleanup.

Affected files

Updated trunk/AE-go_GameServer/data/scripts/system/database/mysql5/MySQL5InventoryDAO.java Download diff

10011002
19
import java.sql.PreparedStatement;
19
import java.sql.PreparedStatement;
20
import java.sql.ResultSet;
20
import java.sql.ResultSet;
21
import java.sql.SQLException;
21
import java.sql.SQLException;
22
import java.util.ArrayList;
22
import java.util.List;
23
import java.util.List;
23
24
24
import org.apache.log4j.Logger;
25
import org.apache.log4j.Logger;
...
...
29
import com.aionemu.gameserver.dao.InventoryDAO;
30
import com.aionemu.gameserver.dao.InventoryDAO;
30
import com.aionemu.gameserver.model.gameobjects.Item;
31
import com.aionemu.gameserver.model.gameobjects.Item;
31
import com.aionemu.gameserver.model.gameobjects.PersistentState;
32
import com.aionemu.gameserver.model.gameobjects.PersistentState;
33
import com.aionemu.gameserver.model.gameobjects.player.Player;
32
import com.aionemu.gameserver.model.gameobjects.player.Storage;
34
import com.aionemu.gameserver.model.gameobjects.player.Storage;
33
import com.aionemu.gameserver.model.gameobjects.player.Player;
34
import com.aionemu.gameserver.model.gameobjects.player.StorageType;
35
import com.aionemu.gameserver.model.gameobjects.player.StorageType;
35
import java.util.ArrayList;
36
36
37
/**
37
/**
38
 * @author ATracer
38
 * @author ATracer

Updated trunk/AE-go_GameServer/data/scripts/system/handlers/admincommands/Add.java Download diff

10011002
20
20
21
import com.aionemu.gameserver.configs.AdminConfig;
21
import com.aionemu.gameserver.configs.AdminConfig;
22
import com.aionemu.gameserver.model.gameobjects.Item;
22
import com.aionemu.gameserver.model.gameobjects.Item;
23
import com.aionemu.gameserver.model.gameobjects.player.Player;
23
import com.aionemu.gameserver.model.gameobjects.player.Storage;
24
import com.aionemu.gameserver.model.gameobjects.player.Storage;
24
import com.aionemu.gameserver.model.gameobjects.player.Player;
25
import com.aionemu.gameserver.model.items.ItemId;
25
import com.aionemu.gameserver.model.items.ItemId;
26
import com.aionemu.gameserver.network.aion.serverpackets.SM_INVENTORY_UPDATE;
26
import com.aionemu.gameserver.network.aion.serverpackets.SM_INVENTORY_UPDATE;
27
import com.aionemu.gameserver.services.ItemService;
27
import com.aionemu.gameserver.services.ItemService;

Updated trunk/AE-go_GameServer/sql/Update/inventory-rev993.sql Download diff

10011002
1
ALTER TABLE `inventory` ADD `itemLocation` TINYINT( 1 ) DEFAULT '0'
1
ALTER TABLE `inventory` ADD `itemLocation` TINYINT( 1 ) DEFAULT '0';

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/dao/InventoryDAO.java Download diff

10011002
17
package com.aionemu.gameserver.dao;
17
package com.aionemu.gameserver.dao;
18
18
19
import com.aionemu.gameserver.model.gameobjects.Item;
19
import com.aionemu.gameserver.model.gameobjects.Item;
20
import com.aionemu.gameserver.model.gameobjects.player.Player;
20
import com.aionemu.gameserver.model.gameobjects.player.Storage;
21
import com.aionemu.gameserver.model.gameobjects.player.Storage;
21
import com.aionemu.gameserver.model.gameobjects.player.Player;
22
import com.aionemu.gameserver.model.gameobjects.player.StorageType;
22
import com.aionemu.gameserver.model.gameobjects.player.StorageType;
23
23
24
/**
24
/**

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/GameServer.java Download diff

10011002
16
 */
16
 */
17
package com.aionemu.gameserver;
17
package com.aionemu.gameserver;
18
18
19
import java.util.HashSet;
20
import java.util.Set;
21
19
import org.apache.log4j.Logger;
22
import org.apache.log4j.Logger;
20
23
21
import com.aionemu.commons.database.DatabaseFactory;
24
import com.aionemu.commons.database.DatabaseFactory;
...
...
114
		Runtime.getRuntime().addShutdownHook(new Thread(new ShutdownHook(gs.injector)));
117
		Runtime.getRuntime().addShutdownHook(new Thread(new ShutdownHook(gs.injector)));
115
118
116
		//gs.injector.getInstance(com.aionemu.gameserver.utils.chathandlers.ChatHandlers.class);
119
		//gs.injector.getInstance(com.aionemu.gameserver.utils.chathandlers.ChatHandlers.class);
120
		onStartup();
117
	}
121
	}
118
122
119
	/**
123
	/**
...
...
165
		// Initialize thread pools
169
		// Initialize thread pools
166
		ThreadPoolManager.getInstance();
170
		ThreadPoolManager.getInstance();
167
	}
171
	}
172
	
173
	private static Set<StartupHook> STARTUP_HOOKS = new HashSet<StartupHook>();
174
	
175
	public synchronized static void addStartupHook(StartupHook hook)
176
	{
177
		if (STARTUP_HOOKS != null)
178
			STARTUP_HOOKS.add(hook);
179
		else
180
			hook.onStartup();
181
	}
182
	
183
	private synchronized static void onStartup()
184
	{
185
		final Set<StartupHook> startupHooks = STARTUP_HOOKS;
186
		
187
		STARTUP_HOOKS = null;
188
		
189
		for (StartupHook hook : startupHooks)
190
			hook.onStartup();
191
	}
192
	
193
	public interface StartupHook
194
	{
195
		public void onStartup();
196
	}
168
}
197
}

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/itemengine/actions/SkillUseAction.java Download diff

10011002
23
23
24
import com.aionemu.gameserver.model.gameobjects.Item;
24
import com.aionemu.gameserver.model.gameobjects.Item;
25
import com.aionemu.gameserver.model.gameobjects.player.Player;
25
import com.aionemu.gameserver.model.gameobjects.player.Player;
26
import com.aionemu.gameserver.network.aion.serverpackets.SM_DELETE_ITEM;
27
import com.aionemu.gameserver.network.aion.serverpackets.SM_ITEM_USAGE_ANIMATION;
26
import com.aionemu.gameserver.network.aion.serverpackets.SM_ITEM_USAGE_ANIMATION;
28
import com.aionemu.gameserver.network.aion.serverpackets.SM_UPDATE_ITEM;
29
import com.aionemu.gameserver.skillengine.SkillEngine;
27
import com.aionemu.gameserver.skillengine.SkillEngine;
30
import com.aionemu.gameserver.skillengine.model.Skill;
28
import com.aionemu.gameserver.skillengine.model.Skill;
31
import com.aionemu.gameserver.skillengine.model.Skill.SkillType;
29
import com.aionemu.gameserver.skillengine.model.Skill.SkillType;

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/model/account/PlayerAccountData.java Download diff

10011002
18
18
19
import java.sql.Timestamp;
19
import java.sql.Timestamp;
20
20
21
import com.aionemu.gameserver.model.gameobjects.player.Storage;
22
import com.aionemu.gameserver.model.gameobjects.player.PlayerAppearance;
21
import com.aionemu.gameserver.model.gameobjects.player.PlayerAppearance;
23
import com.aionemu.gameserver.model.gameobjects.player.PlayerCommonData;
22
import com.aionemu.gameserver.model.gameobjects.player.PlayerCommonData;
23
import com.aionemu.gameserver.model.gameobjects.player.Storage;
24
24
25
/**
25
/**
26
 * This class is holding information about player, that is displayed on char selection screen, such as: player
26
 * This class is holding information about player, that is displayed on char selection screen, such as: player

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/model/gameobjects/player/Player.java Download diff

10011002
17
package com.aionemu.gameserver.model.gameobjects.player;
17
package com.aionemu.gameserver.model.gameobjects.player;
18
18
19
import java.util.ArrayList;
19
import java.util.ArrayList;
20
import java.util.Collections;
20
import java.util.List;
21
import java.util.List;
21
import java.util.SortedMap;
22
import java.util.SortedMap;
22
import java.util.TreeMap;
23
import java.util.TreeMap;
23
import java.util.Collections;
24
24
25
import com.aionemu.commons.callbacks.Enhancable;
25
import com.aionemu.commons.callbacks.Enhancable;
26
import com.aionemu.gameserver.controllers.PlayerController;
26
import com.aionemu.gameserver.controllers.PlayerController;
27
import com.aionemu.gameserver.model.Gender;
27
import com.aionemu.gameserver.model.Gender;
28
import com.aionemu.gameserver.model.PlayerClass;
28
import com.aionemu.gameserver.model.PlayerClass;
29
import com.aionemu.gameserver.model.gameobjects.Creature;
29
import com.aionemu.gameserver.model.gameobjects.Creature;
30
import com.aionemu.gameserver.model.gameobjects.Item;
30
import com.aionemu.gameserver.model.gameobjects.Npc;
31
import com.aionemu.gameserver.model.gameobjects.Npc;
31
import com.aionemu.gameserver.model.gameobjects.VisibleObject;
32
import com.aionemu.gameserver.model.gameobjects.VisibleObject;
32
import com.aionemu.gameserver.model.gameobjects.player.listeners.PlayerLoggedInListener;
33
import com.aionemu.gameserver.model.gameobjects.player.listeners.PlayerLoggedInListener;
33
import com.aionemu.gameserver.model.gameobjects.player.listeners.PlayerLoggedOutListener;
34
import com.aionemu.gameserver.model.gameobjects.player.listeners.PlayerLoggedOutListener;
34
import com.aionemu.gameserver.model.gameobjects.Item;
35
import com.aionemu.gameserver.model.gameobjects.stats.PlayerGameStats;
35
import com.aionemu.gameserver.model.gameobjects.stats.PlayerGameStats;
36
import com.aionemu.gameserver.model.gameobjects.stats.PlayerLifeStats;
36
import com.aionemu.gameserver.model.gameobjects.stats.PlayerLifeStats;
37
import com.aionemu.gameserver.model.group.PlayerGroup;
37
import com.aionemu.gameserver.model.group.PlayerGroup;

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/model/gameobjects/player/Storage.java Download diff

10011002
20
import java.util.ArrayList;
20
import java.util.ArrayList;
21
import java.util.List;
21
import java.util.List;
22
22
23
24
import org.apache.log4j.Logger;
23
import org.apache.log4j.Logger;
25
24
26
import com.aionemu.commons.database.dao.DAOManager;
25
import com.aionemu.commons.database.dao.DAOManager;
...
...
34
import com.aionemu.gameserver.model.templates.item.ArmorType;
33
import com.aionemu.gameserver.model.templates.item.ArmorType;
35
import com.aionemu.gameserver.model.templates.item.WeaponType;
34
import com.aionemu.gameserver.model.templates.item.WeaponType;
36
import com.aionemu.gameserver.network.aion.serverpackets.SM_DELETE_ITEM;
35
import com.aionemu.gameserver.network.aion.serverpackets.SM_DELETE_ITEM;
36
import com.aionemu.gameserver.network.aion.serverpackets.SM_EMOTION;
37
import com.aionemu.gameserver.network.aion.serverpackets.SM_SYSTEM_MESSAGE;
37
import com.aionemu.gameserver.network.aion.serverpackets.SM_SYSTEM_MESSAGE;
38
import com.aionemu.gameserver.network.aion.serverpackets.SM_UPDATE_ITEM;
38
import com.aionemu.gameserver.network.aion.serverpackets.SM_UPDATE_ITEM;
39
import com.aionemu.gameserver.network.aion.serverpackets.SM_EMOTION;
40
import com.aionemu.gameserver.network.aion.serverpackets.SM_UPDATE_WAREHOUSE_ITEM;
39
import com.aionemu.gameserver.network.aion.serverpackets.SM_UPDATE_WAREHOUSE_ITEM;
41
import com.aionemu.gameserver.utils.PacketSendUtility;
40
import com.aionemu.gameserver.utils.PacketSendUtility;
42
41
...
...
732
	 */
731
	 */
733
	public boolean switchHands(int itemUniqueId, int slot)
732
	public boolean switchHands(int itemUniqueId, int slot)
734
	{
733
	{
734
		@SuppressWarnings("unused")
735
		Item mainHandItem = owner.getEquipment().get(ItemSlot.MAIN_HAND.getSlotIdMask());
735
		Item mainHandItem = owner.getEquipment().get(ItemSlot.MAIN_HAND.getSlotIdMask());
736
		@SuppressWarnings("unused")
736
		Item subHandItem = owner.getEquipment().get(ItemSlot.SUB_HAND.getSlotIdMask());
737
		Item subHandItem = owner.getEquipment().get(ItemSlot.SUB_HAND.getSlotIdMask());
738
		@SuppressWarnings("unused")
737
		Item mainOffHandItem = owner.getEquipment().get(ItemSlot.MAIN_OFF_HAND.getSlotIdMask());
739
		Item mainOffHandItem = owner.getEquipment().get(ItemSlot.MAIN_OFF_HAND.getSlotIdMask());
740
		@SuppressWarnings("unused")
738
		Item subOffHandItem = owner.getEquipment().get(ItemSlot.SUB_OFF_HAND.getSlotIdMask());
741
		Item subOffHandItem = owner.getEquipment().get(ItemSlot.SUB_OFF_HAND.getSlotIdMask());
739
		//TODO switch items
742
		//TODO switch items
740
		return false;
743
		return false;

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/network/aion/clientpackets/CM_DELETE_ITEM.java Download diff

10011002
17
package com.aionemu.gameserver.network.aion.clientpackets;
17
package com.aionemu.gameserver.network.aion.clientpackets;
18
18
19
import com.aionemu.gameserver.model.gameobjects.Item;
19
import com.aionemu.gameserver.model.gameobjects.Item;
20
import com.aionemu.gameserver.model.gameobjects.player.Player;
20
import com.aionemu.gameserver.model.gameobjects.player.Storage;
21
import com.aionemu.gameserver.model.gameobjects.player.Storage;
21
import com.aionemu.gameserver.model.gameobjects.player.Player;
22
import com.aionemu.gameserver.network.aion.AionClientPacket;
22
import com.aionemu.gameserver.network.aion.AionClientPacket;
23
import com.aionemu.gameserver.network.aion.serverpackets.SM_DELETE_ITEM;
23
import com.aionemu.gameserver.network.aion.serverpackets.SM_DELETE_ITEM;
24
/**
24
/**

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/network/aion/clientpackets/CM_DIALOG_SELECT.java Download diff

10011002
35
import com.aionemu.gameserver.questEngine.model.QuestEnv;
35
import com.aionemu.gameserver.questEngine.model.QuestEnv;
36
import com.aionemu.gameserver.services.ClassChangeService;
36
import com.aionemu.gameserver.services.ClassChangeService;
37
import com.aionemu.gameserver.services.CubeExpandService;
37
import com.aionemu.gameserver.services.CubeExpandService;
38
import com.aionemu.gameserver.utils.MathUtil;
38
import com.aionemu.gameserver.utils.PacketSendUtility;
39
import com.aionemu.gameserver.utils.PacketSendUtility;
39
import com.aionemu.gameserver.utils.MathUtil;
40
import com.google.inject.Inject;
40
import com.google.inject.Inject;
41
41
42
/**
42
/**

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/network/aion/clientpackets/CM_ENTER_WORLD.java Download diff

10011002
25
import com.aionemu.gameserver.model.account.AccountTime;
25
import com.aionemu.gameserver.model.account.AccountTime;
26
import com.aionemu.gameserver.model.account.PlayerAccountData;
26
import com.aionemu.gameserver.model.account.PlayerAccountData;
27
import com.aionemu.gameserver.model.gameobjects.Item;
27
import com.aionemu.gameserver.model.gameobjects.Item;
28
import com.aionemu.gameserver.model.gameobjects.player.Player;
28
import com.aionemu.gameserver.model.gameobjects.player.Storage;
29
import com.aionemu.gameserver.model.gameobjects.player.Storage;
29
import com.aionemu.gameserver.model.gameobjects.player.Player;
30
import com.aionemu.gameserver.model.templates.BindPointTemplate;
30
import com.aionemu.gameserver.model.templates.BindPointTemplate;
31
import com.aionemu.gameserver.network.aion.AionClientPacket;
31
import com.aionemu.gameserver.network.aion.AionClientPacket;
32
import com.aionemu.gameserver.network.aion.AionConnection;
32
import com.aionemu.gameserver.network.aion.AionConnection;

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/network/aion/clientpackets/CM_EQUIP_ITEM.java Download diff

10011002
16
 */
16
 */
17
package com.aionemu.gameserver.network.aion.clientpackets;
17
package com.aionemu.gameserver.network.aion.clientpackets;
18
18
19
import com.aionemu.gameserver.model.gameobjects.player.Player;
19
import com.aionemu.gameserver.model.gameobjects.player.Storage;
20
import com.aionemu.gameserver.model.gameobjects.player.Storage;
20
import com.aionemu.gameserver.model.gameobjects.player.Player;
21
import com.aionemu.gameserver.network.aion.AionClientPacket;
21
import com.aionemu.gameserver.network.aion.AionClientPacket;
22
import com.aionemu.gameserver.network.aion.serverpackets.SM_UPDATE_PLAYER_APPEARANCE;
22
import com.aionemu.gameserver.network.aion.serverpackets.SM_UPDATE_PLAYER_APPEARANCE;
23
import com.aionemu.gameserver.utils.PacketSendUtility;
23
import com.aionemu.gameserver.utils.PacketSendUtility;

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/network/aion/clientpackets/CM_MOVE_ITEM.java Download diff

10011002
16
 */
16
 */
17
package com.aionemu.gameserver.network.aion.clientpackets;
17
package com.aionemu.gameserver.network.aion.clientpackets;
18
18
19
import org.apache.log4j.Logger;
20
21
import com.aionemu.gameserver.model.gameobjects.player.Player;
19
import com.aionemu.gameserver.model.gameobjects.player.Player;
22
import com.aionemu.gameserver.network.aion.AionClientPacket;
20
import com.aionemu.gameserver.network.aion.AionClientPacket;
23
import com.aionemu.gameserver.network.aion.serverpackets.SM_EMOTION;
21
import com.aionemu.gameserver.network.aion.serverpackets.SM_EMOTION;
24
import com.aionemu.gameserver.services.ItemService;
22
import com.aionemu.gameserver.services.ItemService;
25
import com.aionemu.gameserver.utils.PacketSendUtility;
23
import com.aionemu.gameserver.utils.PacketSendUtility;
26
import com.google.inject.Inject;
24
import com.google.inject.Inject;
25
27
/**
26
/**
28
 * 
29
 * @author alexa026, kosyachok
27
 * @author alexa026, kosyachok
30
 * 
28
 * 
31
 */
29
 */
...
...
34
	@Inject
32
	@Inject
35
	private ItemService itemService;
33
	private ItemService itemService;
36
34
37
	private static final Logger	log	= Logger.getLogger(CM_MOVE_ITEM.class);
38
39
	/**
35
	/**
40
	 * Target object id that client wants to TALK WITH or 0 if wants to unselect
36
	 * Target object id that client wants to TALK WITH or 0 if wants to unselect
41
	 */
37
	 */
42
	private int					targetObjectId;
38
	private int					targetObjectId;
43
	private int					source;
39
	private int					source;
44
	private int                                     destination;
40
	private int                                     destination;
41
	@SuppressWarnings("unused")
45
	private int					slot;
42
	private int					slot;
46
	/**
43
	/**
47
	 * Constructs new instance of <tt>CM_CM_REQUEST_DIALOG </tt> packet
44
	 * Constructs new instance of <tt>CM_CM_REQUEST_DIALOG </tt> packet

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/network/aion/clientpackets/CM_SPLIT_ITEM.java Download diff

10011002
35
	{
35
	{
36
		sourceItemObjId = readD();       // drag item unique ID. If merging and itemCount becoming null, this item must be deleted.
36
		sourceItemObjId = readD();       // drag item unique ID. If merging and itemCount becoming null, this item must be deleted.
37
		itemAmount = readD();            // Items count to be moved.
37
		itemAmount = readD();            // Items count to be moved.
38
		@SuppressWarnings("unused")
38
		byte[] zeros = readB(4);         // Nothing
39
		byte[] zeros = readB(4);         // Nothing
39
		sourceStorageType = readC();     // Source storage
40
		sourceStorageType = readC();     // Source storage
40
		destinationItemObjId = readD();  // Destination item unique ID if merging. Null if spliting.
41
		destinationItemObjId = readD();  // Destination item unique ID if merging. Null if spliting.

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/network/aion/clientpackets/CM_TELEPORT_SELECT.java Download diff

10011002
18
18
19
import com.aionemu.gameserver.dataholders.DataManager;
19
import com.aionemu.gameserver.dataholders.DataManager;
20
import com.aionemu.gameserver.model.gameobjects.Npc;
20
import com.aionemu.gameserver.model.gameobjects.Npc;
21
import com.aionemu.gameserver.model.gameobjects.player.Player;
21
import com.aionemu.gameserver.model.gameobjects.player.Storage;
22
import com.aionemu.gameserver.model.gameobjects.player.Storage;
22
import com.aionemu.gameserver.model.gameobjects.player.Player;
23
import com.aionemu.gameserver.model.templates.teleport.TelelocationTemplate;
23
import com.aionemu.gameserver.model.templates.teleport.TelelocationTemplate;
24
import com.aionemu.gameserver.model.templates.teleport.TeleporterTemplate;
24
import com.aionemu.gameserver.model.templates.teleport.TeleporterTemplate;
25
import com.aionemu.gameserver.network.aion.AionClientPacket;
25
import com.aionemu.gameserver.network.aion.AionClientPacket;

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/network/aion/clientpackets/CM_VIEW_PLAYER_DETAILS.java Download diff

10011002
18
18
19
import org.apache.log4j.Logger;
19
import org.apache.log4j.Logger;
20
20
21
import com.aionemu.gameserver.model.gameobjects.player.Player;
21
import com.aionemu.gameserver.model.gameobjects.player.Storage;
22
import com.aionemu.gameserver.model.gameobjects.player.Storage;
22
import com.aionemu.gameserver.model.gameobjects.player.Player;
23
import com.aionemu.gameserver.network.aion.AionClientPacket;
23
import com.aionemu.gameserver.network.aion.AionClientPacket;
24
import com.aionemu.gameserver.network.aion.serverpackets.SM_VIEW_PLAYER_DETAILS;
24
import com.aionemu.gameserver.network.aion.serverpackets.SM_VIEW_PLAYER_DETAILS;
25
import com.aionemu.gameserver.world.World;
25
import com.aionemu.gameserver.world.World;

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/network/aion/serverpackets/SM_WAREHOUSE_INFO.java Download diff

10011002
17
17
18
package com.aionemu.gameserver.network.aion.serverpackets;
18
package com.aionemu.gameserver.network.aion.serverpackets;
19
19
20
import java.nio.ByteBuffer;
21
import java.util.ArrayList;
20
import java.util.List;
22
import java.util.List;
21
import java.nio.ByteBuffer;
22
23
23
import com.aionemu.gameserver.network.aion.AionConnection;
24
import com.aionemu.gameserver.model.gameobjects.Item;
24
import com.aionemu.gameserver.model.gameobjects.Item;
25
import com.aionemu.gameserver.model.items.ItemId;
25
import com.aionemu.gameserver.model.templates.item.ItemTemplate;
26
import com.aionemu.gameserver.model.templates.item.ItemTemplate;
26
import com.aionemu.gameserver.model.items.ItemId;
27
import com.aionemu.gameserver.network.aion.AionConnection;
27
import com.aionemu.gameserver.network.aion.InventoryPacket;
28
import com.aionemu.gameserver.network.aion.InventoryPacket;
28
import java.util.ArrayList;
29
/**
29
/**
30
 *
30
 *
31
 * @author kosyachok
31
 * @author kosyachok

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/network/aion/serverpackets/SM_WAREHOUSE_UPDATE.java Download diff

10011002
7
7
8
import java.nio.ByteBuffer;
8
import java.nio.ByteBuffer;
9
9
10
import com.aionemu.gameserver.network.aion.AionConnection;
11
import com.aionemu.gameserver.model.gameobjects.Item;
10
import com.aionemu.gameserver.model.gameobjects.Item;
11
import com.aionemu.gameserver.model.items.ItemId;
12
import com.aionemu.gameserver.model.templates.item.ItemTemplate;
12
import com.aionemu.gameserver.model.templates.item.ItemTemplate;
13
import com.aionemu.gameserver.model.items.ItemId;
13
import com.aionemu.gameserver.network.aion.AionConnection;
14
import com.aionemu.gameserver.network.aion.InventoryPacket;
14
import com.aionemu.gameserver.network.aion.InventoryPacket;
15
/**
15
/**
16
 *
16
 *

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/network/factories/AionPacketHandlerFactory.java Download diff

10011002
32
import com.aionemu.gameserver.network.aion.clientpackets.CM_CHECK_NICKNAME;
32
import com.aionemu.gameserver.network.aion.clientpackets.CM_CHECK_NICKNAME;
33
import com.aionemu.gameserver.network.aion.clientpackets.CM_CLIENT_COMMAND_LOC;
33
import com.aionemu.gameserver.network.aion.clientpackets.CM_CLIENT_COMMAND_LOC;
34
import com.aionemu.gameserver.network.aion.clientpackets.CM_CLOSE_DIALOG;
34
import com.aionemu.gameserver.network.aion.clientpackets.CM_CLOSE_DIALOG;
35
import com.aionemu.gameserver.network.aion.clientpackets.CM_MOVE_ITEM;
36
import com.aionemu.gameserver.network.aion.clientpackets.CM_CREATE_CHARACTER;
35
import com.aionemu.gameserver.network.aion.clientpackets.CM_CREATE_CHARACTER;
37
import com.aionemu.gameserver.network.aion.clientpackets.CM_CUSTOM_SETTINGS;
36
import com.aionemu.gameserver.network.aion.clientpackets.CM_CUSTOM_SETTINGS;
38
import com.aionemu.gameserver.network.aion.clientpackets.CM_DELETE_CHARACTER;
37
import com.aionemu.gameserver.network.aion.clientpackets.CM_DELETE_CHARACTER;
...
...
68
import com.aionemu.gameserver.network.aion.clientpackets.CM_MAY_LOGIN_INTO_GAME;
67
import com.aionemu.gameserver.network.aion.clientpackets.CM_MAY_LOGIN_INTO_GAME;
69
import com.aionemu.gameserver.network.aion.clientpackets.CM_MAY_QUIT;
68
import com.aionemu.gameserver.network.aion.clientpackets.CM_MAY_QUIT;
70
import com.aionemu.gameserver.network.aion.clientpackets.CM_MOVE;
69
import com.aionemu.gameserver.network.aion.clientpackets.CM_MOVE;
70
import com.aionemu.gameserver.network.aion.clientpackets.CM_MOVE_ITEM;
71
import com.aionemu.gameserver.network.aion.clientpackets.CM_OBJECT_SEARCH;
71
import com.aionemu.gameserver.network.aion.clientpackets.CM_OBJECT_SEARCH;
72
import com.aionemu.gameserver.network.aion.clientpackets.CM_PING;
72
import com.aionemu.gameserver.network.aion.clientpackets.CM_PING;
73
import com.aionemu.gameserver.network.aion.clientpackets.CM_PING_REQUEST;
73
import com.aionemu.gameserver.network.aion.clientpackets.CM_PING_REQUEST;

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/questEngine/Quest.java Download diff

10011002
20
import static com.aionemu.gameserver.configs.Config.QUEST_XP_RATE;
20
import static com.aionemu.gameserver.configs.Config.QUEST_XP_RATE;
21
21
22
import com.aionemu.gameserver.model.PlayerClass;
22
import com.aionemu.gameserver.model.PlayerClass;
23
import com.aionemu.gameserver.model.gameobjects.player.Player;
23
import com.aionemu.gameserver.model.gameobjects.player.Storage;
24
import com.aionemu.gameserver.model.gameobjects.player.Storage;
24
import com.aionemu.gameserver.model.gameobjects.player.Player;
25
import com.aionemu.gameserver.model.templates.QuestTemplate;
25
import com.aionemu.gameserver.model.templates.QuestTemplate;
26
import com.aionemu.gameserver.model.templates.quest.CollectItem;
26
import com.aionemu.gameserver.model.templates.quest.CollectItem;
27
import com.aionemu.gameserver.model.templates.quest.CollectItems;
27
import com.aionemu.gameserver.model.templates.quest.CollectItems;

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/services/AccountService.java Download diff

10011002
30
import com.aionemu.gameserver.model.account.Account;
30
import com.aionemu.gameserver.model.account.Account;
31
import com.aionemu.gameserver.model.account.AccountTime;
31
import com.aionemu.gameserver.model.account.AccountTime;
32
import com.aionemu.gameserver.model.account.PlayerAccountData;
32
import com.aionemu.gameserver.model.account.PlayerAccountData;
33
import com.aionemu.gameserver.model.gameobjects.player.Storage;
34
import com.aionemu.gameserver.model.gameobjects.player.Player;
33
import com.aionemu.gameserver.model.gameobjects.player.Player;
35
import com.aionemu.gameserver.model.gameobjects.player.PlayerAppearance;
34
import com.aionemu.gameserver.model.gameobjects.player.PlayerAppearance;
36
import com.aionemu.gameserver.model.gameobjects.player.PlayerCommonData;
35
import com.aionemu.gameserver.model.gameobjects.player.PlayerCommonData;
36
import com.aionemu.gameserver.model.gameobjects.player.Storage;
37
import com.aionemu.gameserver.model.gameobjects.player.StorageType;
37
import com.aionemu.gameserver.model.gameobjects.player.StorageType;
38
import com.aionemu.gameserver.utils.collections.cachemap.CacheMap;
38
import com.aionemu.gameserver.utils.collections.cachemap.CacheMap;
39
import com.aionemu.gameserver.utils.collections.cachemap.CacheMapFactory;
39
import com.aionemu.gameserver.utils.collections.cachemap.CacheMapFactory;

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/services/ExchangeService.java Download diff

10011002
21
21
22
import com.aionemu.gameserver.model.gameobjects.Item;
22
import com.aionemu.gameserver.model.gameobjects.Item;
23
import com.aionemu.gameserver.model.gameobjects.PersistentState;
23
import com.aionemu.gameserver.model.gameobjects.PersistentState;
24
import com.aionemu.gameserver.model.gameobjects.player.Player;
24
import com.aionemu.gameserver.model.gameobjects.player.Storage;
25
import com.aionemu.gameserver.model.gameobjects.player.Storage;
25
import com.aionemu.gameserver.model.gameobjects.player.Player;
26
import com.aionemu.gameserver.model.trade.Exchange;
26
import com.aionemu.gameserver.model.trade.Exchange;
27
import com.aionemu.gameserver.model.trade.ExchangeItem;
27
import com.aionemu.gameserver.model.trade.ExchangeItem;
28
import com.aionemu.gameserver.network.aion.serverpackets.SM_DELETE_ITEM;
28
import com.aionemu.gameserver.network.aion.serverpackets.SM_DELETE_ITEM;

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/services/ItemService.java Download diff

10011002
26
import com.aionemu.gameserver.dao.ItemStoneListDAO;
26
import com.aionemu.gameserver.dao.ItemStoneListDAO;
27
import com.aionemu.gameserver.dataholders.DataManager;
27
import com.aionemu.gameserver.dataholders.DataManager;
28
import com.aionemu.gameserver.model.gameobjects.Item;
28
import com.aionemu.gameserver.model.gameobjects.Item;
29
import com.aionemu.gameserver.model.gameobjects.PersistentState;
30
import com.aionemu.gameserver.model.gameobjects.player.Storage;
31
import com.aionemu.gameserver.model.gameobjects.player.Player;
29
import com.aionemu.gameserver.model.gameobjects.player.Player;
30
import com.aionemu.gameserver.model.gameobjects.player.Storage;
32
import com.aionemu.gameserver.model.gameobjects.player.StorageType;
31
import com.aionemu.gameserver.model.gameobjects.player.StorageType;
33
import com.aionemu.gameserver.model.gameobjects.stats.listeners.ItemEquipmentListener;
32
import com.aionemu.gameserver.model.gameobjects.stats.listeners.ItemEquipmentListener;
34
import com.aionemu.gameserver.model.items.ItemId;
33
import com.aionemu.gameserver.model.items.ItemId;

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/services/PlayerService.java Download diff

10011002
40
import com.aionemu.gameserver.dataholders.PlayerInitialData.PlayerCreationData.ItemType;
40
import com.aionemu.gameserver.dataholders.PlayerInitialData.PlayerCreationData.ItemType;
41
import com.aionemu.gameserver.model.account.PlayerAccountData;
41
import com.aionemu.gameserver.model.account.PlayerAccountData;
42
import com.aionemu.gameserver.model.gameobjects.Item;
42
import com.aionemu.gameserver.model.gameobjects.Item;
43
import com.aionemu.gameserver.model.gameobjects.player.Storage;
44
import com.aionemu.gameserver.model.gameobjects.player.MacroList;
43
import com.aionemu.gameserver.model.gameobjects.player.MacroList;
45
import com.aionemu.gameserver.model.gameobjects.player.Player;
44
import com.aionemu.gameserver.model.gameobjects.player.Player;
46
import com.aionemu.gameserver.model.gameobjects.player.PlayerAppearance;
45
import com.aionemu.gameserver.model.gameobjects.player.PlayerAppearance;
47
import com.aionemu.gameserver.model.gameobjects.player.PlayerCommonData;
46
import com.aionemu.gameserver.model.gameobjects.player.PlayerCommonData;
47
import com.aionemu.gameserver.model.gameobjects.player.Storage;
48
import com.aionemu.gameserver.model.gameobjects.player.StorageType;
48
import com.aionemu.gameserver.model.gameobjects.player.StorageType;
49
import com.aionemu.gameserver.model.gameobjects.stats.PlayerGameStats;
49
import com.aionemu.gameserver.model.gameobjects.stats.PlayerGameStats;
50
import com.aionemu.gameserver.model.gameobjects.stats.PlayerLifeStats;
50
import com.aionemu.gameserver.model.gameobjects.stats.PlayerLifeStats;

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/services/TeleportService.java Download diff

10011002
20
20
21
import com.aionemu.gameserver.dataholders.DataManager;
21
import com.aionemu.gameserver.dataholders.DataManager;
22
import com.aionemu.gameserver.model.ChatType;
22
import com.aionemu.gameserver.model.ChatType;
23
import com.aionemu.gameserver.model.gameobjects.player.Player;
23
import com.aionemu.gameserver.model.gameobjects.player.Storage;
24
import com.aionemu.gameserver.model.gameobjects.player.Storage;
24
import com.aionemu.gameserver.model.gameobjects.player.Player;
25
import com.aionemu.gameserver.model.gameobjects.state.CreatureState;
25
import com.aionemu.gameserver.model.gameobjects.state.CreatureState;
26
import com.aionemu.gameserver.model.templates.teleport.TelelocationTemplate;
26
import com.aionemu.gameserver.model.templates.teleport.TelelocationTemplate;
27
import com.aionemu.gameserver.model.templates.teleport.TeleportLocation;
27
import com.aionemu.gameserver.model.templates.teleport.TeleportLocation;

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/services/TradeService.java Download diff

10011002
27
import com.aionemu.gameserver.dataholders.TradeListData;
27
import com.aionemu.gameserver.dataholders.TradeListData;
28
import com.aionemu.gameserver.model.gameobjects.Item;
28
import com.aionemu.gameserver.model.gameobjects.Item;
29
import com.aionemu.gameserver.model.gameobjects.Npc;
29
import com.aionemu.gameserver.model.gameobjects.Npc;
30
import com.aionemu.gameserver.model.gameobjects.player.Player;
30
import com.aionemu.gameserver.model.gameobjects.player.Storage;
31
import com.aionemu.gameserver.model.gameobjects.player.Storage;
31
import com.aionemu.gameserver.model.gameobjects.player.Player;
32
import com.aionemu.gameserver.model.templates.TradeListTemplate;
32
import com.aionemu.gameserver.model.templates.TradeListTemplate;
33
import com.aionemu.gameserver.model.templates.TradeListTemplate.TradeTab;
33
import com.aionemu.gameserver.model.templates.TradeListTemplate.TradeTab;
34
import com.aionemu.gameserver.model.templates.goods.GoodsList;
34
import com.aionemu.gameserver.model.templates.goods.GoodsList;

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/skillengine/action/ItemUseAction.java Download diff

10011002
21
import javax.xml.bind.annotation.XmlAttribute;
21
import javax.xml.bind.annotation.XmlAttribute;
22
import javax.xml.bind.annotation.XmlType;
22
import javax.xml.bind.annotation.XmlType;
23
23
24
import com.aionemu.gameserver.model.gameobjects.player.Player;
24
import com.aionemu.gameserver.model.gameobjects.player.Storage;
25
import com.aionemu.gameserver.model.gameobjects.player.Storage;
25
import com.aionemu.gameserver.model.gameobjects.player.Player;
26
import com.aionemu.gameserver.skillengine.model.Skill;
26
import com.aionemu.gameserver.skillengine.model.Skill;
27
27
28
/**
28
/**

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/skillengine/properties/FirstTargetProperty.java Download diff

10011002
22
import javax.xml.bind.annotation.XmlAttribute;
22
import javax.xml.bind.annotation.XmlAttribute;
23
import javax.xml.bind.annotation.XmlType;
23
import javax.xml.bind.annotation.XmlType;
24
24
25
import com.aionemu.gameserver.restrictions.RestrictionsManager;
26
import com.aionemu.gameserver.skillengine.model.Skill;
25
import com.aionemu.gameserver.skillengine.model.Skill;
27
26
28
27

Added trunk/AE-go_GameServer/src/com/aionemu/gameserver/taskmanager/AbstractLockManager.java

Show contents

Added trunk/AE-go_GameServer/src/com/aionemu/gameserver/taskmanager/AbstractPeriodicTaskManager.java

Show contents

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/taskmanager/PacketBroadcaster.java Download diff

10011002
16
 */
16
 */
17
package com.aionemu.gameserver.taskmanager;
17
package com.aionemu.gameserver.taskmanager;
18
18
19
import java.util.HashSet;
20
import java.util.Iterator;
21
22
import org.apache.log4j.Logger;
23
24
import com.aionemu.gameserver.model.gameobjects.Creature;
19
import com.aionemu.gameserver.model.gameobjects.Creature;
25
import com.aionemu.gameserver.model.gameobjects.player.Player;
20
import com.aionemu.gameserver.model.gameobjects.player.Player;
26
import com.aionemu.gameserver.utils.ThreadPoolManager;
27
21
28
/**
22
/**
29
 * @author lord_rex and MrPoke
23
 * @author lord_rex and MrPoke
30
 * 
24
 * 
31
 */
25
 */
32
public class PacketBroadcaster implements Runnable
26
public class PacketBroadcaster extends AbstractPeriodicTaskManager<Creature>
33
{
27
{
34
	private static final Logger		log		= Logger.getLogger(PacketBroadcaster.class);
35
36
	private final HashSet<Creature>	SET	= new HashSet<Creature>();
37
38
	private static final class SingletonHolder
28
	private static final class SingletonHolder
39
	{
29
	{
40
		private static final PacketBroadcaster	INSTANCE	= new PacketBroadcaster();
30
		private static final PacketBroadcaster	INSTANCE	= new PacketBroadcaster();
...
...
47
37
48
	private PacketBroadcaster()
38
	private PacketBroadcaster()
49
	{
39
	{
50
		ThreadPoolManager.getInstance().scheduleAtFixedRate(this, 100, 100);
40
		super(100);
51
52
		log.info("PacketBroadcaster: Initialized.");
53
	}
41
	}
54
42
55
	public static enum BroadcastMode
43
	public static enum BroadcastMode
...
...
112
100
113
	private static final BroadcastMode[]	VALUES	= BroadcastMode.values();
101
	private static final BroadcastMode[]	VALUES	= BroadcastMode.values();
114
102
115
	public void add(Creature creature)
116
	{
117
		synchronized(SET)
118
		{
119
			SET.add(creature);
120
		}
121
	}
122
123
	@Override
103
	@Override
124
	public void run()
104
	protected void callTask(Creature creature)
125
	{
105
	{
126
		Iterator<Creature> it = SET.iterator();
106
		for(byte mask; (mask = creature.getPacketBroadcastMask()) != 0;)
127
		while(it.hasNext())
128
		{
107
		{
129
			Creature creature = it.next();
108
			for(BroadcastMode mode : VALUES)
130
			synchronized(SET)
131
			{
109
			{
132
				SET.remove(creature);
110
				mode.trySendPacket(creature, mask);
133
			}
111
			}
134
			for(byte mask; (mask = creature.getPacketBroadcastMask()) != 0;)
135
			{
136
				for(BroadcastMode mode : VALUES) {
137
					mode.trySendPacket(creature, mask);
138
				}
139
			}
140
		}
112
		}
141
	}
113
	}
142
}
114
}

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/utils/stats/StatFunctions.java Download diff

10011002
24
import com.aionemu.gameserver.model.gameobjects.Creature;
24
import com.aionemu.gameserver.model.gameobjects.Creature;
25
import com.aionemu.gameserver.model.gameobjects.Item;
25
import com.aionemu.gameserver.model.gameobjects.Item;
26
import com.aionemu.gameserver.model.gameobjects.Npc;
26
import com.aionemu.gameserver.model.gameobjects.Npc;
27
import com.aionemu.gameserver.model.gameobjects.player.Player;
27
import com.aionemu.gameserver.model.gameobjects.player.Storage;
28
import com.aionemu.gameserver.model.gameobjects.player.Storage;
28
import com.aionemu.gameserver.model.gameobjects.player.Player;
29
import com.aionemu.gameserver.model.gameobjects.state.CreatureState;
29
import com.aionemu.gameserver.model.gameobjects.state.CreatureState;
30
import com.aionemu.gameserver.model.gameobjects.stats.CreatureGameStats;
30
import com.aionemu.gameserver.model.gameobjects.stats.CreatureGameStats;
31
import com.aionemu.gameserver.model.gameobjects.stats.StatEnum;
31
import com.aionemu.gameserver.model.gameobjects.stats.StatEnum;