Core/Channels: Fix channel joins/changes

This commit is contained in:
hondacrx
2018-03-18 11:50:49 -04:00
parent 761af36d05
commit 49306f7a6e
3 changed files with 8 additions and 6 deletions
+2 -2
View File
@@ -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();
if (!IsOn(guid))
@@ -272,7 +272,7 @@ namespace Game.Chat
SendToOne(builder, guid);
*/
SendToOne(new ChannelNotifyLeftBuilder(this), guid);
SendToOne(new ChannelNotifyLeftBuilder(this, suspend), guid);
}
PlayerInfo info = _playersStore.LookupByKey(guid);
@@ -78,9 +78,10 @@ namespace Game.Chat
class ChannelNotifyLeftBuilder : MessageBuilder
{
public ChannelNotifyLeftBuilder(Channel source)
public ChannelNotifyLeftBuilder(Channel source, bool suspend)
{
_source = source;
_suspended = suspend;
}
public override ServerPacket Invoke(LocaleConstant locale = LocaleConstant.enUS)
@@ -89,12 +90,13 @@ namespace Game.Chat
ChannelNotifyLeft notify = new ChannelNotifyLeft();
notify.Channel = _source.GetName(localeIdx);
notify.ChatChannelID = 0;
//notify->Suspended = false;
notify.ChatChannelID = _source.GetChannelId();
notify.Suspended = _suspended;
return notify;
}
Channel _source;
bool _suspended;
}
class ChannelSayBuilder : MessageBuilder
+1 -1
View File
@@ -2706,7 +2706,7 @@ namespace Game.Entities
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
cMgr.LeftChannel(removeChannel.GetChannelId(), removeChannel.GetZoneEntry()); // Delete if empty