code quality fixes

This commit is contained in:
Robert Paciorek 2024-03-02 10:38:22 +00:00
parent f1865bd4a3
commit c909d07462
7 changed files with 60 additions and 57 deletions

View File

@ -30,7 +30,7 @@ class GauntletJoinRoomHandler : ICommandHandler
class GauntletPlayAgainHandler : ICommandHandler
{
public void Handle(Client client, NetworkObject receivedObject) {
GauntletRoom room = client.Room as GauntletRoom;
GauntletRoom room = (client.Room as GauntletRoom)!;
room.SetPlayerReady(client, false);
NetworkPacket packet = Utils.ArrNetworkPacket(new string[] {
@ -52,7 +52,7 @@ class GauntletPlayAgainHandler : ICommandHandler
class GauntletLobbyUserReadyHandler : ICommandHandler
{
public void Handle(Client client, NetworkObject receivedObject) {
GauntletRoom room = client.Room as GauntletRoom;
GauntletRoom room = (client.Room as GauntletRoom)!;
room.SetPlayerReady(client);
NetworkPacket packet = Utils.ArrNetworkPacket(new string[] {
@ -84,7 +84,7 @@ class GauntletLobbyUserReadyHandler : ICommandHandler
class GauntletLobbyUserNotReadyHandler : ICommandHandler
{
public void Handle(Client client, NetworkObject receivedObject) {
GauntletRoom room = client.Room as GauntletRoom;
GauntletRoom room = (client.Room as GauntletRoom)!;
room.SetPlayerReady(client, false);
NetworkPacket packet = Utils.ArrNetworkPacket(new string[] {
@ -104,7 +104,7 @@ class GauntletLobbyUserNotReadyHandler : ICommandHandler
class GauntletLevelLoadHandler : ICommandHandler
{
public void Handle(Client client, NetworkObject receivedObject) { // {"a":13,"c":1,"p":{"c":"gs.GLL","p":{"0":"0","1":"0","2":"5","en":"GauntletGameExtension"},"r":365587}}
GauntletRoom room = client.Room as GauntletRoom;
GauntletRoom room = (client.Room as GauntletRoom)!;
NetworkObject p = receivedObject.Get<NetworkObject>("p");
NetworkPacket packet = Utils.ArrNetworkPacket(new string[] {
@ -125,12 +125,12 @@ class GauntletLevelLoadHandler : ICommandHandler
[ExtensionCommandHandler("gs.GLLD")]
class GauntletLevelLoadedHandler : ICommandHandler
{
private System.Timers.Timer timer = null;
private System.Timers.Timer? timer = null;
private int counter;
private GauntletRoom room;
public void Handle(Client client, NetworkObject receivedObject) {
room = client.Room as GauntletRoom;
room = (client.Room as GauntletRoom)!;
counter = 5;
// {"a":13,"c":1,"p":{"c":"msg","p":{"arr":["GCDS","365587","4"]},"r":365587}}
@ -149,7 +149,7 @@ class GauntletLevelLoadedHandler : ICommandHandler
timer.Elapsed += OnTick;
}
private void OnTick(Object source, ElapsedEventArgs e) {
private void OnTick(Object? source, ElapsedEventArgs e) {
NetworkPacket packet;
if (--counter > 0) {
// {"a":13,"c":1,"p":{"c":"msg","p":{"arr":["GCDS","365587","4"]},"r":365587}}
@ -165,8 +165,8 @@ class GauntletLevelLoadedHandler : ICommandHandler
room.Id.ToString()
}, "msg", room.Id);
timer.Stop();
timer.Close();
timer!.Stop();
timer!.Close();
timer = null;
}
foreach (var roomClient in room.Clients) {
@ -181,7 +181,7 @@ class GauntletRelayGameDataHandler : ICommandHandler
{
public void Handle(Client client, NetworkObject receivedObject) // {"a":13,"c":1,"p":{"c":"gs.RGD","p":{"0":"2700","1":"78","en":"GauntletGameExtension"},"r":4}}
{
GauntletRoom room = client.Room as GauntletRoom;
GauntletRoom room = (client.Room as GauntletRoom)!;
NetworkObject p = receivedObject.Get<NetworkObject>("p");
// {"a":13,"c":1,"p":{"c":"msg","p":{"arr":["RGD","365587","150","75"]},"r":365587}}
@ -204,7 +204,7 @@ class GauntletGameCompleteHandler : ICommandHandler
{
public void Handle(Client client, NetworkObject receivedObject) // {"a":13,"c":1,"p":{"c":"gs.GC","p":{"0":"1550","1":"84","en":"GauntletGameExtension"},"r":4}}
{
GauntletRoom room = client.Room as GauntletRoom;
GauntletRoom room = (client.Room as GauntletRoom)!;
NetworkObject p = receivedObject.Get<NetworkObject>("p");
room.ProcessResult(client, p.Get<string>("0"), p.Get<string>("1"));

View File

@ -18,7 +18,7 @@ class RacingPlayerReadyHandler : ICommandHandler
// so server do not need generate this packet
if (client.Room.Group == "RacingDragon") {
RacingRoom room = client.Room as RacingRoom;
RacingRoom room = (client.Room as RacingRoom)!;
room.SetPlayerState(client, ready);
Console.WriteLine($"IMR Lobby: {client.ClientID} {ready}");
room.TryLoad();
@ -44,7 +44,7 @@ class RacingPlayerStatusHandler : ICommandHandler
class RacingUACKHandler : ICommandHandler
{
public void Handle(Client client, NetworkObject receivedObject) {
RacingRoom room = client.Room as RacingRoom;
RacingRoom room = (client.Room as RacingRoom)!;
room.SetPlayerState(client, RacingPlayerState.RaceReady1);
}
}
@ -54,7 +54,7 @@ class RacingUACKHandler : ICommandHandler
class RacingARACKHandler : ICommandHandler
{
public void Handle(Client client, NetworkObject receivedObject) {
RacingRoom room = client.Room as RacingRoom;
RacingRoom room = (client.Room as RacingRoom)!;
room.SetPlayerState(client, RacingPlayerState.RaceReady2);
if (room.GetPlayersCount(RacingPlayerState.RaceReady2) == room.ClientsCount) {
@ -71,7 +71,7 @@ class RacingARACKHandler : ICommandHandler
class RacingARHandler : ICommandHandler
{
public void Handle(Client client, NetworkObject receivedObject) { // {"a":13,"c":1,"p":{"c":"dr.AR","p":{"CT":"112.1268","FD":"3008.283","LC":"3","UN":"scourgexxwulf","en":""},"r":412467}}
RacingRoom room = client.Room as RacingRoom;
RacingRoom room = (client.Room as RacingRoom)!;
NetworkObject p = receivedObject.Get<NetworkObject>("p");
room.SetResults(client, p.Get<string>("UN"), p.Get<string>("CT"), p.Get<string>("LC"));

View File

@ -3,34 +3,38 @@ using sodoffmmo.Data;
namespace sodoffmmo.Core;
public class GauntletRoom : Room {
static GauntletRoom NextRoom = null;
static GauntletRoom? NextRoom = null;
public static GauntletRoom Get() {
if (NextRoom != null && NextRoom.ClientsCount == 1) {
var ret = NextRoom;
var ret = NextRoom!;
NextRoom = null;
return ret;
} else {
NextRoom = new GauntletRoom();
return NextRoom;
return NextRoom!;
}
}
public GauntletRoom(string name = null) : base (name, "GauntletDO", true) {
public GauntletRoom() : base (null, "GauntletDO", true) {
base.RoomVariables.Add(NetworkArray.VlElement("IS_RACE_ROOM", true));
}
class Status {
public string uid;
public bool isReady = false;
public string resultA = null;
public string resultB = null;
public string resultA = "";
public string resultB = "";
public Status(string uid) {
this.uid = uid;
}
}
private Dictionary<Client, Status> players = new();
public void AddPlayer(Client client) {
players[client] = new Status { uid = client.PlayerData.Uid };
players[client] = new Status(client.PlayerData.Uid);
}
public void SetPlayerReady(Client client, bool status = true) {
@ -51,7 +55,6 @@ public class GauntletRoom : Room {
info.Add("UJR"); // User Joined Room
info.Add(base.Id.ToString());
info.Add("2");
int i = 0;
foreach(var player in players) {
info.Add(player.Value.uid);
info.Add(player.Value.isReady.ToString());
@ -70,7 +73,6 @@ public class GauntletRoom : Room {
info.Add("PA"); // Play Again
info.Add(base.Id.ToString());
info.Add("1");
int i = 0;
foreach(var player in players) {
info.Add(player.Value.uid);
info.Add(player.Value.isReady.ToString());
@ -88,7 +90,7 @@ public class GauntletRoom : Room {
int count = 0;
foreach(var player in players) {
if (player.Value.resultA != null) ++count;
if (player.Value.resultB != "") ++count;
}
if (count != 2)
return false;
@ -98,7 +100,7 @@ public class GauntletRoom : Room {
info.Add("GC");
info.Add(base.Id.ToString());
foreach(var player in players) {
if (player.Value.resultA is null)
if (player.Value.resultB == "")
continue;
info.Add(player.Value.uid);
info.Add(player.Value.resultA);
@ -117,7 +119,7 @@ public class GauntletRoom : Room {
static object joinLock = new object();
static public void Join(Client client, GauntletRoom room = null) {
static public void Join(Client client, GauntletRoom? room = null) {
lock(joinLock) {
if (room is null)
room = GauntletRoom.Get();

View File

@ -19,12 +19,8 @@ public class RacingRoom : Room {
return new RacingRoom();
}
public RacingRoom(string name = null, int? trackId = null) : base (name, "RacingDragon", true) {
if (trackId is null) {
public RacingRoom() : base (null, "RacingDragon", true) {
TID = random.Next(105);
} else {
TID = (int)trackId;
}
players = new();
results = new();
@ -66,6 +62,12 @@ public class RacingRoom : Room {
public string userName;
public string time;
public string laps;
public Result(string userName, string time, string laps) {
this.userName = userName;
this.time = time;
this.laps = laps;
}
}
SortedDictionary<float, Result> results;
@ -75,11 +77,7 @@ public class RacingRoom : Room {
while (results.ContainsKey(timef))
timef += 0.000001f;
results.Add(timef, new Result {
userName = userName,
time = time,
laps = laps
});
results.Add(timef, new Result(userName, time, laps));
}
public void SendResults() {
@ -104,7 +102,7 @@ public class RacingRoom : Room {
// start and countdown
System.Timers.Timer timer;
System.Timers.Timer? timer = null;
int counter;
private void SetTimer(double timeout, System.Timers.ElapsedEventHandler callback, bool AutoReset = false) {
@ -124,7 +122,7 @@ public class RacingRoom : Room {
SetTimer(0.2, SendJoin);
}
private void SendJoin(Object source, ElapsedEventArgs e) {
private void SendJoin(Object? source, ElapsedEventArgs e) {
foreach(var player in players) {
Console.WriteLine($"Join Racing Room: {Name} RoomID: {Id} IID: {player.Key.ClientID}");
player.Key.JoinRoom(this);
@ -132,7 +130,7 @@ public class RacingRoom : Room {
SetTimer(1, CountDown, true);
}
private void CountDown(Object source, ElapsedEventArgs e) {
private void CountDown(Object? source, ElapsedEventArgs e) {
if (!TryLoad()) {
if (counter == 0) {
Load();
@ -160,8 +158,8 @@ public class RacingRoom : Room {
}
public void Load() {
timer.Stop();
timer.Close();
timer!.Stop();
timer!.Close();
// {"a":13,"c":1,"p":{"c":"","p":{"arr":["RA","","ST"]},"r":412467}}
NetworkPacket packet = Utils.ArrNetworkPacket(new string[] {
@ -216,6 +214,9 @@ public class RacingLobby {
class Status {
public string uid;
public RacingPlayerState state = RacingPlayerState.NotReady;
public Status (string uid) {
this.uid = uid;
}
}
static object lobbyLock = new object();
@ -225,7 +226,7 @@ public class RacingLobby {
public static void SetPlayerState(Client client, RacingPlayerState state) {
lock (lobbyLock) {
if (!lobbyPlayers.ContainsKey(client)) {
lobbyPlayers[client] = new Status { uid = client.PlayerData.Uid };
lobbyPlayers[client] = new Status(client.PlayerData.Uid);
}
lobbyPlayers[client].state = state;
}

View File

@ -16,15 +16,15 @@ public class Room {
public bool IsRemoved { get; private set; } = false;
public NetworkArray RoomVariables = new();
public Room(string name, string group = null, bool autoRemove = false) {
public Room(string? name, string? group = null, bool autoRemove = false) {
Id = ++MaxId;
if (name is null) {
Name = group + "_" + MaxId;
Name = group! + "_" + MaxId;
} else {
Name = name;
}
if (group is null) {
Group = name;
Group = name!;
} else {
Group = group;
}

View File

@ -9,10 +9,10 @@ class WorldEvent {
End,
NotActive
}
private static WorldEvent _instance = null;
private static WorldEvent? _instance = null;
private object EventLock = new object();
private Random random = new Random();
private System.Timers.Timer timer = null;
private System.Timers.Timer? timer = null;
public static WorldEvent Get() {
if (_instance == null) {
@ -24,6 +24,7 @@ class WorldEvent {
private WorldEvent() {
startTime = DateTime.UtcNow.AddMinutes(-60);
startTimeString = startTime.ToString("MM/dd/yyyy HH:mm:ss");
room = Room.GetOrAdd("HubTrainingDO");
uid = "sodoff";
state = State.End;
ScheduleEvent(Configuration.ServerConfiguration.FirstEventTimer); // WE_ != WEN_
@ -32,7 +33,7 @@ class WorldEvent {
// controlled (init/reset) by Reset()
private Room room;
private string uid;
private Client operatorAI;
private Client? operatorAI;
private State state;
private DateTime startTime;
@ -51,7 +52,6 @@ class WorldEvent {
// reset event - set new id, start time, end time, etc
private void Reset(DateTime newStartTime) {
lock (EventLock) {
room = Room.GetOrAdd("HubTrainingDO");
uid = Path.GetRandomFileName().Substring(0, 8); // this is used as RandomSeed for random select ship variant
operatorAI = null;
state = State.NotActive;
@ -87,7 +87,7 @@ class WorldEvent {
}
// reset event and set timer to call PreEndEvent, send new WE_ info
private void PreInit(Object source, ElapsedEventArgs e) {
private void PreInit(Object? source, ElapsedEventArgs e) {
Reset(nextStartTime); // WE_ == WEN_
AnnounceEvent();
}
@ -114,7 +114,7 @@ class WorldEvent {
}
}
private void PreEndEvent(Object source, ElapsedEventArgs e) {
private void PreEndEvent(Object? source, ElapsedEventArgs e) {
Console.WriteLine($"Event {uid} force end from timer");
EndEvent(true);
}
@ -152,7 +152,7 @@ class WorldEvent {
}
// send reward info
private void PostEndEvent1(Object source, ElapsedEventArgs e) {
private void PostEndEvent1(Object? source, ElapsedEventArgs e) {
NetworkPacket packet = Utils.VlNetworkPacket(
"WE_ScoutAttack_End",
lastResults,
@ -179,7 +179,7 @@ class WorldEvent {
}
// schedule next event, set timer to call PreInit() and send new WEN_ info
private void PostEndEvent2(Object source, ElapsedEventArgs e) {
private void PostEndEvent2(Object? source, ElapsedEventArgs e) {
ScheduleEvent(); // WE_ != WEN_
AnnounceEvent(false, true); // send only WEN_ (WE_ should stay unchanged ... as WE_..._End)
}

View File

@ -103,7 +103,7 @@ public class NetworkArray {
}
public class NullClass {};
public static NullClass NULL;
public static NullClass NULL = new ();
public void AddWithType<T>(T value) {
if (typeof(T) == typeof(NullClass))
@ -120,7 +120,7 @@ public class NetworkArray {
throw new Exception("Unsupported type");
}
private void AddWithTypeObject(NetworkDataType dataType, byte typeId, object obj) {
private void AddWithTypeObject(NetworkDataType dataType, byte typeId, object? obj) {
Add(new DataWrapper(NetworkDataType.Byte,typeId));
Add(new DataWrapper(dataType, obj));
}