Exemple #1
0
            public async Task ToggleAntInv()
            {
                var Guild     = Context.Guild as SocketGuild;
                var gldConfig = GuildHandler.GuildConfigs[Guild.Id];

                if (!gldConfig.NoInvites)
                {
                    gldConfig.NoInvites = true;
                    await ReplyAsync(":gear: Anti Invites has now been enabled!");
                }
                else
                {
                    gldConfig.NoInvites = false;
                    await ReplyAsync(":skull_crossbones: Anti Invites has been disabled!.");
                }
                GuildHandler.GuildConfigs[Context.Guild.Id] = gldConfig;
                await GuildHandler.SaveAsync(GuildHandler.GuildConfigs);
            }
Exemple #2
0
        public async Task WelcomeMessageAsync([Remainder] string msg = null)
        {
            var Guild = Context.Guild as SocketGuild;

            var gldConfig = GuildHandler.GuildConfigs[Guild.Id];

            if (msg == null)
            {
                await ReplyAsync("Remember that you can use {user} to get the username and {guild} for server name\nCurrent Welcome message for this guild\n" + gldConfig.WelcomeMessages);
            }
            else
            {
                gldConfig.WelcomeMessages = msg;
                GuildHandler.GuildConfigs[Context.Guild.Id] = gldConfig;
                await GuildHandler.SaveAsync(GuildHandler.GuildConfigs);
                await ReplyAsync($"Guild Welcome Message has been set to:\n```{msg}```");
            }
        }
Exemple #3
0
        private async Task SendMessage(CachedValue <List <string> > messages, params string[] findAndReplace)
        {
            SocketTextChannel channel = GuildHandler.GetChannel(_channelId.GetValue()) as SocketTextChannel;

            string[] guildMessages = messages.GetValue().ToArray();

            if (guildMessages.Any())
            {
                string message = guildMessages[new Random().Next(0, guildMessages.Length)];

                for (int i = 0; i < findAndReplace.Length; i += 2)
                {
                    message = message.Replace(findAndReplace[i], findAndReplace[i + 1]);
                }

                await MessageControl.SendMessage(channel, message);
            }
        }
Exemple #4
0
            public async Task ToggleBansAsync()
            {
                var Guild     = Context.Guild as SocketGuild;
                var gldConfig = GuildHandler.GuildConfigs[Guild.Id];

                if (!gldConfig.AdminLog.IsEnabled)
                {
                    gldConfig.AdminLog.IsEnabled = true;
                    await ReplyAsync(":gear:   Now logging bans.");
                }
                else
                {
                    gldConfig.AdminLog.IsEnabled = false;
                    await ReplyAsync(":skull_crossbones:  No longer logging bans.");
                }
                GuildHandler.GuildConfigs[Context.Guild.Id] = gldConfig;
                await GuildHandler.SaveAsync(GuildHandler.GuildConfigs);
            }
Exemple #5
0
        /// <summary>
        /// Disbands the guild
        /// </summary>
        /// <param name="update">if true, sends event to the guild</param>
        public void Disband()
        {
            //using (syncRoot.Enter())
            lock (this)
            {
                GuildHandler.SendEventToGuild(this, GuildEvents.DISBANDED);

                var members = Members.Values.ToArray();

                foreach (var member in members)
                {
                    RemoveMember(member, false);
                }

                GuildMgr.Instance.UnregisterGuild(this);
                RealmServer.IOQueue.AddMessage(() => Delete());
            }
        }
