/// <summary> /// Initializes a new instance of the <see cref="StreamEntry"/> class. /// </summary> internal StreamEntry(AllianceMember member, AllianceMember executor, StreamEvent streamEvent) : this(member) { this.ExecutorHighID = executor.HighID; this.ExecutorLowID = executor.LowID; this.ExecutorName = executor.Name; this.Event = streamEvent; }
//adds a member to the alliance public void addMember(AllianceMember member) { this.Members.Add(new AllianceMemberMVVM(member, this.Alliance.IsHumanAlliance)); this.Alliance.addMember(member); setValues(); }
private void join(User user, AllianceMember rights = null) { this.members.Add(user); if (rights != null) { this.memberRights.Add(rights); } else { this.memberRights.Add(AllianceMember.noRights(user.id, this.id)); } user.group = this; user.allianceId = this.id; foreach (System.Collections.DictionaryEntry HashEntry in GeometryIndex.allFields) { Field fieldToSet = (Field)HashEntry.Value; if (fieldToSet.Influence.Count == 0) { continue; } if (fieldToSet.Owner == user) { fieldToSet.Entity = user.GetEntity(); } } JoinSecondarySpecificationGain(user); }
public static AllianceMember GetLocalPlayer() { long uid = GetLocalUid(); AllianceMember member = AlliancesManager.Instance.DetailMembers.Find(uid); return(member); }
public static bool createAlliance(User user, string name) { Core core = Core.Instance; List <Lockable> elementsToLock = new List <Lockable>(1); elementsToLock.Add(user); if (!LockingManager.lockAllOrSleep(elementsToLock)) { return(false); } try { //Prüfen ob der Nutzer noch Mitlgied einer ALlianz ist if (user.allianceId != 0 || user.group != null) { LockingManager.unlockAll(elementsToLock); return(false); } //create alliance int newId = (int)Core.Instance.identities.allianceId.getNext(); Alliance alliance = new Alliance(newId, name, "", "", user.id, 1000, null); core.alliances.TryAdd(newId, alliance); //add owner AllianceMember fullRights = AllianceMember.fullRights(user.id, newId); alliance.join(user, fullRights); //All relations from and towards the user are now concerning his new alliance: List <DiplomaticRelation> relations = new List <DiplomaticRelation>(); foreach (var relation in core.userRelations.getDiplomatics(user, 1)) { core.userRelations.setDiplomaticEntityState(alliance, relation.target, (Relation)relation.relationSenderProposal); relations.Add(new DiplomaticRelation(alliance.GetHashCode(), relation.target.GetHashCode(), relation.relationSenderProposal)); core.userRelations.setDiplomaticEntityState(relation.target, alliance, (Relation)relation.relationTargetProposal); relations.Add(new DiplomaticRelation(relation.target.GetHashCode(), alliance.GetHashCode(), relation.relationTargetProposal)); } //save alliance: core.dataConnection.saveAlliances(alliance); // new relations: Core.Instance.dataConnection.saveDiplomaticEntities(relations); //members: Core.Instance.dataConnection.saveAllianceMembers(alliance); CommunicationNode.CreateAllianceNode(alliance); } catch (Exception ex) { core.writeExceptionToLog(ex); } finally { LockingManager.unlockAll(elementsToLock); } return(true); }
private AllianceMembers _getAllianceMembers(IDbConnection connection, int userId, int userAllianceId, IGameUserService gameUserService) { var allianceMembers = new AllianceMembers(); var allianceUsers = GetAllianceUsers(connection, userAllianceId); var members = new List <AllianceMember>(); foreach (var a in allianceUsers) { var user = gameUserService.GetGameUser(connection, a.UserId); var member = new AllianceMember { AllianceUserId = a.Id, UserId = a.UserId, UserName = user.Nickname, OnlineStatus = user.IsOnline, UserPvp = user.PvpPoint, Role = new AllianceRole(a.RoleId) }; members.Add(member); } allianceMembers.CurrentUserRoleName = members.Where(i => i.UserId == userId).Select(i => i.Role.RoleName).First(); allianceMembers.Members = members; allianceMembers.SetComplexButtonView(); return(allianceMembers); }
internal override void Handle() { Alliance alliance = Alliances.Get(this.Connection.Avatar.Alliance.Identifier); if (alliance != null) { AllianceMember member = alliance.Members.Find(m => m.Identifier == this.MemberID); AllianceMember sender = alliance.Members.Find(m => m.Identifier == this.Connection.Avatar.Identifier); alliance.AddEntry(new StreamEntry(member, sender, ChangeAllianceMemberRoleMessage.IsHigherRoleThan(this.Role, member.Role) ? StreamEntry.StreamEvent.Promoted : StreamEntry.StreamEvent.Demoted)); member.Role = this.Role; if (this.Role == (int)Alliance.Role.Leader) { sender.Role = (int)Alliance.Role.CoLeader; alliance.AddEntry(new StreamEntry(sender, sender, StreamEntry.StreamEvent.Demoted)); } Alliances.Save(alliance); new AvailableServerCommandMessage(this.Connection, new LogicChangeAllianceRoleCommand(this.Connection) { Role = (Alliance.Role) this.Role }).Send(); } }
internal override void Handle() { LogicClientAvatar avatar = this.Connection.Avatar; Alliance alliance = avatar.Alliance; if (alliance != null) { AllianceMember member = alliance.Members.Find(m => m.Identifier == avatar.Identifier); avatar.ClanHighID = 0; avatar.ClanLowID = 0; avatar.Save(); if (alliance.Members.Size == 0) { Alliances.Delete(alliance); } else { if (member.Role == (int)Alliance.Role.Leader) { LeaveAllianceMessage.FindNewLeader(alliance, member); } } new AvailableServerCommandMessage(this.Connection, new LogicLeaveAllianceCommand(this.Connection, alliance.Identifier)).Send(); alliance.AddEntry(new StreamEntry(member, member, StreamEntry.StreamEvent.Left)); alliance.Members.Remove(member); Alliances.Save(alliance); } }
internal override void Handle() { Alliance alliance = Alliances.Get(this.AllianceID); if (alliance != null) { if (!alliance.Members.Contains(alliance.Members.Find(member => member.Identifier == this.Connection.Avatar.Identifier))) { AllianceMember member = new AllianceMember(this.Connection.Avatar, Alliance.Role.Member); alliance.Members.Add(member); this.Connection.Avatar.ClanHighID = alliance.HighID; this.Connection.Avatar.ClanLowID = alliance.LowID; this.Connection.Avatar.Save(); Alliances.Save(alliance); new AvailableServerCommandMessage(this.Connection, new LogicChangeAllianceRoleCommand(this.Connection) { Role = Alliance.Role.Member }).Send(); new AvailableServerCommandMessage(this.Connection, new LogicJoinAllianceCommand(this.Connection)).Send(); new AllianceStreamMessage(this.Connection).Send(); alliance.AddEntry(new StreamEntry(member, member, StreamEntry.StreamEvent.Joined)); this.Connection.Avatar.Save(); } } }
/// <summary> /// Initializes a new instance of the <see cref="StreamEntry"/> class. /// </summary> internal StreamEntry(AllianceMember member) { this.SenderHighID = member.HighID; this.SenderLowID = member.LowID; this.SenderName = member.Name; this.SenderLeague = member.League; this.SenderRole = (Alliance.Role)member.Role; }
public static bool IsMember(long uid) { AllianceMember member = AlliancesManager.Instance.DetailMembers.Find(uid); if (member == null) { return(false); } return(member.Role == eAllianceMemberRole.Member); }
public static bool IsOneOfAdmin(long uid) { AllianceMember member = AlliancesManager.Instance.DetailMembers.Find(uid); if (member == null) { return(false); } return(member.Role == eAllianceMemberRole.Admin || member.Role == eAllianceMemberRole.ExtraOwner || member.Role == eAllianceMemberRole.Owner); }
public bool CreateAllianceMember(AllianceMember allianceMember) { outpostwarsEntities entities = new outpostwarsEntities(); try { // Add tew New Player into the player Collection entities.AllianceMembers.Add(allianceMember); // Save changes return(entities.SaveChanges() == 1); } catch (DbEntityValidationException ex) { LogCriticalError(ex); } return(false); }
internal override void Execute() { LogicClientAvatar avatar = Avatars.Get(this.Identifier); if (avatar != null) { Alliance alliance = avatar.Alliance; AllianceMember allianceMember = alliance.Members.Find(member => member.Identifier == this.Identifier); if (allianceMember != null) { alliance.Members.Remove(allianceMember); } Alliances.Save(alliance); } }
private static void FindNewLeader(Alliance alliance, AllianceMember member) { LogicClientAvatar avatar = Avatars.Get(member.Identifier); AllianceMember newLeader = alliance.Members.Find(member => member.Role == (int)Alliance.Role.CoLeader); const Alliance.Role newRole = Alliance.Role.Leader; if (newLeader != null) { newLeader.Role = (int)newRole; } else { newLeader = alliance.Members.Find(member => member.Role == (int)Alliance.Role.Admin); if (newLeader != null) { newLeader.Role = (int)newRole; } else { newLeader = alliance.Members[Loader.Random.Rand(alliance.Members.Count)]; if (newLeader != null) { newLeader.Role = (int)newRole; } } } alliance.AddEntry(new StreamEntry(member, member, StreamEntry.StreamEvent.Demoted)); alliance.AddEntry(new StreamEntry(newLeader, member, StreamEntry.StreamEvent.Promoted)); avatar.Save(); Avatars.Get(newLeader.Identifier).Save(); new AvailableServerCommandMessage(avatar.Connection, new LogicChangeAllianceRoleCommand(avatar.Connection) { Role = newRole }).Send(); }
internal override void Handle() { if (this.Connection.Avatar.IsInAlliance) { if (!this.Message.IsNullOrEmptyOrWhitespace()) { if (this.Message.Length <= 128) { if (this.Message.StartsWith(" ")) { this.Message = this.Message.Remove(0, 1); } if (this.Message.Length > 0) { AllianceMember sender = this.Connection.Avatar.Alliance.Members.Find(member => member.Identifier == this.Connection.Avatar.Identifier); this.Connection.Avatar.Alliance.AddEntry(new StreamEntry(sender, this.Message)); } } } } }
private void SetMember(AllianceMember member, LegionMemberData memberData) { memberData.uid = member.Uid; memberData.memberName = member.Name; memberData.level = member.Level; memberData.portrait = member.Portrait; memberData.templateId = member.templateId; memberData.skin = member.Skin; memberData.headFrame = member.HeadFrame; memberData.todaydonate = member.TodayDonateDegree; memberData.totaldonate = member.DonateDegree; memberData.dutyType = member.Role; memberData.offlineTime = member.OfflineTime; memberData.dutyTypeStr = GetMemberPosName(memberData.dutyType); System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区 DateTime dt = startTime.AddSeconds(member.OfflineTime); if (member.OfflineTime != 0) { TimeSpan behind = DateTime.Now - dt; memberData.offlineHour = (int)(behind.TotalHours); } else { memberData.offlineHour = 0; } memberData.todayDonateTimes = member.TodayDonated.Times; if (member.Uid == LoginManager.Instance.LocalUserId.Value) //如果是用户自己 { memberData.todayLuxuryDonateTimes = member.TodayDonated.LuxuryTimes; memberData.todayHcDonateTimes = member.TodayDonated.HcTimes; memberData.todayGoldDonateTimes = member.TodayDonated.GoldTimes; legionData.userMemberData = memberData; } }
public AllianceMemberMVVM(AllianceMember member, Boolean isremoveable) { this.Member = member; this.IsRemoveable = isremoveable; }
public static string FromAllianceRole( AllianceMember.Role role ) { return role.ToString(); }
public static bool GetIsInAlliance(long uid) { AllianceMember member = AlliancesManager.Instance.DetailMembers.Find(uid); return(member != null); }
/// <summary> /// Initializes a new instance of the <see cref="StreamEntry"/> class. /// </summary> internal StreamEntry(AllianceMember member, string message) : this(member) { this.Message = message; }