Skip to content

Commit 437ed95

Browse files
committed
small helper to broadcast chat messages
1 parent 365126d commit 437ed95

File tree

8 files changed

+26
-37
lines changed

8 files changed

+26
-37
lines changed

AssettoServer/Commands/Contexts/BaseCommandContext.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@ public abstract class BaseCommandContext(
1818
public virtual void Broadcast(string message)
1919
{
2020
Log.Information("Broadcast: {Message}", message);
21-
entryEntryCarManager.BroadcastPacket(new ChatMessage { SessionId = 255, Message = message });
21+
entryEntryCarManager.BroadcastChat(message);
2222
}
2323
}

AssettoServer/Network/Udp/UdpPluginServer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ private void OnReceived(byte[] buffer, int size)
264264
case UdpPluginProtocol.BroadcastChat:
265265
{
266266
string message = packetReader.ReadUTF32String();
267-
_entryCarManager.BroadcastPacket(new ChatMessage { SessionId = 0xFF, Message = message });
267+
_entryCarManager.BroadcastChat(message);
268268
break;
269269
}
270270
case UdpPluginProtocol.GetSessionInfo:

AssettoServer/Server/ACServer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ public ACServer(
120120
private void OnApplicationStopping()
121121
{
122122
Log.Information("Server shutting down");
123-
_entryCarManager.BroadcastPacket(new ChatMessage { SessionId = 255, Message = "*** Server shutting down ***" });
123+
_entryCarManager.BroadcastChat("*** Server shutting down ***");
124124

125125
var cts = new CancellationTokenSource(TimeSpan.FromSeconds(5));
126126
var tasks = new List<Task>();

AssettoServer/Server/EntryCar.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public partial class EntryCar : IEntryCar<ACTcpClient>
4949
public int OutsideNetworkBubbleUpdateRateMs { get; internal set; }
5050

5151
internal long[] OtherCarsLastSentUpdateTime { get; }
52-
internal EntryCar? TargetCar { get; set; }
52+
public EntryCar? TargetCar { get; set; }
5353
private long LastFallCheckTime{ get; set; }
5454

5555
/// <summary>

AssettoServer/Server/EntryCarManager.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public async Task KickAsync(ACTcpClient? client, KickReason reason, string? audi
8888
{
8989
if (broadcastReason != null)
9090
{
91-
BroadcastPacket(new ChatMessage { SessionId = 255, Message = broadcastReason });
91+
BroadcastChat(broadcastReason);
9292
}
9393

9494
if (clientReason != null)
@@ -157,6 +157,9 @@ public void BroadcastPacket<TPacket>(TPacket packet, ACTcpClient? sender = null)
157157
}
158158
}
159159
}
160+
161+
public void BroadcastChat(string message, byte senderId = 255) =>
162+
BroadcastPacket(new ChatMessage { SessionId = senderId, Message = message });
160163

161164
public void BroadcastPacketUdp<TPacket>(in TPacket packet, ACTcpClient? sender = null, float? range = null, bool skipSender = true) where TPacket : IOutgoingNetworkPacket
162165
{

RaceChallengePlugin/Race.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ private void FinishRace()
217217
string winnerName = Challenger == Leader ? ChallengerName : ChallengedName;
218218
string loserName = Challenger == Leader ? ChallengedName : ChallengerName;
219219

220-
_entryCarManager.BroadcastPacket(new ChatMessage { SessionId = 255, Message = $"{winnerName} just beat {loserName} in a race." });
220+
_entryCarManager.BroadcastChat($"{winnerName} just beat {loserName} in a race.");
221221
Log.Information("{WinnerName} just beat {LoserName} in a race", winnerName, loserName);
222222
}
223223
}

VotingPresetPlugin/VotingPresetPlugin.cs

Lines changed: 14 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -288,17 +288,16 @@ private async Task VotingAsync(CancellationToken stoppingToken, bool manualVote
288288
}
289289

290290
if (_configuration.VoteEnabled || manualVote)
291-
_entryCarManager.BroadcastPacket(new ChatMessage { SessionId = 255, Message = "Vote for next track:" });
291+
_entryCarManager.BroadcastChat("Vote for next track:");
292292

