internal static void SendToClient(Packet p) { var len = p.Length; fixed(byte *packet = p.Compile()) { UOClient.SendToClient(packet, (int)len); } }
// If mock is enabled we skip the console readline. public static void Load(bool mocked = false) { m_Mocked = mocked; var updated = false; if (File.Exists(m_FilePath)) { logger.Information("Reading server configuration from {Path}...", _relPath); m_Settings = JsonConfig.Deserialize <ServerSettings>(m_FilePath); if (m_Settings == null) { logger.Error("Reading server configuration failed"); throw new FileNotFoundException($"Failed to deserialize {m_FilePath}."); } logger.Information("Reading server configuration done"); } else { updated = true; m_Settings = new ServerSettings(); } if (mocked) { return; } if (m_Settings.DataDirectories.Count == 0) { updated = true; foreach (var directory in ServerConfigurationPrompts.GetDataDirectories()) { m_Settings.DataDirectories.Add(directory); } } UOClient.Load(); var cuoClientFiles = UOClient.CuoSettings?.UltimaOnlineDirectory; if (cuoClientFiles != null) { DataDirectories.Add(cuoClientFiles); } if (m_Settings.Listeners.Count == 0) { updated = true; m_Settings.Listeners.AddRange(ServerConfigurationPrompts.GetListeners()); } bool?isPre60000 = null; if (m_Settings.Expansion == null) { var expansion = GetSetting <Expansion>("currentExpansion"); var hasExpansion = expansion != null; expansion ??= ServerConfigurationPrompts.GetExpansion(); if (expansion <= Expansion.ML && !hasExpansion) { isPre60000 = ServerConfigurationPrompts.GetIsClientPre6000(); if (isPre60000 == true) { SetSetting("maps.enablePre6000Trammel", true); } } updated = true; m_Settings.Expansion = expansion; } if (isPre60000 != true) { if (ServerConfigurationPrompts.GetIsClient7090()) { updated = true; SetSetting("maps.enablePostHSMultiComponentFormat", true); } } Core.Expansion = m_Settings.Expansion.Value; if (updated) { Save(); Console.Write("Server configuration saved to "); Utility.PushColor(ConsoleColor.Green); Console.WriteLine($"{_relPath}."); Utility.PopColor(); } }
private static bool OnSend(byte *packet, int len) { PacketReader p = new PacketReader(packet, len, UOClient.IsDynLength(packet[0])); return(PacketHandler.OnClientPacket(p)); }
internal static void Attack(uint serial) { UOClient.Attack(serial); }
internal static void Cast(int index) { UOClient.Cast(index); }
internal static void BringToFront(IntPtr hWnd) { UOClient.BringToFront(hWnd); }
internal static IntPtr FindUOWindow() { return(UOClient.FindUOWindow()); }
internal static int Initialize(IntPtr mainWindow) { return(UOClient.InstallLibrary(mainWindow)); }