示例#1
0
        public SkillDumpsManager([NotNull] IWurmCharacter character, [NotNull] IWurmPaths wurmPaths, IWurmApiLogger logger)
        {
            if (character == null)
            {
                throw new ArgumentNullException(nameof(character));
            }
            if (wurmPaths == null)
            {
                throw new ArgumentNullException(nameof(wurmPaths));
            }
            this.character = character;
            this.logger    = logger;

            skillDumpsDirectory = new DirectoryInfo(wurmPaths.GetSkillDumpsFullPathForCharacter(character.Name));
            skillDumpsDirectory.Create();

            skillDumpFilesMonitor = new FileSystemWatcher()
            {
                Path = skillDumpsDirectory.FullName,
                IncludeSubdirectories = false
            };
            skillDumpFilesMonitor.Created            += SkillDumpFilesMonitorOnChanged;
            skillDumpFilesMonitor.Changed            += SkillDumpFilesMonitorOnChanged;
            skillDumpFilesMonitor.Renamed            += SkillDumpFilesMonitorOnChanged;
            skillDumpFilesMonitor.Deleted            += SkillDumpFilesMonitorOnChanged;
            skillDumpFilesMonitor.EnableRaisingEvents = true;
        }
示例#2
0
        public virtual void Initialize(PlayerTimersGroup parentGroup, string player, TimerDefinition definition)
        {
            //derived must call this base before their own inits!
            TimerDefinition   = definition;
            Name              = definition.ToString();
            ShortName         = definition.ToString();
            playerTimersGroup = parentGroup;
            Player            = player;

            View = new TimerDisplayView(this);

            CDNotify = new CooldownHandler(Logger, SoundManager, TrayPopups)
            {
                DurationMillis  = PopupDurationMillis,
                Title           = Player,
                Message         = Name + " cooldown finished",
                SoundEnabled    = SoundNotify,
                PopupEnabled    = PopupNotify,
                PersistentPopup = PersistentPopup,
                SoundId         = SoundId
            };
            if (PopupOnWaLaunch)
            {
                CDNotify.ResetShownAndPlayed();
            }

            WurmCharacter = WurmApi.Characters.Get(new CharacterName(player));
            WurmCharacter.LogInOrCurrentServerPotentiallyChanged += _handleServerChange;

            telemetry.TrackEvent($"Timers: initialized timer {Name}");
        }
 public WurmCharacterLogs(
     [NotNull] IWurmCharacter character,
     [NotNull] IWurmServerGroups serverGroups,
     [NotNull] IWurmLogsHistory logsHistory,
     [NotNull] IWurmServers wurmServers,
     [NotNull] IWurmApiLogger logger)
 {
     if (character == null)
     {
         throw new ArgumentNullException(nameof(character));
     }
     if (serverGroups == null)
     {
         throw new ArgumentNullException(nameof(serverGroups));
     }
     if (logsHistory == null)
     {
         throw new ArgumentNullException(nameof(logsHistory));
     }
     if (wurmServers == null)
     {
         throw new ArgumentNullException(nameof(wurmServers));
     }
     if (logger == null)
     {
         throw new ArgumentNullException(nameof(logger));
     }
     this.character   = character;
     this.logsHistory = logsHistory;
     this.logger      = logger;
 }
示例#4
0
        public LiveSessionForm(string gameChar, IWurmApi wurmApi, ILogger logger)
        {
            if (gameChar == null)
            {
                throw new ArgumentNullException("gameChar");
            }
            if (wurmApi == null)
            {
                throw new ArgumentNullException("wurmApi");
            }
            if (logger == null)
            {
                throw new ArgumentNullException("logger");
            }
            this.gameChar = gameChar;
            this.wurmApi  = wurmApi;
            this.logger   = logger;
            InitializeComponent();

            Text = "Skills monitor " + gameChar;

            wurmCharacter = wurmApi.Characters.Get(gameChar);

            objectListView.SetObjects(reportItems);
            descBase = gameChar + " (since: " + DateTime.Now.ToString("g") + ")";
            stopwatch.Start();

            Collecting = true;
            timer.Start();

            wurmCharacter.Skills.SkillsChanged += SkillsOnSkillsChanged;
        }