Exemple #6
0
        public void WithdrawMoney(Character withdrawer, GameObject bankObj, uint withdrawl)
        {
            if (!CheckBankObj(withdrawer, bankObj))
            {
                return;
            }

            if (withdrawl == 0)
            {
                return;
            }
            if (Guild.Money < withdrawl)
            {
                return;
            }

            var member = withdrawer.GuildMember;

            if (member == null)
            {
                return;
            }

            if (!member.HasRight(GuildPrivileges.WITHDRAW_GOLD) ||
                member.HasRight(GuildPrivileges.WITHDRAW_GOLD_LOCK))
            {
                return;
            }
            if (member.BankMoneyWithdrawlAllowance < withdrawl)
            {
                return;
            }

            Guild.Money      -= withdrawl;
            withdrawer.Money += withdrawl;
            member.BankMoneyWithdrawlAllowance -= withdrawl;

            BankLog.LogEvent(GuildBankLogEntryType.WithdrawMoney, withdrawer, withdrawl, null, 0, null);

            GuildHandler.SendMemberRemainingDailyWithdrawlAllowance(withdrawer, member.BankMoneyWithdrawlAllowance);
            GuildHandler.SendGuildBankTabNames(withdrawer, bankObj);
            GuildHandler.SendGuildBankTabContents(withdrawer, bankObj, 0);
            GuildHandler.SendGuildBankMoneyUpdate(withdrawer, bankObj);
        }
        public static void CommonCharacterBasicInformations(WorldClient client)
        {
            CharacterHandler.SendCharacterSelectedSuccessMessage(client);
            ContextHandler.SendNotificationListMessage(client, new int[] { 2147483647 });
            InventoryHandler.SendInventoryContentMessage(client);
            ShortcutHandler.SendShortcutBarContentMessage(client, ShortcutBarEnum.GENERAL_SHORTCUT_BAR);
            ShortcutHandler.SendShortcutBarContentMessage(client, ShortcutBarEnum.SPELL_SHORTCUT_BAR);
            ContextRoleplayHandler.SendEmoteListMessage(client, (
                                                            from entry in Enumerable.Range(0, 21)
                                                            select(byte) entry).ToList <byte>());

            PvPHandler.SendAlignmentRankUpdateMessage(client);
            if (client.Character.Guild != null)
            {
                GuildHandler.SendGuildMembershipMessage(client, client.Character.GuildMember);
                GuildHandler.SendGuildInformationsGeneralMessage(client, client.Character.Guild);
                GuildHandler.SendGuildInformationsMembersMessage(client, client.Character.Guild);
                if (client.Character.Guild.Alliance != null)
                {
                    AllianceHandler.SendAllianceMembershipMessage(client, client.Character.Guild.Alliance);
                    AllianceHandler.SendAllianceInsiderInfoMessage(client, client.Character.Guild.Alliance);
                }
            }
            ChatHandler.SendEnabledChannelsMessage(client, new sbyte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13 }, new sbyte[0]);
            InventoryHandler.SendSpellListMessage(client, true);
            InitializationHandler.SendSetCharacterRestrictionsMessage(client);
            InventoryHandler.SendInventoryWeightMessage(client);
            FriendHandler.SendFriendWarnOnConnectionStateMessage(client, client.Character.FriendsBook.WarnOnConnection);
            FriendHandler.SendFriendWarnOnLevelGainStateMessage(client, client.Character.FriendsBook.WarnOnLevel);
            GuildHandler.SendGuildMemberWarnOnConnectionStateMessage(client, client.Character.WarnOnGuildConnection);
            AchievementHandler.SendAchievementListMessage(client, client.Character.Record.FinishedAchievements, client.Character.Achievement.GetRewardableAchievements());
            client.Character.SendConnectionMessages();
            ContextRoleplayHandler.SendGameRolePlayArenaUpdatePlayerInfosMessage(client);
            CharacterHandler.SendCharacterCapabilitiesMessage(client);

            client.WorldAccount.LastConnection     = new System.DateTime?(System.DateTime.Now);
            client.WorldAccount.LastIp             = client.IP;
            client.WorldAccount.ConnectedCharacter = new int?(client.Character.Id);

            client.Character.Record.LastUsage = new System.DateTime?(System.DateTime.Now);
            ServerBase <WorldServer> .Instance.DBAccessor.Database.Update(client.WorldAccount);

            ServerBase <WorldServer> .Instance.DBAccessor.Database.Update(client.Character.Record);
        }
Exemple #8
0
        /// <summary>
        /// Cleanup character invitations and group leader, looter change on character logout/disconnect
        /// </summary>
        /// <param name="member">The GuildMember logging out / disconnecting (or null if the corresponding Character is not in a Guild)</param>
        internal void OnCharacterLogout(GuildMember member)
        {
            if (member == null)
            {
                // null check is only required because we stated in the documentation of this method that memeber is allowed to be null
                return;
            }

            var chr          = member.Character;
            var listInviters = RelationMgr.Instance.GetPassiveRelations(chr.EntityId.Low, CharacterRelationType.GuildInvite);

            foreach (IBaseRelation inviteRelation in listInviters)
            {
                RelationMgr.Instance.RemoveRelation(inviteRelation);
            }
            foreach (var activeSkill in chr.Guild.ActiveSkills)
            {
                activeSkill.RemoveFromCharacter(chr);
            }
            var guild = member.Guild;

            if (guild == null)             // ???
            {
                return;
            }

            member.LastLogin = DateTime.Now;
            var zone = member.Character.Zone;

            member.ZoneId = zone != null ? (int)zone.Id : 0;
            member.Class  = member.Character.Class;
            member.Level  = member.Character.Level;

            member.Character = null;

            member.UpdateLater();

            using (membersLock.EnterWriteLock())
            {
                OfflineMembers[chr.EntityId.Low] = member;
            }

            GuildHandler.SendEventToGuild(member.Guild, GuildEvents.OFFLINE, member);
        }
