コード例 #1
0
        public void UnloadPlugin()
        {
            Logger.Log($"Unloading plugin {Name}...", ConsoleColor.DarkRed);

            PluginState = PluginState.Unloaded;
            CommandManager.DeregisterCommands(Name);
            Unload();
        }
コード例 #2
0
        public static void Puts(string message, Color color)
        {
            Logger.Log($"Broadcast: {message}", ConsoleColor.Yellow);

            WrapMessage(message).ForEach(s =>
            {
                ChatManager.serverSendMessage(s, color);
            });
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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;
        }