Core/Grids: Move packet sending functionality out of MessageDistDeliverer and into separate, customizable class and unify LocalizedPacketDo, LocalizedPacketListDo as generic localizable action
Port From (https://github.com/TrinityCore/TrinityCore/commit/fb66575d38d2ba7ffc24c29824fa75d7019de549)
This commit is contained in:
@@ -1355,13 +1355,15 @@ namespace Game.Entities
|
||||
|
||||
public virtual void SendMessageToSetInRange(ServerPacket data, float dist, bool self)
|
||||
{
|
||||
MessageDistDeliverer notifier = new(this, data, dist);
|
||||
PacketSenderRef sender = new(data);
|
||||
MessageDistDeliverer<PacketSenderRef> notifier = new(this, sender, dist);
|
||||
Cell.VisitWorldObjects(this, notifier, dist);
|
||||
}
|
||||
|
||||
public virtual void SendMessageToSet(ServerPacket data, Player skip)
|
||||
{
|
||||
var notifier = new MessageDistDeliverer(this, data, GetVisibilityRange(), false, skip);
|
||||
PacketSenderRef sender = new(data);
|
||||
var notifier = new MessageDistDeliverer<PacketSenderRef>(this, sender, GetVisibilityRange(), false, skip);
|
||||
Cell.VisitWorldObjects(this, notifier, GetVisibilityRange());
|
||||
}
|
||||
|
||||
|
||||
@@ -5970,7 +5970,8 @@ namespace Game.Entities
|
||||
if (self)
|
||||
SendPacket(data);
|
||||
|
||||
MessageDistDeliverer notifier = new(this, data, dist);
|
||||
PacketSenderRef sender = new(data);
|
||||
var notifier = new MessageDistDeliverer<PacketSenderRef>(this, sender, dist);
|
||||
Cell.VisitWorldObjects(this, notifier, dist);
|
||||
}
|
||||
|
||||
@@ -5979,7 +5980,8 @@ namespace Game.Entities
|
||||
if (self)
|
||||
SendPacket(data);
|
||||
|
||||
MessageDistDeliverer notifier = new(this, data, dist, own_team_only);
|
||||
PacketSenderRef sender = new(data);
|
||||
var notifier = new MessageDistDeliverer<PacketSenderRef>(this, sender, dist, own_team_only);
|
||||
Cell.VisitWorldObjects(this, notifier, dist);
|
||||
}
|
||||
|
||||
@@ -5990,7 +5992,8 @@ namespace Game.Entities
|
||||
|
||||
// we use World.GetMaxVisibleDistance() because i cannot see why not use a distance
|
||||
// update: replaced by GetMap().GetVisibilityDistance()
|
||||
MessageDistDeliverer notifier = new(this, data, GetVisibilityRange(), false, skipped_rcvr);
|
||||
PacketSenderRef sender = new(data);
|
||||
var notifier = new MessageDistDeliverer<PacketSenderRef>(this, sender, GetVisibilityRange(), false, skipped_rcvr);
|
||||
Cell.VisitWorldObjects(this, notifier, GetVisibilityRange());
|
||||
}
|
||||
public override void SendMessageToSet(ServerPacket data, bool self)
|
||||
|
||||
@@ -1549,7 +1549,7 @@ namespace Game.Entities
|
||||
internal void SendCombatLogMessage(CombatLogServerPacket combatLog)
|
||||
{
|
||||
CombatLogSender combatLogCustomizer = new(combatLog);
|
||||
MessageDistDeliverer notifier = new(this, combatLogCustomizer, GetVisibilityRange());
|
||||
var notifier = new MessageDistDeliverer<CombatLogSender>(this, combatLogCustomizer, GetVisibilityRange());
|
||||
Cell.VisitWorldObjects(this, notifier, GetVisibilityRange());
|
||||
}
|
||||
|
||||
|
||||
@@ -578,7 +578,7 @@ namespace Game.Entities
|
||||
public StringArray name = new(SharedConst.MaxDeclinedNameCases);
|
||||
}
|
||||
|
||||
class CombatLogSender : MessageDistDelivererCustomizer
|
||||
class CombatLogSender : IDoWork<Player>
|
||||
{
|
||||
CombatLogServerPacket i_message;
|
||||
|
||||
@@ -587,11 +587,12 @@ namespace Game.Entities
|
||||
i_message = msg;
|
||||
}
|
||||
|
||||
public override ServerPacket Invoke(Player player)
|
||||
public void Invoke(Player player)
|
||||
{
|
||||
i_message.Clear();
|
||||
i_message.SetAdvancedCombatLogging(player.IsAdvancedCombatLoggingEnabled());
|
||||
|
||||
return i_message;
|
||||
player.SendPacket(i_message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -351,7 +351,7 @@ namespace Game.Entities
|
||||
public virtual void Talk(string text, ChatMsg msgType, Language language, float textRange, WorldObject target)
|
||||
{
|
||||
var builder = new CustomChatTextBuilder(this, msgType, text, language, target);
|
||||
var localizer = new LocalizedPacketDo(builder);
|
||||
var localizer = new LocalizedDo(builder);
|
||||
var worker = new PlayerDistWorker(this, textRange, localizer);
|
||||
Cell.VisitWorldObjects(this, worker, textRange);
|
||||
}
|
||||
@@ -391,7 +391,7 @@ namespace Game.Entities
|
||||
}
|
||||
|
||||
var builder = new BroadcastTextBuilder(this, msgType, textId, GetGender(), target);
|
||||
var localizer = new LocalizedPacketDo(builder);
|
||||
var localizer = new LocalizedDo(builder);
|
||||
var worker = new PlayerDistWorker(this, textRange, localizer);
|
||||
Cell.VisitWorldObjects(this, worker, textRange);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user