private CreatureEntity[] GetCreatureToUpdate(string creatureName, IWurmServer server) { if (server == null) { logger.Info("Skipped creature lookup at GetCreatureToUpdate due to unknown current server"); return(new CreatureEntity[0]); } IEnumerable <HerdEntity> herdsQuery = context.Herds; if (!parentModule.Settings.DoNotBlockDataUpdateUnlessMultiplesInEntireDb) { herdsQuery = herdsQuery.Where(x => x.Selected); } var herdsToCheck = herdsQuery.Select(x => x.HerdId).ToArray(); var creaturesQuery = context.Creatures.Where( x => x.Name.Equals(creatureName, StringComparison.CurrentCultureIgnoreCase) && herdsToCheck.Contains(x.Herd)); if (UseServerAsCreatureId) { creaturesQuery = creaturesQuery.Where( entity => string.IsNullOrEmpty(entity.ServerName) || server.ServerName.Matches(entity.ServerName)); } return(creaturesQuery.ToArray()); }
public bool UpdateSkill([NotNull] SkillInfo newSkillInfo, [NotNull] IWurmServer server) { if (newSkillInfo == null) { throw new ArgumentNullException(nameof(newSkillInfo)); } if (server == null) { throw new ArgumentNullException(nameof(server)); } var key = new CompositeSkillKey(newSkillInfo.NameNormalized, server.ServerGroup); bool skillUpdated = false; lock (locker) { SkillInfo info; if (skillsMap.TryGetValue(key, out info)) { if (info.Stamp < newSkillInfo.Stamp) { skillsMap[key] = newSkillInfo; skillUpdated = true; } } else { skillsMap.Add(key, newSkillInfo); skillUpdated = true; } } return(skillUpdated); }
public override void Setup() { base.Setup(); event201412Writer = new LogWriter( Path.Combine(ClientMock.InstallDirectory.FullPath, "players", "Testguy", "Logs", "_Event.2014-12.txt"), new DateTime(2014, 12, 1), true); server = System.GetByName(serverName); }
async void UpdateCurrentServer() { try { var server = await character.TryGetCurrentServerAsync().ConfigureAwait(false); if (server != null) { currentServer = server; } else { logger.Log(LogLevel.Warn, "Current server unknown for: " + character.Name.Capitalized, this, null); } } catch (Exception exception) { logger.Log(LogLevel.Error, "error on updating current server", this, exception); } await Task.Run(() => currentServerLookupFinished.TrySetResult(Time.Get.LocalNow)); }
async Task AttemptToEstablishCurrentServer(TimeSpan timestampToSearch) { var scanResults = await character.Logs.ScanLogsServerGroupRestrictedAsync(DateTime.Now - timestampToSearch, DateTime.Now, LogType.Event, new ServerGroup(ServerGroupId), ScanResultOrdering.Descending); foreach (var entry in scanResults) { var serverStamp = entry.TryGetServerFromLogEntry(); if (serverStamp != null) { var server = wurmApi.Servers.GetByName(serverStamp.ServerName); if (server.ServerGroup.ServerGroupId == ServerGroupId) { currentServerOnTheGroup = server; break; } } } }
void CharacterOnLogInOrCurrentServerPotentiallyChanged(object sender, PotentialServerChangeEventArgs potentialServerChangeEventArgs) { currentServerOnTheGroup = wurmApi.Servers.GetByName(potentialServerChangeEventArgs.ServerName); }