refactoring: removed external dependencies from server, removed webhooks from server
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
using System;
|
||||
using NLog;
|
||||
using Ragon.Server.Logging;
|
||||
|
||||
namespace Ragon.Relay;
|
||||
|
||||
public class RelayLogger: IRagonLogger
|
||||
{
|
||||
private Logger _nlogger;
|
||||
|
||||
public RelayLogger(string tag)
|
||||
{
|
||||
_nlogger = LogManager.GetLogger(tag);
|
||||
}
|
||||
|
||||
public void Warning(string message)
|
||||
{
|
||||
_nlogger.Warn(message);
|
||||
}
|
||||
|
||||
public void Info(string message)
|
||||
{
|
||||
_nlogger.Info(message);
|
||||
}
|
||||
|
||||
public void Error(string message)
|
||||
{
|
||||
_nlogger.Error(message);
|
||||
}
|
||||
|
||||
public void Error(Exception ex)
|
||||
{
|
||||
_nlogger.Error(ex);
|
||||
}
|
||||
|
||||
public void Trace(string message)
|
||||
{
|
||||
_nlogger.Trace(message);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
using Ragon.Server.Logging;
|
||||
|
||||
namespace Ragon.Relay;
|
||||
|
||||
public class RelayLoggerFactory: IRagonLoggerFactory
|
||||
{
|
||||
public IRagonLogger GetLogger(string tag)
|
||||
{
|
||||
return new RelayLogger(tag);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
using System;
|
||||
using Ragon.Server;
|
||||
using Ragon.Server.Entity;
|
||||
using Ragon.Server.Plugin;
|
||||
using Ragon.Server.Room;
|
||||
|
||||
namespace Ragon.Relay;
|
||||
|
||||
public class RelayRoomPlugin: BaseRoomPlugin
|
||||
{
|
||||
public void Tick(float dt)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void OnAttached()
|
||||
{
|
||||
Console.WriteLine("Room attached");
|
||||
}
|
||||
|
||||
public void OnDetached()
|
||||
{
|
||||
Console.WriteLine("Room detached");
|
||||
}
|
||||
|
||||
public bool OnEntityCreate(RagonRoomPlayer creator, RagonEntity entity)
|
||||
{
|
||||
Console.WriteLine($"Entity created: {entity.Id}");
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool OnEntityRemove(RagonRoomPlayer destroyer, RagonEntity entity)
|
||||
{
|
||||
Console.WriteLine($"Entity destroyed: {entity.Id}");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -14,39 +14,64 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
using NLog;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
using Newtonsoft.Json;
|
||||
using Ragon.Server;
|
||||
using Ragon.Server.ENetServer;
|
||||
using Ragon.Server.WebSocketServer;
|
||||
using Ragon.Server.IO;
|
||||
using Ragon.Server.Logging;
|
||||
using Ragon.Server.Plugin;
|
||||
using Ragon.Server.WebSocketServer;
|
||||
|
||||
namespace Ragon.Relay;
|
||||
|
||||
public class Relay
|
||||
namespace Ragon.Relay
|
||||
{
|
||||
public void Start()
|
||||
public class Relay
|
||||
{
|
||||
var logger = LogManager.GetLogger("Ragon.Relay");
|
||||
logger.Info("Relay Application");
|
||||
|
||||
var configuration = RagonServerConfiguration.Load("relay.config.json");
|
||||
var serverType = RagonServerConfiguration.GetServerType(configuration.ServerType);
|
||||
|
||||
INetworkServer networkServer = new ENetServer();
|
||||
IServerPlugin plugin = new RelayServerPlugin();
|
||||
switch (serverType)
|
||||
public void Start()
|
||||
{
|
||||
case ServerType.ENET:
|
||||
networkServer = new ENetServer();
|
||||
break;
|
||||
case ServerType.WEBSOCKET:
|
||||
networkServer = new WebSocketServer();
|
||||
break;
|
||||
}
|
||||
LoggerManager.SetLoggerFactory(new RelayLoggerFactory());
|
||||
|
||||
var relay = new RagonServer(networkServer, plugin, configuration);
|
||||
logger.Info("Started");
|
||||
relay.Start();
|
||||
var logger = LoggerManager.GetLogger("Relay");
|
||||
logger.Info("Relay Application");
|
||||
|
||||
var data = File.ReadAllText("relay.config.json");
|
||||
var configuration = JsonConvert.DeserializeObject<RelayConfiguration>(data);
|
||||
var serverType = RagonServerConfiguration.GetServerType(configuration.ServerType);
|
||||
|
||||
INetworkServer networkServer = new ENetServer();
|
||||
IServerPlugin plugin = new RelayServerPlugin();
|
||||
switch (serverType)
|
||||
{
|
||||
case ServerType.ENET:
|
||||
networkServer = new ENetServer();
|
||||
break;
|
||||
case ServerType.WEBSOCKET:
|
||||
networkServer = new WebSocketServer();
|
||||
break;
|
||||
}
|
||||
|
||||
var serverConfiguration = new RagonServerConfiguration()
|
||||
{
|
||||
LimitConnections = configuration.LimitConnections,
|
||||
LimitRooms = configuration.LimitConnections,
|
||||
LimitBufferedEvents = configuration.LimitConnections,
|
||||
LimitPlayersPerRoom = configuration.LimitConnections,
|
||||
Port = configuration.Port,
|
||||
Protocol = configuration.Protocol,
|
||||
ServerKey = configuration.ServerKey,
|
||||
ServerTickRate = configuration.ServerTickRate,
|
||||
};
|
||||
var relay = new RagonServer(networkServer, plugin, serverConfiguration);
|
||||
relay.Start();
|
||||
while (relay.IsRunning)
|
||||
{
|
||||
relay.Tick();
|
||||
Thread.Sleep(1);
|
||||
}
|
||||
|
||||
relay.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
using System;
|
||||
|
||||
namespace Ragon.Relay
|
||||
{
|
||||
[Serializable]
|
||||
public struct RelayConfiguration
|
||||
{
|
||||
public string ServerKey;
|
||||
public string ServerType;
|
||||
public ushort ServerTickRate;
|
||||
public string Protocol;
|
||||
public ushort Port;
|
||||
public int LimitConnections;
|
||||
public int LimitPlayersPerRoom;
|
||||
public int LimitRooms;
|
||||
public int LimitBufferedEvents;
|
||||
public int LimitUserData;
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using NLog;
|
||||
using Ragon.Server.Entity;
|
||||
using Ragon.Server.IO;
|
||||
using Ragon.Server.Plugin;
|
||||
using Ragon.Server.Room;
|
||||
|
||||
namespace Ragon.Relay;
|
||||
|
||||
public class RelayRoomPlugin : BaseRoomPlugin
|
||||
{
|
||||
private Logger _logger = LogManager.GetCurrentClassLogger();
|
||||
|
||||
public override bool OnPlayerJoined(RagonRoomPlayer player)
|
||||
{
|
||||
// _logger.Trace($"Player {player.Name}|{player.Connection.Id} joined");
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool OnPlayerLeaved(RagonRoomPlayer player)
|
||||
{
|
||||
// _logger.Trace($"Player {player.Name}|{player.Connection.Id} leaved");
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool OnData(RagonRoomPlayer player, byte[] data)
|
||||
{
|
||||
// _logger.Trace($"Data received from {player.Name}|{player.Connection.Id}");
|
||||
|
||||
// All Players
|
||||
// Room.ReplicateData(new Byte[] { 30, 40, 50 }, NetworkChannel.RELIABLE);
|
||||
// Selected Player
|
||||
// Room.ReplicateData(new byte[] { 10, 30, 40 }, new List<RagonRoomPlayer> { player }, NetworkChannel.RELIABLE);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user