protected override bool Process(Player player, RealmTime time, string[] args) { if (String.IsNullOrWhiteSpace(args[0])) { player.SendInfo("Usage: /invite <player name>"); return false; } if (player.Guild[player.AccountId].Rank >= 20) { foreach (var i in player.Owner.Players.Values) { Player target = player.Owner.GetPlayerByName(args[0]); if (target == null) { player.SendInfoWithTokens("server.invite_notfound", new KeyValuePair<string, object>[1] { new KeyValuePair<string, object>("player", args[0]) }); return false; } if (!target.NameChosen || player.Dist(target) > 20) { player.SendInfoWithTokens("server.invite_notfound", new KeyValuePair<string, object>[1] { new KeyValuePair<string, object>("player", args[0]) }); return false; } if (target.Guild.IsDefault) { target.Client.SendPacket(new InvitedToGuildPacket() { Name = player.Name, GuildName = player.Guild[player.AccountId].Name }); target.Invited = true; player.SendInfoWithTokens("server.invite_succeed", new KeyValuePair<string, object>[2] { new KeyValuePair<string, object>("player", args[0]), new KeyValuePair<string, object>("guild", player.Guild[player.AccountId].Name) }); return true; } else { player.SendError("Player is already in a guild!"); return false; } } } else { player.Client.SendPacket(new TextPacket() { BubbleTime = 0, Stars = -1, Name = "", Text = "Members and initiates cannot invite!" }); } return false; }