示例#1
0
        void HandleLeave(Player p, string[] args)
        {
            string prefix  = "%dParties> %S";
            string noParty = prefix + "You are not in a party.";

            Team team = Team.GetData(p).Team;

            if (team == null)
            {
                p.Message(noParty); return;
            }

            // Handle '/party leave me alone', for example
            if (args.Length > 1)
            {
                team.Message(p, args.Join(" ")); return;
            }

            team.Action(p, "has left the party.");
            team.Remove(p.name);
            Team.GetData(p).Team = null;

            team.OwnerLeft(p);
            Team.SaveList();
        }
示例#2
0
        public override void Use(Player p, string message, CommandData data)
        {
            p.lastCMD = "Party";
            string prefix  = "%dParties> %S";
            string noParty = prefix + "You are not in a party.";

            if (message.Length == 0)
            {
                Help(p); return;
            }
            string[] args = message.SplitSpaces(2);

            switch (args[0].ToLower())
            {
            case "owner": HandleOwner(p, args); return;

            case "kick": HandleKick(p, args); return;

            case "create": HandleCreate(p, args, data); return;

            case "join": HandleJoin(p, args); return;

            case "invite": HandleInvite(p, args); return;

            case "leave": HandleLeave(p, args); return;

            case "list": HandleMembers(p, args); return;
            }

            Team team = Team.GetData(p).Team;

            if (team == null)
            {
                p.Message(noParty); return;
            }
            team.Message(p, message);
        }
示例#3
0
        public void OwnerLeft(Player p)
        {
            Team team = Team.GetData(p).Team;

            if (Members.Count > 0)
            {
                // Choose a new owner at random
                team.Action(p, "has left the party (disconnected).");
                team.Remove(p.name);
                Team.SaveList();
                Team.GetData(p).Team = null;

                var random = new Random();
                int index  = random.Next(team.Members.Count);

                team.Message(p, "%dThe new party owner is %b" + team.Members[index]);

                team.Owner = team.Members[index];
                Team.SaveList();
                return;
            }

            Teams.Remove(this); // Remove empty
        }