@@ -17,22 +17,22 @@ namespace OpenRA.Server
|
||||
{
|
||||
public sealed class VoteKickTracker
|
||||
{
|
||||
[FluentReference("kickee")]
|
||||
[TranslationReference("kickee")]
|
||||
const string InsufficientVotes = "notification-insufficient-votes-to-kick";
|
||||
|
||||
[FluentReference]
|
||||
[TranslationReference]
|
||||
const string AlreadyVoted = "notification-kick-already-voted";
|
||||
|
||||
[FluentReference("kicker", "kickee")]
|
||||
[TranslationReference("kicker", "kickee")]
|
||||
const string VoteKickStarted = "notification-vote-kick-started";
|
||||
|
||||
[FluentReference]
|
||||
[TranslationReference]
|
||||
const string UnableToStartAVote = "notification-unable-to-start-a-vote";
|
||||
|
||||
[FluentReference("kickee", "percentage")]
|
||||
[TranslationReference("kickee", "percentage")]
|
||||
const string VoteKickProgress = "notification-vote-kick-in-progress";
|
||||
|
||||
[FluentReference("kickee")]
|
||||
[TranslationReference("kickee")]
|
||||
const string VoteKickEnded = "notification-vote-kick-ended";
|
||||
|
||||
readonly Dictionary<int, bool> voteTracker = new();
|
||||
@@ -76,7 +76,7 @@ namespace OpenRA.Server
|
||||
|| (voteInProgress && this.kickee.Client != kickee) // Disallow starting new votes when one is already ongoing.
|
||||
|| !ClientHasPower(kicker))
|
||||
{
|
||||
server.SendFluentMessageTo(conn, UnableToStartAVote);
|
||||
server.SendLocalizedMessageTo(conn, UnableToStartAVote);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -107,7 +107,7 @@ namespace OpenRA.Server
|
||||
if (!kickee.IsObserver && !server.HasClientWonOrLost(kickee))
|
||||
{
|
||||
// Vote kick cannot be the sole deciding factor for a game.
|
||||
server.SendFluentMessageTo(conn, InsufficientVotes, new object[] { "kickee", kickee.Name });
|
||||
server.SendLocalizedMessageTo(conn, InsufficientVotes, Translation.Arguments("kickee", kickee.Name));
|
||||
EndKickVote();
|
||||
return false;
|
||||
}
|
||||
@@ -126,7 +126,7 @@ namespace OpenRA.Server
|
||||
{
|
||||
if (time + server.Settings.VoteKickerCooldown > kickeeConn.ConnectionTimer.ElapsedMilliseconds)
|
||||
{
|
||||
server.SendFluentMessageTo(conn, UnableToStartAVote);
|
||||
server.SendLocalizedMessageTo(conn, UnableToStartAVote);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
@@ -135,7 +135,7 @@ namespace OpenRA.Server
|
||||
|
||||
Log.Write("server", $"Vote kick started on {kickeeID}.");
|
||||
voteKickTimer = Stopwatch.StartNew();
|
||||
server.SendFluentMessage(VoteKickStarted, "kicker", kicker.Name, "kickee", kickee.Name);
|
||||
server.SendLocalizedMessage(VoteKickStarted, Translation.Arguments("kicker", kicker.Name, "kickee", kickee.Name));
|
||||
server.DispatchServerOrdersToClients(new Order("StartKickVote", null, false) { ExtraData = (uint)kickeeID }.Serialize());
|
||||
this.kickee = (kickee, kickeeConn);
|
||||
voteKickerStarter = (kicker, conn);
|
||||
@@ -145,7 +145,7 @@ namespace OpenRA.Server
|
||||
voteTracker[conn.PlayerIndex] = vote;
|
||||
else
|
||||
{
|
||||
server.SendFluentMessageTo(conn, AlreadyVoted);
|
||||
server.SendLocalizedMessageTo(conn, AlreadyVoted, null);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -168,9 +168,9 @@ namespace OpenRA.Server
|
||||
}
|
||||
|
||||
var votesNeeded = eligiblePlayers / 2 + 1;
|
||||
server.SendFluentMessage(VoteKickProgress,
|
||||
server.SendLocalizedMessage(VoteKickProgress, Translation.Arguments(
|
||||
"kickee", kickee.Name,
|
||||
"percentage", votesFor * 100 / eligiblePlayers);
|
||||
"percentage", votesFor * 100 / eligiblePlayers));
|
||||
|
||||
// If a player or players during a vote lose or disconnect, it is possible that a downvote will
|
||||
// kick a client. Guard against that situation.
|
||||
@@ -210,7 +210,7 @@ namespace OpenRA.Server
|
||||
return;
|
||||
|
||||
if (sendMessage)
|
||||
server.SendFluentMessage(VoteKickEnded, "kickee", kickee.Client.Name);
|
||||
server.SendLocalizedMessage(VoteKickEnded, Translation.Arguments("kickee", kickee.Client.Name));
|
||||
|
||||
server.DispatchServerOrdersToClients(new Order("EndKickVote", null, false) { ExtraData = (uint)kickee.Client.Index }.Serialize());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user