public void UnloadPlugin() { Logger.Log($"Unloading plugin {Name}...", ConsoleColor.DarkRed); PluginState = PluginState.Unloaded; CommandManager.DeregisterCommands(Name); Unload(); }
public static void Puts(string message, Color color) { Logger.Log($"Broadcast: {message}", ConsoleColor.Yellow); WrapMessage(message).ForEach(s => { ChatManager.serverSendMessage(s, color); }); }
private static bool DoNext(IPlayer player, string message) { if (player == null) { return(false); } if (!player.IsConsolePlayer()) { return(true); } Logger.Log($"{player.CharacterName} >> {message}", ConsoleColor.Yellow); return(false); }
public void LoadPlugin() { Logger.Log($"Loading plugin: {Name}. Author: {Author ?? "UNKNOWN"}. Version: {Version}.", ConsoleColor.Cyan); var pluginDir = string.Format(ModuleEnvironment.PluginDir, Name); if (!Directory.Exists(pluginDir)) { Directory.CreateDirectory(pluginDir); } Config = new JsonFileAsset <TConfig>(string.Format(ModuleEnvironment.PluginCfg, Name)); if (DefaultTranslation != null && DefaultTranslation.Any()) { Translation = new JsonFileAsset <Translation>(string.Format(ModuleEnvironment.PluginTranslation, Name)); DefaultTranslation.FillTranslation(Translation); } try { Load(); } catch (Exception e) { Logger.LogError($"An error occurred while loading plugin {Name}. Unloading now..."); Logger.Log(e.Message, ConsoleColor.Red); try { UnloadPlugin(); return; } catch (Exception) { Logger.LogWarning("Failed to unload plugin, it will be destroyed!"); PluginManager.Destroy(name); return; } } CommandManager.RegisterCommands(Assembly, GetType()); PluginState = PluginState.Loaded; }
private static void RegisterPlugins() { foreach (var path in Directory.GetFiles(ModuleEnvironment.PluginsDir, "*.dll")) { var assembly = Assembly.LoadFrom(path); var name = assembly.GetName().Name; if (!PluginUtil.IsPluginValid(assembly, out var pluginType)) { Logger.LogError($"Invalid or outdated plugin assembly: {name}"); continue; } var gameObject = new GameObject(name, pluginType); Object.DontDestroyOnLoad(gameObject); Plugins.Add(new PluginData(assembly, gameObject)); } }
internal static void Init() { AppDomain.CurrentDomain.AssemblyResolve += (sender, args) => { if (Libraries.TryGetValue(args.Name, out var file)) { return(Assembly.LoadFrom(file)); } Logger.LogError($"Could not find dependency: {args.Name}"); return(null); }; RegisterPlugins(); var advertising = PluginAdvertising.Get(); advertising.PluginFrameworkName = "rocket"; advertising.AddPlugins(Plugins.Select(p => p.Name)); SteamGameServer.SetKeyValue("unturned", Provider.APP_VERSION); SteamGameServer.SetKeyValue("rocket", "4.9.3.6"); }
public virtual void Load() { Logger.LogInfo("Loading with default settings..."); }