Exemple #9
0
        public async Task UnMute(IUser user)
        {
            var Config = GuildHandler.GuildConfigs[Context.Guild.Id];
            var muted  = Config.MutedList.Select(x => x.id);
            var muts   = Config.MutedList.Where(x => x.id == user.Id).FirstOrDefault();


            if (user == null)
            {
                await ReplyAsync("Cant UnMute someone that dont exist");

                return;
            }

            if (!muted.Contains(user.Id))
            {
                await ReplyAsync("This person is not muted");

                return;
            }

            var User = (user as SocketGuildUser);

            var MuteRole = User.Guild.GetRole(Config.MuteRoleID);
            await User.RemoveRoleAsync(MuteRole);

            await User.ModifyAsync(x => x.Mute = false);


            if (muted.Contains(user.Id))
            {
                Config.MutedList.Remove(muts);
            }



            var SUser = Context.Message.Author as SocketGuildUser;
            var xx    = user as SocketGuildUser;

            await ReplyAsync($"{SUser.Nickname ?? SUser.Username} successfully UnMuted {xx.Nickname ?? xx.Username}");

            GuildHandler.GuildConfigs[Context.Guild.Id] = Config;
            await GuildHandler.SaveAsync(GuildHandler.GuildConfigs);
        }
Exemple #10
0
        public bool ChangeParameters(Character modifier, GuildMember member, short rank, byte xpPercent, uint rights)
        {
            bool result;

            lock (this.m_lock)
            {
                if (modifier.Guild != member.Guild)
                {
                    result = false;
                }
                else
                {
                    if (modifier.GuildMember != member && modifier.GuildMember.IsBoss && rank == 1)
                    {
                        this.SetBoss(member);
                    }
                    else
                    {
                        if (modifier.GuildMember == member || !member.IsBoss)
                        {
                            if (modifier.GuildMember.HasRight(GuildRightsBitEnum.GUILD_RIGHT_MANAGE_RANKS) && rank >= 0 && rank <= 35)
                            {
                                member.RankId = rank;
                            }
                            if (modifier.GuildMember.HasRight(GuildRightsBitEnum.GUILD_RIGHT_MANAGE_RIGHTS))
                            {
                                member.Rights = (GuildRightsBitEnum)rights;
                            }
                        }
                    }
                    if (modifier.GuildMember.HasRight(GuildRightsBitEnum.GUILD_RIGHT_MANAGE_XP_CONTRIBUTION) || (modifier.GuildMember == member && modifier.GuildMember.HasRight(GuildRightsBitEnum.GUILD_RIGHT_MANAGE_MY_XP_CONTRIBUTION)))
                    {
                        member.GivenPercent = Convert.ToByte((xpPercent < 90) ? xpPercent : 90);
                    }
                    this.UpdateMember(member);
                    if (member.IsConnected)
                    {
                        GuildHandler.SendGuildMembershipMessage(member.Character.Client, member);
                    }
                    result = true;
                }
            }
            return(result);
        }