示例#5
0
        public WurmCharacterSkills([NotNull] IWurmCharacter character, [NotNull] IPublicEventInvoker publicEventInvoker,
                                   [NotNull] IWurmLogsMonitorInternal logsMonitor, [NotNull] IWurmLogsHistory logsHistory,
                                   [NotNull] IWurmApiLogger logger, IWurmPaths wurmPaths,
                                   [NotNull] IInternalEventAggregator internalEventAggregator)
        {
            if (character == null)
            {
                throw new ArgumentNullException(nameof(character));
            }
            if (publicEventInvoker == null)
            {
                throw new ArgumentNullException(nameof(publicEventInvoker));
            }
            if (logsMonitor == null)
            {
                throw new ArgumentNullException(nameof(logsMonitor));
            }
            if (logsHistory == null)
            {
                throw new ArgumentNullException(nameof(logsHistory));
            }
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }
            if (internalEventAggregator == null)
            {
                throw new ArgumentNullException(nameof(internalEventAggregator));
            }
            this.character          = character;
            this.publicEventInvoker = publicEventInvoker;
            this.logsMonitor        = logsMonitor;
            this.logsHistory        = logsHistory;
            this.logger             = logger;

            skillsMap  = new SkillsMap();
            skillDumps = new SkillDumpsManager(character, wurmPaths, logger);

            UpdateCurrentServer();

            onSkillsChanged =
                publicEventInvoker.Create(
                    InvokeOnSkillsChanged,
                    WurmApiTuningParams.PublicEventMarshallerDelay);

            internalEventAggregator.Subscribe(this);

            logsMonitor.SubscribeInternal(character.Name, LogType.Skills, EventHandler);
        }
        public SkillLevelTrigger(string characterName, TriggerEntity triggerEntity, ISoundManager soundManager,
                                 ITrayPopups trayPopups, IWurmApi wurmApi, ILogger logger)
            : base(triggerEntity, soundManager, trayPopups, wurmApi, logger)
        {
            if (characterName == null)
            {
                throw new ArgumentNullException("characterName");
            }
            this.characterName = characterName;
            this.logger        = logger;
            skillEntryParser   = new SkillEntryParser(wurmApi);
            LockedLogTypes     = new[] { LogType.Skills };

            SkillFeedback = "(no data)";

            skillHistoricRefresher = new TriggerableAsyncOperation(RefreshSkill);

            character = wurmApi.Characters.Get(characterName);
            character.LogInOrCurrentServerPotentiallyChanged += CharacterOnLogInOrCurrentServerPotentiallyChanged;

            skillHistoricRefresher.Trigger();
        }
 public void Initialize()
 {
     try
     {
         layoutControl = new PlayerLayoutView(this);
         if (!Hidden)
         {
             this.timersFeature.RegisterTimersGroup(layoutControl);
         }
         wurmApi.LogsMonitor.Subscribe(CharacterName, LogType.AllLogs, OnNewLogEvents);
         character = wurmApi.Characters.Get(CharacterName);
         character.LogInOrCurrentServerPotentiallyChanged += CharacterOnLogInOrCurrentServerPotentiallyChanged;
     }
     catch (Exception)
     {
         if (layoutControl != null)
         {
             layoutControl.SetInitializationError();
         }
         throw;
     }
     PerformAsyncInits();
 }
示例#8
0
 public override void Setup()
 {
     base.Setup();
     wurmCharacter = System.Get(new CharacterName("Testguy"));
 }
示例#9
0
        public PlayerManager(
            [NotNull] GrangerFeature parentModule,
            [NotNull] GrangerContext context,
            [NotNull] string playerName,
            [NotNull] IWurmApi wurmApi,
            [NotNull] ILogger logger,
            [NotNull] ITrayPopups trayPopups,
            [NotNull] IWurmAssistantConfig wurmAssistantConfig,
            [NotNull] CreatureColorDefinitions creatureColorDefinitions,
            [NotNull] GrangerSettings grangerSettings,
            [NotNull] ITelemetry telemetry)
        {
            if (parentModule == null)
            {
                throw new ArgumentNullException(nameof(parentModule));
            }
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }
            if (playerName == null)
            {
                throw new ArgumentNullException(nameof(playerName));
            }
            if (wurmApi == null)
            {
                throw new ArgumentNullException(nameof(wurmApi));
            }
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }
            if (trayPopups == null)
            {
                throw new ArgumentNullException(nameof(trayPopups));
            }
            if (wurmAssistantConfig == null)
            {
                throw new ArgumentNullException(nameof(wurmAssistantConfig));
            }
            if (creatureColorDefinitions == null)
            {
                throw new ArgumentNullException(nameof(creatureColorDefinitions));
            }
            if (grangerSettings == null)
            {
                throw new ArgumentNullException(nameof(grangerSettings));
            }
            if (telemetry == null)
            {
                throw new ArgumentNullException(nameof(telemetry));
            }
            this.parentModule = parentModule;
            this.wurmApi      = wurmApi;
            this.logger       = logger;
            this.PlayerName   = playerName;

            creatureUpdateManager = new CreatureUpdatesManager(this.parentModule, context, this, trayPopups, logger, wurmAssistantConfig, creatureColorDefinitions, grangerSettings, telemetry);

            wurmApi.LogsMonitor.Subscribe(PlayerName, LogType.Event, OnNewEventLogEvents);

            character = wurmApi.Characters.Get(PlayerName);
            character.LogInOrCurrentServerPotentiallyChanged += CharacterOnLogInOrCurrentServerPotentiallyChanged;
            character.Skills.SkillsChanged += SkillsOnSkillsChanged;

            BeginUpdateSkillInfo();
        }
 public override void Setup()
 {
     base.Setup();
     wurmCharacter = System.Get(new CharacterName("Testguy"));
 }