forked from SoDOff-Project/sodoff-mmo
code quality fixes
This commit is contained in:
parent
f1865bd4a3
commit
c909d07462
@ -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"));
|
||||
|
@ -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"));
|
||||
|
@ -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();
|
||||
|
@ -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) {
|
||||
TID = random.Next(105);
|
||||
} else {
|
||||
TID = (int)trackId;
|
||||
}
|
||||
public RacingRoom() : base (null, "RacingDragon", true) {
|
||||
TID = random.Next(105);
|
||||
|
||||
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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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));
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user