Exemple #11
0
        public override void Initialize()
        {
            commandSet = new VoiceNameSet()
            {
                ParentPlugin = this
            };
            GuildHandler.ChannelCreated        += OnChannelCreated;
            GuildHandler.ChannelDestroyed      += OnChannelDestroyed;
            GuildHandler.UserVoiceStateUpdated += OnVoiceStateUpdated;
            GuildHandler.GuildMemberUpdated    += OnGuildMemberUpdated;
            InitDefaultTags();

            _channelNames = GetConfigCache("ChannelNames", x => x.GetGuild().VoiceChannels.ToDictionary(y => y.Id, z => z.Name));
            _toIgnore     = GetConfigCache("ToIgnore", x => new List <ulong>()
            {
                (x.GetGuild().AFKChannel?.Id).GetValueOrDefault()
            });
            //_nameFormat = GetConfigCache("NameFormat", x => "[TAGS][NAME] - [GAME]");
            _musicBotId          = GetConfigCache("MusicBotId", x => (ulong)0);
            _internationalRoleId = GetConfigCache("MusicBotId", x => (ulong)0);

            AddConfigInfo("Set Channel Name", "Display channel names", () => "Current channel names:\n" + string.Join('\n', _channelNames.GetValue().Select(x => x.Value).ToArray()));
            AddConfigInfo("Set Channel Name", "Set channel name", new Action <SocketVoiceChannel, string>((x, y) => _channelNames.MutateValue(z => z[x.Id] = y)), () => "Succesfully set channel names.", "Channel", "New name");
            AddConfigInfo("Set Channel Name", "Set channel name", new Action <string, string>((x, y) => _channelNames.MutateValue(z => z[GuildHandler.FindVoiceChannel(x).Id] = y)), () => "Succesfully set channel names.", "Channel", "New name");

            AddConfigInfo("Dont Name Channel", "Ignore channel", new Action <SocketVoiceChannel>((x) => _toIgnore.MutateValue(y => y.Add(x.Id))), () => "Added channel to list of ignored.", "Channel");
            AddConfigInfo("Dont Name Channel", "Ignore channel", new Action <ulong>((x) => _toIgnore.MutateValue(y => y.Add(x))), () => "Added channel to list of default.", "ignored");
            AddConfigInfo("Dont Name Channel", "Ignore channel", new Action <string>((x) => _toIgnore.MutateValue(y => y.Add(GuildHandler.FindVoiceChannel(x).Id))), () => "Added channel to list of ignored.", "Channel");

            AddConfigInfo("Do Name Channel", "Unignore channel", new Action <SocketVoiceChannel>((x) => _toIgnore.MutateValue(y => y.Remove(x.Id))), () => "Removed channel from list of ignored.", "Channel");
            AddConfigInfo("Do Name Channel", "Unignore channel", new Action <ulong>((x) => _toIgnore.MutateValue(y => y.Remove(x))), () => "Removed channel from list of ignored.", "Channel");
            AddConfigInfo("Do Name Channel", "Unignore channel", new Action <string>((x) => _toIgnore.MutateValue(y => y.Remove(GuildHandler.FindVoiceChannel(x).Id))), () => "Removed channel from list of ignored.", "Channel");

            AddConfigInfo("Set Music Bot", "Set music bot.", new Action <SocketGuildUser>((x) => _musicBotId.SetValue(x.Id)), () => $"Set music bot to be {GuildHandler.GetUser(_musicBotId.GetValue()).GetShownName()}.", "Music Bot");
            AddConfigInfo("Set Music Bot", "Set music bot.", new Action <string>((x) => _musicBotId.SetValue(GuildHandler.FindUser(x).Id)), () => $"Set music bot to be {GuildHandler.GetUser(_musicBotId.GetValue()).GetShownName()}.", "Music Bot");
            AddConfigInfo("Set Music Bot", "Show music bot.", () => GuildHandler.GetUser(_musicBotId.GetValue()) == null ? "Current music bot doesn't exist :(" : "Current music bot is " + GuildHandler.GetUser(_musicBotId.GetValue()).GetShownName());

            AddConfigInfo("Set International Role", "Set role.", new Action <SocketRole>((x) => _internationalRoleId.SetValue(x.Id)), () => $"Set international role to be {GuildHandler.GetRole(_internationalRoleId.GetValue()).Name}.", "Role");
            AddConfigInfo("Set International Role", "Set role.", new Action <string>((x) => _internationalRoleId.SetValue(GuildHandler.FindRole(x).Id)), () => $"Set international role to be {GuildHandler.GetRole(_internationalRoleId.GetValue()).Name}.", "Role Name");
            AddConfigInfo("Set International Role", "Show role.", () => GuildHandler.GetRole(_internationalRoleId.GetValue()) == null ? "Current international role doesn't exist :(" : "Current international role is " + GuildHandler.GetRole(_internationalRoleId.GetValue()).Name);

            SendMessage("Lomztein-Command Root", "AddCommand", commandSet);
        }
Exemple #12
0
        public override void Initialize()
        {
            GuildHandler.ReactionAdded   += OnReactionAdded;
            GuildHandler.ReactionRemoved += OnReactionRemoved;
            SendMessage("Lomztein-Command Root", "AddCommand", karmaCommand);
            karmaCommand.ParentPlugin = this;

            _upvoteEmoteId   = GetConfigCache("UpvoteEmoteId", x => x.GetGuild().Emotes.Where(y => y.Name == "upvote").FirstOrDefault().ZeroIfNull());
            _downvoteEmoteId = GetConfigCache("DownvoteEmoteId", x => x.GetGuild().Emotes.Where(y => y.Name == "downvote").FirstOrDefault().ZeroIfNull());

            _karma = GetDataCache("Karma", x => new Dictionary <ulong, Selfworth>());

            AddConfigInfo("Set Upvote Emote", "Get emote", () => $"Current upvote emote is '{GuildHandler.GetGuild().GetEmoteAsync(_upvoteEmoteId.GetValue()).Result.Name}'.");
            AddConfigInfo("Set Upvote Emote", "Set emote", new Action <string>(x => _upvoteEmoteId.SetValue((GuildHandler.GetGuild().GetEmoteAsync(_upvoteEmoteId.GetValue()).Result?.Id).GetValueOrDefault())),
                          () => $"Set upvote emote to '{GuildHandler.GetGuild().GetEmoteAsync(_upvoteEmoteId.GetValue()).Result?.Name}'.", "Emote");
            AddConfigInfo("Set Downvote Emote", "Get emote", () => $"Current downvote emote is '{GuildHandler.GetGuild().GetEmoteAsync(_downvoteEmoteId.GetValue()).Result.Name}'.");
            AddConfigInfo("Set Downvote Emote", "Set emote", new Action <string>(x => _downvoteEmoteId.SetValue((GuildHandler.GetGuild().GetEmoteAsync(_downvoteEmoteId.GetValue()).Result?.Id).GetValueOrDefault())),
                          () => $"Set downote emote to '{GuildHandler.GetGuild().GetEmoteAsync(_downvoteEmoteId.GetValue()).Result?.Name}'.", "Emote");
        }