293293
// Add "Stay on current track"
294294
if (_configuration.IncludeStayOnTrackVote)
295295
{
296296
_availablePresets.Add(new PresetChoice { Preset = last.Type, Votes = 0 });
297297
if (_configuration.VoteEnabled || manualVote)
298-
_entryCarManager.BroadcastPacket(new ChatMessage
299-
{ SessionId = 255, Message = $" /vt 0 - Stay on current track." });
300-
301-
298+
{
299+
_entryCarManager.BroadcastChat(" /vt 0 - Stay on current track.");
300+
}
302301
}
303302
for (int i = _availablePresets.Count; i < _configuration.VoteChoices; i++)
304303
{
@@ -309,8 +308,9 @@ private async Task VotingAsync(CancellationToken stoppingToken, bool manualVote
309308
presetsLeft.Remove(nextPreset);
310309

311310
if (_configuration.VoteEnabled || manualVote)
312-
_entryCarManager.BroadcastPacket(new ChatMessage
313-
{ SessionId = 255, Message = $" /vt {i} - {nextPreset.Name}" });
311+
{
312+
_entryCarManager.BroadcastChat($" /vt {i} - {nextPreset.Name}");
313+
}
314314
}
315315

316316
// Wait for the vote to finish
@@ -327,23 +327,14 @@ private async Task VotingAsync(CancellationToken stoppingToken, bool manualVote
327327

328328
if (last.Type!.Equals(winner.Preset!) || (maxVotes == 0 && !_configuration.ChangePresetWithoutVotes))
329329
{
330-
_entryCarManager.BroadcastPacket(new ChatMessage
331-
{
332-
SessionId = 255,
333-
Message = $"Track vote ended. Staying on track for {_configuration.VotingIntervalMinutes} more minutes."
334-
});
330+
_entryCarManager.BroadcastChat($"Track vote ended. Staying on track for {_configuration.VotingIntervalMinutes} more minutes.");
335331
}
336332
else
337333
{
338-
_entryCarManager.BroadcastPacket(new ChatMessage
339-
{ SessionId = 255, Message = $"Track vote ended. Next track: {winner.Preset!.Name} - {winner.Votes} votes" });
340-
_entryCarManager.BroadcastPacket(new ChatMessage
341-
{
342-
SessionId = 255,
343-
Message = $"Track will change in {(_configuration.DelayTransitionDurationSeconds < 60 ?
334+
_entryCarManager.BroadcastChat($"Track vote ended. Next track: {winner.Preset!.Name} - {winner.Votes} votes");
335+
_entryCarManager.BroadcastChat($"Track will change in {(_configuration.DelayTransitionDurationSeconds < 60 ?
344336
$"{_configuration.DelayTransitionDurationSeconds} second(s)" :
345-
$"{(int)Math.Ceiling(_configuration.DelayTransitionDurationSeconds / 60.0)} minute(s)")}."
346-
});
337+
$"{(int)Math.Ceiling(_configuration.DelayTransitionDurationSeconds / 60.0)} minute(s)")}.");
347338

348339
// Delay the preset switch by configured time delay
349340
await Task.Delay(_configuration.DelayTransitionDurationMilliseconds, stoppingToken);
@@ -362,15 +353,10 @@ private async Task AdminPreset(PresetData preset)
362353
{
363354
if (preset.Type!.Equals(preset.UpcomingType!)) return;
364355
Log.Information("Next preset: {Preset}", preset.UpcomingType!.Name);
365-
_entryCarManager.BroadcastPacket(new ChatMessage
366-
{ SessionId = 255, Message = $"Next track: {preset.UpcomingType!.Name}" });
367-
_entryCarManager.BroadcastPacket(new ChatMessage
368-
{
369-
SessionId = 255,
370-
Message = $"Track will change in {(_configuration.DelayTransitionDurationSeconds < 60 ?
356+
_entryCarManager.BroadcastChat($"Next track: {preset.UpcomingType!.Name}");
357+
_entryCarManager.BroadcastChat($"Track will change in {(_configuration.DelayTransitionDurationSeconds < 60 ?
371358
$"{_configuration.DelayTransitionDurationSeconds} second(s)" :
372-
$"{(int)Math.Ceiling(_configuration.DelayTransitionDurationSeconds / 60.0)} minute(s)")}."
373-
});
359+
$"{(int)Math.Ceiling(_configuration.DelayTransitionDurationSeconds / 60.0)} minute(s)")}.");
374360

375361
// Delay the preset switch by configured time delay
376362
await Task.Delay(_configuration.DelayTransitionDurationMilliseconds);

VotingWeatherPlugin/VotingWeather.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ private async Task UpdateAsync(CancellationToken stoppingToken)
100100

101101
var weathersLeft = new List<WeatherFxType>(_weathers);
102102

103-
_entryCarManager.BroadcastPacket(new ChatMessage { SessionId = 255, Message = "Vote for next weather:" });
103+
_entryCarManager.BroadcastChat("Vote for next weather:");
104104
for (int i = 0; i < _configuration.NumChoices; i++)
105105
{
106106
if (weathersLeft.Count < 1) break;
@@ -109,7 +109,7 @@ private async Task UpdateAsync(CancellationToken stoppingToken)
109109
_availableWeathers.Add(new WeatherChoice { Weather = nextWeather, Votes = 0 });
110110
weathersLeft.Remove(nextWeather);
111111

112-
_entryCarManager.BroadcastPacket(new ChatMessage { SessionId = 255, Message = $" /w {i} - {nextWeather}" });
112+
_entryCarManager.BroadcastChat($" /w {i} - {nextWeather}");
113113
}
114114

115115
_votingOpen = true;
@@ -122,7 +122,7 @@ private async Task UpdateAsync(CancellationToken stoppingToken)
122122
var winner = weathers[Random.Shared.Next(weathers.Count)];
123123
var winnerType = _weatherTypeProvider.GetWeatherType(winner);
124124

125-
_entryCarManager.BroadcastPacket(new ChatMessage { SessionId = 255, Message = $"Weather vote ended. Next weather: {winner}" });
125+
_entryCarManager.BroadcastChat($"Weather vote ended. Next weather: {winner}");
126126

127127
_weatherManager.SetWeather(new WeatherData(last.Type, winnerType)
128128
{

0 commit comments

Comments
 (0)