Core/Channels: Fix channel joins/changes
This commit is contained in:
@@ -250,7 +250,7 @@ namespace Game.Chat
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void LeaveChannel(Player player, bool send = true)
|
public void LeaveChannel(Player player, bool send = true, bool suspend = false)
|
||||||
{
|
{
|
||||||
ObjectGuid guid = player.GetGUID();
|
ObjectGuid guid = player.GetGUID();
|
||||||
if (!IsOn(guid))
|
if (!IsOn(guid))
|
||||||
@@ -272,7 +272,7 @@ namespace Game.Chat
|
|||||||
SendToOne(builder, guid);
|
SendToOne(builder, guid);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
SendToOne(new ChannelNotifyLeftBuilder(this), guid);
|
SendToOne(new ChannelNotifyLeftBuilder(this, suspend), guid);
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayerInfo info = _playersStore.LookupByKey(guid);
|
PlayerInfo info = _playersStore.LookupByKey(guid);
|
||||||
|
|||||||
@@ -78,9 +78,10 @@ namespace Game.Chat
|
|||||||
|
|
||||||
class ChannelNotifyLeftBuilder : MessageBuilder
|
class ChannelNotifyLeftBuilder : MessageBuilder
|
||||||
{
|
{
|
||||||
public ChannelNotifyLeftBuilder(Channel source)
|
public ChannelNotifyLeftBuilder(Channel source, bool suspend)
|
||||||
{
|
{
|
||||||
_source = source;
|
_source = source;
|
||||||
|
_suspended = suspend;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override ServerPacket Invoke(LocaleConstant locale = LocaleConstant.enUS)
|
public override ServerPacket Invoke(LocaleConstant locale = LocaleConstant.enUS)
|
||||||
@@ -89,12 +90,13 @@ namespace Game.Chat
|
|||||||
|
|
||||||
ChannelNotifyLeft notify = new ChannelNotifyLeft();
|
ChannelNotifyLeft notify = new ChannelNotifyLeft();
|
||||||
notify.Channel = _source.GetName(localeIdx);
|
notify.Channel = _source.GetName(localeIdx);
|
||||||
notify.ChatChannelID = 0;
|
notify.ChatChannelID = _source.GetChannelId();
|
||||||
//notify->Suspended = false;
|
notify.Suspended = _suspended;
|
||||||
return notify;
|
return notify;
|
||||||
}
|
}
|
||||||
|
|
||||||
Channel _source;
|
Channel _source;
|
||||||
|
bool _suspended;
|
||||||
}
|
}
|
||||||
|
|
||||||
class ChannelSayBuilder : MessageBuilder
|
class ChannelSayBuilder : MessageBuilder
|
||||||
|
|||||||
@@ -2706,7 +2706,7 @@ namespace Game.Entities
|
|||||||
|
|
||||||
if (removeChannel != null)
|
if (removeChannel != null)
|
||||||
{
|
{
|
||||||
removeChannel.LeaveChannel(this, sendRemove); // Leave old channel
|
removeChannel.LeaveChannel(this, sendRemove, true); // Leave old channel
|
||||||
|
|
||||||
LeftChannel(removeChannel); // Remove from player's channel list
|
LeftChannel(removeChannel); // Remove from player's channel list
|
||||||
cMgr.LeftChannel(removeChannel.GetChannelId(), removeChannel.GetZoneEntry()); // Delete if empty
|
cMgr.LeftChannel(removeChannel.GetChannelId(), removeChannel.GetZoneEntry()); // Delete if empty
|
||||||
|
|||||||
Reference in New Issue
Block a user