Exemple #13
0
        public async Task bssssssessjjjx(string hex)
        {
            var Config = GuildHandler.GuildConfigs[Context.Guild.Id];

            if (!hex.Contains("#") || hex.Length > 7)
            {
                await ReplyAsync("Has a color hex starting with #");

                return;
            }
            else
            {
                Config.callcard.WelcomeColor = hex;

                GuildHandler.GuildConfigs[Context.Guild.Id] = Config;
                await GuildHandler.SaveAsync(GuildHandler.GuildConfigs);
                await ReplyAsync("Card welcome Color set");
            }
        }
Exemple #14
0
        public void SetBankTabText(Character chr, byte tabId, string newText)
        {
            var member = chr.GuildMember;

            if (member == null)
            {
                return;
            }

            var rank = member.Rank;

            if (rank == null)
            {
                return;
            }

            if (tabId < 0 || tabId >= GuildMgr.MAX_BANK_TABS)
            {
                return;
            }
            if (tabId > Guild.PurchasedBankTabCount)
            {
                return;
            }

            var tab = this[tabId];

            if (tab == null)
            {
                return;
            }

            if (!rank.BankTabRights[tabId].Privileges.HasFlag(GuildBankTabPrivileges.UpdateText))
            {
                return;
            }

            tab.Text = newText.Length < 501 ? newText : newText.Substring(0, 500);
            tab.UpdateLater();

            Guild.Broadcast(GuildHandler.CreateBankTabTextPacket(tabId, newText));
        }
Exemple #15
0
        public void GetBankTabText(Character chr, byte tabId)
        {
            if (tabId < 0 || tabId >= GuildMgr.MAX_BANK_TABS)
            {
                return;
            }
            if (tabId > Guild.PurchasedBankTabCount)
            {
                return;
            }

            var tab = this[tabId];

            if (tab == null)
            {
                return;
            }

            GuildHandler.SendGuildBankTabText(chr, tabId, tab.Text);
        }
Exemple #16
0
        public void QueryBankLog(Character chr, byte tabId)
        {
            if (tabId < 0 || tabId >= GuildMgr.MAX_BANK_TABS)
            {
                return;
            }
            if (tabId > Guild.PurchasedBankTabCount)
            {
                return;
            }

            var tab = this[tabId];

            if (tab == null)
            {
                return;
            }

            GuildHandler.SendGuildBankLog(chr, BankLog, tabId);
        }
Exemple #17
0
        private async Task TestBirthdays(DateTime now)
        {
            foreach (var user in _allBirthdays.GetValue())
            {
                if (user.Value.IsNow())
                {
                    SocketGuildUser guildUser = GuildHandler.GetUser(user.Key);
                    if (guildUser == null)
                    {
                        return; // User doesn't exist anymore, may have left the server.
                    }
                    SocketTextChannel guildChannel = GuildHandler.GetTextChannel(_announcementChannel.GetValue());
                    await AnnounceBirthday(guildChannel, guildUser, user.Value);

                    user.Value.SetLastPassedToNow();
                }
            }

            return;
        }
Exemple #18
0
        public async Task bshex(string hex)
        {
            if (!hex.Contains("#") || hex.Length > 7)
            {
                await ReplyAsync("Has a color hex starting with #");

                return;
            }
            else
            {
                var Config = GuildHandler.GuildConfigs[Context.Guild.Id];


                Config.callcard.descriptioncolor = hex;

                GuildHandler.GuildConfigs[Context.Guild.Id] = Config;
                await GuildHandler.SaveAsync(GuildHandler.GuildConfigs);
                await ReplyAsync("Card info Color set");
            }
        }
