project-meteor-server/FFXIVClassic World Server/RelationGroupManager.cs
2016-12-18 10:07:06 -05:00

43 lines
1.6 KiB
C#

using FFXIVClassic_World_Server.DataObjects.Group;
using System;
using System.Collections.Generic;
namespace FFXIVClassic_World_Server
{
class RelationGroupManager
{
private WorldManager mWorldManager;
private Object mGroupLockReference;
private Dictionary<ulong, Group> mCurrentWorldGroupsReference;
private Dictionary<ulong, Relation> mRelationList = new Dictionary<ulong, Relation>();
public RelationGroupManager(WorldManager worldManager, Object groupLock, Dictionary<ulong, Group> worldGroupList)
{
mWorldManager = worldManager;
mGroupLockReference = groupLock;
mCurrentWorldGroupsReference = worldGroupList;
}
public Relation CreateRelationGroup(uint hostCharaId, uint otherCharaId, uint command)
{
lock (mGroupLockReference)
{
ulong groupIndex = mWorldManager.GetGroupIndex();
Relation relation = new Relation(groupIndex, hostCharaId, otherCharaId, command);
mRelationList.Add(groupIndex, relation);
mCurrentWorldGroupsReference.Add(groupIndex, relation);
mWorldManager.IncrementGroupIndex();
return relation;
}
}
public void DeleteRelationGroup(ulong groupId)
{
if (mRelationList.ContainsKey(groupId))
mRelationList.Remove(groupId);
if (mCurrentWorldGroupsReference.ContainsKey(groupId))
mCurrentWorldGroupsReference.Remove(groupId);
}
}
}