feat : 파티매니저 채널에 종속되도록 변경
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using LiteNetLib;
|
||||
using MMOserver.Game.Channel.Maps;
|
||||
using MMOserver.Game.Party;
|
||||
|
||||
namespace MMOserver.Game.Channel;
|
||||
|
||||
@@ -8,6 +9,9 @@ public class Channel
|
||||
// 로비
|
||||
private Robby robby = new Robby();
|
||||
|
||||
// 파티
|
||||
private PartyManager partyManager = new PartyManager();
|
||||
|
||||
// 채널 내 유저 상태 (hashKey → Player)
|
||||
private Dictionary<int, Player> connectUsers = new Dictionary<int, Player>();
|
||||
|
||||
@@ -97,4 +101,10 @@ public class Channel
|
||||
{
|
||||
return robby;
|
||||
}
|
||||
|
||||
// 파티매니저 가져옴
|
||||
public PartyManager GetPartyManager()
|
||||
{
|
||||
return partyManager;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -468,7 +468,15 @@ public class GameServer : ServerBase
|
||||
private void OnRequestParty(NetPeer peer, int hashKey, byte[] payload)
|
||||
{
|
||||
RequestPartyPacket req = Serializer.Deserialize<RequestPartyPacket>(new ReadOnlyMemory<byte>(payload));
|
||||
PartyManager pm = PartyManager.Instance;
|
||||
|
||||
ChannelManager cm = ChannelManager.Instance;
|
||||
int channelId = cm.HasUser(hashKey);
|
||||
if (channelId < 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
PartyManager pm = cm.GetChannel(channelId).GetPartyManager();
|
||||
|
||||
switch (req.Type)
|
||||
{
|
||||
@@ -525,7 +533,10 @@ public class GameServer : ServerBase
|
||||
};
|
||||
byte[] data = PacketSerializer.Serialize<UpdatePartyPacket>((ushort)PacketCode.UPDATE_PARTY, notify);
|
||||
if (party != null)
|
||||
{
|
||||
BroadcastToUsers(party.PartyMemberIds, data); // 남은 멤버들에게
|
||||
}
|
||||
|
||||
SendTo(peer, data); // 탈퇴자 본인에게
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ using MMOserver.Utils;
|
||||
|
||||
namespace MMOserver.Game.Party;
|
||||
|
||||
public class PartyManager : Singleton<PartyManager>
|
||||
public class PartyManager
|
||||
{
|
||||
private readonly UuidGenerator partyUuidGenerator = new UuidGenerator();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user