Exemple #19
0
        static async Task CleanUpAsync(SocketGuildUser User)
        {
            var GuildConfig = GuildHandler.GuildConfigs[User.Guild.Id];

            if (GuildConfig.AFKList.ContainsKey(User.Id))
            {
                GuildConfig.AFKList.Remove(User.Id);
                Logger.Log(LogType.Warning, LogSource.Configuration, $"{User.Username} removed from {User.Guild.Name}'s AFK List.");
            }
            foreach (var tag in GuildConfig.TagsList)
            {
                if (tag.Owner == User.Id)
                {
                    GuildConfig.TagsList.Remove(tag);
                    Logger.Log(LogType.Warning, LogSource.Configuration, $"Removed {tag.Name} by {User.Username}.");
                }
            }

            GuildHandler.GuildConfigs[User.Guild.Id] = GuildConfig;
            await GuildHandler.SaveAsync(GuildHandler.GuildConfigs);
        }
            public Task <Result> Execute(CommandMetadata _, string guildHandler)
            {
                GuildHandler handler = ParentPlugin.GuildHandler.Shard.GetGuildHandlers().FirstOrDefault(x => x.Name.ToUpperInvariant() == guildHandler.ToUpperInvariant());

                if (handler != null)
                {
                    string status        = handler.ToString();
                    string activePlugins = string.Join("\n", handler.Plugins.GetActivePlugins().Select(x => Plugin.GetVersionedFullName(x.GetType())));

                    return(TaskResult(new EmbedBuilder()
                                      .WithTitle(handler.Name + " status")
                                      .WithDescription($"```{status}```")
                                      .AddField("Active Plugins", $"```{activePlugins}```")
                                      .WithCurrentTimestamp()
                                      .Build(), string.Empty));
                }
                else
                {
                    return(TaskResult(null, $"Failed to fetch GuildHandler status, no GuildHandler matching '{guildHandler}' could be found."));
                }
            }
Exemple #21
0
        public static void HandlePetitionRename(IRealmClient client, RealmPacketIn packet)
        {
            var petitionGuid = packet.ReadEntityId();
            var newName      = packet.ReadCString().Trim();

            var charter = client.ActiveCharacter.Inventory.GetItem(petitionGuid) as PetitionCharter;
            var chr     = client.ActiveCharacter;

            if (charter.Petition.Type == PetitionType.Guild)
            {
                if (!GuildMgr.IsValidGuildName(newName))
                {
                    GuildHandler.SendResult(chr, GuildCommandId.CREATE, newName, GuildResult.NAME_INVALID);
                    return;
                }
                else if (GuildMgr.DoesGuildExist(newName))
                {
                    GuildHandler.SendResult(chr, GuildCommandId.CREATE, newName, GuildResult.NAME_EXISTS);
                    return;
                }
            }
            else
            {
                if (!ArenaMgr.IsValidArenaTeamName(newName))
                {
                    ArenaTeamHandler.SendResult(chr, ArenaTeamCommandId.CREATE, newName, string.Empty, ArenaTeamResult.NAME_INVALID);
                    return;
                }
                else if (ArenaMgr.DoesArenaTeamExist(newName))
                {
                    ArenaTeamHandler.SendResult(chr, ArenaTeamCommandId.CREATE, newName, string.Empty, ArenaTeamResult.NAME_EXISTS);
                    return;
                }
            }

            charter.Petition.Name = newName;
            charter.Petition.Update();

            SendPetitionRename(client, charter);
        }
Exemple #22
0
        /// <summary>
        /// Checks whether a guild member may make another guild member the guild leader
        /// </summary>
        /// <param name="reqChar">requester's character, can be null. If null, sending result is suppressed</param>
        /// <param name="targetChar">target's character, can be null</param>
        /// <param name="targetName">target character's name</param>
        /// <returns>result of operation</returns>
        public static GuildResult CheckIsLeader(Character reqChar, Character targetChar, GuildCommandId cmd,
                                                string targetName)
        {
            GuildMember guildMember1 = reqChar.GuildMember;
            GuildResult resultCode;

            if (guildMember1 == null)
            {
                resultCode = GuildResult.PLAYER_NOT_IN_GUILD;
            }
            else if (targetChar == null)
            {
                resultCode = GuildResult.PLAYER_NOT_FOUND;
            }
            else
            {
                GuildMember guildMember2;
                if ((guildMember2 = targetChar.GuildMember) == null || guildMember2.Guild != guildMember1.Guild)
                {
                    resultCode = GuildResult.PLAYER_NOT_IN_GUILD;
                }
                else if (guildMember1 == guildMember2)
                {
                    resultCode = GuildResult.PERMISSIONS;
                    targetName = string.Empty;
                }
                else
                {
                    if (guildMember1.IsLeader)
                    {
                        return(GuildResult.SUCCESS);
                    }
                    resultCode = GuildResult.PERMISSIONS;
                    targetName = string.Empty;
                }
            }

            GuildHandler.SendResult((IPacketReceiver)reqChar, cmd, targetName, resultCode);
            return(resultCode);
        }
