75 lines
No EOL
2.6 KiB
C#
75 lines
No EOL
2.6 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Reflection;
|
|
using CLre_server.API.Engines;
|
|
using Game.DataLoader;
|
|
using GameServer;
|
|
using HarmonyLib;
|
|
using Svelto.Context;
|
|
using Svelto.DataStructures;
|
|
using Svelto.ECS;
|
|
using User.Server;
|
|
|
|
namespace CLre_server.API.MainServer
|
|
{
|
|
class ServerReadyEngine : ServerEnginePostBuild, IWaitForFrameworkInitialization, IWaitForFrameworkDestruction
|
|
{
|
|
internal static event EventHandler<StartedEventArgs> serverEngineReady;
|
|
|
|
internal static event EventHandler<StartedEventArgs> serverFrameworkReady;
|
|
|
|
internal static event EventHandler<StopEventArgs> serverFrameworkDestroyed;
|
|
|
|
public override void Ready()
|
|
{
|
|
GameServerSettings gss = Server.Instance.GameServerSettings;
|
|
if (serverEngineReady != null) serverEngineReady(this, new StartedEventArgs
|
|
{
|
|
photonVersion = PhotonNetwork.gameVersion,
|
|
photonRegion = PhotonNetwork.CloudRegion,
|
|
gameGuid = gss == null ? "" : gss.GetGameGuid(),
|
|
worldName = gss == null ? "" : gss.GetWorldName(),
|
|
});
|
|
}
|
|
|
|
public void OnFrameworkInitialized()
|
|
{
|
|
GameServerSettings gss = Server.Instance.GameServerSettings;
|
|
if (serverFrameworkReady != null) serverFrameworkReady(this, new StartedEventArgs
|
|
{
|
|
photonVersion = PhotonNetwork.gameVersion,
|
|
photonRegion = PhotonNetwork.CloudRegion,
|
|
gameGuid = gss == null ? "" : gss.GetGameGuid(),
|
|
worldName = gss == null ? "" : gss.GetWorldName(),
|
|
});
|
|
}
|
|
|
|
public void OnFrameworkDestroyed()
|
|
{
|
|
if (serverFrameworkDestroyed != null) serverFrameworkDestroyed(this, new StopEventArgs{});
|
|
}
|
|
}
|
|
|
|
class ServerDatabaseQueryEngine : ServerEnginePostBuild
|
|
{
|
|
public override void Ready()
|
|
{
|
|
}
|
|
|
|
public AccountIdServerNode[] GetConnectedAccounts()
|
|
{
|
|
FieldInfo f = AccessTools.Field(AccessTools.TypeByName("User.Server.AccountExclusiveGroups"), "accountGroup");
|
|
ExclusiveGroup accountGroup = (ExclusiveGroup) f.GetValue(null);
|
|
ReadOnlyCollectionStruct<AccountIdServerNode> accounts =
|
|
entitiesDB.QueryEntityViews<AccountIdServerNode>(accountGroup);
|
|
List<AccountIdServerNode> list = new List<AccountIdServerNode>();
|
|
foreach (var a in accounts)
|
|
{
|
|
list.Add(a);
|
|
}
|
|
return list.ToArray();
|
|
}
|
|
}
|
|
} |