public ActionResult SetPoster(string characterId, string guildId, string message) { //find guild var guildObject = GetGuild(guildId); if (guildObject == null) { return(new ActionResult(ReturnCode.GuildNotFound)); } //find member GuildMember member = null; if (!guildObject.TryGetMember(characterId, out member)) { return(new ActionResult(ReturnCode.GuildMemberNotFound)); } //check privilegies if (!member.IsAddMemberGranted()) { return(new ActionResult(ReturnCode.GuildPrivilegeNotEnough)); } guildObject.SetPoster(message); guildObject.AddTransaction(CoalitionTransaction.MakeTransaction(CoalitionTransactionType.set_poster, member.characterName, characterId, 0)); MarkModified(guildId); SendGuildUpdateEvent(characterId, guildObject.GetInfo(mApplication)); return(new ActionResult(ReturnCode.Ok, new Hashtable { { (int)SPC.DayPoster, message } })); }
public bool KickMember(string moderCharacterID, string login, string characterID, string guildID) { var guild = GetGuild(guildID); if (guild == null) { return(false); } GuildMember moderMember = null; if (!guild.TryGetMember(moderCharacterID, out moderMember)) { return(false); } if (!moderMember.IsAddMemberGranted()) { return(false); } return(RemoveMember(login, characterID, guildID)); }
public bool SendInviteToGuildNotification(string sourceLogin, string sourceCharacterID, string targetLogin, string targetCharacterID, string guildID) { var sourcePlayer = mApplication.Players.GetExistingPlayerByLogin(sourceLogin); var targetPlayer = mApplication.Players.GetExistingPlayerByLogin(targetLogin); if (sourcePlayer == null) { log.Info("don't exists source player"); return(false); } if (targetPlayer == null) { log.Info("don't exists target player"); return(false); } var sourceCharacter = sourcePlayer.Data.GetCharacter(sourceCharacterID); var targetCharacter = targetPlayer.Data.GetCharacter(targetCharacterID); if (sourceCharacter == null) { log.Info("source character not found"); return(false); } if (targetCharacter == null) { log.Info("target character not found"); return(false); } if (targetCharacter.HasGuild()) { log.Info("target character already in some guild"); return(false); } Guild targetGuild = GetGuild(guildID); if (targetGuild == null) { log.Info("guild not found"); return(false); } GuildMember sourceMember = null; if (!targetGuild.TryGetMember(sourceCharacterID, out sourceMember)) { log.Info("source member not found"); return(false); } if (!sourceMember.IsAddMemberGranted()) { log.Info("not granted add members"); return(false); } //string text = string.Format("{0} invited you to group {1}. Do you want accept to group?", sourceLogin, targetGuild.name); Hashtable notificationData = new Hashtable { { (int)SPC.Action, (int)GuildAction.AddMember }, { (int)SPC.Guild, guildID }, { (int)SPC.SourceLogin, sourceLogin }, { (int)SPC.Name, targetGuild.name } }; string uniqueID = sourceCharacterID + sourceLogin + targetCharacterID + targetLogin + guildID + NotificationSourceServiceType.Guild.ToString() + NotificationSubType.InviteToGuild.ToString(); var notification = mApplication.Notifications.Create(uniqueID, "s_note_invite_guild", notificationData, NotficationRespondAction.YesDelete, NotificationSourceServiceType.Guild, NotificationSubType.InviteToGuild); mApplication.Notifications.SetNotificationToCharacter(targetCharacterID, notification); return(true); }