Exemple #23
0
            public async Task toggleErrorasync()
            {
                var Guild     = Context.Guild as SocketGuild;
                var gldConfig = GuildHandler.GuildConfigs[Guild.Id];


                if (!gldConfig.Error.OnOff)
                {
                    gldConfig.Error.OnOff = true;


                    await ReplyAsync(":gear: errors Disabled!");
                }
                else
                {
                    gldConfig.Error.OnOff = false;
                    await ReplyAsync(":skull_crossbones:  Errors Enabled.");
                }

                GuildHandler.GuildConfigs[Context.Guild.Id] = gldConfig;
                await GuildHandler.SaveAsync(GuildHandler.GuildConfigs);
            }
Exemple #24
0
        /// <summary>
        /// Adds a new guild member
        /// Calls GuildMgr.OnJoinGuild
        /// </summary>
        /// <param name="chr">character to add</param>
        /// <param name="update">if true, sends event to the guild</param>
        /// <returns>GuildMember of new member</returns>
        public GuildMember AddMember(CharacterRecord chr)
        {
            GuildMember newMember;

            using (syncRoot.Enter())
            {
                if (Members.TryGetValue(chr.EntityLowId, out newMember))
                {
                    return(newMember);
                }
                newMember = new GuildMember(chr, this, m_ranks.Last());
                Members.Add(newMember.Id, newMember);
                newMember.Create();
            }

            GuildMgr.Instance.RegisterGuildMember(newMember);

            EventLog.AddJoinEvent(newMember.Id);
            GuildHandler.SendEventToGuild(this, GuildEvents.JOINED, newMember);

            return(newMember);
        }
            public async Task togglejoinroleasync()
            {
                var Guild     = Context.Guild as SocketGuild;
                var gldConfig = GuildHandler.GuildConfigs[Guild.Id];


                if (!gldConfig.JoinRole.IsEnabled)
                {
                    gldConfig.JoinRole.IsEnabled = true;


                    await ReplyAsync(":gear: joinrole enable!");
                }
                else
                {
                    gldConfig.JoinRole.IsEnabled = false;
                    await ReplyAsync(":skull_crossbones: Joinrole Disabled.");
                }

                GuildHandler.GuildConfigs[Context.Guild.Id] = gldConfig;
                await GuildHandler.SaveAsync(GuildHandler.GuildConfigs);
            }
Exemple #26
0
        /// <summary>
        /// Checks if given character has necessary priviliges
        /// CheckInGuild call is done automatically
        /// </summary>
        /// <param name="character">character to check. May be null</param>
        /// <param name="commandId">executed command (used for sending result)</param>
        /// <param name="reqPrivs">required privileges</param>
        /// <returns>The Character's guild if the character has required privileges within the guild, otherwise null</returns>
        public static Guild CheckPrivs(Character character, GuildCommandId commandId, GuildPrivileges reqPrivs)
        {
            GuildMember guildMember = character.GuildMember;

            if (guildMember == null)
            {
                GuildHandler.SendResult((IPacketReceiver)character, commandId, GuildResult.PLAYER_NOT_IN_GUILD);
                return((Guild)null);
            }

            if (guildMember.HasRight(reqPrivs))
            {
                return(guildMember.Guild);
            }
            Character character1 = guildMember.Character;

            if (character1 != null)
            {
                GuildHandler.SendResult((IPacketReceiver)character1, commandId, GuildResult.PERMISSIONS);
            }
            return((Guild)null);
        }
Exemple #27
0
        public SocialGroupCreationResultEnum SetGuildName(Character character, string name)
        {
            var potion = character.Inventory.TryGetItem(ItemManager.Instance.TryGetTemplate(ItemIdEnum.POTION_DE_RENOMMAGE_DE_GUILDE_13273));

            if (potion == null)
            {
                return(SocialGroupCreationResultEnum.SOCIAL_GROUP_CREATE_ERROR_REQUIREMENT_UNMET);
            }

            if (!Regex.IsMatch(name, "^([A-Z][a-z\u00E0-\u00FC']{2,14}(\\s|-)?)([A-Z]?[a-z\u00E0-\u00FC']{1,15}(\\s|-)?){0,2}([A-Z]?[a-z\u00E0-\u00FC']{1,15})?$", RegexOptions.Compiled))
            {
                return(SocialGroupCreationResultEnum.SOCIAL_GROUP_CREATE_ERROR_NAME_INVALID);
            }

            if (GuildManager.Instance.DoesNameExist(name))
            {
                return(SocialGroupCreationResultEnum.SOCIAL_GROUP_CREATE_ERROR_NAME_ALREADY_EXISTS);
            }

            character.Inventory.RemoveItem(potion, 1);

            Name = name;

            foreach (var taxCollector in TaxCollectors)
            {
                taxCollector.RefreshLook();
                taxCollector.Map.Refresh(taxCollector);
            }

            foreach (var member in Members)
            {
                member.Character.SendInformationMessage(TextInformationTypeEnum.TEXT_INFORMATION_MESSAGE, 383);
                GuildHandler.SendGuildMembershipMessage(member.Character.Client, member.Character.GuildMember);

                member.Character.RefreshActor();
            }

            return(SocialGroupCreationResultEnum.SOCIAL_GROUP_CREATE_OK);
        }
Exemple #28
0
        protected virtual void OnMemberRemoved(GuildMember member)
        {
            IsDirty = true;

            GuildManager.Instance.DeleteGuildMember(member);
            UnBindMemberEvents(member);

            if (Members.Count == 0)
            {
                GuildManager.Instance.DeleteGuild(this);
            }
            else if (member.IsBoss)
            {
                var newBoss = Members.OrderBy(x => x.RankId).FirstOrDefault();
                if (newBoss != null)
                {
                    SetBoss(newBoss);

                    // <b>%1</b> a remplacé <b>%2</b>  au poste de meneur de la guilde <b>%3</b>
                    BasicHandler.SendTextInformationMessage(m_clients,
                                                            TextInformationTypeEnum.TEXT_INFORMATION_ERROR, 199,
                                                            newBoss.Name, member.Name, Name);
                }
            }

            if (!member.IsConnected)
            {
                return;
            }

            member.Character.RemoveEmote(EmotesEnum.EMOTE_GUILD);

            member.Character.GuildMember = null;
            member.Character.RefreshActor();

            // Vous avez quitté la guilde.
            member.Character.SendInformationMessage(TextInformationTypeEnum.TEXT_INFORMATION_MESSAGE, 176);
            GuildHandler.SendGuildLeftMessage(member.Character.Client);
        }
Exemple #29
0
        /// <summary>
        /// Checks whether the given target exists in requester's guild and whether the given requestMember has needed privs
        /// Sends result of action to the requester
        /// </summary>
        /// <param name="reqChar">requester's character, can be null. If null, sending result is suppressed</param>
        /// <param name="targetChar">target's character, can be null</param>
        /// <param name="targetName">target character's name</param>
        /// <param name="commandId">executed command. Used for sending result</param>
        /// <param name="reqPrivs">priviliges required for executing this action</param>
        /// <param name="canAffectSelf">can this action be executed on self?</param>
        /// <returns>result of operation</returns>
        public static GuildResult CheckAction(Character reqChar, Character targetChar, string targetName, GuildCommandId commandId,
                                              GuildPrivileges reqPrivs, bool canAffectSelf)
        {
            GuildResult err;

            var requester = reqChar.GuildMember;

            if (requester == null)
            {
                err        = GuildResult.PLAYER_NOT_IN_GUILD;
                targetName = string.Empty;
            }
            else if (targetChar == null)
            {
                err = GuildResult.PLAYER_NOT_FOUND;
            }
            else if (!canAffectSelf && (reqChar == targetChar))
            {
                err = GuildResult.PERMISSIONS;
            }
            else if (reqChar.Guild != targetChar.Guild)
            {
                // Member is offline or doesn't exist
                err = GuildResult.PLAYER_NOT_IN_GUILD;
            }
            else if (!requester.HasRight(reqPrivs))
            {
                err        = GuildResult.PERMISSIONS;
                targetName = string.Empty;
            }
            else
            {
                return(GuildResult.SUCCESS);
            }

            GuildHandler.SendResult(reqChar.Client, commandId, targetName, err);
            return(err);
        }
Exemple #30
0
        public void ModifyTabInfo(Character chr, GameObject bank, byte tabId, string newName, string newIcon)
        {
            if (!CheckBankObj(chr, bank))
            {
                return;
            }
            var member = chr.GuildMember;

            if (member == null)
            {
                return;
            }

            if (!member.IsLeader)
            {
                return;
            }

            if (tabId < 0 || tabId > Guild.PurchasedBankTabCount)
            {
                return;
            }

            var tab = this[tabId];

            if (tab == null)
            {
                return;
            }

            tab.Name = newName;
            tab.Icon = newIcon;

            tab.UpdateLater();

            GuildHandler.SendGuildBankTabNames(chr, bank);
            GuildHandler.SendGuildBankTabContents(chr, bank, tabId);
        }